Merge branch 'develop' into joost
This commit is contained in:
commit
cac64e3a9e
63 changed files with 2287 additions and 1333 deletions
|
@ -340,6 +340,20 @@
|
||||||
"curvedSeam"
|
"curvedSeam"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"gozer": {
|
||||||
|
"code": "Wouter Van Wageningen",
|
||||||
|
"description": "A FreeSewing pattern for a ghost costume",
|
||||||
|
"design": "Wouter Van Wageningen",
|
||||||
|
"difficulty": 1,
|
||||||
|
"lab": true,
|
||||||
|
"org": true,
|
||||||
|
"tags": [
|
||||||
|
"costumes"
|
||||||
|
],
|
||||||
|
"techniques": [
|
||||||
|
"hem"
|
||||||
|
]
|
||||||
|
},
|
||||||
"hi": {
|
"hi": {
|
||||||
"code": "Wouter Van Wageningen",
|
"code": "Wouter Van Wageningen",
|
||||||
"description": "A FreeSewing pattern for a shark plush toy",
|
"description": "A FreeSewing pattern for a shark plush toy",
|
||||||
|
@ -836,7 +850,7 @@
|
||||||
"bottoms",
|
"bottoms",
|
||||||
"trousers"
|
"trousers"
|
||||||
],
|
],
|
||||||
"techniques": []
|
"techniques": ["curvedSeam", "hem", "weltPocket"]
|
||||||
},
|
},
|
||||||
"yuri": {
|
"yuri": {
|
||||||
"code": "Hellgy",
|
"code": "Hellgy",
|
||||||
|
|
17
designs/gozer/CHANGELOG.md
Normal file
17
designs/gozer/CHANGELOG.md
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
# Change log for: @freesewing/gozer
|
||||||
|
|
||||||
|
|
||||||
|
## 3.0.0 (2022-09-30)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- All FreeSewing pacakges are now ESM only.
|
||||||
|
- All FreeSewing pacakges now use named exports.
|
||||||
|
- Dropped support for NodeJS 14. NodeJS 18 (LTS/hydrogen) or more recent is now required.
|
||||||
|
|
||||||
|
|
||||||
|
This is the **initial release**, and the start of this change log.
|
||||||
|
|
||||||
|
> Prior to version 2, FreeSewing was not a JavaScript project.
|
||||||
|
> As such, that history is out of scope for this change log.
|
||||||
|
|
143
designs/gozer/README.md
Normal file
143
designs/gozer/README.md
Normal file
|
@ -0,0 +1,143 @@
|
||||||
|

|
||||||
|
<p align='center'><a
|
||||||
|
href="https://www.npmjs.com/package/@freesewing/gozer"
|
||||||
|
title="@freesewing/gozer on NPM"
|
||||||
|
><img src="https://img.shields.io/npm/v/@freesewing/gozer.svg"
|
||||||
|
alt="@freesewing/gozer on NPM"/>
|
||||||
|
</a><a
|
||||||
|
href="https://opensource.org/licenses/MIT"
|
||||||
|
title="License: MIT"
|
||||||
|
><img src="https://img.shields.io/npm/l/@freesewing/gozer.svg?label=License"
|
||||||
|
alt="License: MIT"/>
|
||||||
|
</a><a
|
||||||
|
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
|
||||||
|
title="Code quality on DeepScan"
|
||||||
|
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
|
||||||
|
alt="Code quality on DeepScan"/>
|
||||||
|
</a><a
|
||||||
|
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Agozer"
|
||||||
|
title="Open issues tagged pkg:gozer"
|
||||||
|
><img src="https://img.shields.io/github/issues/freesewing/freesewing/pkg:gozer.svg?label=Issues"
|
||||||
|
alt="Open issues tagged pkg:gozer"/>
|
||||||
|
</a><a
|
||||||
|
href="#contributors-"
|
||||||
|
title="All Contributors"
|
||||||
|
><img src="https://img.shields.io/badge/all_contributors-111-pink.svg"
|
||||||
|
alt="All Contributors"/>
|
||||||
|
</a></p><p align='center'><a
|
||||||
|
href="https://twitter.com/freesewing_org"
|
||||||
|
title="Follow @freesewing_org on Twitter"
|
||||||
|
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-blue.svg?logo=twitter&logoColor=white&logoWidth=15"
|
||||||
|
alt="Follow @freesewing_org on Twitter"/>
|
||||||
|
</a><a
|
||||||
|
href="https://chat.freesewing.org"
|
||||||
|
title="Chat with us on Discord"
|
||||||
|
><img src="https://img.shields.io/discord/698854858052075530?label=Chat%20on%20Discord"
|
||||||
|
alt="Chat with us on Discord"/>
|
||||||
|
</a><a
|
||||||
|
href="https://freesewing.org/patrons/join"
|
||||||
|
title="Become a FreeSewing Patron"
|
||||||
|
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
|
||||||
|
alt="Become a FreeSewing Patron"/>
|
||||||
|
</a><a
|
||||||
|
href="https://instagram.com/freesewing_org"
|
||||||
|
title="Follow @freesewing_org on Twitter"
|
||||||
|
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Follow%20us-E4405F.svg?logo=instagram&logoColor=white&logoWidth=15"
|
||||||
|
alt="Follow @freesewing_org on Twitter"/>
|
||||||
|
</a></p>
|
||||||
|
|
||||||
|
# @freesewing/gozer
|
||||||
|
|
||||||
|
A FreeSewing pattern for a ghost costume
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## What am I looking at? 🤔
|
||||||
|
|
||||||
|
This repository is the FreeSewing *monorepo* holding all FreeSewing's websites, documentation, designs, plugins, and other NPM packages.
|
||||||
|
|
||||||
|
This folder holds: @freesewing/gozer
|
||||||
|
|
||||||
|
If you're not entirely sure what to do or how to start, type this command:
|
||||||
|
|
||||||
|
```
|
||||||
|
npm run tips
|
||||||
|
```
|
||||||
|
|
||||||
|
> If you don't want to set up a dev environment, you can run it in your browser:
|
||||||
|
>
|
||||||
|
> [](https://gitpod.io/#https://github.com/freesewing/freesewing)
|
||||||
|
>
|
||||||
|
> We recommend that you fork our repository and then
|
||||||
|
> put `gitpod.io/#<entire-url-of-your-fork` into a browser
|
||||||
|
> to start up a browser-based dev environment of your own.
|
||||||
|
|
||||||
|
## About FreeSewing 💀
|
||||||
|
|
||||||
|
Where the world of makers and developers collide, that's where you'll find FreeSewing.
|
||||||
|
|
||||||
|
If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate
|
||||||
|
sewing patterns adapted to your measurements.
|
||||||
|
|
||||||
|
If you're a developer, the FreeSewing documentation lives at [freesewing.dev](https://freesewing.dev/).
|
||||||
|
The FreeSewing [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox
|
||||||
|
for parametric design of sewing patterns. But FreeSewing also provides a range
|
||||||
|
of [plugins](https://freesewing.dev/reference/plugins/) that further extend the
|
||||||
|
functionality of the platform.
|
||||||
|
|
||||||
|
If you have NodeJS installed, you can try it right now by running:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npx create-freesewing-pattern
|
||||||
|
```
|
||||||
|
|
||||||
|
Getting started guides are available for:
|
||||||
|
- [Linux](https://freesewing.dev/tutorials/getting-started-linux/)
|
||||||
|
- [MacOS](https://freesewing.dev/tutorials/getting-started-mac/)
|
||||||
|
- [Windows](https://freesewing.dev/tutorials/getting-started-windows/)
|
||||||
|
|
||||||
|
The [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) will
|
||||||
|
show you how to create your first parametric design.
|
||||||
|
|
||||||
|
## Support FreeSewing: Become a patron 🥰
|
||||||
|
|
||||||
|
FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.
|
||||||
|
|
||||||
|
If you feel FreeSewing is worthwhile, and you can spend a few coind without
|
||||||
|
hardship, then you should [join us and become a patron](https://freesewing.org/community/join).
|
||||||
|
|
||||||
|
## Links 👩💻
|
||||||
|
|
||||||
|
**Official channels**
|
||||||
|
|
||||||
|
- 💻 Makers website: [FreeSewing.org](https://freesewing.org)
|
||||||
|
- 💻 Developers website: [FreeSewing.dev](https://freesewing.dev)
|
||||||
|
- ✅ [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
||||||
|
[Issues](https://github.com/freesewing/freesewing/issues) &
|
||||||
|
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
||||||
|
[GitHub](https://github.com/freesewing/freesewing)
|
||||||
|
|
||||||
|
**Social media**
|
||||||
|
|
||||||
|
- 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org)
|
||||||
|
- 📷 Instagram: [@freesewing_org](https://instagram.com/freesewing_org)
|
||||||
|
|
||||||
|
**Places the FreeSewing community hangs out**
|
||||||
|
|
||||||
|
- 💬 [Discord](https://discord.freesewing.org/)
|
||||||
|
- 💬 [Facebook](https://www.facebook.com/groups/627769821272714/)
|
||||||
|
- 💬 [Reddit](https://www.reddit.com/r/freesewing/)
|
||||||
|
|
||||||
|
## License: MIT 🤓
|
||||||
|
|
||||||
|
© [Joost De Cock](https://github.com/joostdecock).
|
||||||
|
See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details.
|
||||||
|
|
||||||
|
## Where to get help 🤯
|
||||||
|
|
||||||
|
For [Support](https://github.com/freesewing/freesewing/issues/new/choose),
|
||||||
|
please use the [Issues](https://github.com/freesewing/freesewing/issues) &
|
||||||
|
[Discussions](https://github.com/freesewing/freesewing/discussions) on
|
||||||
|
[GitHub](https://github.com/freesewing/freesewing).
|
||||||
|
|
35
designs/gozer/build.mjs
Normal file
35
designs/gozer/build.mjs
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
/* This script will build the package with esbuild */
|
||||||
|
import esbuild from 'esbuild'
|
||||||
|
import pkg from './package.json' assert { type: 'json' }
|
||||||
|
|
||||||
|
// Create banner based on package info
|
||||||
|
const banner = `/**
|
||||||
|
* ${pkg.name} | v${pkg.version}
|
||||||
|
* ${pkg.description}
|
||||||
|
* (c) ${new Date().getFullYear()} ${pkg.author}
|
||||||
|
* @license ${pkg.license}
|
||||||
|
*/`
|
||||||
|
|
||||||
|
// Shared esbuild options
|
||||||
|
const options = {
|
||||||
|
banner: { js: banner },
|
||||||
|
bundle: true,
|
||||||
|
entryPoints: ['src/index.mjs'],
|
||||||
|
format: 'esm',
|
||||||
|
outfile: 'dist/index.mjs',
|
||||||
|
external: ['@freesewing'],
|
||||||
|
metafile: process.env.VERBOSE ? true : false,
|
||||||
|
minify: process.env.NO_MINIFY ? false : true,
|
||||||
|
sourcemap: true,
|
||||||
|
}
|
||||||
|
|
||||||
|
// Let esbuild generate the build
|
||||||
|
const build = async () => {
|
||||||
|
const result = await esbuild.build(options).catch(() => process.exit(1))
|
||||||
|
|
||||||
|
if (process.env.VERBOSE) {
|
||||||
|
const info = await esbuild.analyzeMetafile(result.metafile)
|
||||||
|
console.log(info)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
build()
|
4
designs/gozer/data.mjs
Normal file
4
designs/gozer/data.mjs
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
// This file is auto-generated | All changes you make will be overwritten.
|
||||||
|
export const name = '@freesewing/gozer'
|
||||||
|
export const version = '3.0.0'
|
||||||
|
export const data = { name, version }
|
7
designs/gozer/i18n/de.json
Normal file
7
designs/gozer/i18n/de.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"t": "Gozer",
|
||||||
|
"d": "A FreeSewing pattern that needs a description",
|
||||||
|
"p": { },
|
||||||
|
"s": { },
|
||||||
|
"o": { }
|
||||||
|
}
|
9
designs/gozer/i18n/en.json
Normal file
9
designs/gozer/i18n/en.json
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"t": "Gozer",
|
||||||
|
"d": "A FreeSewing pattern for a Halloween costume",
|
||||||
|
"p": {
|
||||||
|
"ghost": "ghost"
|
||||||
|
},
|
||||||
|
"s": { },
|
||||||
|
"o": { }
|
||||||
|
}
|
7
designs/gozer/i18n/es.json
Normal file
7
designs/gozer/i18n/es.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"t": "Gozer",
|
||||||
|
"d": "A FreeSewing pattern that needs a description",
|
||||||
|
"p": { },
|
||||||
|
"s": { },
|
||||||
|
"o": { }
|
||||||
|
}
|
7
designs/gozer/i18n/fr.json
Normal file
7
designs/gozer/i18n/fr.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"t": "Gozer",
|
||||||
|
"d": "A FreeSewing pattern that needs a description",
|
||||||
|
"p": { },
|
||||||
|
"s": { },
|
||||||
|
"o": { }
|
||||||
|
}
|
8
designs/gozer/i18n/index.mjs
Normal file
8
designs/gozer/i18n/index.mjs
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
import en from './en.json' assert { type: 'json' }
|
||||||
|
import de from './de.json' assert { type: 'json' }
|
||||||
|
import es from './es.json' assert { type: 'json' }
|
||||||
|
import fr from './fr.json' assert { type: 'json' }
|
||||||
|
import nl from './nl.json' assert { type: 'json' }
|
||||||
|
import uk from './uk.json' assert { type: 'json' }
|
||||||
|
|
||||||
|
export const i18n = { en, de, es, fr, nl, uk }
|
7
designs/gozer/i18n/nl.json
Normal file
7
designs/gozer/i18n/nl.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"t": "Gozer",
|
||||||
|
"d": "A FreeSewing pattern that needs a description",
|
||||||
|
"p": { },
|
||||||
|
"s": { },
|
||||||
|
"o": { }
|
||||||
|
}
|
7
designs/gozer/i18n/uk.json
Normal file
7
designs/gozer/i18n/uk.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"t": "Gozer",
|
||||||
|
"d": "A FreeSewing pattern that needs a description",
|
||||||
|
"p": { },
|
||||||
|
"s": { },
|
||||||
|
"o": { }
|
||||||
|
}
|
73
designs/gozer/package.json
Normal file
73
designs/gozer/package.json
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
{
|
||||||
|
"name": "@freesewing/gozer",
|
||||||
|
"version": "3.0.0",
|
||||||
|
"description": "A FreeSewing pattern for a ghost costume",
|
||||||
|
"author": "Joost De Cock <joost@joost.at> (https://github.com/joostdecock)",
|
||||||
|
"homepage": "https://freesewing.org/",
|
||||||
|
"repository": "github:freesewing/freesewing",
|
||||||
|
"license": "MIT",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/freesewing/freesewing/issues"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "individual",
|
||||||
|
"url": "https://freesewing.org/patrons/join"
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"freesewing",
|
||||||
|
"design",
|
||||||
|
"diy",
|
||||||
|
"fashion",
|
||||||
|
"made to measure",
|
||||||
|
"parametric design",
|
||||||
|
"pattern",
|
||||||
|
"sewing",
|
||||||
|
"sewing pattern"
|
||||||
|
],
|
||||||
|
"type": "module",
|
||||||
|
"module": "dist/index.mjs",
|
||||||
|
"exports": {
|
||||||
|
".": {
|
||||||
|
"internal": "./src/index.mjs",
|
||||||
|
"default": "./dist/index.mjs"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"build": "node build.mjs",
|
||||||
|
"build:all": "yarn build",
|
||||||
|
"clean": "rimraf dist",
|
||||||
|
"mbuild": "NO_MINIFY=1 node build.mjs",
|
||||||
|
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -",
|
||||||
|
"test": "npx mocha tests/*.test.mjs",
|
||||||
|
"vbuild": "VERBOSE=1 node build.mjs",
|
||||||
|
"lab": "cd ../../sites/lab && yarn start",
|
||||||
|
"tips": "node ../../scripts/help.mjs",
|
||||||
|
"lint": "npx eslint 'src/**' 'tests/*.mjs'",
|
||||||
|
"prettier": "npx prettier --write 'src/*.mjs' 'tests/*.mjs'",
|
||||||
|
"testci": "NODE_OPTIONS=\"--conditions=internal\" npx mocha tests/*.test.mjs --reporter ../../tests/reporters/terse.js",
|
||||||
|
"wbuild": "node build.mjs",
|
||||||
|
"wbuild:all": "yarn wbuild"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@freesewing/core": "3.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {},
|
||||||
|
"devDependencies": {
|
||||||
|
"mocha": "10.2.0",
|
||||||
|
"chai": "4.3.10",
|
||||||
|
"@freesewing/models": "3.0.0",
|
||||||
|
"@freesewing/plugin-timing": "3.0.0"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"dist/*",
|
||||||
|
"README.md"
|
||||||
|
],
|
||||||
|
"publishConfig": {
|
||||||
|
"access": "public",
|
||||||
|
"tag": "latest"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "18",
|
||||||
|
"npm": "9"
|
||||||
|
}
|
||||||
|
}
|
55
designs/gozer/src/ghost.mjs
Normal file
55
designs/gozer/src/ghost.mjs
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
export const ghost = {
|
||||||
|
name: 'gozer.ghost',
|
||||||
|
measurements: ['hpsToWaistBack', 'waistToFloor', 'head'],
|
||||||
|
draft: ({ measurements, Point, points, Snippet, snippets, sa, macro, part }) => {
|
||||||
|
const eyeSize = measurements.head * 0.0416
|
||||||
|
const size =
|
||||||
|
measurements.hpsToWaistBack + measurements.waistToFloor + measurements.head / Math.PI
|
||||||
|
|
||||||
|
points.middle = new Point(0, 0).addCircle(size, 'fabric')
|
||||||
|
|
||||||
|
points.eyeLine = points.middle.shift(270, measurements.head / Math.PI / 2)
|
||||||
|
points.eyeLeft = points.eyeLine.shift(180, measurements.head * 0.13)
|
||||||
|
points.eyeRight = points.eyeLine.shift(0, measurements.head * 0.13)
|
||||||
|
points.left = new Point(-1 * size, 0)
|
||||||
|
points.right = new Point(size, 0)
|
||||||
|
|
||||||
|
points.eyeLeft.addCircle(eyeSize)
|
||||||
|
points.eyeRight.addCircle(eyeSize)
|
||||||
|
|
||||||
|
points.title = points.middle.shift(270, size * 0.65)
|
||||||
|
macro('title', {
|
||||||
|
nr: 1,
|
||||||
|
at: points.title,
|
||||||
|
title: 'Gozer',
|
||||||
|
align: 'center',
|
||||||
|
})
|
||||||
|
points.logo = points.middle.shift(270, size * 0.5)
|
||||||
|
snippets.logo = new Snippet('logo', points.logo)
|
||||||
|
|
||||||
|
if (sa) {
|
||||||
|
points.sa = new Point(0, 0).addCircle(size + sa, 'fabric sa')
|
||||||
|
}
|
||||||
|
|
||||||
|
macro('hd', {
|
||||||
|
from: points.left,
|
||||||
|
to: points.right,
|
||||||
|
id: 'width',
|
||||||
|
y: points.right.y,
|
||||||
|
})
|
||||||
|
macro('hd', {
|
||||||
|
from: points.eyeLeft,
|
||||||
|
to: points.middle,
|
||||||
|
id: 'eye',
|
||||||
|
y: points.eyeLeft.y,
|
||||||
|
})
|
||||||
|
macro('vd', {
|
||||||
|
from: points.eyeLeft,
|
||||||
|
to: points.middle,
|
||||||
|
id: 'eye',
|
||||||
|
x: points.eyeLeft.x,
|
||||||
|
})
|
||||||
|
|
||||||
|
return part
|
||||||
|
},
|
||||||
|
}
|
16
designs/gozer/src/index.mjs
Normal file
16
designs/gozer/src/index.mjs
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
//
|
||||||
|
|
||||||
|
import { Design } from '@freesewing/core'
|
||||||
|
import { i18n } from '../i18n/index.mjs'
|
||||||
|
import { data } from '../data.mjs'
|
||||||
|
// Parts
|
||||||
|
import { ghost } from './ghost.mjs'
|
||||||
|
|
||||||
|
// Create new design
|
||||||
|
const Gozer = new Design({
|
||||||
|
data,
|
||||||
|
parts: [ghost],
|
||||||
|
})
|
||||||
|
|
||||||
|
// Named exports
|
||||||
|
export { ghost, i18n, Gozer }
|
20
designs/gozer/tests/shared.test.mjs
Normal file
20
designs/gozer/tests/shared.test.mjs
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
// This file is auto-generated | Any changes you make will be overwritten.
|
||||||
|
import { Gozer, i18n } from '../src/index.mjs'
|
||||||
|
|
||||||
|
// Shared tests
|
||||||
|
import { testPatternConfig } from '../../../tests/designs/config.mjs'
|
||||||
|
import { testPatternI18n } from '../../../tests/designs/i18n.mjs'
|
||||||
|
import { testPatternDrafting } from '../../../tests/designs/drafting.mjs'
|
||||||
|
import { testPatternSampling } from '../../../tests/designs/sampling.mjs'
|
||||||
|
|
||||||
|
// Test config
|
||||||
|
testPatternConfig(Gozer)
|
||||||
|
|
||||||
|
// Test translation
|
||||||
|
testPatternI18n(Gozer, i18n)
|
||||||
|
|
||||||
|
// Test drafting - Change the second parameter to `true` to log errors
|
||||||
|
testPatternDrafting(Gozer, false)
|
||||||
|
|
||||||
|
// Test sampling - Change the second parameter to `true` to log errors
|
||||||
|
testPatternSampling(Gozer, false)
|
|
@ -4,26 +4,65 @@
|
||||||
"p": {
|
"p": {
|
||||||
"backPocket": "Back pocket",
|
"backPocket": "Back pocket",
|
||||||
"cutout": "Cutout",
|
"cutout": "Cutout",
|
||||||
"facings": "Facings",
|
"facingBack": "Back Pocket Facing",
|
||||||
"mini": "Mini",
|
"facingFront": "Front Pocket Facing",
|
||||||
|
"mini": "Mini version",
|
||||||
"pants": "Pants",
|
"pants": "Pants",
|
||||||
"pantsProto": "FIXME: Give this part a name",
|
"pantsProto": "Pants prototype",
|
||||||
"pocket": "Pocket",
|
"pocket": "Pocket",
|
||||||
"strapBack": "Strap back",
|
"strapBack": "Strap back",
|
||||||
"strapFront": "Strap front",
|
"strapFront": "Strap front",
|
||||||
"waistbandBack": "Waistband back",
|
"waistbandBack": "Waistband back",
|
||||||
"waistbandFront": "Waistband front"
|
"waistbandFront": "Waistband front"
|
||||||
},
|
},
|
||||||
"s": {},
|
"s": {
|
||||||
|
"thisIsNotAPart": "This is not a real part",
|
||||||
|
"doNotCutFromFabric": "Do not cut this from the fabric",
|
||||||
|
"useMeasurementsToCutFromFabric": "Use these measurements to cut the shape from the fabric",
|
||||||
|
"cutBackPocket.t": "The back pocket is not shown",
|
||||||
|
"cutBackPocket.d": "The **back pocket** is made of two rectangles of fabric {{{ width }}} wide and {{{ length }}} long.",
|
||||||
|
"cutFacingback.t": "The back pocket facing is not shown",
|
||||||
|
"cutFacingback.d": "The **back pocket facing** is made of a rectangle of fabric {{{ width }}} wide and {{{ length }}} long.",
|
||||||
|
"cutFacingfront.t": "The front pocket facing is not shown",
|
||||||
|
"cutFacingfront.d": "The **front pocket facing** is made of a rectangle of fabric {{{ width }}} wide and {{{ length }}} long.",
|
||||||
|
"cutwaistbandBack.t": "The back waist band is not shown",
|
||||||
|
"cutwaistbandBack.d": "The **back waist band** is made of two strips of fabric {{{ width }}} wide and {{{ length }}} long.",
|
||||||
|
"cutwaistbandFront.t": "The front waist band is not shown",
|
||||||
|
"cutwaistbandFront.d": "The **front waist band** is made of two strips of fabric {{{ width }}} wide and {{{ length }}} long.",
|
||||||
|
"cutstrapBack.t": "The back strap is not shown",
|
||||||
|
"cutstrapBack.d": "The **back strap** is made of two strips of fabric {{{ width }}} wide and {{{ length }}} long.",
|
||||||
|
"cutstrapFront.t": "The front strap is not shown",
|
||||||
|
"cutstrapFront.d": "The **front strap** is made of two strips of fabric {{{ width }}} wide and {{{ length }}} long.",
|
||||||
|
"showPants.t": "The full pants are shown",
|
||||||
|
"showPants.d": "The **full pants** are shown. This takes up a lot of paper to print. Consider hiding this part, and a minimized version will show with the dimensions.",
|
||||||
|
"hidePants.t": "The full pants are not shown",
|
||||||
|
"hidePants.d": "The **full pants** are not shown. Instead a minimized version is show with the dimensions, allowing you cut this directly from the fabric. This saves considerably on the required paper to print this pattern."
|
||||||
|
},
|
||||||
"o": {
|
"o": {
|
||||||
"backPocket": {
|
"backPocket": {
|
||||||
"t": "Back pocket",
|
"t": "Back pocket",
|
||||||
"d": "Whether to include a back pocket or not"
|
"d": "Whether to include a back pocket or not"
|
||||||
},
|
},
|
||||||
|
"backPocketYes": {
|
||||||
|
"t": "Back pocket",
|
||||||
|
"d": "The back pocket is included"
|
||||||
|
},
|
||||||
|
"backPocketNo": {
|
||||||
|
"t": "No Back pocket",
|
||||||
|
"d": "The pattern is drawn without a back pocket"
|
||||||
|
},
|
||||||
"frontPocket": {
|
"frontPocket": {
|
||||||
"t": "Front pocket",
|
"t": "Front pocket",
|
||||||
"d": "Whether to include a front pocket or not"
|
"d": "Whether to include a front pocket or not"
|
||||||
},
|
},
|
||||||
|
"frontPocketYes": {
|
||||||
|
"t": "Front pocket",
|
||||||
|
"d": "The front pocket is included"
|
||||||
|
},
|
||||||
|
"frontPocketNo": {
|
||||||
|
"t": "No Front pocket",
|
||||||
|
"d": "The pattern is drawn without a front pocket"
|
||||||
|
},
|
||||||
"hemWidth": {
|
"hemWidth": {
|
||||||
"t": "Hem size",
|
"t": "Hem size",
|
||||||
"d": "Size of the hem at the bottom of the pants"
|
"d": "Size of the hem at the bottom of the pants"
|
||||||
|
@ -64,33 +103,61 @@
|
||||||
"t": "Waist Overlap",
|
"t": "Waist Overlap",
|
||||||
"d": "This dicates how much you want the leg flaps to overlap at the waist. A setting of 0 would have them meet at the side seam, and a setting of 100 makes them meet at the front/back."
|
"d": "This dicates how much you want the leg flaps to overlap at the waist. A setting of 0 would have them meet at the side seam, and a setting of 100 makes them meet at the front/back."
|
||||||
},
|
},
|
||||||
"legShortening": {
|
"legSize": {
|
||||||
"t": "Leg Shortening",
|
"t": "Leg Size",
|
||||||
"d": "This dictates how long the pants will be. It is a factor of the inseam measurement. The larger the value, the more that will be taken off the length."
|
"d": "This dictates how long the pants will be. It is a factor of the inseam measurement. The larger the value, the longer the pants."
|
||||||
},
|
},
|
||||||
"backRaise": {
|
"backRaise": {
|
||||||
"t": "Back Raise",
|
"t": "Back Raise",
|
||||||
"d": "This setting raises the waist in the back. Our waist does not sit horizontally, but is angled up at the back. This seting allows you to raise this in the back if you need it for a good fit."
|
"d": "This setting raises the waist in the back. Our waist does not sit horizontally, but is angled up at the back. This seting allows you to raise this in the back if you need it for a good fit."
|
||||||
},
|
},
|
||||||
"fitWaist": {
|
"fitWaist": {
|
||||||
"t": "FIXME: Give this option a name",
|
"t": "Fit the garment to the waist",
|
||||||
"d": "FIXME: Give this option a description"
|
"d": "Traditionally, wrap pants are not fitted to the waist, and just use the flexibility of the fabric to adjust."
|
||||||
|
},
|
||||||
|
"fitWaistNo": {
|
||||||
|
"t": "Do not fit the garment to the waist",
|
||||||
|
"d": "The traditional wrap pants."
|
||||||
|
},
|
||||||
|
"fitWaistYes": {
|
||||||
|
"t": "Fit the garment to the waist",
|
||||||
|
"d": "Adjust the crotch cutout to make the waist fit better."
|
||||||
},
|
},
|
||||||
"frontPocketStyle": {
|
"frontPocketStyle": {
|
||||||
"t": "FIXME: Give this option a name",
|
"t": "Front pocket style",
|
||||||
"d": "FIXME: Give this option a description"
|
"d": "A welt pocket, or a pocket hidden in the waistband."
|
||||||
|
},
|
||||||
|
"frontPocketStyle.welt": {
|
||||||
|
"t": "Welt style Front pocket",
|
||||||
|
"d": "The front pocket will be a welt pocket, slanted, and hidden by the overlap."
|
||||||
|
},
|
||||||
|
"frontPocketStyle.waistband": {
|
||||||
|
"t": "Waistband Front pocket",
|
||||||
|
"d": "The front pocket will be hidden in the seam of the waistband."
|
||||||
},
|
},
|
||||||
"knotInFront": {
|
"knotInFront": {
|
||||||
"t": "FIXME: Give this option a name",
|
"t": "Place the knot in the front",
|
||||||
"d": "FIXME: Give this option a description"
|
"d": "The knot of the wrap straps can be placed in the front or back."
|
||||||
|
},
|
||||||
|
"knotInFrontNo": {
|
||||||
|
"t": "Knot in the back",
|
||||||
|
"d": "The knot of the wrap straps will be in the back."
|
||||||
|
},
|
||||||
|
"knotInFrontYes": {
|
||||||
|
"t": "Knot in the front",
|
||||||
|
"d": "The knot of the wrap straps will be in the front."
|
||||||
},
|
},
|
||||||
"separateWaistband": {
|
"separateWaistband": {
|
||||||
"t": "FIXME: Give this option a name",
|
"t": "Create a separate waistband",
|
||||||
"d": "FIXME: Give this option a description"
|
"d": "Create a separate waistband, or have a hem the size of the waistband."
|
||||||
},
|
},
|
||||||
"showMini": {
|
"separateWaistbandNo": {
|
||||||
"t": "FIXME: Give this option a name",
|
"t": "No separate waistband",
|
||||||
"d": "FIXME: Give this option a description"
|
"d": "The waistband is created by a folded hem."
|
||||||
|
},
|
||||||
|
"separateWaistbandYes": {
|
||||||
|
"t": "Separate waistband",
|
||||||
|
"d": "The waistband is a separate piece, and sewn onto the pants."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,54 +1,83 @@
|
||||||
import { pantsProto } from './pantsproto.mjs'
|
import { pantsProto } from './pantsproto.mjs'
|
||||||
|
|
||||||
function waraleeBackPocket({
|
export const backPocket = {
|
||||||
options,
|
name: 'waralee.backPocket',
|
||||||
measurements,
|
after: pantsProto,
|
||||||
Point,
|
draft: ({
|
||||||
Path,
|
options,
|
||||||
points,
|
measurements,
|
||||||
paths,
|
Point,
|
||||||
Snippet,
|
Path,
|
||||||
snippets,
|
points,
|
||||||
complete,
|
paths,
|
||||||
paperless,
|
Snippet,
|
||||||
macro,
|
snippets,
|
||||||
sa,
|
macro,
|
||||||
part,
|
sa,
|
||||||
}) {
|
store,
|
||||||
if (false == options.backPocket) {
|
expand,
|
||||||
return part
|
units,
|
||||||
}
|
part,
|
||||||
|
}) => {
|
||||||
|
if (false == options.backPocket) {
|
||||||
|
return part.hide()
|
||||||
|
}
|
||||||
|
const pocketDepth = options.backPocketDepth * measurements.crotchDepth
|
||||||
|
|
||||||
let pocketDepth = options.backPocketDepth
|
if (!expand) {
|
||||||
|
// Expand is off, do not draw the part but flag this to the user
|
||||||
|
store.flag.note({
|
||||||
|
msg: `waralee:cutBackPocket`,
|
||||||
|
replace: {
|
||||||
|
width: units(options.backPocketSize * measurements.crotchDepth),
|
||||||
|
length: units(pocketDepth + options.backPocketVerticalOffset * measurements.crotchDepth),
|
||||||
|
},
|
||||||
|
suggest: {
|
||||||
|
text: 'flag:show',
|
||||||
|
icon: 'expand',
|
||||||
|
update: {
|
||||||
|
settings: ['expand', 1],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
// Also hint about expand
|
||||||
|
store.flag.preset('expand')
|
||||||
|
|
||||||
points.topLeft = new Point(0, 0)
|
return part.hide()
|
||||||
points.bottomLeft = points.topLeft.shift(
|
}
|
||||||
270,
|
|
||||||
pocketDepth /*+ 30*/ * 2 +
|
|
||||||
options.backPocketVerticalOffset * measurements.crotchDepth /*- measurements.waistToHips*/
|
|
||||||
)
|
|
||||||
|
|
||||||
points.topRight = points.topLeft.shift(
|
points.topLeft = new Point(0, 0)
|
||||||
0,
|
points.bottomLeft = points.topLeft.shift(
|
||||||
options.backPocketSize * measurements.crotchDepth /*- measurements.waistToHips*/ /*+ 24*/
|
270,
|
||||||
)
|
pocketDepth + options.backPocketVerticalOffset * measurements.crotchDepth
|
||||||
points.bottomRight = points.topRight.shift(
|
)
|
||||||
270,
|
|
||||||
pocketDepth /*+ 30*/ * 2 +
|
|
||||||
options.backPocketVerticalOffset * measurements.crotchDepth /*- measurements.waistToHips*/
|
|
||||||
)
|
|
||||||
|
|
||||||
paths.seam = new Path()
|
points.topRight = points.topLeft.shift(0, options.backPocketSize * measurements.crotchDepth)
|
||||||
.move(points.topLeft)
|
points.bottomRight = points.topRight.shift(
|
||||||
.line(points.bottomLeft)
|
270,
|
||||||
.line(points.bottomRight)
|
pocketDepth + options.backPocketVerticalOffset * measurements.crotchDepth
|
||||||
.line(points.topRight)
|
)
|
||||||
.line(points.topLeft)
|
|
||||||
.close()
|
paths.seamSA = new Path()
|
||||||
.attr('class', 'fabric')
|
.move(points.bottomRight)
|
||||||
|
.line(points.topRight)
|
||||||
|
.line(points.topLeft)
|
||||||
|
.line(points.bottomLeft)
|
||||||
|
.hide()
|
||||||
|
paths.seam = new Path()
|
||||||
|
.move(points.bottomLeft)
|
||||||
|
.line(points.bottomRight)
|
||||||
|
.join(paths.seamSA)
|
||||||
|
.close()
|
||||||
|
.addClass('fabric')
|
||||||
|
|
||||||
|
macro('cutonfold', {
|
||||||
|
from: points.bottomLeft,
|
||||||
|
to: points.bottomRight,
|
||||||
|
})
|
||||||
|
|
||||||
|
store.cutlist.addCut({ cut: 2, from: 'lining' })
|
||||||
|
|
||||||
// Complete?
|
|
||||||
if (complete) {
|
|
||||||
points.title = points.topLeft.shift(270, 75).shift(0, 50)
|
points.title = points.topLeft.shift(270, 75).shift(0, 50)
|
||||||
macro('title', {
|
macro('title', {
|
||||||
nr: 4,
|
nr: 4,
|
||||||
|
@ -58,16 +87,10 @@ function waraleeBackPocket({
|
||||||
|
|
||||||
points.logo = points.title.shift(270, 75)
|
points.logo = points.title.shift(270, 75)
|
||||||
snippets.logo = new Snippet('logo', points.logo)
|
snippets.logo = new Snippet('logo', points.logo)
|
||||||
points.text = points.logo
|
points.text = points.logo.shift(-90, 25).addText('Waralee', 'center')
|
||||||
.shift(-90, 25)
|
|
||||||
.attr('data-text', 'Waralee')
|
|
||||||
.attr('data-text-class', 'center')
|
|
||||||
|
|
||||||
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
|
if (sa) paths.sa = paths.seamSA.close().offset(sa).addClass('fabric sa')
|
||||||
}
|
|
||||||
|
|
||||||
// Paperless?
|
|
||||||
if (paperless) {
|
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
id: 1,
|
id: 1,
|
||||||
from: points.topLeft,
|
from: points.topLeft,
|
||||||
|
@ -80,13 +103,7 @@ function waraleeBackPocket({
|
||||||
to: points.bottomLeft,
|
to: points.bottomLeft,
|
||||||
x: points.topLeft.x + 15,
|
x: points.topLeft.x + 15,
|
||||||
})
|
})
|
||||||
}
|
|
||||||
|
|
||||||
return part
|
return part
|
||||||
}
|
},
|
||||||
|
|
||||||
export const backPocket = {
|
|
||||||
name: 'waralee.backPocket',
|
|
||||||
after: pantsProto,
|
|
||||||
draft: waraleeBackPocket,
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,38 +1,26 @@
|
||||||
import { pantsProto } from './pantsproto.mjs'
|
import { pantsProto } from './pantsproto.mjs'
|
||||||
|
|
||||||
function waraleeCutout({
|
export const cutout = {
|
||||||
options,
|
name: 'waralee.cutout',
|
||||||
Path,
|
from: pantsProto,
|
||||||
points,
|
draft: ({ options, Path, points, paths, Snippet, snippets, sa, macro, expand, part }) => {
|
||||||
paths,
|
if (expand) {
|
||||||
Snippet,
|
return part.hide()
|
||||||
snippets,
|
}
|
||||||
complete,
|
|
||||||
sa,
|
|
||||||
paperless,
|
|
||||||
macro,
|
|
||||||
part,
|
|
||||||
}) {
|
|
||||||
let separateWaistband = options.separateWaistband
|
|
||||||
if ('waistband' == options.frontPocketStyle) {
|
|
||||||
separateWaistband = true
|
|
||||||
}
|
|
||||||
|
|
||||||
paths.seam = new Path()
|
const separateWaistband = options.separateWaistband || 'waistband' == options.frontPocketStyle
|
||||||
.move(points.mWaist1)
|
|
||||||
.line(points.mWaist2)
|
|
||||||
.line(separateWaistband ? points.bWaistSideSeam : points.bWaistSide)
|
|
||||||
.join(paths.backTopCutOut)
|
|
||||||
.join(paths.backBottomCutOut)
|
|
||||||
.join(paths.frontBottomCutOut)
|
|
||||||
.join(paths.frontTopCutOut)
|
|
||||||
.close()
|
|
||||||
.attr('class', 'fabric')
|
|
||||||
|
|
||||||
paths.cutout.hide()
|
paths.seam = new Path()
|
||||||
|
.move(points.mWaist1)
|
||||||
|
.line(points.mWaist2)
|
||||||
|
.line(separateWaistband ? points.bWaistSideSeam : points.bWaistSide)
|
||||||
|
.join(paths.backTopCutOut)
|
||||||
|
.join(paths.backBottomCutOut)
|
||||||
|
.join(paths.frontBottomCutOut)
|
||||||
|
.join(paths.frontTopCutOut)
|
||||||
|
.close()
|
||||||
|
.attr('class', 'fabric')
|
||||||
|
|
||||||
// Complete?
|
|
||||||
if (complete) {
|
|
||||||
points.title = points.mWaist.shift(270, 75)
|
points.title = points.mWaist.shift(270, 75)
|
||||||
macro('title', {
|
macro('title', {
|
||||||
nr: 2,
|
nr: 2,
|
||||||
|
@ -54,10 +42,7 @@ function waraleeCutout({
|
||||||
|
|
||||||
paths.sa = paths.seamAlternate.offset(sa).attr('class', 'fabric sa')
|
paths.sa = paths.seamAlternate.offset(sa).attr('class', 'fabric sa')
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Paperless?
|
|
||||||
if (paperless) {
|
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
id: 1,
|
id: 1,
|
||||||
from: points.fWaistSide,
|
from: points.fWaistSide,
|
||||||
|
@ -82,13 +67,7 @@ function waraleeCutout({
|
||||||
to: points.mWaist1,
|
to: points.mWaist1,
|
||||||
x: points.mWaist.x + 15,
|
x: points.mWaist.x + 15,
|
||||||
})
|
})
|
||||||
}
|
|
||||||
|
|
||||||
return part.setHidden(!options.showMini)
|
return part
|
||||||
}
|
},
|
||||||
|
|
||||||
export const cutout = {
|
|
||||||
name: 'waralee.cutout',
|
|
||||||
from: pantsProto,
|
|
||||||
draft: waraleeCutout,
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,128 +1,112 @@
|
||||||
import { pantsProto } from './pantsproto.mjs'
|
import { pantsProto } from './pantsproto.mjs'
|
||||||
|
|
||||||
function waraleeFacings({
|
function waraleeFacing(
|
||||||
options,
|
type,
|
||||||
measurements,
|
{
|
||||||
Point,
|
options,
|
||||||
Path,
|
measurements,
|
||||||
points,
|
Point,
|
||||||
paths,
|
Path,
|
||||||
Snippet,
|
points,
|
||||||
snippets,
|
paths,
|
||||||
complete,
|
Snippet,
|
||||||
paperless,
|
snippets,
|
||||||
macro,
|
macro,
|
||||||
sa,
|
sa,
|
||||||
part,
|
store,
|
||||||
}) {
|
expand,
|
||||||
let frontPocketSize =
|
units,
|
||||||
options.frontPocketSize * measurements.crotchDepth /*- measurements.waistToHips*/
|
part,
|
||||||
let backPocketSize =
|
}
|
||||||
options.backPocketSize * measurements.crotchDepth /*- measurements.waistToHips*/
|
) {
|
||||||
|
const frontPocketSize = options.frontPocketSize * measurements.crotchDepth
|
||||||
|
const backPocketSize = options.backPocketSize * measurements.crotchDepth
|
||||||
|
|
||||||
points.frontTL = new Point(0, 0)
|
if (type == 'front') {
|
||||||
points.frontTR = points.frontTL.shift(0, frontPocketSize + sa + sa)
|
if (!options.frontPocket || 'welt' != options.frontPocketStyle) {
|
||||||
points.frontBL = points.frontTL.shift(270, frontPocketSize / 2)
|
return part.hide()
|
||||||
points.frontBR = points.frontTR.shift(270, frontPocketSize / 2)
|
|
||||||
|
|
||||||
points.backTL = points.frontBL.shift(270, 50)
|
|
||||||
points.backTR = points.backTL.shift(0, backPocketSize + sa + sa)
|
|
||||||
points.backBL = points.backTL.shift(270, backPocketSize / 2)
|
|
||||||
points.backBR = points.backTR.shift(270, backPocketSize / 2)
|
|
||||||
|
|
||||||
paths.frontSeam = new Path()
|
|
||||||
.move(points.frontTL)
|
|
||||||
.line(points.frontBL)
|
|
||||||
.line(points.frontBR)
|
|
||||||
.line(points.frontTR)
|
|
||||||
.line(points.frontTL)
|
|
||||||
.close()
|
|
||||||
.attr('class', 'fabric')
|
|
||||||
.setHidden(!(options.frontPocket && 'welt' == options.frontPocketStyle))
|
|
||||||
|
|
||||||
paths.backSeam = new Path()
|
|
||||||
.move(points.backTL)
|
|
||||||
.line(points.backBL)
|
|
||||||
.line(points.backBR)
|
|
||||||
.line(points.backTR)
|
|
||||||
.line(points.backTL)
|
|
||||||
.close()
|
|
||||||
.attr('class', 'fabric')
|
|
||||||
.setHidden(!options.backPocket)
|
|
||||||
|
|
||||||
// Complete?
|
|
||||||
if (complete) {
|
|
||||||
if (options.frontPocket && 'welt' == options.frontPocketStyle) {
|
|
||||||
points.frontTitle = points.frontTL.shift(270, 30).shift(0, 40)
|
|
||||||
macro('title', {
|
|
||||||
nr: 5,
|
|
||||||
at: points.frontTitle.shift(0, 30),
|
|
||||||
title: 'frontFacing',
|
|
||||||
prefix: 'front',
|
|
||||||
scale: 0.6,
|
|
||||||
})
|
|
||||||
|
|
||||||
points.frontLogo = points.frontTitle.shift(270, 0)
|
|
||||||
snippets.frontLogo = new Snippet('logo', points.frontLogo).attr('data-scale', 0.3)
|
|
||||||
points.frontText = points.frontLogo
|
|
||||||
.shift(-90, 15)
|
|
||||||
.attr('data-text', 'Waralee')
|
|
||||||
.attr('data-text-class', 'center')
|
|
||||||
}
|
}
|
||||||
if (options.backPocket) {
|
} else {
|
||||||
points.backTitle = points.backTL.shift(270, 30).shift(0, 40)
|
if (!options.backPocket) {
|
||||||
macro('title', {
|
return part.hide()
|
||||||
nr: 6,
|
|
||||||
at: points.backTitle.shift(0, 30),
|
|
||||||
title: 'backFacing',
|
|
||||||
prefix: 'back',
|
|
||||||
scale: 0.6,
|
|
||||||
})
|
|
||||||
points.backLogo = points.backTitle.shift(270, 0)
|
|
||||||
snippets.backLogo = new Snippet('logo', points.backLogo).attr('data-scale', 0.3)
|
|
||||||
points.backText = points.backLogo
|
|
||||||
.shift(-90, 15)
|
|
||||||
.attr('data-text', 'Waralee')
|
|
||||||
.attr('data-text-class', 'center')
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Paperless?
|
|
||||||
if (paperless) {
|
const width = (type == 'front' ? frontPocketSize : backPocketSize) + sa + sa
|
||||||
if (options.frontPocket && 'welt' == options.frontPocketStyle) {
|
const height = (type == 'front' ? frontPocketSize : backPocketSize) / 2
|
||||||
macro('hd', {
|
|
||||||
id: 1,
|
if (!expand) {
|
||||||
from: points.frontTL,
|
// Expand is off, do not draw the part but flag this to the user
|
||||||
to: points.frontTR,
|
store.flag.note({
|
||||||
y: points.frontTL.y + 15,
|
msg: `waralee:cutFacing` + type,
|
||||||
})
|
replace: {
|
||||||
macro('vd', {
|
width: units(width),
|
||||||
id: 2,
|
length: units(height),
|
||||||
from: points.frontTL,
|
},
|
||||||
to: points.frontBL,
|
suggest: {
|
||||||
x: points.frontTL.x + 15,
|
text: 'flag:show',
|
||||||
})
|
icon: 'expand',
|
||||||
}
|
update: {
|
||||||
if (options.backPocket) {
|
settings: ['expand', 1],
|
||||||
macro('hd', {
|
},
|
||||||
id: 3,
|
},
|
||||||
from: points.backTL,
|
})
|
||||||
to: points.backTR,
|
// Also hint about expand
|
||||||
y: points.backTL.y + 15,
|
store.flag.preset('expand')
|
||||||
})
|
|
||||||
macro('vd', {
|
return part.hide()
|
||||||
id: 4,
|
|
||||||
from: points.backTL,
|
|
||||||
to: points.backBL,
|
|
||||||
x: points.backTL.x + 15,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
points.tl = new Point(0, 0)
|
||||||
|
points.tr = points.tl.shift(0, width)
|
||||||
|
points.bl = points.tl.shift(270, height)
|
||||||
|
points.br = points.tr.shift(270, height)
|
||||||
|
|
||||||
|
paths.seamSeam = new Path()
|
||||||
|
.move(points.tl)
|
||||||
|
.line(points.bl)
|
||||||
|
.line(points.br)
|
||||||
|
.line(points.tr)
|
||||||
|
.line(points.tl)
|
||||||
|
.close()
|
||||||
|
.addClass('fabric')
|
||||||
|
|
||||||
|
store.cutlist.addCut({ cut: type == 'front' ? 4 : 2, from: 'fabric' })
|
||||||
|
|
||||||
|
points.title = points.tl.shift(270, 30).shift(0, 40)
|
||||||
|
macro('title', {
|
||||||
|
nr: type == 'front' ? 5 : 6,
|
||||||
|
at: points.title.shift(0, 30),
|
||||||
|
title: type + 'Facing',
|
||||||
|
scale: 0.6,
|
||||||
|
})
|
||||||
|
|
||||||
|
points.logo = points.title.shift(270, 0)
|
||||||
|
snippets.logo = new Snippet('logo', points.logo).attr('data-scale', 0.3)
|
||||||
|
|
||||||
|
macro('hd', {
|
||||||
|
id: 1,
|
||||||
|
from: points.tl,
|
||||||
|
to: points.tr,
|
||||||
|
y: points.tl.y + 15,
|
||||||
|
})
|
||||||
|
macro('vd', {
|
||||||
|
id: 2,
|
||||||
|
from: points.tl,
|
||||||
|
to: points.bl,
|
||||||
|
x: points.tl.x + 15,
|
||||||
|
})
|
||||||
|
|
||||||
return part
|
return part
|
||||||
}
|
}
|
||||||
|
|
||||||
export const facings = {
|
export const facingFront = {
|
||||||
name: 'waralee.facings',
|
name: 'waralee.facingFront',
|
||||||
after: pantsProto,
|
after: pantsProto,
|
||||||
draft: waraleeFacings,
|
draft: (part) => waraleeFacing('front', part),
|
||||||
|
}
|
||||||
|
export const facingBack = {
|
||||||
|
name: 'waralee.facingBack',
|
||||||
|
after: pantsProto,
|
||||||
|
draft: (part) => waraleeFacing('back', part),
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@ import { pants } from './pants.mjs'
|
||||||
import { cutout } from './cutout.mjs'
|
import { cutout } from './cutout.mjs'
|
||||||
import { pocket } from './pocket.mjs'
|
import { pocket } from './pocket.mjs'
|
||||||
import { backPocket } from './backpocket.mjs'
|
import { backPocket } from './backpocket.mjs'
|
||||||
import { facings } from './facings.mjs'
|
import { facingFront, facingBack } from './facings.mjs'
|
||||||
import { mini } from './mini.mjs'
|
import { mini } from './mini.mjs'
|
||||||
import { waistbandFront, waistbandBack, strapFront, strapBack } from './waistband.mjs'
|
import { waistbandFront, waistbandBack, strapFront, strapBack } from './waistband.mjs'
|
||||||
// Re-export skeleton parts so peope can re-use them
|
// Re-export skeleton parts so peope can re-use them
|
||||||
|
@ -19,7 +19,8 @@ const Waralee = new Design({
|
||||||
cutout,
|
cutout,
|
||||||
pocket,
|
pocket,
|
||||||
backPocket,
|
backPocket,
|
||||||
facings,
|
facingFront,
|
||||||
|
facingBack,
|
||||||
mini,
|
mini,
|
||||||
waistbandFront,
|
waistbandFront,
|
||||||
waistbandBack,
|
waistbandBack,
|
||||||
|
@ -34,7 +35,8 @@ export {
|
||||||
cutout,
|
cutout,
|
||||||
pocket,
|
pocket,
|
||||||
backPocket,
|
backPocket,
|
||||||
facings,
|
facingFront,
|
||||||
|
facingBack,
|
||||||
mini,
|
mini,
|
||||||
waistbandFront,
|
waistbandFront,
|
||||||
waistbandBack,
|
waistbandBack,
|
||||||
|
|
|
@ -4,44 +4,44 @@ import { pantsProto } from './pantsproto.mjs'
|
||||||
// To keep you from printing it completely, you could print this part in paperless mode
|
// To keep you from printing it completely, you could print this part in paperless mode
|
||||||
// and only have a single sheet with all the dimensions on it.
|
// and only have a single sheet with all the dimensions on it.
|
||||||
|
|
||||||
function waraleeMini({ options, Path, points, paths, complete, sa, macro, store, part }) {
|
export const mini = {
|
||||||
let mini = options.minimizer
|
name: 'waralee.mini',
|
||||||
let separateWaistband = options.separateWaistband
|
from: pantsProto,
|
||||||
if ('waistband' == options.frontPocketStyle) {
|
draft: ({ options, Path, points, paths, sa, macro, store, expand, part }) => {
|
||||||
separateWaistband = true
|
if (expand) {
|
||||||
}
|
return part.hide()
|
||||||
|
}
|
||||||
|
|
||||||
for (var p in points) {
|
const mini = points.bWaistBackOverlapSeam.dist(points.fWaistFrontOverlapSeam) / 150
|
||||||
points[p].x = points[p].x / mini
|
const separateWaistband = options.separateWaistband || 'waistband' == options.frontPocketStyle
|
||||||
points[p].y = points[p].y / mini
|
|
||||||
}
|
|
||||||
|
|
||||||
paths.waistFoldBack = paths.waistBack
|
for (const p in points) {
|
||||||
.offset((-1 * store.get('waistBand')) / mini)
|
points[p].x = points[p].x / mini
|
||||||
.attr('class', 'fabric stroke-sm')
|
points[p].y = points[p].y / mini
|
||||||
paths.waistFoldFront = paths.waistFront
|
}
|
||||||
.offset((-1 * store.get('waistBand')) / mini)
|
|
||||||
.attr('class', 'fabric stroke-sm')
|
|
||||||
|
|
||||||
paths.frontFold = paths.front
|
paths.waistFoldBack = paths.waistBack
|
||||||
.offset((-1 * store.get('hem')) / mini)
|
.offset((-1 * store.get('waistBand')) / mini)
|
||||||
.attr('class', 'fabric stroke-sm')
|
.addClass('fabric stroke-sm')
|
||||||
paths.legFold = paths.leg.offset((-1 * store.get('hem')) / mini).attr('class', 'fabric stroke-sm')
|
paths.waistFoldFront = paths.waistFront
|
||||||
paths.backFold = paths.back
|
.offset((-1 * store.get('waistBand')) / mini)
|
||||||
.offset((-1 * store.get('hem')) / mini)
|
.addClass('fabric stroke-sm')
|
||||||
.attr('class', 'fabric stroke-sm')
|
|
||||||
|
|
||||||
paths.cutOut = new Path()
|
paths.frontFold = paths.front
|
||||||
.move(separateWaistband ? points.bWaistSideSeam : points.bWaistSide)
|
.offset((-1 * store.get('hem')) / mini)
|
||||||
.line(points.mWaist2)
|
.addClass('fabric stroke-sm')
|
||||||
.line(points.mWaist1)
|
paths.legFold = paths.leg.offset((-1 * store.get('hem')) / mini).addClass('fabric stroke-sm')
|
||||||
.line(separateWaistband ? points.fWaistSideSeam : points.fWaistSide)
|
paths.backFold = paths.back.offset((-1 * store.get('hem')) / mini).addClass('fabric stroke-sm')
|
||||||
.attr('class', 'help')
|
|
||||||
|
|
||||||
paths.seam.unhide()
|
paths.cutOut = new Path()
|
||||||
|
.move(separateWaistband ? points.bWaistSideSeam : points.bWaistSide)
|
||||||
|
.line(points.mWaist2)
|
||||||
|
.line(points.mWaist1)
|
||||||
|
.line(separateWaistband ? points.fWaistSideSeam : points.fWaistSide)
|
||||||
|
.addClass('help')
|
||||||
|
|
||||||
|
paths.seam.unhide()
|
||||||
|
|
||||||
// Complete?
|
|
||||||
if (complete) {
|
|
||||||
macro('scalebox', { at: points.mLeg.shift(-90, 35) })
|
macro('scalebox', { at: points.mLeg.shift(-90, 35) })
|
||||||
|
|
||||||
if (options.frontPocket && 'welt' == options.frontPocketStyle) {
|
if (options.frontPocket && 'welt' == options.frontPocketStyle) {
|
||||||
|
@ -52,28 +52,25 @@ function waraleeMini({ options, Path, points, paths, complete, sa, macro, store,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sa) {
|
if (sa) {
|
||||||
paths.sa = paths.seam.offset(sa / mini).attr('class', 'fabric sa')
|
paths.sa = paths.seam.offset(sa / mini).addClass('fabric sa')
|
||||||
}
|
}
|
||||||
|
|
||||||
points.pText1 = points.mHip
|
points.pText1 = points.mHip
|
||||||
.shiftFractionTowards(points.mLeg, 0.5)
|
.shiftFractionTowards(points.mLeg, 0.5)
|
||||||
.attr('data-text', 'thisIsNotAPart')
|
.addText('waralee:thisIsNotAPart', 'center')
|
||||||
.attr('data-text-class', 'center')
|
|
||||||
points.pText2 = points.mHip
|
points.pText2 = points.mHip
|
||||||
.shiftFractionTowards(points.mLeg, 0.6)
|
.shiftFractionTowards(points.mLeg, 0.6)
|
||||||
.attr('data-text', 'doNotCutFromFabric')
|
.addText('waralee:doNotCutFromFabric', 'center')
|
||||||
.attr('data-text-class', 'center')
|
|
||||||
points.pText3 = points.mHip
|
points.pText3 = points.mHip
|
||||||
.shiftFractionTowards(points.mLeg, 0.7)
|
.shiftFractionTowards(points.mLeg, 0.7)
|
||||||
.attr('data-text', 'useMeasurementsToCutFromFabric')
|
.addText('waralee:useMeasurementsToCutFromFabric', 'center')
|
||||||
.attr('data-text-class', 'center')
|
|
||||||
|
|
||||||
let fWaistSide = separateWaistband ? points.fWaistSideSeam : points.fWaistSide
|
const fWaistSide = separateWaistband ? points.fWaistSideSeam : points.fWaistSide
|
||||||
let fWaistFrontOverlap = separateWaistband
|
const fWaistFrontOverlap = separateWaistband
|
||||||
? points.fWaistFrontOverlapSeam
|
? points.fWaistFrontOverlapSeam
|
||||||
: points.fWaistFrontOverlap
|
: points.fWaistFrontOverlap
|
||||||
let bWaistSide = separateWaistband ? points.bWaistSideSeam : points.bWaistSide
|
const bWaistSide = separateWaistband ? points.bWaistSideSeam : points.bWaistSide
|
||||||
let bWaistBackOverlap = separateWaistband
|
const bWaistBackOverlap = separateWaistband
|
||||||
? points.bWaistBackOverlapSeam
|
? points.bWaistBackOverlapSeam
|
||||||
: points.bWaistBackOverlap
|
: points.bWaistBackOverlap
|
||||||
|
|
||||||
|
@ -83,6 +80,7 @@ function waraleeMini({ options, Path, points, paths, complete, sa, macro, store,
|
||||||
to: fWaistSide,
|
to: fWaistSide,
|
||||||
y: fWaistSide.y + 10,
|
y: fWaistSide.y + 10,
|
||||||
text: part.units(fWaistSide.dist(points.fWaistFrontOverlap) * mini),
|
text: part.units(fWaistSide.dist(points.fWaistFrontOverlap) * mini),
|
||||||
|
force: true,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
id: 2,
|
id: 2,
|
||||||
|
@ -90,6 +88,7 @@ function waraleeMini({ options, Path, points, paths, complete, sa, macro, store,
|
||||||
to: points.bLegBackOverlap,
|
to: points.bLegBackOverlap,
|
||||||
y: points.bLegBackOverlap.y - 10,
|
y: points.bLegBackOverlap.y - 10,
|
||||||
text: part.units(points.fLegFrontOverlap.dist(points.bLegBackOverlap) * mini),
|
text: part.units(points.fLegFrontOverlap.dist(points.bLegBackOverlap) * mini),
|
||||||
|
force: true,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
id: 3,
|
id: 3,
|
||||||
|
@ -97,6 +96,7 @@ function waraleeMini({ options, Path, points, paths, complete, sa, macro, store,
|
||||||
to: points.bWaistBackOverlap,
|
to: points.bWaistBackOverlap,
|
||||||
y: points.bWaistBackOverlap.y + 20,
|
y: points.bWaistBackOverlap.y + 20,
|
||||||
text: part.units(points.bWaistBackOverlap.dist(points.bWaistBack) * mini),
|
text: part.units(points.bWaistBackOverlap.dist(points.bWaistBack) * mini),
|
||||||
|
force: true,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
id: 4,
|
id: 4,
|
||||||
|
@ -104,6 +104,7 @@ function waraleeMini({ options, Path, points, paths, complete, sa, macro, store,
|
||||||
to: points.mHip,
|
to: points.mHip,
|
||||||
y: points.mHip.y + 10,
|
y: points.mHip.y + 10,
|
||||||
text: part.units((points.mHip.x - points.fWaistFrontOverlap.x) * mini),
|
text: part.units((points.mHip.x - points.fWaistFrontOverlap.x) * mini),
|
||||||
|
force: true,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
id: 5,
|
id: 5,
|
||||||
|
@ -111,6 +112,7 @@ function waraleeMini({ options, Path, points, paths, complete, sa, macro, store,
|
||||||
to: points.fLegFrontOverlap,
|
to: points.fLegFrontOverlap,
|
||||||
x: points.fLegFrontOverlap.x + 10,
|
x: points.fLegFrontOverlap.x + 10,
|
||||||
text: part.units(fWaistFrontOverlap.dist(points.fLegFrontOverlap) * mini),
|
text: part.units(fWaistFrontOverlap.dist(points.fLegFrontOverlap) * mini),
|
||||||
|
force: true,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
id: 6,
|
id: 6,
|
||||||
|
@ -118,6 +120,7 @@ function waraleeMini({ options, Path, points, paths, complete, sa, macro, store,
|
||||||
to: bWaistBackOverlap,
|
to: bWaistBackOverlap,
|
||||||
x: points.bLegBackOverlap.x - 10,
|
x: points.bLegBackOverlap.x - 10,
|
||||||
text: part.units(bWaistBackOverlap.dist(points.bLegBackOverlap) * mini),
|
text: part.units(bWaistBackOverlap.dist(points.bLegBackOverlap) * mini),
|
||||||
|
force: true,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
id: 7,
|
id: 7,
|
||||||
|
@ -125,6 +128,7 @@ function waraleeMini({ options, Path, points, paths, complete, sa, macro, store,
|
||||||
to: bWaistSide,
|
to: bWaistSide,
|
||||||
x: bWaistSide.x + 10,
|
x: bWaistSide.x + 10,
|
||||||
text: part.units((points.bLegBackOverlap.y - bWaistSide.y) * mini),
|
text: part.units((points.bLegBackOverlap.y - bWaistSide.y) * mini),
|
||||||
|
force: true,
|
||||||
})
|
})
|
||||||
|
|
||||||
if (options.frontPocket && 'welt' == options.frontPocketStyle) {
|
if (options.frontPocket && 'welt' == options.frontPocketStyle) {
|
||||||
|
@ -134,6 +138,7 @@ function waraleeMini({ options, Path, points, paths, complete, sa, macro, store,
|
||||||
to: points.frontPocketBottom2,
|
to: points.frontPocketBottom2,
|
||||||
y: points.frontPocketBottom2.y + 20,
|
y: points.frontPocketBottom2.y + 20,
|
||||||
text: part.units((points.frontPocketBottom2.x - fWaistFrontOverlap.x) * mini),
|
text: part.units((points.frontPocketBottom2.x - fWaistFrontOverlap.x) * mini),
|
||||||
|
force: true,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
id: 9,
|
id: 9,
|
||||||
|
@ -141,6 +146,7 @@ function waraleeMini({ options, Path, points, paths, complete, sa, macro, store,
|
||||||
to: points.frontPocketBottom2,
|
to: points.frontPocketBottom2,
|
||||||
x: points.frontPocketBottom2.x + 20,
|
x: points.frontPocketBottom2.x + 20,
|
||||||
text: part.units((points.frontPocketBottom2.y - fWaistFrontOverlap.y) * mini),
|
text: part.units((points.frontPocketBottom2.y - fWaistFrontOverlap.y) * mini),
|
||||||
|
force: true,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -151,6 +157,7 @@ function waraleeMini({ options, Path, points, paths, complete, sa, macro, store,
|
||||||
to: bWaistBackOverlap,
|
to: bWaistBackOverlap,
|
||||||
y: bWaistBackOverlap.y + 40,
|
y: bWaistBackOverlap.y + 40,
|
||||||
text: part.units((bWaistBackOverlap.x - points.backPocketRight.x) * mini),
|
text: part.units((bWaistBackOverlap.x - points.backPocketRight.x) * mini),
|
||||||
|
force: true,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
id: 11,
|
id: 11,
|
||||||
|
@ -158,15 +165,9 @@ function waraleeMini({ options, Path, points, paths, complete, sa, macro, store,
|
||||||
to: points.backPocketRight,
|
to: points.backPocketRight,
|
||||||
x: points.backPocketRight.x,
|
x: points.backPocketRight.x,
|
||||||
text: part.units((points.backPocketRight.y - bWaistBackOverlap.y) * mini),
|
text: part.units((points.backPocketRight.y - bWaistBackOverlap.y) * mini),
|
||||||
|
force: true,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
return part
|
||||||
|
},
|
||||||
return part.setHidden(!options.showMini)
|
|
||||||
}
|
|
||||||
|
|
||||||
export const mini = {
|
|
||||||
name: 'waralee.mini',
|
|
||||||
from: pantsProto,
|
|
||||||
draft: waraleeMini,
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
// Fit
|
|
||||||
export const backRaise = { pct: 10, min: 0, max: 25, menu: 'fit' }
|
|
||||||
export const waistRaise = { pct: 0, min: -20, max: 40, menu: 'fit' }
|
|
||||||
// Style
|
|
||||||
export const hemWidth = { pct: 1.75, min: 1, max: 2.5, menu: 'style' }
|
|
||||||
export const legShortening = { pct: 25, min: -10, max: 50, menu: 'style' }
|
|
||||||
export const waistOverlap = { pct: 50, min: 10, max: 100, menu: 'style' }
|
|
||||||
export const frontPocket = { bool: true, menu: 'style' }
|
|
||||||
export const backPocket = { bool: true, menu: 'style' }
|
|
||||||
export const waistbandWidth = { pct: 3.5, min: 2, max: 5, menu: 'style' }
|
|
||||||
// Advanced
|
|
||||||
export const crotchFront = { pct: 30, min: 10, max: 70, menu: 'advanced' }
|
|
||||||
export const crotchBack = { pct: 45, min: 10, max: 70, menu: 'advanced' }
|
|
||||||
export const crotchFactorFrontHor = { pct: 90, min: 10, max: 100, menu: 'advanced' }
|
|
||||||
export const crotchFactorFrontVer = { pct: 30, min: 10, max: 70, menu: 'advanced' }
|
|
||||||
export const crotchFactorBackHor = { pct: 90, min: 10, max: 100, menu: 'advanced' }
|
|
||||||
export const crotchFactorBackVer = { pct: 60, min: 20, max: 90, menu: 'advanced' }
|
|
||||||
// Static values
|
|
||||||
export const minimizer = 4
|
|
||||||
export const frontPocketVerticalOffset = 0.07
|
|
||||||
export const frontPocketHorizontalOffset = 0.18
|
|
||||||
export const frontPocketSize = 0.45
|
|
||||||
export const frontPocketDepthFactor = 1.6
|
|
||||||
export const backPocketDepth = 140
|
|
||||||
export const backPocketVerticalOffset = 0.2
|
|
||||||
export const backPocketHorizontalOffset = 0.045
|
|
||||||
export const backPocketSize = 0.45
|
|
||||||
// Added later
|
|
||||||
export const frontWaistAdjustment = 0.163
|
|
||||||
export const backWaistAdjustment = 0.3
|
|
||||||
export const crotchEase = 1.08
|
|
||||||
export const frontPocketStyle = { dflt: 'welt', list: ['welt', 'waistband'], menu: 'style' }
|
|
||||||
export const showMini = { bool: true, menu: 'options' }
|
|
||||||
export const fitWaist = { bool: true, menu: 'fit' }
|
|
||||||
export const separateWaistband = { bool: false, menu: 'style' }
|
|
||||||
export const knotInFront = { bool: true, menu: 'style' }
|
|
|
@ -1,44 +1,54 @@
|
||||||
import { pantsProto } from './pantsproto.mjs'
|
import { pantsProto } from './pantsproto.mjs'
|
||||||
|
|
||||||
function waraleePants({
|
export const pants = {
|
||||||
options,
|
name: 'waralee.pants',
|
||||||
points,
|
from: pantsProto,
|
||||||
Path,
|
draft: ({ options, points, Path, paths, Snippet, snippets, sa, macro, store, expand, part }) => {
|
||||||
paths,
|
const separateWaistband = options.separateWaistband || 'waistband' == options.frontPocketStyle
|
||||||
Snippet,
|
|
||||||
snippets,
|
|
||||||
complete,
|
|
||||||
sa,
|
|
||||||
paperless,
|
|
||||||
macro,
|
|
||||||
store,
|
|
||||||
part,
|
|
||||||
}) {
|
|
||||||
let separateWaistband = options.separateWaistband
|
|
||||||
if ('waistband' == options.frontPocketStyle) {
|
|
||||||
separateWaistband = true
|
|
||||||
}
|
|
||||||
|
|
||||||
if (false == separateWaistband) {
|
if (expand) {
|
||||||
paths.waistFoldBack = new Path()
|
// Expand is on, do not draw the part but flag this to the user
|
||||||
.move(points.bWaistSideHem)
|
store.flag.note({
|
||||||
.line(separateWaistband ? points.bWaistBackSeam : points.bWaistBackHem)
|
msg: `waralee:showPants`,
|
||||||
.line(separateWaistband ? points.bWaistBackSeam : points.bWaistBackOverlapHem)
|
suggest: {
|
||||||
.attr('class', 'fabric stroke-sm')
|
text: 'flag:hide',
|
||||||
paths.waistFoldFront = new Path()
|
icon: 'expand',
|
||||||
.move(points.fWaistSideHem)
|
update: {
|
||||||
.line(points.fWaistFrontOverlapHem)
|
settings: ['expand', 0],
|
||||||
.attr('class', 'fabric stroke-sm')
|
},
|
||||||
}
|
},
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
// Expand is off, do not draw the part but flag this to the user
|
||||||
|
store.flag.note({
|
||||||
|
msg: `waralee:hidePants`,
|
||||||
|
})
|
||||||
|
// Also hint about expand
|
||||||
|
store.flag.preset('expand')
|
||||||
|
|
||||||
paths.frontFold = paths.front.offset(-1 * store.get('hem')).attr('class', 'fabric stroke-sm')
|
return part.hide()
|
||||||
paths.legFold = paths.leg.offset(-1 * store.get('hem')).attr('class', 'fabric stroke-sm')
|
}
|
||||||
paths.backFold = paths.back.offset(-1 * store.get('hem')).attr('class', 'fabric stroke-sm')
|
|
||||||
|
|
||||||
paths.seam.unhide()
|
if (false == separateWaistband) {
|
||||||
|
paths.waistFoldBack = new Path()
|
||||||
|
.move(points.bWaistSideHem)
|
||||||
|
.line(separateWaistband ? points.bWaistBackSeam : points.bWaistBackHem)
|
||||||
|
.line(separateWaistband ? points.bWaistBackSeam : points.bWaistBackOverlapHem)
|
||||||
|
.addClass('fabric stroke-sm')
|
||||||
|
paths.waistFoldFront = new Path()
|
||||||
|
.move(points.fWaistSideHem)
|
||||||
|
.line(points.fWaistFrontOverlapHem)
|
||||||
|
.addClass('fabric stroke-sm')
|
||||||
|
}
|
||||||
|
|
||||||
|
paths.frontFold = paths.front.offset(-1 * store.get('hem')).addClass('fabric stroke-sm')
|
||||||
|
paths.legFold = paths.leg.offset(-1 * store.get('hem')).addClass('fabric stroke-sm')
|
||||||
|
paths.backFold = paths.back.offset(-1 * store.get('hem')).addClass('fabric stroke-sm')
|
||||||
|
|
||||||
|
paths.seam.unhide()
|
||||||
|
|
||||||
|
store.cutlist.addCut({ cut: 2, from: 'fabric' })
|
||||||
|
|
||||||
// Complete?
|
|
||||||
if (complete) {
|
|
||||||
points.title = points.fWaistFront.shift(270, 400)
|
points.title = points.fWaistFront.shift(270, 400)
|
||||||
macro('title', {
|
macro('title', {
|
||||||
nr: 1,
|
nr: 1,
|
||||||
|
@ -47,23 +57,20 @@ function waraleePants({
|
||||||
})
|
})
|
||||||
|
|
||||||
points.logo = points.title.shift(270, 75)
|
points.logo = points.title.shift(270, 75)
|
||||||
|
|
||||||
snippets.logo = new Snippet('logo', points.logo)
|
snippets.logo = new Snippet('logo', points.logo)
|
||||||
|
|
||||||
macro('scalebox', { at: points.mHip.shift(-90, 70) })
|
macro('scalebox', { at: points.mHip.shift(-90, 70) })
|
||||||
|
|
||||||
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
|
if (sa) paths.sa = paths.seam.offset(sa).addClass('fabric sa')
|
||||||
}
|
|
||||||
|
|
||||||
if (options.frontPocket && 'welt' == options.frontPocketStyle) {
|
if (options.frontPocket && 'welt' == options.frontPocketStyle) {
|
||||||
paths.frontPocket.unhide()
|
paths.frontPocket.unhide()
|
||||||
}
|
paths.frontPocketSeam.unhide()
|
||||||
if (options.backPocket) {
|
}
|
||||||
paths.backPocket.unhide()
|
if (options.backPocket) {
|
||||||
}
|
paths.backPocket.unhide()
|
||||||
|
}
|
||||||
|
|
||||||
// Paperless?
|
|
||||||
if (paperless) {
|
|
||||||
let fWaistSide = separateWaistband ? points.fWaistSideSeam : points.fWaistSide
|
let fWaistSide = separateWaistband ? points.fWaistSideSeam : points.fWaistSide
|
||||||
let bWaistSide = separateWaistband ? points.bWaistSideSeam : points.bWaistSide
|
let bWaistSide = separateWaistband ? points.bWaistSideSeam : points.bWaistSide
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
|
@ -114,6 +121,7 @@ function waraleePants({
|
||||||
to: points.bLegBackOverlap,
|
to: points.bLegBackOverlap,
|
||||||
x: points.bLegBackOverlap.x - 30,
|
x: points.bLegBackOverlap.x - 30,
|
||||||
})
|
})
|
||||||
|
|
||||||
if (false == separateWaistband) {
|
if (false == separateWaistband) {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
id: 8,
|
id: 8,
|
||||||
|
@ -121,68 +129,62 @@ function waraleePants({
|
||||||
to: points.fWaistSideHem,
|
to: points.fWaistSideHem,
|
||||||
x: points.fWaistSide.x + 10,
|
x: points.fWaistSide.x + 10,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if (options.frontPocket && 'welt' == options.frontPocketStyle) {
|
||||||
|
macro('vd', {
|
||||||
|
id: 9,
|
||||||
|
from: fWaistSide,
|
||||||
|
to: points.frontPocketTop,
|
||||||
|
x: points.frontPocketTop.x,
|
||||||
|
})
|
||||||
|
macro('vd', {
|
||||||
|
id: 10,
|
||||||
|
from: fWaistSide,
|
||||||
|
to: points.frontPocketBottom,
|
||||||
|
x: points.frontPocketBottom.x,
|
||||||
|
})
|
||||||
|
macro('hd', {
|
||||||
|
id: 11,
|
||||||
|
from: points.frontPocketTop,
|
||||||
|
to: fWaistSide,
|
||||||
|
y: points.frontPocketTop.y,
|
||||||
|
})
|
||||||
|
macro('hd', {
|
||||||
|
id: 12,
|
||||||
|
from: points.frontPocketBottom,
|
||||||
|
to: fWaistSide,
|
||||||
|
y: points.frontPocketBottom.y,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
if (options.backPocket) {
|
||||||
|
macro('vd', {
|
||||||
|
id: 13,
|
||||||
|
from: bWaistSide,
|
||||||
|
to: points.backPocketLeft,
|
||||||
|
x: points.backPocketLeft.x,
|
||||||
|
})
|
||||||
|
macro('vd', {
|
||||||
|
id: 14,
|
||||||
|
from: bWaistSide,
|
||||||
|
to: points.backPocketRight,
|
||||||
|
x: points.backPocketRight.x,
|
||||||
|
})
|
||||||
|
macro('hd', {
|
||||||
|
id: 15,
|
||||||
|
from: bWaistSide,
|
||||||
|
to: points.backPocketLeft,
|
||||||
|
y: points.backPocketLeft.y,
|
||||||
|
})
|
||||||
|
macro('hd', {
|
||||||
|
id: 16,
|
||||||
|
from: bWaistSide,
|
||||||
|
to: points.backPocketRight,
|
||||||
|
y: points.backPocketRight.y,
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options.frontPocket && 'welt' == options.frontPocketStyle) {
|
return part
|
||||||
macro('vd', {
|
},
|
||||||
id: 9,
|
|
||||||
from: fWaistSide,
|
|
||||||
to: points.frontPocketTop,
|
|
||||||
x: points.frontPocketTop.x,
|
|
||||||
})
|
|
||||||
macro('vd', {
|
|
||||||
id: 10,
|
|
||||||
from: fWaistSide,
|
|
||||||
to: points.frontPocketBottom,
|
|
||||||
x: points.frontPocketBottom.x,
|
|
||||||
})
|
|
||||||
macro('hd', {
|
|
||||||
id: 11,
|
|
||||||
from: points.frontPocketTop,
|
|
||||||
to: fWaistSide,
|
|
||||||
y: points.frontPocketTop.y,
|
|
||||||
})
|
|
||||||
macro('hd', {
|
|
||||||
id: 12,
|
|
||||||
from: points.frontPocketBottom,
|
|
||||||
to: fWaistSide,
|
|
||||||
y: points.frontPocketBottom.y,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
if (options.backPocket) {
|
|
||||||
macro('vd', {
|
|
||||||
id: 13,
|
|
||||||
from: bWaistSide,
|
|
||||||
to: points.backPocketLeft,
|
|
||||||
x: points.backPocketLeft.x,
|
|
||||||
})
|
|
||||||
macro('vd', {
|
|
||||||
id: 14,
|
|
||||||
from: bWaistSide,
|
|
||||||
to: points.backPocketRight,
|
|
||||||
x: points.backPocketRight.x,
|
|
||||||
})
|
|
||||||
macro('hd', {
|
|
||||||
id: 15,
|
|
||||||
from: bWaistSide,
|
|
||||||
to: points.backPocketLeft,
|
|
||||||
y: points.backPocketLeft.y,
|
|
||||||
})
|
|
||||||
macro('hd', {
|
|
||||||
id: 16,
|
|
||||||
from: bWaistSide,
|
|
||||||
to: points.backPocketRight,
|
|
||||||
y: points.backPocketRight.y,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return part.setHidden(options.showMini != false)
|
|
||||||
}
|
|
||||||
|
|
||||||
export const pants = {
|
|
||||||
name: 'waralee.pants',
|
|
||||||
from: pantsProto,
|
|
||||||
draft: waraleePants,
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,310 +1,70 @@
|
||||||
import * as options from './options.mjs'
|
import { pctBasedOn } from '@freesewing/core'
|
||||||
|
|
||||||
function waraleePantsProto({ options, measurements, Point, Path, points, paths, store, part }) {
|
export const options = {
|
||||||
let seatDepth =
|
// Fit
|
||||||
measurements.crotchDepth /* - measurements.waistToHips */ *
|
backRaise: {
|
||||||
(1 + options.waistRaise) *
|
pct: 10,
|
||||||
options.crotchEase
|
min: 0,
|
||||||
let circumference = measurements.seat
|
max: 25,
|
||||||
let waist =
|
// eslint-disable-next-line no-unused-vars
|
||||||
typeof measurements.waist == 'undefined' || false == options.fitWaist
|
toAbs: (value, { measurements, options }, mergedOptions) =>
|
||||||
? measurements.seat
|
value *
|
||||||
: measurements.waist
|
(measurements.crotchDepth * (1 + mergedOptions.waistRaise) * mergedOptions.crotchEase),
|
||||||
let waistBack =
|
menu: 'fit',
|
||||||
typeof measurements.waistBack == 'undefined' || false == options.fitWaist
|
},
|
||||||
? waist / 2
|
waistRaise: {
|
||||||
: measurements.waistBack
|
pct: 0,
|
||||||
|
min: -20,
|
||||||
let separateWaistband = options.separateWaistband
|
max: 40,
|
||||||
if ('waistband' == options.frontPocketStyle) {
|
// eslint-disable-next-line no-unused-vars
|
||||||
separateWaistband = true
|
toAbs: (value, { measurements, options }, mergedOptions) =>
|
||||||
}
|
measurements.crotchDepth * (1 + value),
|
||||||
|
menu: 'fit',
|
||||||
if (circumference < waist) {
|
},
|
||||||
circumference = waist
|
fitWaist: { bool: true, menu: 'fit' },
|
||||||
}
|
// Style
|
||||||
|
hemWidth: { pct: 1.75, min: 1, max: 2.5, ...pctBasedOn('inseam'), menu: 'style' },
|
||||||
let circumference4 = circumference / 4
|
legSize: { pct: 75, max: 90, min: 50, ...pctBasedOn('inseam'), menu: 'style' },
|
||||||
let hem = measurements.inseam * options.hemWidth
|
waistOverlap: {
|
||||||
let waistBand = measurements.inseam * options.waistbandWidth
|
pct: 50,
|
||||||
store.set('waistBand', waistBand)
|
min: 10,
|
||||||
store.set('hem', hem)
|
max: 100,
|
||||||
|
// eslint-disable-next-line no-unused-vars
|
||||||
points.mWaist = new Point(0, 0)
|
toAbs: (value, { measurements, options }, mergedOptions) => {
|
||||||
|
const waist =
|
||||||
points.mHip = points.mWaist.shift(270, seatDepth)
|
typeof measurements.waist == 'undefined' || false == mergedOptions.fitWaist
|
||||||
|
? measurements.seat
|
||||||
points.fWaistSide = points.mWaist
|
: measurements.waist
|
||||||
.shift(180, options.crotchFront * circumference4)
|
return (measurements.seat > waist ? measurements.seat : waist) * value
|
||||||
.shift(90, waistBand)
|
},
|
||||||
points.fWaistCrotchCP = points.fWaistSide.shift(
|
menu: 'style',
|
||||||
270,
|
},
|
||||||
seatDepth * options.crotchFactorFrontVer + waistBand
|
frontPocket: { bool: true, menu: 'style' },
|
||||||
)
|
backPocket: { bool: true, menu: 'style' },
|
||||||
points.fHipCrotchCP = points.mHip.shift(
|
waistbandWidth: { pct: 3.5, min: 2, max: 5, ...pctBasedOn('inseam'), menu: 'style' },
|
||||||
180,
|
frontPocketStyle: { dflt: 'welt', list: ['welt', 'waistband'], menu: 'style' },
|
||||||
options.crotchFront * circumference4 * options.crotchFactorFrontHor
|
separateWaistband: { bool: false, menu: 'style' },
|
||||||
)
|
knotInFront: { bool: true, menu: 'style' },
|
||||||
|
// Advanced
|
||||||
points.fHipSide = points.mHip.shift(180, options.crotchFront * circumference4)
|
crotchFront: { pct: 30, min: 10, max: 70, menu: 'advanced' },
|
||||||
|
crotchBack: { pct: 45, min: 10, max: 70, menu: 'advanced' },
|
||||||
points.bWaistSide = points.mWaist
|
crotchFactorFrontHor: { pct: 90, min: 10, max: 100, menu: 'advanced' },
|
||||||
.shift(0, options.crotchBack * circumference4)
|
crotchFactorFrontVer: { pct: 30, min: 10, max: 70, menu: 'advanced' },
|
||||||
.shift(90, waistBand)
|
crotchFactorBackHor: { pct: 90, min: 10, max: 100, menu: 'advanced' },
|
||||||
.shift(90, options.backRaise * seatDepth)
|
crotchFactorBackVer: { pct: 60, min: 20, max: 90, menu: 'advanced' },
|
||||||
points.bWaistCrotchCP = points.bWaistSide.shift(270, seatDepth * options.crotchFactorBackVer)
|
// Static values
|
||||||
points.bHipCrotchCP = points.mHip.shift(
|
backWaistAdjustment: 0.3,
|
||||||
0,
|
frontPocketVerticalOffset: 0.07,
|
||||||
options.crotchBack * circumference4 * options.crotchFactorBackHor
|
frontPocketHorizontalOffset: 0.18,
|
||||||
)
|
frontPocketSize: 0.45,
|
||||||
|
frontPocketWidthHeightRatio: 0.076,
|
||||||
points.bHipSide = points.mHip.shift(0, options.crotchBack * circumference4)
|
frontPocketDepthFactor: 1.6,
|
||||||
|
frontWaistAdjustment: 0.163,
|
||||||
points.fCutOutHip = new Path()
|
backPocketDepth: 0.5,
|
||||||
.move(points.fWaistSide)
|
backPocketVerticalOffset: 0.2,
|
||||||
.curve(points.fWaistCrotchCP, points.fHipCrotchCP, points.mHip)
|
backPocketHorizontalOffset: 0.045,
|
||||||
.shiftAlong(measurements.waistToHips + waistBand)
|
backPocketSize: 0.45,
|
||||||
points.bCutOutHip = new Path()
|
crotchEase: 1.08,
|
||||||
.move(points.bWaistSide)
|
|
||||||
.curve(points.bWaistCrotchCP, points.bHipCrotchCP, points.mHip)
|
|
||||||
.shiftAlong(measurements.waistToHips + waistBand + options.backRaise * seatDepth)
|
|
||||||
|
|
||||||
let waistSeatDifferenceBack = measurements.seat / 2 - waistBack
|
|
||||||
let waistSeatDifferenceFront = measurements.seat / 2 - (waist - waistBack)
|
|
||||||
|
|
||||||
points.bWaistAdjusted = points.bWaistSide.shift(
|
|
||||||
0,
|
|
||||||
waistSeatDifferenceBack * options.backWaistAdjustment
|
|
||||||
)
|
|
||||||
points.fWaistAdjusted = points.fWaistSide.shift(
|
|
||||||
180,
|
|
||||||
waistSeatDifferenceFront * options.frontWaistAdjustment
|
|
||||||
)
|
|
||||||
|
|
||||||
points.mLeg = points.mHip.shift(270, measurements.inseam * (1 - options.legShortening))
|
|
||||||
points.fLegSide = points.mLeg.shift(180, options.crotchFront * circumference4)
|
|
||||||
points.bLegSide = points.mLeg.shift(0, options.crotchBack * circumference4)
|
|
||||||
|
|
||||||
points.fWaistFront = points.fWaistSide.shift(180, circumference4)
|
|
||||||
points.fWaistFrontOverlap = points.fWaistFront.shift(180, options.waistOverlap * circumference4)
|
|
||||||
points.fHipFront = points.fHipSide.shift(180, circumference4)
|
|
||||||
points.fHipFrontOverlap = points.fHipFront.shift(180, options.waistOverlap * circumference4)
|
|
||||||
points.fLegFront = points.fLegSide.shift(180, circumference4)
|
|
||||||
points.fLegFrontOverlap = points.fLegFront.shift(180, options.waistOverlap * circumference4)
|
|
||||||
|
|
||||||
// Calculate the distance we need to move horizontally to get to the point that will
|
|
||||||
// diagonally be the distance we're looking for (circumference/4)
|
|
||||||
let bHorDistance = Math.sqrt(
|
|
||||||
circumference4 * circumference4 - options.backRaise * seatDepth * options.backRaise * seatDepth
|
|
||||||
)
|
|
||||||
// Create a point that is this distance from the side.
|
|
||||||
points.bWaistBack = points.mWaist
|
|
||||||
.shift(90, waistBand)
|
|
||||||
.shift(0, options.crotchBack * circumference4 + bHorDistance)
|
|
||||||
|
|
||||||
points.bWaistBackOverlap = points.bWaistBack.shift(0, options.waistOverlap * circumference4)
|
|
||||||
|
|
||||||
points.bHipBack = points.bHipSide.shift(0, circumference4)
|
|
||||||
points.bHipBackOverlap = points.bHipBack.shift(0, options.waistOverlap * circumference4)
|
|
||||||
points.bLegBack = points.bLegSide.shift(0, circumference4)
|
|
||||||
points.bLegBackOverlap = points.bLegBack.shift(0, options.waistOverlap * circumference4)
|
|
||||||
|
|
||||||
points.bWaistSideTemp = points.bWaistSide.shift(0, 2) // This is a trick to make the offset() call work. Without it, the offset is crossing the cutout line.
|
|
||||||
|
|
||||||
let fPaths = new Path()
|
|
||||||
.move(points.fWaistSide)
|
|
||||||
.curve(points.fWaistCrotchCP, points.fHipCrotchCP, points.mHip)
|
|
||||||
.split(points.fCutOutHip)
|
|
||||||
|
|
||||||
let bPaths = new Path()
|
|
||||||
.move(points.bWaistSide)
|
|
||||||
.curve(points.bWaistCrotchCP, points.bHipCrotchCP, points.mHip)
|
|
||||||
.split(points.bCutOutHip)
|
|
||||||
|
|
||||||
fPaths[0].hide()
|
|
||||||
fPaths[1].hide()
|
|
||||||
bPaths[0].hide()
|
|
||||||
bPaths[1].hide()
|
|
||||||
|
|
||||||
points.fCutOutHipCp1 = fPaths[1].ops[1].cp1.shiftFractionTowards(points.fCutOutHip, 1.25)
|
|
||||||
points.fCutOutHipCp2 = fPaths[1].ops[1].cp1.clone()
|
|
||||||
points.mHipCp1 = fPaths[1].ops[1].cp2.clone()
|
|
||||||
points.mHipCp2 = bPaths[1].ops[1].cp2.clone()
|
|
||||||
points.bCutOutHipCp1 = bPaths[1].ops[1].cp1.clone()
|
|
||||||
points.bCutOutHipCp2 = bPaths[1].ops[1].cp1.shiftFractionTowards(points.bCutOutHip, 1.25)
|
|
||||||
|
|
||||||
paths.frontBottomCutOut = new Path()
|
|
||||||
.move(points.mHip)
|
|
||||||
.curve(points.mHipCp1, points.fCutOutHipCp2, points.fCutOutHip)
|
|
||||||
.hide()
|
|
||||||
paths.backBottomCutOut = new Path()
|
|
||||||
.move(points.bCutOutHip)
|
|
||||||
.curve(points.bCutOutHipCp1, points.mHipCp2, points.mHip)
|
|
||||||
.hide()
|
|
||||||
|
|
||||||
paths.frontTopCutOut = new Path()
|
|
||||||
.move(points.fCutOutHip)
|
|
||||||
.curve(points.fCutOutHipCp1, points.fWaistAdjusted, points.fWaistAdjusted)
|
|
||||||
.hide()
|
|
||||||
paths.backTopCutOut = new Path()
|
|
||||||
.move(points.bWaistAdjusted)
|
|
||||||
.curve(points.bWaistAdjusted, points.bCutOutHipCp2, points.bCutOutHip)
|
|
||||||
.hide()
|
|
||||||
|
|
||||||
points.fWaistSideHem = paths.frontTopCutOut.reverse().shiftAlong(waistBand)
|
|
||||||
points.fWaistSideSeam = paths.frontTopCutOut.reverse().shiftAlong(waistBand * 2)
|
|
||||||
points.fWaistSide = points.fWaistSideSeam.flipY(points.fWaistSideHem)
|
|
||||||
points.bWaistSideHem = paths.backTopCutOut.shiftAlong(waistBand)
|
|
||||||
points.bWaistSideSeam = paths.backTopCutOut.shiftAlong(waistBand * 2)
|
|
||||||
points.bWaistSide = points.bWaistSideSeam.flipY(points.bWaistSideHem)
|
|
||||||
|
|
||||||
points.fWaistFrontOverlapHem = points.fWaistFrontOverlap.shift(270, waistBand)
|
|
||||||
points.bWaistBackHem = points.bWaistBack.shift(270, waistBand)
|
|
||||||
points.bWaistBackOverlapHem = points.bWaistBackOverlap.shift(270, waistBand)
|
|
||||||
points.fWaistFrontOverlapSeam = points.fWaistFrontOverlap.shift(270, waistBand * 2)
|
|
||||||
points.bWaistBackSeam = points.bWaistBack.shift(270, waistBand * 2)
|
|
||||||
points.bWaistBackOverlapSeam = points.bWaistBackOverlap.shift(270, waistBand * 2)
|
|
||||||
points.fWaistSideCp2 = paths.frontTopCutOut.split(points.fWaistSideSeam)[0].ops[1].cp2.clone()
|
|
||||||
|
|
||||||
points.fWaistSideCp2 = paths.frontTopCutOut.split(points.fWaistSideSeam)[0].ops[1].cp2.clone()
|
|
||||||
points.fWaistHipCp1 = paths.frontTopCutOut.split(points.fWaistSideSeam)[0].ops[1].cp1.clone()
|
|
||||||
points.bWaistSideCp1 = paths.backTopCutOut.split(points.bWaistSideSeam)[1].ops[1].cp1.clone()
|
|
||||||
points.bWaistHipCp2 = paths.backTopCutOut.split(points.bWaistSideSeam)[1].ops[1].cp2.clone()
|
|
||||||
|
|
||||||
if (separateWaistband) {
|
|
||||||
points.mWaist1 = new Point(points.mWaist.x, points.fWaistSideSeam.y)
|
|
||||||
// points.mWaist = new Point(points.mWaist.x, points.fWaistSideSeam.y)
|
|
||||||
} else {
|
|
||||||
points.mWaist1 = new Point(points.mWaist.x, points.fWaistSide.y)
|
|
||||||
}
|
|
||||||
if (separateWaistband) {
|
|
||||||
points.mWaist2 = new Point(points.mWaist.x, points.bWaistSideSeam.y)
|
|
||||||
} else {
|
|
||||||
points.mWaist2 = new Point(points.mWaist.x, points.bWaistSide.y)
|
|
||||||
}
|
|
||||||
|
|
||||||
paths.frontTopCutOut = new Path()
|
|
||||||
.move(points.fCutOutHip)
|
|
||||||
.curve(points.fCutOutHipCp1, points.fWaistSideCp2, points.fWaistSideSeam)
|
|
||||||
.hide()
|
|
||||||
if (false == separateWaistband) {
|
|
||||||
paths.frontTopCutOut.line(points.fWaistSideHem)
|
|
||||||
paths.frontTopCutOut.line(points.fWaistSide)
|
|
||||||
}
|
|
||||||
if (false == separateWaistband) {
|
|
||||||
paths.backTopCutOut = new Path()
|
|
||||||
.move(points.bWaistSide)
|
|
||||||
.line(points.bWaistSideHem)
|
|
||||||
.line(points.bWaistSideSeam)
|
|
||||||
} else {
|
|
||||||
paths.backTopCutOut = new Path().move(points.bWaistSideSeam)
|
|
||||||
}
|
|
||||||
paths.backTopCutOut.curve(points.bWaistSideCp1, points.bCutOutHipCp2, points.bCutOutHip).hide()
|
|
||||||
|
|
||||||
paths.cutout = paths.backTopCutOut
|
|
||||||
.join(paths.backBottomCutOut)
|
|
||||||
.join(paths.frontBottomCutOut)
|
|
||||||
.join(paths.frontTopCutOut)
|
|
||||||
.hide()
|
|
||||||
|
|
||||||
paths.waistBack = new Path()
|
|
||||||
.move(separateWaistband ? points.bWaistBackOverlapSeam : points.bWaistBackOverlap)
|
|
||||||
.line(separateWaistband ? points.bWaistBackSeam : points.bWaistBack)
|
|
||||||
// .line(points.bWaistSideTemp) // This is a trick to make the offset() call work. Without it, the offset is crossing the cutout line.
|
|
||||||
.line(separateWaistband ? points.bWaistSideSeam : points.bWaistSide)
|
|
||||||
.hide()
|
|
||||||
paths.waistFront = new Path()
|
|
||||||
.move(separateWaistband ? points.fWaistSideSeam : points.fWaistSide)
|
|
||||||
.line(separateWaistband ? points.fWaistFrontOverlapSeam : points.fWaistFrontOverlap)
|
|
||||||
.hide()
|
|
||||||
paths.front = new Path()
|
|
||||||
.move(separateWaistband ? points.fWaistFrontOverlapSeam : points.fWaistFrontOverlap)
|
|
||||||
.line(points.fHipFrontOverlap)
|
|
||||||
.line(points.fLegFrontOverlap)
|
|
||||||
.hide()
|
|
||||||
paths.back = new Path()
|
|
||||||
.move(points.bLegBackOverlap)
|
|
||||||
.line(points.bHipBackOverlap)
|
|
||||||
.line(separateWaistband ? points.bWaistBackOverlapSeam : points.bWaistBackOverlap)
|
|
||||||
.hide()
|
|
||||||
paths.leg = new Path().move(points.fLegFrontOverlap).line(points.bLegBackOverlap).hide()
|
|
||||||
|
|
||||||
paths.seam = paths.waistFront
|
|
||||||
.join(paths.front)
|
|
||||||
.join(paths.leg)
|
|
||||||
.join(paths.back)
|
|
||||||
.join(paths.waistBack)
|
|
||||||
.join(paths.cutout)
|
|
||||||
.close()
|
|
||||||
.attr('class', 'fabric')
|
|
||||||
.hide()
|
|
||||||
|
|
||||||
if (options.frontPocket) {
|
|
||||||
points.frontPocketTop = points.fWaistSideSeam
|
|
||||||
.shift(
|
|
||||||
270,
|
|
||||||
options.frontPocketVerticalOffset *
|
|
||||||
measurements.crotchDepth /*- measurements.waistToHips*/ +
|
|
||||||
waistBand * (separateWaistband ? 1 : 2)
|
|
||||||
)
|
|
||||||
.shift(180, options.frontPocketHorizontalOffset * measurements.seat)
|
|
||||||
|
|
||||||
points.frontPocketTop2 = points.frontPocketTop.shift(340, 12)
|
|
||||||
points.frontPocketBottom = points.frontPocketTop.shift(
|
|
||||||
250,
|
|
||||||
options.frontPocketSize * measurements.crotchDepth /*- measurements.waistToHips*/
|
|
||||||
)
|
|
||||||
points.frontPocketBottom2 = points.frontPocketBottom.shift(340, 12)
|
|
||||||
|
|
||||||
paths.frontPocket = new Path()
|
|
||||||
.move(points.frontPocketTop)
|
|
||||||
.line(points.frontPocketBottom)
|
|
||||||
.line(points.frontPocketBottom2)
|
|
||||||
.line(points.frontPocketTop2)
|
|
||||||
.close()
|
|
||||||
.attr('class', 'fabric')
|
|
||||||
.hide()
|
|
||||||
}
|
|
||||||
|
|
||||||
if (options.backPocket) {
|
|
||||||
points.backPocketRight = points.bWaistBack
|
|
||||||
.shiftTowards(points.bWaistSide, options.backPocketHorizontalOffset * measurements.seat)
|
|
||||||
.shift(
|
|
||||||
270,
|
|
||||||
options.backPocketVerticalOffset * measurements.crotchDepth /*- measurements.waistToHips*/ +
|
|
||||||
waistBand * (separateWaistband ? 1 : 2)
|
|
||||||
)
|
|
||||||
points.backPocketLeft = points.bWaistBack
|
|
||||||
.shiftTowards(
|
|
||||||
points.bWaistSide,
|
|
||||||
options.backPocketHorizontalOffset * measurements.seat +
|
|
||||||
options.backPocketSize * measurements.crotchDepth /*- measurements.waistToHips*/
|
|
||||||
)
|
|
||||||
.shift(
|
|
||||||
270,
|
|
||||||
options.backPocketVerticalOffset * measurements.crotchDepth /*- measurements.waistToHips*/ +
|
|
||||||
waistBand * (separateWaistband ? 1 : 2)
|
|
||||||
)
|
|
||||||
points.backPocketRight2 = points.backPocketRight.shift(
|
|
||||||
points.backPocketRight.angle(points.backPocketLeft) + 90,
|
|
||||||
12
|
|
||||||
)
|
|
||||||
points.backPocketLeft2 = points.backPocketLeft.shift(
|
|
||||||
points.backPocketLeft.angle(points.backPocketRight) - 90,
|
|
||||||
12
|
|
||||||
)
|
|
||||||
|
|
||||||
paths.backPocket = new Path()
|
|
||||||
.move(points.backPocketLeft)
|
|
||||||
.line(points.backPocketLeft2)
|
|
||||||
.line(points.backPocketRight2)
|
|
||||||
.line(points.backPocketRight)
|
|
||||||
.close()
|
|
||||||
.attr('class', 'fabric')
|
|
||||||
.hide()
|
|
||||||
}
|
|
||||||
|
|
||||||
return part.hide()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export const pantsProto = {
|
export const pantsProto = {
|
||||||
|
@ -313,5 +73,362 @@ export const pantsProto = {
|
||||||
measurements: ['seat', 'inseam', 'crotchDepth', 'waistToHips'],
|
measurements: ['seat', 'inseam', 'crotchDepth', 'waistToHips'],
|
||||||
optionalMeasurements: ['waist', 'waistBack'],
|
optionalMeasurements: ['waist', 'waistBack'],
|
||||||
options,
|
options,
|
||||||
draft: waraleePantsProto,
|
draft: ({ options, measurements, Point, Path, points, paths, store, part, utils }) => {
|
||||||
|
const seatDepth = measurements.crotchDepth * (1 + options.waistRaise) * options.crotchEase
|
||||||
|
const waist =
|
||||||
|
typeof measurements.waist == 'undefined' || false == options.fitWaist
|
||||||
|
? measurements.seat
|
||||||
|
: measurements.waist
|
||||||
|
const circumference = measurements.seat > waist ? measurements.seat : waist
|
||||||
|
const waistBack =
|
||||||
|
typeof measurements.waistBack == 'undefined' || false == options.fitWaist
|
||||||
|
? waist / 2
|
||||||
|
: measurements.waistBack
|
||||||
|
|
||||||
|
const separateWaistband = options.separateWaistband || 'waistband' == options.frontPocketStyle
|
||||||
|
|
||||||
|
const circumference4 = circumference / 4
|
||||||
|
const hem = measurements.inseam * options.hemWidth
|
||||||
|
const waistBand = measurements.inseam * options.waistbandWidth
|
||||||
|
|
||||||
|
const frontPocketSize = options.frontPocketSize * measurements.crotchDepth
|
||||||
|
const pocketDepth =
|
||||||
|
(measurements.crotchDepth - measurements.waistToHips) * options.frontPocketDepthFactor >
|
||||||
|
frontPocketSize * 1.75
|
||||||
|
? (measurements.crotchDepth - measurements.waistToHips) * options.frontPocketDepthFactor
|
||||||
|
: frontPocketSize * 1.75
|
||||||
|
const frontPocketHeight = frontPocketSize * options.frontPocketWidthHeightRatio
|
||||||
|
|
||||||
|
store.set('waistBand', waistBand)
|
||||||
|
store.set('hem', hem)
|
||||||
|
store.set('pocketDepth', pocketDepth)
|
||||||
|
store.set('frontPocketSize', frontPocketSize)
|
||||||
|
|
||||||
|
points.mWaist = new Point(0, 0)
|
||||||
|
|
||||||
|
points.mHip = points.mWaist.shift(270, seatDepth)
|
||||||
|
|
||||||
|
points.fWaistSide = points.mWaist
|
||||||
|
.shift(180, options.crotchFront * circumference4)
|
||||||
|
.shift(90, waistBand)
|
||||||
|
points.fWaistCrotchCP = points.fWaistSide.shift(
|
||||||
|
270,
|
||||||
|
seatDepth * options.crotchFactorFrontVer + waistBand
|
||||||
|
)
|
||||||
|
points.fHipCrotchCP = points.mHip.shift(
|
||||||
|
180,
|
||||||
|
options.crotchFront * circumference4 * options.crotchFactorFrontHor
|
||||||
|
)
|
||||||
|
|
||||||
|
points.fHipSide = points.mHip.shift(180, options.crotchFront * circumference4)
|
||||||
|
|
||||||
|
points.bWaistSide = points.mWaist
|
||||||
|
.shift(0, options.crotchBack * circumference4)
|
||||||
|
.shift(90, waistBand)
|
||||||
|
.shift(90, options.backRaise * seatDepth)
|
||||||
|
points.bWaistCrotchCP = points.bWaistSide.shift(270, seatDepth * options.crotchFactorBackVer)
|
||||||
|
points.bHipCrotchCP = points.mHip.shift(
|
||||||
|
0,
|
||||||
|
options.crotchBack * circumference4 * options.crotchFactorBackHor
|
||||||
|
)
|
||||||
|
|
||||||
|
points.bHipSide = points.mHip.shift(0, options.crotchBack * circumference4)
|
||||||
|
|
||||||
|
points.fCutOutHip = new Path()
|
||||||
|
.move(points.fWaistSide)
|
||||||
|
.curve(points.fWaistCrotchCP, points.fHipCrotchCP, points.mHip)
|
||||||
|
.shiftAlong(measurements.waistToHips + waistBand)
|
||||||
|
points.bCutOutHip = new Path()
|
||||||
|
.move(points.bWaistSide)
|
||||||
|
.curve(points.bWaistCrotchCP, points.bHipCrotchCP, points.mHip)
|
||||||
|
.shiftAlong(measurements.waistToHips + waistBand + options.backRaise * seatDepth)
|
||||||
|
|
||||||
|
const waistSeatDifferenceBack = measurements.seat / 2 - waistBack
|
||||||
|
const waistSeatDifferenceFront = measurements.seat / 2 - (waist - waistBack)
|
||||||
|
|
||||||
|
points.bWaistAdjusted = points.bWaistSide.shift(
|
||||||
|
0,
|
||||||
|
waistSeatDifferenceBack * options.backWaistAdjustment
|
||||||
|
)
|
||||||
|
points.fWaistAdjusted = points.fWaistSide.shift(
|
||||||
|
180,
|
||||||
|
waistSeatDifferenceFront * options.frontWaistAdjustment
|
||||||
|
)
|
||||||
|
|
||||||
|
points.mLeg = points.mHip.shift(270, measurements.inseam * options.legSize)
|
||||||
|
points.fLegSide = points.mLeg.shift(180, options.crotchFront * circumference4)
|
||||||
|
points.bLegSide = points.mLeg.shift(0, options.crotchBack * circumference4)
|
||||||
|
|
||||||
|
points.fWaistFront = points.fWaistSide.shift(180, circumference4)
|
||||||
|
points.fWaistFrontOverlap = points.fWaistFront.shift(180, options.waistOverlap * circumference4)
|
||||||
|
points.fHipFront = points.fHipSide.shift(180, circumference4)
|
||||||
|
points.fHipFrontOverlap = points.fHipFront.shift(180, options.waistOverlap * circumference4)
|
||||||
|
points.fLegFront = points.fLegSide.shift(180, circumference4)
|
||||||
|
points.fLegFrontOverlap = points.fLegFront.shift(180, options.waistOverlap * circumference4)
|
||||||
|
|
||||||
|
// Calculate the distance we need to move horizontally to get to the point that will
|
||||||
|
// diagonally be the distance we're looking for (circumference/4)
|
||||||
|
const bHorDistance = Math.sqrt(
|
||||||
|
circumference4 * circumference4 -
|
||||||
|
options.backRaise * seatDepth * options.backRaise * seatDepth
|
||||||
|
)
|
||||||
|
// Create a point that is this distance from the side.
|
||||||
|
points.bWaistBack = points.mWaist
|
||||||
|
.shift(90, waistBand)
|
||||||
|
.shift(0, options.crotchBack * circumference4 + bHorDistance)
|
||||||
|
|
||||||
|
points.bWaistBackOverlap = points.bWaistBack.shift(0, options.waistOverlap * circumference4)
|
||||||
|
|
||||||
|
points.bHipBack = points.bHipSide.shift(0, circumference4)
|
||||||
|
points.bHipBackOverlap = points.bHipBack.shift(0, options.waistOverlap * circumference4)
|
||||||
|
points.bLegBack = points.bLegSide.shift(0, circumference4)
|
||||||
|
points.bLegBackOverlap = points.bLegBack.shift(0, options.waistOverlap * circumference4)
|
||||||
|
|
||||||
|
points.bWaistSideTemp = points.bWaistSide.shift(0, 2) // This is a trick to make the offset() call work. Without it, the offset is crossing the cutout line.
|
||||||
|
|
||||||
|
const fPaths = new Path()
|
||||||
|
.move(points.fWaistSide)
|
||||||
|
.curve(points.fWaistCrotchCP, points.fHipCrotchCP, points.mHip)
|
||||||
|
.split(points.fCutOutHip)
|
||||||
|
|
||||||
|
const bPaths = new Path()
|
||||||
|
.move(points.bWaistSide)
|
||||||
|
.curve(points.bWaistCrotchCP, points.bHipCrotchCP, points.mHip)
|
||||||
|
.split(points.bCutOutHip)
|
||||||
|
|
||||||
|
fPaths[0].hide()
|
||||||
|
fPaths[1].hide()
|
||||||
|
bPaths[0].hide()
|
||||||
|
bPaths[1].hide()
|
||||||
|
|
||||||
|
points.fCutOutHipCp1 = fPaths[1].ops[1].cp1.shiftFractionTowards(points.fCutOutHip, 1.25)
|
||||||
|
points.fCutOutHipCp2 = fPaths[1].ops[1].cp1.clone()
|
||||||
|
points.mHipCp1 = fPaths[1].ops[1].cp2.clone()
|
||||||
|
points.mHipCp2 = bPaths[1].ops[1].cp2.clone()
|
||||||
|
points.bCutOutHipCp1 = bPaths[1].ops[1].cp1.clone()
|
||||||
|
points.bCutOutHipCp2 = bPaths[1].ops[1].cp1.shiftFractionTowards(points.bCutOutHip, 1.25)
|
||||||
|
|
||||||
|
paths.frontBottomCutOut = new Path()
|
||||||
|
.move(points.mHip)
|
||||||
|
.curve(points.mHipCp1, points.fCutOutHipCp2, points.fCutOutHip)
|
||||||
|
.hide()
|
||||||
|
paths.backBottomCutOut = new Path()
|
||||||
|
.move(points.bCutOutHip)
|
||||||
|
.curve(points.bCutOutHipCp1, points.mHipCp2, points.mHip)
|
||||||
|
.hide()
|
||||||
|
|
||||||
|
paths.frontTopCutOut = new Path()
|
||||||
|
.move(points.fCutOutHip)
|
||||||
|
.curve(points.fCutOutHipCp1, points.fWaistAdjusted, points.fWaistAdjusted)
|
||||||
|
.hide()
|
||||||
|
paths.backTopCutOut = new Path()
|
||||||
|
.move(points.bWaistAdjusted)
|
||||||
|
.curve(points.bWaistAdjusted, points.bCutOutHipCp2, points.bCutOutHip)
|
||||||
|
.hide()
|
||||||
|
|
||||||
|
points.fWaistSideHem = paths.frontTopCutOut.reverse().shiftAlong(waistBand)
|
||||||
|
points.fWaistSideSeam = paths.frontTopCutOut.reverse().shiftAlong(waistBand * 2)
|
||||||
|
points.fWaistSide = points.fWaistSideSeam.flipY(points.fWaistSideHem)
|
||||||
|
points.bWaistSideHem = paths.backTopCutOut.shiftAlong(waistBand)
|
||||||
|
points.bWaistSideSeam = paths.backTopCutOut.shiftAlong(waistBand * 2)
|
||||||
|
points.bWaistSide = points.bWaistSideSeam.flipY(points.bWaistSideHem)
|
||||||
|
|
||||||
|
points.fWaistFrontOverlapHem = points.fWaistFrontOverlap.shift(270, waistBand)
|
||||||
|
points.bWaistBackHem = points.bWaistBack.shift(270, waistBand)
|
||||||
|
points.bWaistBackOverlapHem = points.bWaistBackOverlap.shift(270, waistBand)
|
||||||
|
points.fWaistFrontOverlapSeam = points.fWaistFrontOverlap.shift(270, waistBand * 2)
|
||||||
|
points.bWaistBackSeam = points.bWaistBack.shift(270, waistBand * 2)
|
||||||
|
points.bWaistBackOverlapSeam = points.bWaistBackOverlap.shift(270, waistBand * 2)
|
||||||
|
points.fWaistSideCp2 = paths.frontTopCutOut.split(points.fWaistSideSeam)[0].ops[1].cp2.clone()
|
||||||
|
|
||||||
|
points.fWaistSideCp2 = paths.frontTopCutOut.split(points.fWaistSideSeam)[0].ops[1].cp2.clone()
|
||||||
|
points.fWaistHipCp1 = paths.frontTopCutOut.split(points.fWaistSideSeam)[0].ops[1].cp1.clone()
|
||||||
|
points.bWaistSideCp1 = paths.backTopCutOut.split(points.bWaistSideSeam)[1].ops[1].cp1.clone()
|
||||||
|
points.bWaistHipCp2 = paths.backTopCutOut.split(points.bWaistSideSeam)[1].ops[1].cp2.clone()
|
||||||
|
|
||||||
|
if (separateWaistband) {
|
||||||
|
points.mWaist1 = new Point(points.mWaist.x, points.fWaistSideSeam.y)
|
||||||
|
// points.mWaist = new Point(points.mWaist.x, points.fWaistSideSeam.y)
|
||||||
|
} else {
|
||||||
|
points.mWaist1 = new Point(points.mWaist.x, points.fWaistSide.y)
|
||||||
|
}
|
||||||
|
if (separateWaistband) {
|
||||||
|
points.mWaist2 = new Point(points.mWaist.x, points.bWaistSideSeam.y)
|
||||||
|
} else {
|
||||||
|
points.mWaist2 = new Point(points.mWaist.x, points.bWaistSide.y)
|
||||||
|
}
|
||||||
|
|
||||||
|
paths.frontTopCutOut = new Path()
|
||||||
|
.move(points.fCutOutHip)
|
||||||
|
.curve(points.fCutOutHipCp1, points.fWaistSideCp2, points.fWaistSideSeam)
|
||||||
|
.hide()
|
||||||
|
if (false == separateWaistband) {
|
||||||
|
paths.frontTopCutOut.line(points.fWaistSideHem)
|
||||||
|
paths.frontTopCutOut.line(points.fWaistSide)
|
||||||
|
}
|
||||||
|
if (false == separateWaistband) {
|
||||||
|
paths.backTopCutOut = new Path()
|
||||||
|
.move(points.bWaistSide)
|
||||||
|
.line(points.bWaistSideHem)
|
||||||
|
.line(points.bWaistSideSeam)
|
||||||
|
} else {
|
||||||
|
paths.backTopCutOut = new Path().move(points.bWaistSideSeam)
|
||||||
|
}
|
||||||
|
paths.backTopCutOut.curve(points.bWaistSideCp1, points.bCutOutHipCp2, points.bCutOutHip).hide()
|
||||||
|
|
||||||
|
paths.cutout = paths.backTopCutOut
|
||||||
|
.join(paths.backBottomCutOut)
|
||||||
|
.join(paths.frontBottomCutOut)
|
||||||
|
.join(paths.frontTopCutOut)
|
||||||
|
.hide()
|
||||||
|
|
||||||
|
paths.waistBack = new Path()
|
||||||
|
.move(separateWaistband ? points.bWaistBackOverlapSeam : points.bWaistBackOverlap)
|
||||||
|
.line(separateWaistband ? points.bWaistBackSeam : points.bWaistBack)
|
||||||
|
.line(separateWaistband ? points.bWaistSideSeam : points.bWaistSide)
|
||||||
|
.hide()
|
||||||
|
paths.waistFront = new Path()
|
||||||
|
.move(separateWaistband ? points.fWaistSideSeam : points.fWaistSide)
|
||||||
|
.line(separateWaistband ? points.fWaistFrontOverlapSeam : points.fWaistFrontOverlap)
|
||||||
|
.hide()
|
||||||
|
paths.front = new Path()
|
||||||
|
.move(separateWaistband ? points.fWaistFrontOverlapSeam : points.fWaistFrontOverlap)
|
||||||
|
.line(points.fHipFrontOverlap)
|
||||||
|
.line(points.fLegFrontOverlap)
|
||||||
|
.hide()
|
||||||
|
paths.back = new Path()
|
||||||
|
.move(points.bLegBackOverlap)
|
||||||
|
.line(points.bHipBackOverlap)
|
||||||
|
.line(separateWaistband ? points.bWaistBackOverlapSeam : points.bWaistBackOverlap)
|
||||||
|
.hide()
|
||||||
|
paths.leg = new Path().move(points.fLegFrontOverlap).line(points.bLegBackOverlap).hide()
|
||||||
|
|
||||||
|
paths.seam = paths.waistFront
|
||||||
|
.join(paths.front)
|
||||||
|
.join(paths.leg)
|
||||||
|
.join(paths.back)
|
||||||
|
.join(paths.waistBack)
|
||||||
|
.join(paths.cutout)
|
||||||
|
.close()
|
||||||
|
.addClass('fabric')
|
||||||
|
.hide()
|
||||||
|
|
||||||
|
if (options.frontPocket) {
|
||||||
|
points.frontPocketTop = points.fWaistSideSeam
|
||||||
|
.shift(
|
||||||
|
270,
|
||||||
|
options.frontPocketVerticalOffset * measurements.crotchDepth +
|
||||||
|
waistBand * (separateWaistband ? 1 : 2)
|
||||||
|
)
|
||||||
|
.shift(180, options.frontPocketHorizontalOffset * measurements.seat)
|
||||||
|
|
||||||
|
points.frontPocketTop2 = points.frontPocketTop.shift(340, frontPocketHeight)
|
||||||
|
points.frontPocketBottom = points.frontPocketTop.shift(
|
||||||
|
250,
|
||||||
|
frontPocketSize
|
||||||
|
// options.frontPocketSize * measurements.crotchDepth
|
||||||
|
)
|
||||||
|
points.frontPocketBottom2 = points.frontPocketBottom.shift(340, frontPocketHeight)
|
||||||
|
|
||||||
|
paths.frontPocket = new Path()
|
||||||
|
.move(points.frontPocketTop)
|
||||||
|
.line(points.frontPocketBottom)
|
||||||
|
.line(points.frontPocketBottom2)
|
||||||
|
.line(points.frontPocketTop2)
|
||||||
|
.close()
|
||||||
|
.addClass('fabric')
|
||||||
|
.hide()
|
||||||
|
|
||||||
|
points.frontPocketSeam = utils.beamsIntersect(
|
||||||
|
points.frontPocketBottom,
|
||||||
|
points.frontPocketTop,
|
||||||
|
points.fWaistSideSeam,
|
||||||
|
points.fWaistFrontOverlapSeam
|
||||||
|
)
|
||||||
|
|
||||||
|
const frontPocketExtraDepth = points.frontPocketTop.dist(points.frontPocketSeam)
|
||||||
|
|
||||||
|
points.frontPocketTopLeft = points.frontPocketSeam.shiftTowards(
|
||||||
|
points.fWaistFrontOverlapSeam,
|
||||||
|
frontPocketHeight
|
||||||
|
)
|
||||||
|
points.frontPocketTopRight = points.frontPocketTopLeft.shift(0, pocketDepth * (1 / 3))
|
||||||
|
|
||||||
|
points.frontPocketBottomRight = points.frontPocketTopRight.shift(
|
||||||
|
270,
|
||||||
|
pocketDepth + frontPocketExtraDepth
|
||||||
|
)
|
||||||
|
points.frontPocketBottomLeft = points.frontPocketTopLeft.shift(
|
||||||
|
250,
|
||||||
|
pocketDepth * (5 / 6) + frontPocketExtraDepth
|
||||||
|
)
|
||||||
|
|
||||||
|
points.frontPocketBottomRightCP = points.frontPocketBottomRight.shift(
|
||||||
|
180,
|
||||||
|
pocketDepth * (1 / 6)
|
||||||
|
)
|
||||||
|
points.frontPocketBottomLeftCP = points.frontPocketBottomLeft.shift(
|
||||||
|
315,
|
||||||
|
pocketDepth * (1 / 4)
|
||||||
|
)
|
||||||
|
|
||||||
|
paths.frontPocketSeamSA = new Path()
|
||||||
|
.move(points.frontPocketTopRight)
|
||||||
|
.line(points.frontPocketTopLeft)
|
||||||
|
.line(points.frontPocketBottomLeft)
|
||||||
|
.curve(
|
||||||
|
points.frontPocketBottomLeftCP,
|
||||||
|
points.frontPocketBottomRightCP,
|
||||||
|
points.frontPocketBottomRight
|
||||||
|
)
|
||||||
|
.hide()
|
||||||
|
paths.frontPocketSeam = new Path()
|
||||||
|
.move(points.frontPocketBottomRight)
|
||||||
|
.line(points.frontPocketTopRight)
|
||||||
|
.join(paths.frontPocketSeamSA)
|
||||||
|
.close()
|
||||||
|
.addClass('dotted mark')
|
||||||
|
.hide()
|
||||||
|
}
|
||||||
|
|
||||||
|
if (options.backPocket) {
|
||||||
|
points.backPocketRight = points.bWaistBack
|
||||||
|
.shiftTowards(points.bWaistSide, options.backPocketHorizontalOffset * measurements.seat)
|
||||||
|
.shift(
|
||||||
|
270,
|
||||||
|
options.backPocketVerticalOffset * measurements.crotchDepth +
|
||||||
|
waistBand * (separateWaistband ? 1 : 2)
|
||||||
|
)
|
||||||
|
points.backPocketLeft = points.bWaistBack
|
||||||
|
.shiftTowards(
|
||||||
|
points.bWaistSide,
|
||||||
|
options.backPocketHorizontalOffset * measurements.seat +
|
||||||
|
options.backPocketSize * measurements.crotchDepth
|
||||||
|
)
|
||||||
|
.shift(
|
||||||
|
270,
|
||||||
|
options.backPocketVerticalOffset * measurements.crotchDepth +
|
||||||
|
waistBand * (separateWaistband ? 1 : 2)
|
||||||
|
)
|
||||||
|
points.backPocketRight2 = points.backPocketRight.shift(
|
||||||
|
points.backPocketRight.angle(points.backPocketLeft) + 90,
|
||||||
|
12
|
||||||
|
)
|
||||||
|
points.backPocketLeft2 = points.backPocketLeft.shift(
|
||||||
|
points.backPocketLeft.angle(points.backPocketRight) - 90,
|
||||||
|
12
|
||||||
|
)
|
||||||
|
|
||||||
|
paths.backPocket = new Path()
|
||||||
|
.move(points.backPocketLeft)
|
||||||
|
.line(points.backPocketLeft2)
|
||||||
|
.line(points.backPocketRight2)
|
||||||
|
.line(points.backPocketRight)
|
||||||
|
.close()
|
||||||
|
.addClass('fabric')
|
||||||
|
.hide()
|
||||||
|
}
|
||||||
|
|
||||||
|
return part.hide()
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,92 +1,81 @@
|
||||||
|
import { cbqc } from '@freesewing/core'
|
||||||
import { pantsProto } from './pantsproto.mjs'
|
import { pantsProto } from './pantsproto.mjs'
|
||||||
|
|
||||||
function waraleePocket({
|
export const pocket = {
|
||||||
options,
|
name: 'waralee.pocket',
|
||||||
measurements,
|
from: pantsProto,
|
||||||
Point,
|
draft: ({ options, Point, Path, points, paths, Snippet, snippets, sa, macro, store, part }) => {
|
||||||
Path,
|
if (false == options.frontPocket) {
|
||||||
points,
|
return part.hide()
|
||||||
paths,
|
}
|
||||||
Snippet,
|
|
||||||
snippets,
|
|
||||||
complete,
|
|
||||||
sa,
|
|
||||||
paperless,
|
|
||||||
macro,
|
|
||||||
part,
|
|
||||||
}) {
|
|
||||||
if (false == options.frontPocket) {
|
|
||||||
return part
|
|
||||||
}
|
|
||||||
|
|
||||||
const c = 0.55191502449351
|
const frontPocketSize = store.get('frontPocketSize')
|
||||||
|
|
||||||
let pocketDepth =
|
if ('welt' != options.frontPocketStyle) {
|
||||||
(measurements.crotchDepth - measurements.waistToHips) * options.frontPocketDepthFactor
|
points.topLeft = new Point(0, 0)
|
||||||
let frontPocketSize =
|
points.topRight = points.topLeft.shift(0, frontPocketSize)
|
||||||
options.frontPocketSize * measurements.crotchDepth /*- measurements.waistToHips*/
|
points.bottomLeft = points.topLeft.shift(270, frontPocketSize * 1.5)
|
||||||
|
points.bottomRight = points.topRight.shift(270, frontPocketSize * 1.5)
|
||||||
|
|
||||||
if ('welt' == options.frontPocketStyle) {
|
points.bottomLeftCornerUp = points.bottomLeft.shift(90, frontPocketSize / 4)
|
||||||
points.topLeft = new Point(0, 0)
|
points.bottomLeftCornerUpCp1 = points.bottomLeftCornerUp.shift(
|
||||||
points.bottomLeft = points.topLeft.shift(270, pocketDepth)
|
270,
|
||||||
|
(frontPocketSize / 4) * cbqc
|
||||||
points.topRight = points.topLeft.shift(0, pocketDepth * (1 / 3))
|
|
||||||
points.bottomRight = points.topRight.shift(290, pocketDepth * (5 / 6))
|
|
||||||
|
|
||||||
points.bottomLeftCP = points.bottomLeft.shift(0, pocketDepth * (1 / 6))
|
|
||||||
points.bottomRightCP = points.bottomRight.shift(225, pocketDepth * (1 / 4))
|
|
||||||
|
|
||||||
paths.seam = new Path()
|
|
||||||
.move(points.topLeft)
|
|
||||||
.line(points.bottomLeft)
|
|
||||||
.curve(points.bottomLeftCP, points.bottomRightCP, points.bottomRight)
|
|
||||||
.line(points.topRight)
|
|
||||||
.line(points.topLeft)
|
|
||||||
.close()
|
|
||||||
.attr('class', 'fabric')
|
|
||||||
} else {
|
|
||||||
points.topLeft = new Point(0, 0)
|
|
||||||
points.topRight = points.topLeft.shift(0, frontPocketSize)
|
|
||||||
points.bottomLeft = points.topLeft.shift(270, frontPocketSize * 1.5)
|
|
||||||
points.bottomRight = points.topRight.shift(270, frontPocketSize * 1.5)
|
|
||||||
points.bottomLeftCornerUp = points.bottomLeft.shift(90, frontPocketSize / 4)
|
|
||||||
points.bottomLeftCornerUpCp1 = points.bottomLeftCornerUp.shift(270, (frontPocketSize / 4) * c)
|
|
||||||
points.bottomLeftCornerOver = points.bottomLeft.shift(0, frontPocketSize / 4)
|
|
||||||
points.bottomLeftCornerOverCp2 = points.bottomLeftCornerOver.shift(
|
|
||||||
180,
|
|
||||||
(frontPocketSize / 4) * c
|
|
||||||
)
|
|
||||||
points.bottomRightCornerUp = points.bottomRight.shift(90, frontPocketSize / 4)
|
|
||||||
points.bottomRightCornerUpCp2 = points.bottomRightCornerUp.shift(270, (frontPocketSize / 4) * c)
|
|
||||||
points.bottomRightCornerOver = points.bottomRight.shift(180, frontPocketSize / 4)
|
|
||||||
points.bottomRightCornerOverCp1 = points.bottomRightCornerOver.shift(
|
|
||||||
0,
|
|
||||||
(frontPocketSize / 4) * c
|
|
||||||
)
|
|
||||||
|
|
||||||
paths.seam = new Path()
|
|
||||||
.move(points.topLeft)
|
|
||||||
.line(points.bottomLeftCornerUp)
|
|
||||||
.curve(
|
|
||||||
points.bottomLeftCornerUpCp1,
|
|
||||||
points.bottomLeftCornerOverCp2,
|
|
||||||
points.bottomLeftCornerOver
|
|
||||||
)
|
)
|
||||||
.line(points.bottomRightCornerOver)
|
points.bottomLeftCornerOver = points.bottomLeft.shift(0, frontPocketSize / 4)
|
||||||
.curve(
|
points.bottomLeftCornerOverCp2 = points.bottomLeftCornerOver.shift(
|
||||||
points.bottomRightCornerOverCp1,
|
180,
|
||||||
points.bottomRightCornerUpCp2,
|
(frontPocketSize / 4) * cbqc
|
||||||
points.bottomRightCornerUp
|
)
|
||||||
|
points.bottomRightCornerUp = points.bottomRight.shift(90, frontPocketSize / 4)
|
||||||
|
points.bottomRightCornerUpCp2 = points.bottomRightCornerUp.shift(
|
||||||
|
270,
|
||||||
|
(frontPocketSize / 4) * cbqc
|
||||||
|
)
|
||||||
|
points.bottomRightCornerOver = points.bottomRight.shift(180, frontPocketSize / 4)
|
||||||
|
points.bottomRightCornerOverCp1 = points.bottomRightCornerOver.shift(
|
||||||
|
0,
|
||||||
|
(frontPocketSize / 4) * cbqc
|
||||||
)
|
)
|
||||||
.line(points.topRight)
|
|
||||||
.line(points.topLeft)
|
|
||||||
.close()
|
|
||||||
.attr('class', 'fabric')
|
|
||||||
}
|
|
||||||
|
|
||||||
// Complete?
|
paths.seam = new Path()
|
||||||
if (complete) {
|
.move(points.topLeft)
|
||||||
points.title = points.topLeft.shift(270, 75).shift(0, 50)
|
.line(points.bottomLeftCornerUp)
|
||||||
|
.curve(
|
||||||
|
points.bottomLeftCornerUpCp1,
|
||||||
|
points.bottomLeftCornerOverCp2,
|
||||||
|
points.bottomLeftCornerOver
|
||||||
|
)
|
||||||
|
.line(points.bottomRightCornerOver)
|
||||||
|
.curve(
|
||||||
|
points.bottomRightCornerOverCp1,
|
||||||
|
points.bottomRightCornerUpCp2,
|
||||||
|
points.bottomRightCornerUp
|
||||||
|
)
|
||||||
|
.line(points.topRight)
|
||||||
|
.line(points.topLeft)
|
||||||
|
.close()
|
||||||
|
.addClass('fabric')
|
||||||
|
|
||||||
|
paths.sa = paths.seam.offset(sa).addClass('fabric sa')
|
||||||
|
} else {
|
||||||
|
paths.frontPocketSeam.unhide().setClass('fabric')
|
||||||
|
|
||||||
|
if (sa) {
|
||||||
|
paths.sa = paths.frontPocketSeamSA.offset(sa).close().addClass('fabric sa')
|
||||||
|
}
|
||||||
|
|
||||||
|
paths.frontPocket.unhide().setClass('mark')
|
||||||
|
|
||||||
|
macro('cutonfold', {
|
||||||
|
from: points.frontPocketBottomRight,
|
||||||
|
to: points.frontPocketTopRight,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
store.cutlist.addCut({ cut: 2, from: 'lining' })
|
||||||
|
|
||||||
|
points.title = points.frontPocketTopLeft.shift(270, 75).shift(0, 50)
|
||||||
macro('title', {
|
macro('title', {
|
||||||
nr: 3,
|
nr: 3,
|
||||||
at: points.title,
|
at: points.title,
|
||||||
|
@ -95,71 +84,38 @@ function waraleePocket({
|
||||||
|
|
||||||
points.logo = points.title.shift(270, 75)
|
points.logo = points.title.shift(270, 75)
|
||||||
snippets.logo = new Snippet('logo', points.logo)
|
snippets.logo = new Snippet('logo', points.logo)
|
||||||
points.text = points.logo
|
points.text = points.logo.shift(-90, 25).addText('Waralee', 'center')
|
||||||
.shift(-90, 25)
|
|
||||||
.attr('data-text', 'Waralee')
|
|
||||||
.attr('data-text-class', 'center')
|
|
||||||
|
|
||||||
if ('welt' == options.frontPocketStyle) {
|
|
||||||
macro('cutonfold', {
|
|
||||||
from: points.topLeft,
|
|
||||||
to: points.bottomLeft,
|
|
||||||
margin: 5,
|
|
||||||
offset: 10,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
if (sa) {
|
|
||||||
if ('welt' == options.frontPocketStyle) {
|
|
||||||
paths.sa = new Path()
|
|
||||||
.move(points.bottomLeft)
|
|
||||||
.join(
|
|
||||||
new Path()
|
|
||||||
.move(points.bottomLeft)
|
|
||||||
.curve(points.bottomLeftCP, points.bottomRightCP, points.bottomRight)
|
|
||||||
.line(points.topRight)
|
|
||||||
.line(points.topLeft)
|
|
||||||
.offset(sa)
|
|
||||||
)
|
|
||||||
.line(points.topLeft)
|
|
||||||
.attr('class', 'fabric sa')
|
|
||||||
} else {
|
|
||||||
paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Paperless?
|
|
||||||
if (paperless) {
|
|
||||||
if ('welt' == options.frontPocketStyle) {
|
if ('welt' == options.frontPocketStyle) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
id: 1,
|
id: 1,
|
||||||
from: points.topLeft,
|
from: points.frontPocketTopLeft,
|
||||||
to: points.topRight,
|
to: points.frontPocketTopRight,
|
||||||
y: points.topLeft.y + 15,
|
y: points.frontPocketTopLeft.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
id: 2,
|
id: 2,
|
||||||
from: points.bottomLeft,
|
from: points.frontPocketBottomLeft,
|
||||||
to: points.bottomRight,
|
to: points.frontPocketBottomRight,
|
||||||
y: points.bottomRight.y,
|
y: points.frontPocketBottomRight.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
id: 3,
|
id: 3,
|
||||||
from: points.topLeft,
|
from: points.frontPocketBottomLeft,
|
||||||
to: points.bottomLeft,
|
to: points.frontPocketTopLeft,
|
||||||
x: points.topLeft.x + 15,
|
x: points.frontPocketBottomLeft.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
id: 4,
|
id: 4,
|
||||||
from: points.topRight,
|
from: points.frontPocketTopRight,
|
||||||
to: points.bottomRight,
|
to: points.frontPocketBottomRight,
|
||||||
x: points.bottomRight.x,
|
x: points.frontPocketBottomRight.x + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
id: 5,
|
id: 5,
|
||||||
from: points.bottomRight,
|
from: points.frontPocketBottomRight,
|
||||||
to: points.bottomLeft,
|
to: points.frontPocketBottomLeft,
|
||||||
x: points.bottomRight.x,
|
x: points.frontPocketBottomLeft.x - sa - 15,
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
|
@ -170,18 +126,12 @@ function waraleePocket({
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
id: 7,
|
id: 7,
|
||||||
from: points.topLeft,
|
from: points.bottomLeftCornerOver,
|
||||||
to: points.bottomLeftCornerOver,
|
to: points.topLeft,
|
||||||
x: points.bottomLeftCornerOver.x,
|
x: points.bottomLeftCornerOver.x,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return part
|
return part
|
||||||
}
|
},
|
||||||
|
|
||||||
export const pocket = {
|
|
||||||
name: 'waralee.pocket',
|
|
||||||
after: pantsProto,
|
|
||||||
draft: waraleePocket,
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,182 +11,122 @@ function waraleeWaistband(
|
||||||
paths,
|
paths,
|
||||||
Snippet,
|
Snippet,
|
||||||
snippets,
|
snippets,
|
||||||
complete,
|
|
||||||
paperless,
|
|
||||||
macro,
|
macro,
|
||||||
sa,
|
sa,
|
||||||
store,
|
store,
|
||||||
|
expand,
|
||||||
|
units,
|
||||||
part,
|
part,
|
||||||
}
|
}
|
||||||
) {
|
) {
|
||||||
const WidthReduction = 6
|
const waistBand = store.get('waistBand')
|
||||||
let waistBand = store.get('waistBand')
|
const waistBandLengthFront = points.fWaistSideHem.dist(points.fWaistFrontOverlapHem)
|
||||||
let waistBandLengthFront = points.fWaistSideHem.dist(points.fWaistFrontOverlapHem)
|
const waistBandLengthBack =
|
||||||
let waistBandLengthBack =
|
|
||||||
points.bWaistSideHem.dist(points.bWaistBackHem) +
|
points.bWaistSideHem.dist(points.bWaistBackHem) +
|
||||||
points.bWaistBackHem.dist(points.bWaistBackOverlapHem)
|
points.bWaistBackHem.dist(points.bWaistBackOverlapHem)
|
||||||
|
|
||||||
let strapLength = measurements.waist + measurements.crotchDepth * 1.75
|
let waistBandLength = measurements.waist + measurements.crotchDepth * 1.75
|
||||||
let partNr = 0
|
let partNr = 0
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 'waistBandFront':
|
case 'waistBandFront':
|
||||||
if (false == options.separateWaistband && 'welt' == options.frontPocketStyle) {
|
if (false == options.separateWaistband && 'welt' == options.frontPocketStyle) {
|
||||||
return part
|
return part.hide()
|
||||||
}
|
}
|
||||||
partNr = 9
|
partNr = 9
|
||||||
points.tr = points.fWaistSide
|
waistBandLength = waistBandLengthFront * 2
|
||||||
points.mr = points.fWaistSideHem
|
|
||||||
points.br = points.fWaistSideSeam
|
|
||||||
points.ml = points.fWaistSideHem.shift(180, (waistBandLengthFront / WidthReduction) * 2)
|
|
||||||
points.tl = points.ml.shift(90, waistBand)
|
|
||||||
points.bl = points.ml.shift(270, waistBand)
|
|
||||||
|
|
||||||
macro('hd', {
|
|
||||||
from: points.ml,
|
|
||||||
to: points.mr,
|
|
||||||
y: points.mr.y,
|
|
||||||
text: part.units(waistBandLengthFront),
|
|
||||||
})
|
|
||||||
|
|
||||||
break
|
break
|
||||||
|
|
||||||
case 'waistBandBack':
|
case 'waistBandBack':
|
||||||
if (false == options.separateWaistband && 'welt' == options.frontPocketStyle) {
|
if (false == options.separateWaistband && 'welt' == options.frontPocketStyle) {
|
||||||
return part
|
return part.hide()
|
||||||
}
|
}
|
||||||
partNr = 10
|
partNr = 10
|
||||||
points.tl = points.bWaistSide
|
waistBandLength = waistBandLengthBack * 2
|
||||||
points.ml = points.bWaistSideHem
|
|
||||||
points.bl = points.bWaistSideSeam
|
|
||||||
points.mr = points.bWaistSideHem.shift(0, (waistBandLengthBack / WidthReduction) * 2)
|
|
||||||
points.tr = points.mr.shift(90, waistBand)
|
|
||||||
points.br = points.mr.shift(270, waistBand)
|
|
||||||
|
|
||||||
macro('hd', {
|
|
||||||
from: points.ml,
|
|
||||||
to: points.mr,
|
|
||||||
y: points.mr.y,
|
|
||||||
text: part.units(waistBandLengthBack),
|
|
||||||
})
|
|
||||||
|
|
||||||
break
|
break
|
||||||
|
|
||||||
case 'strapFront':
|
case 'strapFront':
|
||||||
partNr = 7
|
partNr = 7
|
||||||
strapLength -= waistBandLengthFront * 2
|
waistBandLength -= waistBandLengthFront * 2
|
||||||
strapLength += options.knotInFront ? measurements.waist / 2 : 0
|
waistBandLength += options.knotInFront ? measurements.waist / 2 : 0
|
||||||
|
|
||||||
points.mr = new Point(0, 0)
|
|
||||||
points.tr = points.mr.shift(90, waistBand)
|
|
||||||
points.br = points.mr.shift(270, waistBand)
|
|
||||||
points.ml = points.mr.shift(180, (waistBandLengthFront / WidthReduction) * 2)
|
|
||||||
points.tl = points.ml.shift(90, waistBand)
|
|
||||||
points.bl = points.ml.shift(270, waistBand)
|
|
||||||
|
|
||||||
macro('hd', {
|
|
||||||
from: points.ml,
|
|
||||||
to: points.mr,
|
|
||||||
y: points.mr.y,
|
|
||||||
text: part.units(strapLength),
|
|
||||||
})
|
|
||||||
|
|
||||||
break
|
break
|
||||||
|
|
||||||
case 'strapBack':
|
case 'strapBack':
|
||||||
partNr = 8
|
partNr = 8
|
||||||
strapLength -= waistBandLengthBack * 2
|
waistBandLength -= waistBandLengthBack * 2
|
||||||
strapLength += options.knotInFront ? 0 : measurements.waist / 2
|
waistBandLength += options.knotInFront ? 0 : measurements.waist / 2
|
||||||
|
|
||||||
points.mr = new Point(0, 0)
|
|
||||||
points.tr = points.mr.shift(90, waistBand)
|
|
||||||
points.br = points.mr.shift(270, waistBand)
|
|
||||||
points.ml = points.mr.shift(180, (waistBandLengthFront / WidthReduction) * 2)
|
|
||||||
points.tl = points.ml.shift(90, waistBand)
|
|
||||||
points.bl = points.ml.shift(270, waistBand)
|
|
||||||
|
|
||||||
macro('hd', {
|
|
||||||
from: points.ml,
|
|
||||||
to: points.mr,
|
|
||||||
y: points.mr.y,
|
|
||||||
text: part.units(strapLength),
|
|
||||||
})
|
|
||||||
|
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
points.zigzagTop = points.tr.shift(180, waistBandLengthFront / WidthReduction)
|
if (!expand) {
|
||||||
points.zigzagTopR = points.zigzagTop.shift(0, waistBand / 8)
|
// Expand is off, do not draw the part but flag this to the user
|
||||||
points.zigzagTopT = points.zigzagTop.shift(90, waistBand / 4)
|
store.flag.note({
|
||||||
points.zigzagTopL = points.zigzagTop.shift(180, waistBand / 8)
|
msg: `waralee:cut` + type,
|
||||||
points.zigzagTopB = points.zigzagTop.shift(270, waistBand / 4)
|
replace: {
|
||||||
points.zigzagBottom = points.br.shift(180, waistBandLengthFront / WidthReduction)
|
width: units(waistBand * 2),
|
||||||
points.zigzagBottomR = points.zigzagBottom.shift(0, waistBand / 8)
|
length: units(waistBandLength),
|
||||||
points.zigzagBottomT = points.zigzagBottom.shift(90, waistBand / 4)
|
},
|
||||||
points.zigzagBottomL = points.zigzagBottom.shift(180, waistBand / 8)
|
suggest: {
|
||||||
points.zigzagBottomB = points.zigzagBottom.shift(270, waistBand / 4)
|
text: 'flag:show',
|
||||||
|
icon: 'expand',
|
||||||
|
update: {
|
||||||
|
settings: ['expand', 1],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
// Also hint about expand
|
||||||
|
store.flag.preset('expand')
|
||||||
|
|
||||||
paths.ZZtop = new Path()
|
return part.hide()
|
||||||
.move(points.zigzagTopR)
|
}
|
||||||
.line(points.zigzagTopT)
|
|
||||||
.line(points.zigzagTopB)
|
store.cutlist.addCut({ cut: 1, from: 'fabric' })
|
||||||
.line(points.zigzagTopL)
|
|
||||||
.attr('class', 'dotted')
|
points.tl = new Point(0, 0)
|
||||||
paths.ZZbottom = new Path()
|
points.bl = new Point(0, waistBandLength)
|
||||||
.move(points.zigzagBottomR)
|
points.tm = new Point(waistBand, 0)
|
||||||
.line(points.zigzagBottomT)
|
points.bm = new Point(waistBand, waistBandLength)
|
||||||
.line(points.zigzagBottomB)
|
points.tr = new Point(waistBand * 2, 0)
|
||||||
.line(points.zigzagBottomL)
|
points.br = new Point(waistBand * 2, waistBandLength)
|
||||||
.attr('class', 'dotted')
|
|
||||||
paths.right = new Path()
|
|
||||||
.move(points.zigzagBottomR)
|
|
||||||
.line(points.br)
|
|
||||||
.line(points.mr)
|
|
||||||
.line(points.tr)
|
|
||||||
.line(points.zigzagTopR)
|
|
||||||
paths.left = new Path()
|
|
||||||
.move(points.zigzagBottomL)
|
|
||||||
.line(points.bl)
|
|
||||||
.line(points.ml)
|
|
||||||
.line(points.tl)
|
|
||||||
.line(points.zigzagTopL)
|
|
||||||
|
|
||||||
paths.seam = new Path()
|
paths.seam = new Path()
|
||||||
.move(points.br)
|
.move(points.br)
|
||||||
.line(points.mr)
|
|
||||||
.line(points.tr)
|
.line(points.tr)
|
||||||
.line(points.tl)
|
.line(points.tl)
|
||||||
.line(points.ml)
|
|
||||||
.line(points.bl)
|
.line(points.bl)
|
||||||
.line(points.br)
|
.line(points.br)
|
||||||
.close()
|
.close()
|
||||||
.hide()
|
|
||||||
|
|
||||||
// Complete?
|
paths.fold = new Path().move(points.tm).line(points.bm).addClass('fabric dotted').setText('fold')
|
||||||
if (complete) {
|
|
||||||
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
|
|
||||||
|
|
||||||
points.title = points.tl.shiftFractionTowards(points.br, 0.2).shift(270, 20)
|
if (sa) paths.sa = paths.seam.offset(sa).addClass('fabric sa')
|
||||||
macro('title', {
|
|
||||||
nr: partNr,
|
|
||||||
at: points.title,
|
|
||||||
title: type,
|
|
||||||
prefix: 'front',
|
|
||||||
scale: 0.4,
|
|
||||||
})
|
|
||||||
|
|
||||||
points.logo = points.tl.shiftFractionTowards(points.br, 0.8)
|
store.cutlist.addCut({ cut: 1, from: 'fabric' })
|
||||||
snippets.logo = new Snippet('logo', points.logo).attr('data-scale', 0.3)
|
|
||||||
}
|
points.title = new Point(waistBand, waistBandLength * 0.2)
|
||||||
// Paperless?
|
macro('title', {
|
||||||
if (paperless) {
|
nr: partNr,
|
||||||
macro('vd', {
|
at: points.title,
|
||||||
id: 1,
|
title: type,
|
||||||
from: points.tr,
|
scale: 0.4,
|
||||||
to: points.br,
|
align: 'center',
|
||||||
x: points.br.x + sa + 10,
|
})
|
||||||
})
|
|
||||||
}
|
points.logo = new Point(waistBand, waistBandLength * 0.4)
|
||||||
|
snippets.logo = new Snippet('logo', points.logo).attr('data-scale', 0.3)
|
||||||
|
|
||||||
|
macro('hd', {
|
||||||
|
id: 'w',
|
||||||
|
from: points.tl,
|
||||||
|
to: points.tr,
|
||||||
|
y: points.tl.y - sa - 10,
|
||||||
|
})
|
||||||
|
macro('vd', {
|
||||||
|
id: 'h',
|
||||||
|
from: points.tr,
|
||||||
|
to: points.br,
|
||||||
|
x: points.br.x + sa + 10,
|
||||||
|
})
|
||||||
|
|
||||||
return part
|
return part
|
||||||
}
|
}
|
||||||
|
|
6
markdown/org/docs/designs/gozer/cutting/en.md
Normal file
6
markdown/org/docs/designs/gozer/cutting/en.md
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
title: "Gozer the ghost: Cutting Instructions"
|
||||||
|
---
|
||||||
|
|
||||||
|
- **Color 1; Traditionally white**
|
||||||
|
- Cut **1 Body**
|
6
markdown/org/docs/designs/gozer/en.md
Normal file
6
markdown/org/docs/designs/gozer/en.md
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
title: Gozer the ghost
|
||||||
|
---
|
||||||
|
|
||||||
|
<DesignInfo design='gozer' docs />
|
||||||
|
|
7
markdown/org/docs/designs/gozer/fabric/en.md
Normal file
7
markdown/org/docs/designs/gozer/fabric/en.md
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
---
|
||||||
|
title: "Gozer the ghost: Fabric Options"
|
||||||
|
---
|
||||||
|
|
||||||
|
## Main Fabric
|
||||||
|
|
||||||
|
Traditionally, white sheets are used.
|
15
markdown/org/docs/designs/gozer/instructions/en.md
Normal file
15
markdown/org/docs/designs/gozer/instructions/en.md
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
---
|
||||||
|
title: "Gozer the ghost: Sewing Instructions"
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 1: The eyes
|
||||||
|
|
||||||
|
- Cut holes where marked.
|
||||||
|
|
||||||
|
## Step 2: The body
|
||||||
|
|
||||||
|
- Hem the body
|
||||||
|
|
||||||
|
## Step 3: Enjoy!
|
||||||
|
|
||||||
|
That's it, you are all done. Put it on and scare the neighborhood.
|
5
markdown/org/docs/designs/gozer/measurements/en.md
Normal file
5
markdown/org/docs/designs/gozer/measurements/en.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
title: "Gozer the ghost: Required Measurements"
|
||||||
|
---
|
||||||
|
|
||||||
|
<DesignMeasurements design='gozer' />
|
9
markdown/org/docs/designs/gozer/needs/en.md
Normal file
9
markdown/org/docs/designs/gozer/needs/en.md
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
---
|
||||||
|
title: "Gozer the ghost: What You Need"
|
||||||
|
---
|
||||||
|
|
||||||
|
To make Gozer, you will need the following:
|
||||||
|
|
||||||
|
- [Basic sewing supplies](/docs/sewing/basic-sewing-supplies)
|
||||||
|
- About 1 bed sheet
|
||||||
|
|
6
markdown/org/docs/designs/gozer/notes/en.md
Normal file
6
markdown/org/docs/designs/gozer/notes/en.md
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
title: "Gozer the ghost: Designer Notes"
|
||||||
|
---
|
||||||
|
|
||||||
|
<Fixme>The designer, nor FreeSewing, are liable for anything that follows the use of this pattern. You've been warned.</Fixme>
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
---
|
|
||||||
title: "Verkürzung des Hosenbeins"
|
|
||||||
---
|
|
||||||
|
|
||||||
Das bestimmt, wie lange die Hosen sein werden. Es ist ein Faktor der Inseam-Messung. Je größer der Wert, desto mehr wird von der Länge entfernt.
|
|
||||||
|
|
||||||
## Effekt dieser Option auf das Schnittmuster
|
|
||||||
|
|
||||||

|
|
|
@ -1,9 +0,0 @@
|
||||||
---
|
|
||||||
title: "Leg Shortening"
|
|
||||||
---
|
|
||||||
|
|
||||||
This dictates how long the pants will be. It is a factor of the inseam measurement. The larger the value, the more that will be taken off the length.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
---
|
|
||||||
title: "Acortamiento de la pierna"
|
|
||||||
---
|
|
||||||
|
|
||||||
Esto dicta cuánto tiempo durarán los pantalones. Se trata de un factor de medición de buques. Cuanto más grande sea el valor, más se quitará de la longitud.
|
|
||||||
|
|
||||||
## Efecto de esta opción en el patrón
|
|
||||||
|
|
||||||

|
|
|
@ -1,9 +0,0 @@
|
||||||
---
|
|
||||||
title: "Réduction des jambes"
|
|
||||||
---
|
|
||||||
|
|
||||||
Cela dicte combien de temps le pantalon sera. C'est un facteur de la mesure de la couture. Plus la valeur est grande, plus elle sera retirée de la longueur.
|
|
||||||
|
|
||||||
## Effet de cette option sur le motif
|
|
||||||
|
|
||||||

|
|
|
@ -1,9 +0,0 @@
|
||||||
---
|
|
||||||
title: "Been Inkorten"
|
|
||||||
---
|
|
||||||
|
|
||||||
Dit bepaalt hoe lang de broek zal zijn. Het is een factor van de binnenste meting. Hoe groter de waarde, des te meer zal de lengte worden afgenomen.
|
|
||||||
|
|
||||||
## Effect van deze optie op het patroon
|
|
||||||
|
|
||||||

|
|
|
@ -1,9 +0,0 @@
|
||||||
---
|
|
||||||
title: "Довжина штанин"
|
|
||||||
---
|
|
||||||
|
|
||||||
Від цього залежить, якої довжини будуть штани. Це фактор вимірювання швів. Чим більше значення, тим більше буде віднято від довжини.
|
|
||||||
|
|
||||||
## Вплив цієї опції на шаблон
|
|
||||||
|
|
||||||

|
|
9
markdown/org/docs/designs/waralee/options/legsize/en.md
Normal file
9
markdown/org/docs/designs/waralee/options/legsize/en.md
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
---
|
||||||
|
title: "Leg Size"
|
||||||
|
---
|
||||||
|
|
||||||
|
This dictates how long the pants will be. It is a factor of the inseam measurement. The larger the value, the longer the pants.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
17
markdown/org/showcase/breanna-dress-by-andrea-cretu/en.md
Normal file
17
markdown/org/showcase/breanna-dress-by-andrea-cretu/en.md
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
---
|
||||||
|
title: "Breanna dress by Andrea Cretu"
|
||||||
|
caption: "Andrea made this lovely dress based on the Breanna block"
|
||||||
|
date: 20231017
|
||||||
|
intro: "Andrea added a circle skirt to the Breanna block to make this charming dress."
|
||||||
|
designs: ["breanna"]
|
||||||
|
maker: Natalia
|
||||||
|
---
|
||||||
|
|
||||||
|
Andrea added a circle skirt to the Breanna block to make this charming dress. We love the choice of fabric and buttons!
|
||||||
|
|
||||||
|
Andrea shared these helpful details:
|
||||||
|
|
||||||
|
> Made a dress based on the Breanna body block, with a circle skirt. Next iteration I'll scoop out the armholes and neck and add length to the bottom, so the skirt starts a little lower. Also will make the darts end earlier on the bust and later on the back.
|
||||||
|
|
||||||
|
Andrea is a talented creator, and the owner at [Yarnandy.com](Yarnandy.com).
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
---
|
||||||
|
title: "Four versions of Otis and a bonus Bob"
|
||||||
|
caption: "An Otis baby romper and Bob bib"
|
||||||
|
date: 20231017
|
||||||
|
intro: "Wouter made four versions of Otis for newborn Otis, and a Bob to complete the ensemble."
|
||||||
|
designs: ["otis", "bob"]
|
||||||
|
maker: Natalia
|
||||||
|
---
|
||||||
|
|
||||||
|
Wouter, the designer, made these:
|
||||||
|
|
||||||
|
> Four versions of otis. One with long sleeves, and one that is reversible (don’t try this; figuring out how seams go together and in which sequence causes headaches).
|
||||||
|
|
||||||
|
We are head over heels for his adorable fabric choices. The cute baby doesn't hurt.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
19
markdown/org/showcase/simone-by-gaelle/en.md
Normal file
19
markdown/org/showcase/simone-by-gaelle/en.md
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
---
|
||||||
|
title: "Simone by Gaëlle"
|
||||||
|
caption: "A lovely Simone shirt with beautiful details"
|
||||||
|
date: 20231017
|
||||||
|
intro: "This Simone shirt features beautiful details, including coordinated buttons and custom labels."
|
||||||
|
designs: ["simone"]
|
||||||
|
maker: Natalia
|
||||||
|
---
|
||||||
|
|
||||||
|
The talented Gaëlle shared this Simone shirt. Don't miss the the detail photos.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
},
|
},
|
||||||
"peerDependencies": {},
|
"peerDependencies": {},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@aws-sdk/client-sesv2": "3.428.0",
|
"@aws-sdk/client-sesv2": "3.430.0",
|
||||||
"@prisma/client": "5.4.2",
|
"@prisma/client": "5.4.2",
|
||||||
"bcryptjs": "2.4.3",
|
"bcryptjs": "2.4.3",
|
||||||
"cors": "2.8.5",
|
"cors": "2.8.5",
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"chai": "4.3.10",
|
"chai": "4.3.10",
|
||||||
"chai-http": "4.4.0",
|
"chai-http": "4.4.0",
|
||||||
"esbuild": "0.19.4",
|
"esbuild": "0.19.5",
|
||||||
"mocha": "10.2.0",
|
"mocha": "10.2.0",
|
||||||
"mocha-steps": "1.3.0",
|
"mocha-steps": "1.3.0",
|
||||||
"nodemon": "3.0.1",
|
"nodemon": "3.0.1",
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
"@next/bundle-analyzer": "13.5.4",
|
"@next/bundle-analyzer": "13.5.4",
|
||||||
"@tailwindcss/typography": "0.5.9",
|
"@tailwindcss/typography": "0.5.9",
|
||||||
"algoliasearch": "4.20.0",
|
"algoliasearch": "4.20.0",
|
||||||
"daisyui": "3.9.2",
|
"daisyui": "3.9.3",
|
||||||
"lodash.get": "4.4.2",
|
"lodash.get": "4.4.2",
|
||||||
"lodash.orderby": "4.6.0",
|
"lodash.orderby": "4.6.0",
|
||||||
"lodash.set": "4.3.2",
|
"lodash.set": "4.3.2",
|
||||||
|
|
|
@ -20,6 +20,7 @@ import { Cornelius as cornelius } from '@freesewing/cornelius'
|
||||||
import { Diana as diana } from '@freesewing/diana'
|
import { Diana as diana } from '@freesewing/diana'
|
||||||
import { Florence as florence } from '@freesewing/florence'
|
import { Florence as florence } from '@freesewing/florence'
|
||||||
import { Florent as florent } from '@freesewing/florent'
|
import { Florent as florent } from '@freesewing/florent'
|
||||||
|
import { Gozer as gozer } from '@freesewing/gozer'
|
||||||
import { Hi as hi } from '@freesewing/hi'
|
import { Hi as hi } from '@freesewing/hi'
|
||||||
import { Holmes as holmes } from '@freesewing/holmes'
|
import { Holmes as holmes } from '@freesewing/holmes'
|
||||||
import { Hortensia as hortensia } from '@freesewing/hortensia'
|
import { Hortensia as hortensia } from '@freesewing/hortensia'
|
||||||
|
@ -73,6 +74,7 @@ const designs = {
|
||||||
diana,
|
diana,
|
||||||
florence,
|
florence,
|
||||||
florent,
|
florent,
|
||||||
|
gozer,
|
||||||
hi,
|
hi,
|
||||||
holmes,
|
holmes,
|
||||||
hortensia,
|
hortensia,
|
||||||
|
|
|
@ -35,13 +35,13 @@
|
||||||
"d3-dispatch": "3.0.1",
|
"d3-dispatch": "3.0.1",
|
||||||
"d3-drag": "3.0.0",
|
"d3-drag": "3.0.0",
|
||||||
"d3-selection": "3.0.0",
|
"d3-selection": "3.0.0",
|
||||||
"daisyui": "3.9.2",
|
"daisyui": "3.9.3",
|
||||||
"i18next": "23.5.1",
|
"i18next": "23.5.1",
|
||||||
"lodash.get": "4.4.2",
|
"lodash.get": "4.4.2",
|
||||||
"lodash.orderby": "4.6.0",
|
"lodash.orderby": "4.6.0",
|
||||||
"lodash.set": "4.3.2",
|
"lodash.set": "4.3.2",
|
||||||
"next": "13.5.4",
|
"next": "13.5.5",
|
||||||
"next-i18next": "14.0.0",
|
"next-i18next": "14.0.3",
|
||||||
"ora": "7.0.1",
|
"ora": "7.0.1",
|
||||||
"react": "18.2.0",
|
"react": "18.2.0",
|
||||||
"react-copy-to-clipboard": "5.1.0",
|
"react-copy-to-clipboard": "5.1.0",
|
||||||
|
|
98
sites/lab/pages/account/patterns/gozer/[id]/edit.mjs
Normal file
98
sites/lab/pages/account/patterns/gozer/[id]/edit.mjs
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
/*
|
||||||
|
* This page is auto-generated. Do not edit it by hand.
|
||||||
|
*/
|
||||||
|
import { Gozer } from 'designs/gozer/src/index.mjs'
|
||||||
|
// Dependencies
|
||||||
|
import { serverSideTranslations } from 'next-i18next/serverSideTranslations'
|
||||||
|
import { nsMerge } from 'shared/utils.mjs'
|
||||||
|
// Hooks
|
||||||
|
import { useState, useEffect, useContext } from 'react'
|
||||||
|
import { useTranslation } from 'next-i18next'
|
||||||
|
import { useBackend } from 'shared/hooks/use-backend.mjs'
|
||||||
|
// Context
|
||||||
|
import { LoadingStatusContext } from 'shared/context/loading-status-context.mjs'
|
||||||
|
// Components
|
||||||
|
import { PageWrapper, ns as pageNs } from 'shared/components/wrappers/page.mjs'
|
||||||
|
import { Workbench, ns as wbNs } from 'shared/components/workbench/new.mjs'
|
||||||
|
import { WorkbenchLayout } from 'site/components/layouts/workbench.mjs'
|
||||||
|
import { Loading } from 'shared/components/spinner.mjs'
|
||||||
|
|
||||||
|
// Translation namespaces used on this page
|
||||||
|
const ns = nsMerge('gozer', wbNs, pageNs)
|
||||||
|
|
||||||
|
const EditDesignComponent = ({ id, design, Design, settings, docs }) => (
|
||||||
|
<Workbench preload={{ settings }} saveAs={{ pattern: id }} {...{ design, Design, docs }} />
|
||||||
|
)
|
||||||
|
|
||||||
|
const EditGozerPage = ({ page, docs, id }) => {
|
||||||
|
const { setLoadingStatus } = useContext(LoadingStatusContext)
|
||||||
|
const backend = useBackend()
|
||||||
|
const { t } = useTranslation(ns)
|
||||||
|
|
||||||
|
const [pattern, setPattern] = useState(false)
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const getPattern = async () => {
|
||||||
|
setLoadingStatus([true, t('backendLoadingStarted')])
|
||||||
|
let result
|
||||||
|
try {
|
||||||
|
result = await backend.getPattern(id)
|
||||||
|
if (result.success) {
|
||||||
|
setPattern(result.data.pattern)
|
||||||
|
setLoadingStatus([true, 'backendLoadingCompleted', true, true])
|
||||||
|
} else setLoadingStatus([true, 'backendError', true, false])
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err)
|
||||||
|
setLoadingStatus([true, 'backendError', true, false])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (id) getPattern()
|
||||||
|
}, [id])
|
||||||
|
|
||||||
|
return (
|
||||||
|
// prettier-ignore
|
||||||
|
<PageWrapper {...page} title="Gozer" layout={pattern ? WorkbenchLayout : false} header={null}>
|
||||||
|
{pattern ? (
|
||||||
|
<EditDesignComponent
|
||||||
|
id={pattern.id}
|
||||||
|
settings={pattern.settings}
|
||||||
|
design="gozer"
|
||||||
|
Design={Gozer}
|
||||||
|
docs={docs}
|
||||||
|
/>
|
||||||
|
) : (
|
||||||
|
<div>
|
||||||
|
<h1>{t('account:oneMomentPLease')}</h1>
|
||||||
|
<Loading />
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</PageWrapper>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default EditGozerPage
|
||||||
|
|
||||||
|
export async function getStaticProps({ locale, params }) {
|
||||||
|
return {
|
||||||
|
props: {
|
||||||
|
...(await serverSideTranslations(locale, ns)),
|
||||||
|
id: params.id,
|
||||||
|
page: {
|
||||||
|
locale,
|
||||||
|
path: ['account', 'patterns', 'gozer', params.id, 'edit'],
|
||||||
|
title: 'Gozer',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* getStaticPaths() is used to specify for which routes (think URLs)
|
||||||
|
* this page should be used to generate the result.
|
||||||
|
*/
|
||||||
|
export async function getStaticPaths() {
|
||||||
|
return {
|
||||||
|
paths: [],
|
||||||
|
fallback: 'blocking',
|
||||||
|
}
|
||||||
|
}
|
98
sites/lab/pages/account/patterns/skully/[id]/edit.mjs
Normal file
98
sites/lab/pages/account/patterns/skully/[id]/edit.mjs
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
/*
|
||||||
|
* This page is auto-generated. Do not edit it by hand.
|
||||||
|
*/
|
||||||
|
import { Skully } from 'designs/skully/src/index.mjs'
|
||||||
|
// Dependencies
|
||||||
|
import { serverSideTranslations } from 'next-i18next/serverSideTranslations'
|
||||||
|
import { nsMerge } from 'shared/utils.mjs'
|
||||||
|
// Hooks
|
||||||
|
import { useState, useEffect, useContext } from 'react'
|
||||||
|
import { useTranslation } from 'next-i18next'
|
||||||
|
import { useBackend } from 'shared/hooks/use-backend.mjs'
|
||||||
|
// Context
|
||||||
|
import { LoadingStatusContext } from 'shared/context/loading-status-context.mjs'
|
||||||
|
// Components
|
||||||
|
import { PageWrapper, ns as pageNs } from 'shared/components/wrappers/page.mjs'
|
||||||
|
import { Workbench, ns as wbNs } from 'shared/components/workbench/new.mjs'
|
||||||
|
import { WorkbenchLayout } from 'site/components/layouts/workbench.mjs'
|
||||||
|
import { Loading } from 'shared/components/spinner.mjs'
|
||||||
|
|
||||||
|
// Translation namespaces used on this page
|
||||||
|
const ns = nsMerge('skully', wbNs, pageNs)
|
||||||
|
|
||||||
|
const EditDesignComponent = ({ id, design, Design, settings, docs }) => (
|
||||||
|
<Workbench preload={{ settings }} saveAs={{ pattern: id }} {...{ design, Design, docs }} />
|
||||||
|
)
|
||||||
|
|
||||||
|
const EditSkullyPage = ({ page, docs, id }) => {
|
||||||
|
const { setLoadingStatus } = useContext(LoadingStatusContext)
|
||||||
|
const backend = useBackend()
|
||||||
|
const { t } = useTranslation(ns)
|
||||||
|
|
||||||
|
const [pattern, setPattern] = useState(false)
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const getPattern = async () => {
|
||||||
|
setLoadingStatus([true, t('backendLoadingStarted')])
|
||||||
|
let result
|
||||||
|
try {
|
||||||
|
result = await backend.getPattern(id)
|
||||||
|
if (result.success) {
|
||||||
|
setPattern(result.data.pattern)
|
||||||
|
setLoadingStatus([true, 'backendLoadingCompleted', true, true])
|
||||||
|
} else setLoadingStatus([true, 'backendError', true, false])
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err)
|
||||||
|
setLoadingStatus([true, 'backendError', true, false])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (id) getPattern()
|
||||||
|
}, [id])
|
||||||
|
|
||||||
|
return (
|
||||||
|
// prettier-ignore
|
||||||
|
<PageWrapper {...page} title="Skully" layout={pattern ? WorkbenchLayout : false} header={null}>
|
||||||
|
{pattern ? (
|
||||||
|
<EditDesignComponent
|
||||||
|
id={pattern.id}
|
||||||
|
settings={pattern.settings}
|
||||||
|
design="skully"
|
||||||
|
Design={Skully}
|
||||||
|
docs={docs}
|
||||||
|
/>
|
||||||
|
) : (
|
||||||
|
<div>
|
||||||
|
<h1>{t('account:oneMomentPLease')}</h1>
|
||||||
|
<Loading />
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</PageWrapper>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default EditSkullyPage
|
||||||
|
|
||||||
|
export async function getStaticProps({ locale, params }) {
|
||||||
|
return {
|
||||||
|
props: {
|
||||||
|
...(await serverSideTranslations(locale, ns)),
|
||||||
|
id: params.id,
|
||||||
|
page: {
|
||||||
|
locale,
|
||||||
|
path: ['account', 'patterns', 'skully', params.id, 'edit'],
|
||||||
|
title: 'Skully',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* getStaticPaths() is used to specify for which routes (think URLs)
|
||||||
|
* this page should be used to generate the result.
|
||||||
|
*/
|
||||||
|
export async function getStaticPaths() {
|
||||||
|
return {
|
||||||
|
paths: [],
|
||||||
|
fallback: 'blocking',
|
||||||
|
}
|
||||||
|
}
|
41
sites/lab/pages/new/gozer.mjs
Normal file
41
sites/lab/pages/new/gozer.mjs
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
/*
|
||||||
|
* This page is auto-generated. Do not edit it by hand.
|
||||||
|
*/
|
||||||
|
import { Gozer } from 'designs/gozer/src/index.mjs'
|
||||||
|
// Dependencies
|
||||||
|
import { serverSideTranslations } from 'next-i18next/serverSideTranslations'
|
||||||
|
import { nsMerge } from 'shared/utils.mjs'
|
||||||
|
// Components
|
||||||
|
import { PageWrapper, ns as pageNs } from 'shared/components/wrappers/page.mjs'
|
||||||
|
import { Workbench, ns as wbNs } from 'shared/components/workbench/new.mjs'
|
||||||
|
import { WorkbenchLayout } from 'site/components/layouts/workbench.mjs'
|
||||||
|
|
||||||
|
// Translation namespaces used on this page
|
||||||
|
const ns = nsMerge('gozer', wbNs, pageNs)
|
||||||
|
|
||||||
|
const NewGozerPage = ({ page, docs }) => (
|
||||||
|
<PageWrapper {...page} title="Gozer" layout={WorkbenchLayout} header={null}>
|
||||||
|
<Workbench
|
||||||
|
{...{
|
||||||
|
design: 'gozer',
|
||||||
|
Design: Gozer,
|
||||||
|
docs,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</PageWrapper>
|
||||||
|
)
|
||||||
|
|
||||||
|
export default NewGozerPage
|
||||||
|
|
||||||
|
export async function getStaticProps({ locale }) {
|
||||||
|
return {
|
||||||
|
props: {
|
||||||
|
...(await serverSideTranslations(locale, ns)),
|
||||||
|
page: {
|
||||||
|
locale,
|
||||||
|
path: ['new', 'gozer'],
|
||||||
|
title: 'Gozer',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
41
sites/lab/pages/new/skully.mjs
Normal file
41
sites/lab/pages/new/skully.mjs
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
/*
|
||||||
|
* This page is auto-generated. Do not edit it by hand.
|
||||||
|
*/
|
||||||
|
import { Skully } from 'designs/skully/src/index.mjs'
|
||||||
|
// Dependencies
|
||||||
|
import { serverSideTranslations } from 'next-i18next/serverSideTranslations'
|
||||||
|
import { nsMerge } from 'shared/utils.mjs'
|
||||||
|
// Components
|
||||||
|
import { PageWrapper, ns as pageNs } from 'shared/components/wrappers/page.mjs'
|
||||||
|
import { Workbench, ns as wbNs } from 'shared/components/workbench/new.mjs'
|
||||||
|
import { WorkbenchLayout } from 'site/components/layouts/workbench.mjs'
|
||||||
|
|
||||||
|
// Translation namespaces used on this page
|
||||||
|
const ns = nsMerge('skully', wbNs, pageNs)
|
||||||
|
|
||||||
|
const NewSkullyPage = ({ page, docs }) => (
|
||||||
|
<PageWrapper {...page} title="Skully" layout={WorkbenchLayout} header={null}>
|
||||||
|
<Workbench
|
||||||
|
{...{
|
||||||
|
design: 'skully',
|
||||||
|
Design: Skully,
|
||||||
|
docs,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</PageWrapper>
|
||||||
|
)
|
||||||
|
|
||||||
|
export default NewSkullyPage
|
||||||
|
|
||||||
|
export async function getStaticProps({ locale }) {
|
||||||
|
return {
|
||||||
|
props: {
|
||||||
|
...(await serverSideTranslations(locale, ns)),
|
||||||
|
page: {
|
||||||
|
locale,
|
||||||
|
path: ['new', 'skully'],
|
||||||
|
title: 'Skully',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
|
@ -20,6 +20,7 @@ import { Cornelius as cornelius } from '@freesewing/cornelius'
|
||||||
import { Diana as diana } from '@freesewing/diana'
|
import { Diana as diana } from '@freesewing/diana'
|
||||||
import { Florence as florence } from '@freesewing/florence'
|
import { Florence as florence } from '@freesewing/florence'
|
||||||
import { Florent as florent } from '@freesewing/florent'
|
import { Florent as florent } from '@freesewing/florent'
|
||||||
|
import { Gozer as gozer } from '@freesewing/gozer'
|
||||||
import { Hi as hi } from '@freesewing/hi'
|
import { Hi as hi } from '@freesewing/hi'
|
||||||
import { Holmes as holmes } from '@freesewing/holmes'
|
import { Holmes as holmes } from '@freesewing/holmes'
|
||||||
import { Hortensia as hortensia } from '@freesewing/hortensia'
|
import { Hortensia as hortensia } from '@freesewing/hortensia'
|
||||||
|
@ -70,6 +71,7 @@ const designs = {
|
||||||
diana,
|
diana,
|
||||||
florence,
|
florence,
|
||||||
florent,
|
florent,
|
||||||
|
gozer,
|
||||||
hi,
|
hi,
|
||||||
holmes,
|
holmes,
|
||||||
hortensia,
|
hortensia,
|
||||||
|
|
|
@ -36,8 +36,8 @@
|
||||||
"@tailwindcss/typography": "0.5.9",
|
"@tailwindcss/typography": "0.5.9",
|
||||||
"algoliasearch": "4.20.0",
|
"algoliasearch": "4.20.0",
|
||||||
"react-copy-to-clipboard": "5.1.0",
|
"react-copy-to-clipboard": "5.1.0",
|
||||||
"daisyui": "3.9.2",
|
"daisyui": "3.9.3",
|
||||||
"echarts": "5.4.2",
|
"echarts": "5.4.3",
|
||||||
"echarts-for-react": "3.0.2",
|
"echarts-for-react": "3.0.2",
|
||||||
"jotai": "2.4.3",
|
"jotai": "2.4.3",
|
||||||
"jotai-location": "0.5.1",
|
"jotai-location": "0.5.1",
|
||||||
|
|
98
sites/org/pages/account/patterns/gozer/[id]/edit.mjs
Normal file
98
sites/org/pages/account/patterns/gozer/[id]/edit.mjs
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
/*
|
||||||
|
* This page is auto-generated. Do not edit it by hand.
|
||||||
|
*/
|
||||||
|
import { Gozer } from 'designs/gozer/src/index.mjs'
|
||||||
|
// Dependencies
|
||||||
|
import { serverSideTranslations } from 'next-i18next/serverSideTranslations'
|
||||||
|
import { nsMerge } from 'shared/utils.mjs'
|
||||||
|
// Hooks
|
||||||
|
import { useState, useEffect, useContext } from 'react'
|
||||||
|
import { useTranslation } from 'next-i18next'
|
||||||
|
import { useBackend } from 'shared/hooks/use-backend.mjs'
|
||||||
|
// Context
|
||||||
|
import { LoadingStatusContext } from 'shared/context/loading-status-context.mjs'
|
||||||
|
// Components
|
||||||
|
import { PageWrapper, ns as pageNs } from 'shared/components/wrappers/page.mjs'
|
||||||
|
import { Workbench, ns as wbNs } from 'shared/components/workbench/new.mjs'
|
||||||
|
import { WorkbenchLayout } from 'site/components/layouts/workbench.mjs'
|
||||||
|
import { Loading } from 'shared/components/spinner.mjs'
|
||||||
|
|
||||||
|
// Translation namespaces used on this page
|
||||||
|
const ns = nsMerge('gozer', wbNs, pageNs)
|
||||||
|
|
||||||
|
const EditDesignComponent = ({ id, design, Design, settings, docs }) => (
|
||||||
|
<Workbench preload={{ settings }} saveAs={{ pattern: id }} {...{ design, Design, docs }} />
|
||||||
|
)
|
||||||
|
|
||||||
|
const EditGozerPage = ({ page, docs, id }) => {
|
||||||
|
const { setLoadingStatus } = useContext(LoadingStatusContext)
|
||||||
|
const backend = useBackend()
|
||||||
|
const { t } = useTranslation(ns)
|
||||||
|
|
||||||
|
const [pattern, setPattern] = useState(false)
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const getPattern = async () => {
|
||||||
|
setLoadingStatus([true, t('backendLoadingStarted')])
|
||||||
|
let result
|
||||||
|
try {
|
||||||
|
result = await backend.getPattern(id)
|
||||||
|
if (result.success) {
|
||||||
|
setPattern(result.data.pattern)
|
||||||
|
setLoadingStatus([true, 'backendLoadingCompleted', true, true])
|
||||||
|
} else setLoadingStatus([true, 'backendError', true, false])
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err)
|
||||||
|
setLoadingStatus([true, 'backendError', true, false])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (id) getPattern()
|
||||||
|
}, [id])
|
||||||
|
|
||||||
|
return (
|
||||||
|
// prettier-ignore
|
||||||
|
<PageWrapper {...page} title="Gozer" layout={pattern ? WorkbenchLayout : false} header={null}>
|
||||||
|
{pattern ? (
|
||||||
|
<EditDesignComponent
|
||||||
|
id={pattern.id}
|
||||||
|
settings={pattern.settings}
|
||||||
|
design="gozer"
|
||||||
|
Design={Gozer}
|
||||||
|
docs={docs}
|
||||||
|
/>
|
||||||
|
) : (
|
||||||
|
<div>
|
||||||
|
<h1>{t('account:oneMomentPLease')}</h1>
|
||||||
|
<Loading />
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</PageWrapper>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default EditGozerPage
|
||||||
|
|
||||||
|
export async function getStaticProps({ locale, params }) {
|
||||||
|
return {
|
||||||
|
props: {
|
||||||
|
...(await serverSideTranslations(locale, ns)),
|
||||||
|
id: params.id,
|
||||||
|
page: {
|
||||||
|
locale,
|
||||||
|
path: ['account', 'patterns', 'gozer', params.id, 'edit'],
|
||||||
|
title: 'Gozer',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* getStaticPaths() is used to specify for which routes (think URLs)
|
||||||
|
* this page should be used to generate the result.
|
||||||
|
*/
|
||||||
|
export async function getStaticPaths() {
|
||||||
|
return {
|
||||||
|
paths: [],
|
||||||
|
fallback: 'blocking',
|
||||||
|
}
|
||||||
|
}
|
41
sites/org/pages/new/gozer.mjs
Normal file
41
sites/org/pages/new/gozer.mjs
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
/*
|
||||||
|
* This page is auto-generated. Do not edit it by hand.
|
||||||
|
*/
|
||||||
|
import { Gozer } from 'designs/gozer/src/index.mjs'
|
||||||
|
// Dependencies
|
||||||
|
import { serverSideTranslations } from 'next-i18next/serverSideTranslations'
|
||||||
|
import { nsMerge } from 'shared/utils.mjs'
|
||||||
|
// Components
|
||||||
|
import { PageWrapper, ns as pageNs } from 'shared/components/wrappers/page.mjs'
|
||||||
|
import { Workbench, ns as wbNs } from 'shared/components/workbench/new.mjs'
|
||||||
|
import { WorkbenchLayout } from 'site/components/layouts/workbench.mjs'
|
||||||
|
|
||||||
|
// Translation namespaces used on this page
|
||||||
|
const ns = nsMerge('gozer', wbNs, pageNs)
|
||||||
|
|
||||||
|
const NewGozerPage = ({ page, docs }) => (
|
||||||
|
<PageWrapper {...page} title="Gozer" layout={WorkbenchLayout} header={null}>
|
||||||
|
<Workbench
|
||||||
|
{...{
|
||||||
|
design: 'gozer',
|
||||||
|
Design: Gozer,
|
||||||
|
docs,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</PageWrapper>
|
||||||
|
)
|
||||||
|
|
||||||
|
export default NewGozerPage
|
||||||
|
|
||||||
|
export async function getStaticProps({ locale }) {
|
||||||
|
return {
|
||||||
|
props: {
|
||||||
|
...(await serverSideTranslations(locale, ns)),
|
||||||
|
page: {
|
||||||
|
locale,
|
||||||
|
path: ['new', 'gozer'],
|
||||||
|
title: 'Gozer',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
|
@ -48,7 +48,7 @@
|
||||||
"d3-dispatch": "3.0.1",
|
"d3-dispatch": "3.0.1",
|
||||||
"d3-drag": "3.0.0",
|
"d3-drag": "3.0.0",
|
||||||
"d3-selection": "3.0.0",
|
"d3-selection": "3.0.0",
|
||||||
"daisyui": "3.9.2",
|
"daisyui": "3.9.3",
|
||||||
"file-saver": "2.0.5",
|
"file-saver": "2.0.5",
|
||||||
"i18next": "23.5.1",
|
"i18next": "23.5.1",
|
||||||
"jotai": "2.4.3",
|
"jotai": "2.4.3",
|
||||||
|
@ -59,8 +59,8 @@
|
||||||
"lodash.orderby": "4.6.0",
|
"lodash.orderby": "4.6.0",
|
||||||
"lodash.set": "4.3.2",
|
"lodash.set": "4.3.2",
|
||||||
"mustache": "4.2.0",
|
"mustache": "4.2.0",
|
||||||
"next": "13.5.4",
|
"next": "13.5.5",
|
||||||
"next-i18next": "14.0.0",
|
"next-i18next": "14.0.3",
|
||||||
"pdfkit": "0.13.0",
|
"pdfkit": "0.13.0",
|
||||||
"postcss-for": "2.1.1",
|
"postcss-for": "2.1.1",
|
||||||
"react": "18.2.0",
|
"react": "18.2.0",
|
||||||
|
@ -71,7 +71,7 @@
|
||||||
"react-dropzone": "14.2.3",
|
"react-dropzone": "14.2.3",
|
||||||
"react-swipeable": "7.0.1",
|
"react-swipeable": "7.0.1",
|
||||||
"react-timeago": "7.2.0",
|
"react-timeago": "7.2.0",
|
||||||
"react-zoom-pan-pinch": "3.1.0",
|
"react-zoom-pan-pinch": "3.2.0",
|
||||||
"remark-gfm": "3.0.1",
|
"remark-gfm": "3.0.1",
|
||||||
"remark-frontmatter": "4.0.1",
|
"remark-frontmatter": "4.0.1",
|
||||||
"remark-mdx-frontmatter": "3.0.0",
|
"remark-mdx-frontmatter": "3.0.0",
|
||||||
|
|
|
@ -21,6 +21,7 @@ import { i18n as diana } from '@freesewing/diana'
|
||||||
import { i18n as examples } from '@freesewing/examples'
|
import { i18n as examples } from '@freesewing/examples'
|
||||||
import { i18n as florence } from '@freesewing/florence'
|
import { i18n as florence } from '@freesewing/florence'
|
||||||
import { i18n as florent } from '@freesewing/florent'
|
import { i18n as florent } from '@freesewing/florent'
|
||||||
|
import { i18n as gozer } from '@freesewing/gozer'
|
||||||
import { i18n as hi } from '@freesewing/hi'
|
import { i18n as hi } from '@freesewing/hi'
|
||||||
import { i18n as holmes } from '@freesewing/holmes'
|
import { i18n as holmes } from '@freesewing/holmes'
|
||||||
import { i18n as hortensia } from '@freesewing/hortensia'
|
import { i18n as hortensia } from '@freesewing/hortensia'
|
||||||
|
@ -76,6 +77,7 @@ export const designs = {
|
||||||
examples,
|
examples,
|
||||||
florence,
|
florence,
|
||||||
florent,
|
florent,
|
||||||
|
gozer,
|
||||||
hi,
|
hi,
|
||||||
holmes,
|
holmes,
|
||||||
hortensia,
|
hortensia,
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
"d3-dispatch": "3.0.1",
|
"d3-dispatch": "3.0.1",
|
||||||
"d3-drag": "3.0.0",
|
"d3-drag": "3.0.0",
|
||||||
"d3-selection": "3.0.0",
|
"d3-selection": "3.0.0",
|
||||||
"daisyui": "3.9.2",
|
"daisyui": "3.9.3",
|
||||||
"feed": "4.2.2",
|
"feed": "4.2.2",
|
||||||
"file-saver": "2.0.5",
|
"file-saver": "2.0.5",
|
||||||
"front-matter": "4.0.2",
|
"front-matter": "4.0.2",
|
||||||
|
@ -44,7 +44,7 @@
|
||||||
"react": "18.2.0",
|
"react": "18.2.0",
|
||||||
"react-dom": "18.2.0",
|
"react-dom": "18.2.0",
|
||||||
"react-timeago": "7.2.0",
|
"react-timeago": "7.2.0",
|
||||||
"react-zoom-pan-pinch": "3.1.0",
|
"react-zoom-pan-pinch": "3.2.0",
|
||||||
"rehype-autolink-headings": "7.0.0",
|
"rehype-autolink-headings": "7.0.0",
|
||||||
"rehype-highlight": "7.0.0",
|
"rehype-highlight": "7.0.0",
|
||||||
"remark-frontmatter": "4.0.1",
|
"remark-frontmatter": "4.0.1",
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,3 +1,3 @@
|
||||||
// __SDEFILE__ - This file is a dependency for the stand-alone environment
|
// __SDEFILE__ - This file is a dependency for the stand-alone environment
|
||||||
// This file is auto-generated by the prebuild script | Any changes will be overwritten
|
// This file is auto-generated by the prebuild script | Any changes will be overwritten
|
||||||
export const designs = ["aaron","albert","bee","bella","benjamin","bent","bob","breanna","brian","bruce","carlita","carlton","cathrin","charlie","cornelius","diana","examples","florence","florent","hi","holmes","hortensia","huey","hugo","jaeger","legend","lucy","lunetius","magde","noble","octoplushy","paco","penelope","plugintest","rendertest","sandy","shelly","shin","simon","simone","skully","sven","tamiko","teagan","tiberius","titan","trayvon","uma","wahid","walburga","waralee","yuri","otis"]
|
export const designs = ["aaron","albert","bee","bella","benjamin","bent","bob","breanna","brian","bruce","carlita","carlton","cathrin","charlie","cornelius","diana","examples","florence","florent","gozer","hi","holmes","hortensia","huey","hugo","jaeger","legend","lucy","lunetius","magde","noble","octoplushy","paco","penelope","plugintest","rendertest","sandy","shelly","shin","simon","simone","skully","sven","tamiko","teagan","tiberius","titan","trayvon","uma","wahid","walburga","waralee","yuri","otis"]
|
||||||
|
|
511
yarn.lock
511
yarn.lock
|
@ -197,35 +197,35 @@
|
||||||
"@aws-sdk/util-utf8-browser" "^3.0.0"
|
"@aws-sdk/util-utf8-browser" "^3.0.0"
|
||||||
tslib "^1.11.1"
|
tslib "^1.11.1"
|
||||||
|
|
||||||
"@aws-sdk/client-sesv2@3.429.0":
|
"@aws-sdk/client-sesv2@3.430.0":
|
||||||
version "3.429.0"
|
version "3.430.0"
|
||||||
resolved "https://registry.yarnpkg.com/@aws-sdk/client-sesv2/-/client-sesv2-3.429.0.tgz#c637e7c820e929568545dee9320b71f0c561199b"
|
resolved "https://registry.yarnpkg.com/@aws-sdk/client-sesv2/-/client-sesv2-3.430.0.tgz#35966fa6b356978926c3cbd2472c3798c1971654"
|
||||||
integrity sha512-NIK5DWFK7XlOnynMxbJ2XAnXVeUd+Hak4dfrVGxprtu3piYC9QcXtDNpiZH2PD1QZlFv44r4Hq1Oi7vcrTw3cw==
|
integrity sha512-KRFZZCsR+AcIjj0cwVjexi6TOkLhEI6ejC7kpgh8d9fN3p08FkdeipP6o+u73whDY9sB2S7gc+7hkbkeYemTAw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@aws-crypto/sha256-browser" "3.0.0"
|
"@aws-crypto/sha256-browser" "3.0.0"
|
||||||
"@aws-crypto/sha256-js" "3.0.0"
|
"@aws-crypto/sha256-js" "3.0.0"
|
||||||
"@aws-sdk/client-sts" "3.429.0"
|
"@aws-sdk/client-sts" "3.430.0"
|
||||||
"@aws-sdk/credential-provider-node" "3.429.0"
|
"@aws-sdk/credential-provider-node" "3.430.0"
|
||||||
"@aws-sdk/middleware-host-header" "3.429.0"
|
"@aws-sdk/middleware-host-header" "3.429.0"
|
||||||
"@aws-sdk/middleware-logger" "3.428.0"
|
"@aws-sdk/middleware-logger" "3.428.0"
|
||||||
"@aws-sdk/middleware-recursion-detection" "3.428.0"
|
"@aws-sdk/middleware-recursion-detection" "3.428.0"
|
||||||
"@aws-sdk/middleware-signing" "3.428.0"
|
"@aws-sdk/middleware-signing" "3.428.0"
|
||||||
"@aws-sdk/middleware-user-agent" "3.428.0"
|
"@aws-sdk/middleware-user-agent" "3.428.0"
|
||||||
"@aws-sdk/region-config-resolver" "3.428.0"
|
"@aws-sdk/region-config-resolver" "3.430.0"
|
||||||
"@aws-sdk/types" "3.428.0"
|
"@aws-sdk/types" "3.428.0"
|
||||||
"@aws-sdk/util-endpoints" "3.428.0"
|
"@aws-sdk/util-endpoints" "3.428.0"
|
||||||
"@aws-sdk/util-user-agent-browser" "3.428.0"
|
"@aws-sdk/util-user-agent-browser" "3.428.0"
|
||||||
"@aws-sdk/util-user-agent-node" "3.428.0"
|
"@aws-sdk/util-user-agent-node" "3.430.0"
|
||||||
"@smithy/config-resolver" "^2.0.14"
|
"@smithy/config-resolver" "^2.0.15"
|
||||||
"@smithy/fetch-http-handler" "^2.2.3"
|
"@smithy/fetch-http-handler" "^2.2.3"
|
||||||
"@smithy/hash-node" "^2.0.11"
|
"@smithy/hash-node" "^2.0.11"
|
||||||
"@smithy/invalid-dependency" "^2.0.11"
|
"@smithy/invalid-dependency" "^2.0.11"
|
||||||
"@smithy/middleware-content-length" "^2.0.13"
|
"@smithy/middleware-content-length" "^2.0.13"
|
||||||
"@smithy/middleware-endpoint" "^2.1.1"
|
"@smithy/middleware-endpoint" "^2.1.2"
|
||||||
"@smithy/middleware-retry" "^2.0.16"
|
"@smithy/middleware-retry" "^2.0.17"
|
||||||
"@smithy/middleware-serde" "^2.0.11"
|
"@smithy/middleware-serde" "^2.0.11"
|
||||||
"@smithy/middleware-stack" "^2.0.5"
|
"@smithy/middleware-stack" "^2.0.5"
|
||||||
"@smithy/node-config-provider" "^2.1.1"
|
"@smithy/node-config-provider" "^2.1.2"
|
||||||
"@smithy/node-http-handler" "^2.1.7"
|
"@smithy/node-http-handler" "^2.1.7"
|
||||||
"@smithy/protocol-http" "^3.0.7"
|
"@smithy/protocol-http" "^3.0.7"
|
||||||
"@smithy/smithy-client" "^2.1.11"
|
"@smithy/smithy-client" "^2.1.11"
|
||||||
|
@ -235,15 +235,15 @@
|
||||||
"@smithy/util-body-length-browser" "^2.0.0"
|
"@smithy/util-body-length-browser" "^2.0.0"
|
||||||
"@smithy/util-body-length-node" "^2.1.0"
|
"@smithy/util-body-length-node" "^2.1.0"
|
||||||
"@smithy/util-defaults-mode-browser" "^2.0.15"
|
"@smithy/util-defaults-mode-browser" "^2.0.15"
|
||||||
"@smithy/util-defaults-mode-node" "^2.0.19"
|
"@smithy/util-defaults-mode-node" "^2.0.20"
|
||||||
"@smithy/util-retry" "^2.0.4"
|
"@smithy/util-retry" "^2.0.4"
|
||||||
"@smithy/util-utf8" "^2.0.0"
|
"@smithy/util-utf8" "^2.0.0"
|
||||||
tslib "^2.5.0"
|
tslib "^2.5.0"
|
||||||
|
|
||||||
"@aws-sdk/client-sso@3.429.0":
|
"@aws-sdk/client-sso@3.430.0":
|
||||||
version "3.429.0"
|
version "3.430.0"
|
||||||
resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.429.0.tgz#756e47451621476a01b7b0a860a0479fb242c2b8"
|
resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.430.0.tgz#0ae8371a89ea1bed02c4927d73eeded5962af581"
|
||||||
integrity sha512-Bz802NpXUrFI1KB9uu1GwCbmi0xpw+GY6+TIyaGTXbGQjg4fYOJQLUtMxmb1c1/qUTZX/x5qetF3QBwgpBbLug==
|
integrity sha512-NxQJkTZCgl6LpdY12MCwsqGned6Ax19WsTCGLEiA/tsNE4vNrYLHHBR317G0sGWbIUQuhwsoM7wIrqJO7CacuQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@aws-crypto/sha256-browser" "3.0.0"
|
"@aws-crypto/sha256-browser" "3.0.0"
|
||||||
"@aws-crypto/sha256-js" "3.0.0"
|
"@aws-crypto/sha256-js" "3.0.0"
|
||||||
|
@ -251,21 +251,21 @@
|
||||||
"@aws-sdk/middleware-logger" "3.428.0"
|
"@aws-sdk/middleware-logger" "3.428.0"
|
||||||
"@aws-sdk/middleware-recursion-detection" "3.428.0"
|
"@aws-sdk/middleware-recursion-detection" "3.428.0"
|
||||||
"@aws-sdk/middleware-user-agent" "3.428.0"
|
"@aws-sdk/middleware-user-agent" "3.428.0"
|
||||||
"@aws-sdk/region-config-resolver" "3.428.0"
|
"@aws-sdk/region-config-resolver" "3.430.0"
|
||||||
"@aws-sdk/types" "3.428.0"
|
"@aws-sdk/types" "3.428.0"
|
||||||
"@aws-sdk/util-endpoints" "3.428.0"
|
"@aws-sdk/util-endpoints" "3.428.0"
|
||||||
"@aws-sdk/util-user-agent-browser" "3.428.0"
|
"@aws-sdk/util-user-agent-browser" "3.428.0"
|
||||||
"@aws-sdk/util-user-agent-node" "3.428.0"
|
"@aws-sdk/util-user-agent-node" "3.430.0"
|
||||||
"@smithy/config-resolver" "^2.0.14"
|
"@smithy/config-resolver" "^2.0.15"
|
||||||
"@smithy/fetch-http-handler" "^2.2.3"
|
"@smithy/fetch-http-handler" "^2.2.3"
|
||||||
"@smithy/hash-node" "^2.0.11"
|
"@smithy/hash-node" "^2.0.11"
|
||||||
"@smithy/invalid-dependency" "^2.0.11"
|
"@smithy/invalid-dependency" "^2.0.11"
|
||||||
"@smithy/middleware-content-length" "^2.0.13"
|
"@smithy/middleware-content-length" "^2.0.13"
|
||||||
"@smithy/middleware-endpoint" "^2.1.1"
|
"@smithy/middleware-endpoint" "^2.1.2"
|
||||||
"@smithy/middleware-retry" "^2.0.16"
|
"@smithy/middleware-retry" "^2.0.17"
|
||||||
"@smithy/middleware-serde" "^2.0.11"
|
"@smithy/middleware-serde" "^2.0.11"
|
||||||
"@smithy/middleware-stack" "^2.0.5"
|
"@smithy/middleware-stack" "^2.0.5"
|
||||||
"@smithy/node-config-provider" "^2.1.1"
|
"@smithy/node-config-provider" "^2.1.2"
|
||||||
"@smithy/node-http-handler" "^2.1.7"
|
"@smithy/node-http-handler" "^2.1.7"
|
||||||
"@smithy/protocol-http" "^3.0.7"
|
"@smithy/protocol-http" "^3.0.7"
|
||||||
"@smithy/smithy-client" "^2.1.11"
|
"@smithy/smithy-client" "^2.1.11"
|
||||||
|
@ -275,40 +275,40 @@
|
||||||
"@smithy/util-body-length-browser" "^2.0.0"
|
"@smithy/util-body-length-browser" "^2.0.0"
|
||||||
"@smithy/util-body-length-node" "^2.1.0"
|
"@smithy/util-body-length-node" "^2.1.0"
|
||||||
"@smithy/util-defaults-mode-browser" "^2.0.15"
|
"@smithy/util-defaults-mode-browser" "^2.0.15"
|
||||||
"@smithy/util-defaults-mode-node" "^2.0.19"
|
"@smithy/util-defaults-mode-node" "^2.0.20"
|
||||||
"@smithy/util-retry" "^2.0.4"
|
"@smithy/util-retry" "^2.0.4"
|
||||||
"@smithy/util-utf8" "^2.0.0"
|
"@smithy/util-utf8" "^2.0.0"
|
||||||
tslib "^2.5.0"
|
tslib "^2.5.0"
|
||||||
|
|
||||||
"@aws-sdk/client-sts@3.429.0":
|
"@aws-sdk/client-sts@3.430.0":
|
||||||
version "3.429.0"
|
version "3.430.0"
|
||||||
resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.429.0.tgz#fa248b2ade0cd4354540b30a381643ca502318fc"
|
resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.430.0.tgz#cd906fb14cc5aeb5eeb38bd2de28c6ca9febedb6"
|
||||||
integrity sha512-yNRYHXqGIYjEGlpaIll9zJDsVOQWjwbvR2zfTpUwEtN4I17k/psjLAsznfTbq/4tEftkpAJ2pNsVrkHUOmCewA==
|
integrity sha512-njUY3QeZH0CG+tG/6jhoG+Zr7rI1aGoVkZi3l6woKTz57hIlkwu2jQlLbJujm7PKrLhPaN5+4AqBQuHFVgMobw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@aws-crypto/sha256-browser" "3.0.0"
|
"@aws-crypto/sha256-browser" "3.0.0"
|
||||||
"@aws-crypto/sha256-js" "3.0.0"
|
"@aws-crypto/sha256-js" "3.0.0"
|
||||||
"@aws-sdk/credential-provider-node" "3.429.0"
|
"@aws-sdk/credential-provider-node" "3.430.0"
|
||||||
"@aws-sdk/middleware-host-header" "3.429.0"
|
"@aws-sdk/middleware-host-header" "3.429.0"
|
||||||
"@aws-sdk/middleware-logger" "3.428.0"
|
"@aws-sdk/middleware-logger" "3.428.0"
|
||||||
"@aws-sdk/middleware-recursion-detection" "3.428.0"
|
"@aws-sdk/middleware-recursion-detection" "3.428.0"
|
||||||
"@aws-sdk/middleware-sdk-sts" "3.428.0"
|
"@aws-sdk/middleware-sdk-sts" "3.428.0"
|
||||||
"@aws-sdk/middleware-signing" "3.428.0"
|
"@aws-sdk/middleware-signing" "3.428.0"
|
||||||
"@aws-sdk/middleware-user-agent" "3.428.0"
|
"@aws-sdk/middleware-user-agent" "3.428.0"
|
||||||
"@aws-sdk/region-config-resolver" "3.428.0"
|
"@aws-sdk/region-config-resolver" "3.430.0"
|
||||||
"@aws-sdk/types" "3.428.0"
|
"@aws-sdk/types" "3.428.0"
|
||||||
"@aws-sdk/util-endpoints" "3.428.0"
|
"@aws-sdk/util-endpoints" "3.428.0"
|
||||||
"@aws-sdk/util-user-agent-browser" "3.428.0"
|
"@aws-sdk/util-user-agent-browser" "3.428.0"
|
||||||
"@aws-sdk/util-user-agent-node" "3.428.0"
|
"@aws-sdk/util-user-agent-node" "3.430.0"
|
||||||
"@smithy/config-resolver" "^2.0.14"
|
"@smithy/config-resolver" "^2.0.15"
|
||||||
"@smithy/fetch-http-handler" "^2.2.3"
|
"@smithy/fetch-http-handler" "^2.2.3"
|
||||||
"@smithy/hash-node" "^2.0.11"
|
"@smithy/hash-node" "^2.0.11"
|
||||||
"@smithy/invalid-dependency" "^2.0.11"
|
"@smithy/invalid-dependency" "^2.0.11"
|
||||||
"@smithy/middleware-content-length" "^2.0.13"
|
"@smithy/middleware-content-length" "^2.0.13"
|
||||||
"@smithy/middleware-endpoint" "^2.1.1"
|
"@smithy/middleware-endpoint" "^2.1.2"
|
||||||
"@smithy/middleware-retry" "^2.0.16"
|
"@smithy/middleware-retry" "^2.0.17"
|
||||||
"@smithy/middleware-serde" "^2.0.11"
|
"@smithy/middleware-serde" "^2.0.11"
|
||||||
"@smithy/middleware-stack" "^2.0.5"
|
"@smithy/middleware-stack" "^2.0.5"
|
||||||
"@smithy/node-config-provider" "^2.1.1"
|
"@smithy/node-config-provider" "^2.1.2"
|
||||||
"@smithy/node-http-handler" "^2.1.7"
|
"@smithy/node-http-handler" "^2.1.7"
|
||||||
"@smithy/protocol-http" "^3.0.7"
|
"@smithy/protocol-http" "^3.0.7"
|
||||||
"@smithy/smithy-client" "^2.1.11"
|
"@smithy/smithy-client" "^2.1.11"
|
||||||
|
@ -318,7 +318,7 @@
|
||||||
"@smithy/util-body-length-browser" "^2.0.0"
|
"@smithy/util-body-length-browser" "^2.0.0"
|
||||||
"@smithy/util-body-length-node" "^2.1.0"
|
"@smithy/util-body-length-node" "^2.1.0"
|
||||||
"@smithy/util-defaults-mode-browser" "^2.0.15"
|
"@smithy/util-defaults-mode-browser" "^2.0.15"
|
||||||
"@smithy/util-defaults-mode-node" "^2.0.19"
|
"@smithy/util-defaults-mode-node" "^2.0.20"
|
||||||
"@smithy/util-retry" "^2.0.4"
|
"@smithy/util-retry" "^2.0.4"
|
||||||
"@smithy/util-utf8" "^2.0.0"
|
"@smithy/util-utf8" "^2.0.0"
|
||||||
fast-xml-parser "4.2.5"
|
fast-xml-parser "4.2.5"
|
||||||
|
@ -334,14 +334,14 @@
|
||||||
"@smithy/types" "^2.3.5"
|
"@smithy/types" "^2.3.5"
|
||||||
tslib "^2.5.0"
|
tslib "^2.5.0"
|
||||||
|
|
||||||
"@aws-sdk/credential-provider-ini@3.429.0":
|
"@aws-sdk/credential-provider-ini@3.430.0":
|
||||||
version "3.429.0"
|
version "3.430.0"
|
||||||
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.429.0.tgz#436887f1fee1a3dc4ab35924a07cbf020f74f3bd"
|
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.430.0.tgz#003ba7475aa7eadecd0d7701437a90b1dadeca5a"
|
||||||
integrity sha512-rG1ecwU/8KojyXsx80tK/b+DDGqSbReakOm/db5fx2RzVnkAGdH9fvPNrhjjHZ1wGbPrUtXGmHGXP3eqnylazg==
|
integrity sha512-m3NcmDyVYr/w8RV9kMArrA/0982aXMsvoSXi4wFVbgg/T5hO+6i5CY7fB/0xpKIuEJ+rw63rYNnBzLwwW48kWg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@aws-sdk/credential-provider-env" "3.428.0"
|
"@aws-sdk/credential-provider-env" "3.428.0"
|
||||||
"@aws-sdk/credential-provider-process" "3.428.0"
|
"@aws-sdk/credential-provider-process" "3.428.0"
|
||||||
"@aws-sdk/credential-provider-sso" "3.429.0"
|
"@aws-sdk/credential-provider-sso" "3.430.0"
|
||||||
"@aws-sdk/credential-provider-web-identity" "3.428.0"
|
"@aws-sdk/credential-provider-web-identity" "3.428.0"
|
||||||
"@aws-sdk/types" "3.428.0"
|
"@aws-sdk/types" "3.428.0"
|
||||||
"@smithy/credential-provider-imds" "^2.0.0"
|
"@smithy/credential-provider-imds" "^2.0.0"
|
||||||
|
@ -350,15 +350,15 @@
|
||||||
"@smithy/types" "^2.3.5"
|
"@smithy/types" "^2.3.5"
|
||||||
tslib "^2.5.0"
|
tslib "^2.5.0"
|
||||||
|
|
||||||
"@aws-sdk/credential-provider-node@3.429.0":
|
"@aws-sdk/credential-provider-node@3.430.0":
|
||||||
version "3.429.0"
|
version "3.430.0"
|
||||||
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.429.0.tgz#801bfa9367470f551c1a4aa9d2686acafd8b54c6"
|
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.430.0.tgz#9f4fcac99b05753f06574add3e1509bed15b523c"
|
||||||
integrity sha512-XaXCIeF8UWAvqzXX/UaBQhICjyIjRksjuP0xMW+A23Nu4yPjYufuHL9AR4i6MVYEKP3inXHGAS7N0t35A8acOw==
|
integrity sha512-ItOHJcqOhpI0QM+aho5uMrk2ZP34hsdisMHxd8/6FT41U8TOe9kQKaZ2l2AsVf4QuM6RJe2LangcVGGstCf8Sw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@aws-sdk/credential-provider-env" "3.428.0"
|
"@aws-sdk/credential-provider-env" "3.428.0"
|
||||||
"@aws-sdk/credential-provider-ini" "3.429.0"
|
"@aws-sdk/credential-provider-ini" "3.430.0"
|
||||||
"@aws-sdk/credential-provider-process" "3.428.0"
|
"@aws-sdk/credential-provider-process" "3.428.0"
|
||||||
"@aws-sdk/credential-provider-sso" "3.429.0"
|
"@aws-sdk/credential-provider-sso" "3.430.0"
|
||||||
"@aws-sdk/credential-provider-web-identity" "3.428.0"
|
"@aws-sdk/credential-provider-web-identity" "3.428.0"
|
||||||
"@aws-sdk/types" "3.428.0"
|
"@aws-sdk/types" "3.428.0"
|
||||||
"@smithy/credential-provider-imds" "^2.0.0"
|
"@smithy/credential-provider-imds" "^2.0.0"
|
||||||
|
@ -378,13 +378,13 @@
|
||||||
"@smithy/types" "^2.3.5"
|
"@smithy/types" "^2.3.5"
|
||||||
tslib "^2.5.0"
|
tslib "^2.5.0"
|
||||||
|
|
||||||
"@aws-sdk/credential-provider-sso@3.429.0":
|
"@aws-sdk/credential-provider-sso@3.430.0":
|
||||||
version "3.429.0"
|
version "3.430.0"
|
||||||
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.429.0.tgz#4251950cdddb30722e7222c2ad09646608ec6bea"
|
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.430.0.tgz#9693dd6b85ffec2b8d05a9574957f4204308534e"
|
||||||
integrity sha512-Nx3/18ZxV/trGz3HAQD6eGxO5Goqx3U5YR+CJsWPBh+4Jwkoo+HC5cyxq6cJIcZ5n75Wc4kPt7Im4ffVjTaJIg==
|
integrity sha512-6de/aH9OFI+Ah7hL4alrZFqiNw5D6F+R92tLbIpFRQg7DxO/TuQTTtK94mLkft/AP/mGzVVBENjsyS1nJt166w==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@aws-sdk/client-sso" "3.429.0"
|
"@aws-sdk/client-sso" "3.430.0"
|
||||||
"@aws-sdk/token-providers" "3.429.0"
|
"@aws-sdk/token-providers" "3.430.0"
|
||||||
"@aws-sdk/types" "3.428.0"
|
"@aws-sdk/types" "3.428.0"
|
||||||
"@smithy/property-provider" "^2.0.0"
|
"@smithy/property-provider" "^2.0.0"
|
||||||
"@smithy/shared-ini-file-loader" "^2.0.6"
|
"@smithy/shared-ini-file-loader" "^2.0.6"
|
||||||
|
@ -464,21 +464,21 @@
|
||||||
"@smithy/types" "^2.3.5"
|
"@smithy/types" "^2.3.5"
|
||||||
tslib "^2.5.0"
|
tslib "^2.5.0"
|
||||||
|
|
||||||
"@aws-sdk/region-config-resolver@3.428.0":
|
"@aws-sdk/region-config-resolver@3.430.0":
|
||||||
version "3.428.0"
|
version "3.430.0"
|
||||||
resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.428.0.tgz#c275998078cbd784febd212e987e546905efafc7"
|
resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.430.0.tgz#c7fe238e9771da91bafe7016afda21305a661473"
|
||||||
integrity sha512-VqyHZ/Hoz3WrXXMx8cAhFBl8IpjodbRsTjBI117QPq1YRCegxNdGvqmGZnJj8N2Ef9MP1iU30ZWQB+sviDcogA==
|
integrity sha512-9lqgtkcd4dqsQ2yN6V/i06blyDh4yLmS+fAS7LwEZih/NZZ2cBIR+5kb9c236auvTcuMcL1zFxVRloWwesYZjA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@smithy/node-config-provider" "^2.1.1"
|
"@smithy/node-config-provider" "^2.1.2"
|
||||||
"@smithy/types" "^2.3.5"
|
"@smithy/types" "^2.3.5"
|
||||||
"@smithy/util-config-provider" "^2.0.0"
|
"@smithy/util-config-provider" "^2.0.0"
|
||||||
"@smithy/util-middleware" "^2.0.4"
|
"@smithy/util-middleware" "^2.0.4"
|
||||||
tslib "^2.5.0"
|
tslib "^2.5.0"
|
||||||
|
|
||||||
"@aws-sdk/token-providers@3.429.0":
|
"@aws-sdk/token-providers@3.430.0":
|
||||||
version "3.429.0"
|
version "3.430.0"
|
||||||
resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.429.0.tgz#e952cfe55276ed75aa41f378a66341a2cfecb65e"
|
resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.430.0.tgz#f5d20454c62ff65e5981d35b5a9b7660263bcc06"
|
||||||
integrity sha512-1Lp5XW/aSHekMURfcoxhWR2ig0UlesD0wC1kcdrkhZGCPtvCE0VzMqgTmYkwtPKOWfRQf0qfu468ohBHBmzHdA==
|
integrity sha512-vE+QnqG0A4MWhMEFXXPg8gPXjw03b4Q3XZbHyrANoZ+tVrzh8JhpHIcbkesGh6WrjirNqId0UghzI9VanKxsLw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@aws-crypto/sha256-browser" "3.0.0"
|
"@aws-crypto/sha256-browser" "3.0.0"
|
||||||
"@aws-crypto/sha256-js" "3.0.0"
|
"@aws-crypto/sha256-js" "3.0.0"
|
||||||
|
@ -489,17 +489,17 @@
|
||||||
"@aws-sdk/types" "3.428.0"
|
"@aws-sdk/types" "3.428.0"
|
||||||
"@aws-sdk/util-endpoints" "3.428.0"
|
"@aws-sdk/util-endpoints" "3.428.0"
|
||||||
"@aws-sdk/util-user-agent-browser" "3.428.0"
|
"@aws-sdk/util-user-agent-browser" "3.428.0"
|
||||||
"@aws-sdk/util-user-agent-node" "3.428.0"
|
"@aws-sdk/util-user-agent-node" "3.430.0"
|
||||||
"@smithy/config-resolver" "^2.0.14"
|
"@smithy/config-resolver" "^2.0.15"
|
||||||
"@smithy/fetch-http-handler" "^2.2.3"
|
"@smithy/fetch-http-handler" "^2.2.3"
|
||||||
"@smithy/hash-node" "^2.0.11"
|
"@smithy/hash-node" "^2.0.11"
|
||||||
"@smithy/invalid-dependency" "^2.0.11"
|
"@smithy/invalid-dependency" "^2.0.11"
|
||||||
"@smithy/middleware-content-length" "^2.0.13"
|
"@smithy/middleware-content-length" "^2.0.13"
|
||||||
"@smithy/middleware-endpoint" "^2.1.1"
|
"@smithy/middleware-endpoint" "^2.1.2"
|
||||||
"@smithy/middleware-retry" "^2.0.16"
|
"@smithy/middleware-retry" "^2.0.17"
|
||||||
"@smithy/middleware-serde" "^2.0.11"
|
"@smithy/middleware-serde" "^2.0.11"
|
||||||
"@smithy/middleware-stack" "^2.0.5"
|
"@smithy/middleware-stack" "^2.0.5"
|
||||||
"@smithy/node-config-provider" "^2.1.1"
|
"@smithy/node-config-provider" "^2.1.2"
|
||||||
"@smithy/node-http-handler" "^2.1.7"
|
"@smithy/node-http-handler" "^2.1.7"
|
||||||
"@smithy/property-provider" "^2.0.0"
|
"@smithy/property-provider" "^2.0.0"
|
||||||
"@smithy/protocol-http" "^3.0.7"
|
"@smithy/protocol-http" "^3.0.7"
|
||||||
|
@ -511,7 +511,7 @@
|
||||||
"@smithy/util-body-length-browser" "^2.0.0"
|
"@smithy/util-body-length-browser" "^2.0.0"
|
||||||
"@smithy/util-body-length-node" "^2.1.0"
|
"@smithy/util-body-length-node" "^2.1.0"
|
||||||
"@smithy/util-defaults-mode-browser" "^2.0.15"
|
"@smithy/util-defaults-mode-browser" "^2.0.15"
|
||||||
"@smithy/util-defaults-mode-node" "^2.0.19"
|
"@smithy/util-defaults-mode-node" "^2.0.20"
|
||||||
"@smithy/util-retry" "^2.0.4"
|
"@smithy/util-retry" "^2.0.4"
|
||||||
"@smithy/util-utf8" "^2.0.0"
|
"@smithy/util-utf8" "^2.0.0"
|
||||||
tslib "^2.5.0"
|
tslib "^2.5.0"
|
||||||
|
@ -549,13 +549,13 @@
|
||||||
bowser "^2.11.0"
|
bowser "^2.11.0"
|
||||||
tslib "^2.5.0"
|
tslib "^2.5.0"
|
||||||
|
|
||||||
"@aws-sdk/util-user-agent-node@3.428.0":
|
"@aws-sdk/util-user-agent-node@3.430.0":
|
||||||
version "3.428.0"
|
version "3.430.0"
|
||||||
resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.428.0.tgz#3966016d3592f0ccff4b0123c3b223e1e231279a"
|
resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.430.0.tgz#efa200f7c21182d769b424ba4fff569857ff42f4"
|
||||||
integrity sha512-s721C3H8TkNd0usWLPEAy7yW2lEglR8QAYojdQGzE0e0wymc671nZAFePSZFRtmqZiFOSfk0R602L5fDbP3a8Q==
|
integrity sha512-DPpFPL3mFMPtipFxjY7TKQBjnhmsPzYCr4Y+qna0oR6ij8jZOz2ILQDK33GxTRNh3+bV9YYbx+ZGDOnxoK5Mhw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@aws-sdk/types" "3.428.0"
|
"@aws-sdk/types" "3.428.0"
|
||||||
"@smithy/node-config-provider" "^2.1.1"
|
"@smithy/node-config-provider" "^2.1.2"
|
||||||
"@smithy/types" "^2.3.5"
|
"@smithy/types" "^2.3.5"
|
||||||
tslib "^2.5.0"
|
tslib "^2.5.0"
|
||||||
|
|
||||||
|
@ -896,13 +896,13 @@
|
||||||
integrity sha512-htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==
|
integrity sha512-htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==
|
||||||
|
|
||||||
"@commitlint/cli@^17.0.2":
|
"@commitlint/cli@^17.0.2":
|
||||||
version "17.7.2"
|
version "17.8.0"
|
||||||
resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.7.2.tgz#3a0287373224db14968ab160b2b4988c693d3400"
|
resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.8.0.tgz#917761331df4b7a0b97b2b31415b006847b6fd02"
|
||||||
integrity sha512-t3N7TZq7lOeqTOyEgfGcaltHqEJf7YDlPg75MldeVPPyz14jZq/+mbGF9tueDLFX8R6RwdymrN6D+U5XwZ8Iwg==
|
integrity sha512-D3LdyZYbiRyAChfJMNlAd9f2P9vNQ7GWbI9gN2o7L5hF07QJDqj4z/pcJF3PjDbJWOaUUXla287RdDmmKqH2WQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@commitlint/format" "^17.4.4"
|
"@commitlint/format" "^17.4.4"
|
||||||
"@commitlint/lint" "^17.7.0"
|
"@commitlint/lint" "^17.8.0"
|
||||||
"@commitlint/load" "^17.7.2"
|
"@commitlint/load" "^17.8.0"
|
||||||
"@commitlint/read" "^17.5.1"
|
"@commitlint/read" "^17.5.1"
|
||||||
"@commitlint/types" "^17.4.4"
|
"@commitlint/types" "^17.4.4"
|
||||||
execa "^5.0.0"
|
execa "^5.0.0"
|
||||||
|
@ -951,28 +951,28 @@
|
||||||
"@commitlint/types" "^17.4.4"
|
"@commitlint/types" "^17.4.4"
|
||||||
chalk "^4.1.0"
|
chalk "^4.1.0"
|
||||||
|
|
||||||
"@commitlint/is-ignored@^17.7.0":
|
"@commitlint/is-ignored@^17.8.0":
|
||||||
version "17.7.0"
|
version "17.8.0"
|
||||||
resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-17.7.0.tgz#df9b284420bdb1aed5fdb2be44f4e98cc4826014"
|
resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-17.8.0.tgz#429a050cebe8dc56dd4fe4f4c23ea9e1a679dfc6"
|
||||||
integrity sha512-043rA7m45tyEfW7Zv2vZHF++176MLHH9h70fnPoYlB1slKBeKl8BwNIlnPg4xBdRBVNPaCqvXxWswx2GR4c9Hw==
|
integrity sha512-8bR6rxNcWaNprPBdE4ePIOwbxutTQGOsRPYWssX+zjGxnEljzaZSGzFUOMxapYILlf8Tts/O1wPQgG549Rdvdg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@commitlint/types" "^17.4.4"
|
"@commitlint/types" "^17.4.4"
|
||||||
semver "7.5.4"
|
semver "7.5.4"
|
||||||
|
|
||||||
"@commitlint/lint@^17.7.0":
|
"@commitlint/lint@^17.8.0":
|
||||||
version "17.7.0"
|
version "17.8.0"
|
||||||
resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-17.7.0.tgz#33f831298dc43679e4de6b088aea63d1f884c7e7"
|
resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-17.8.0.tgz#d3a7fafe810db060aea15322e30384896da887f9"
|
||||||
integrity sha512-TCQihm7/uszA5z1Ux1vw+Nf3yHTgicus/+9HiUQk+kRSQawByxZNESeQoX9ujfVd3r4Sa+3fn0JQAguG4xvvbA==
|
integrity sha512-4ihwnqOY4TcJN6iz5Jv1LeYavvBllONwFyGxOIWmCT5s4PNMb43cws2TUdbXTZL1Vq59etGKd5LWYDFPVbs5EA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@commitlint/is-ignored" "^17.7.0"
|
"@commitlint/is-ignored" "^17.8.0"
|
||||||
"@commitlint/parse" "^17.7.0"
|
"@commitlint/parse" "^17.7.0"
|
||||||
"@commitlint/rules" "^17.7.0"
|
"@commitlint/rules" "^17.7.0"
|
||||||
"@commitlint/types" "^17.4.4"
|
"@commitlint/types" "^17.4.4"
|
||||||
|
|
||||||
"@commitlint/load@^17.7.2":
|
"@commitlint/load@^17.8.0":
|
||||||
version "17.7.2"
|
version "17.8.0"
|
||||||
resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.7.2.tgz#85730900a501c50f0bc890bb50e4a2167ee3085a"
|
resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.8.0.tgz#82f6c7555daecb4ce4b8a6282fcecc3665747578"
|
||||||
integrity sha512-XA7WTnsjHZ4YH6ZYsrnxgLdXzriwMMq+utZUET6spbOEEIPBCDLdOQXS26P+v3TTO4hUHOEhzUquaBv3jbBixw==
|
integrity sha512-9VnGXYJCP4tXmR4YrwP8n5oX6T5ZsHfPQq6WuUQOvAI+QsDQMaTGgTRXr7us+xsjz+b+mMBSagogqfUx2aixyw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@commitlint/config-validator" "^17.6.7"
|
"@commitlint/config-validator" "^17.6.7"
|
||||||
"@commitlint/execute-rule" "^17.4.0"
|
"@commitlint/execute-rule" "^17.4.0"
|
||||||
|
@ -1063,115 +1063,115 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@jridgewell/trace-mapping" "0.3.9"
|
"@jridgewell/trace-mapping" "0.3.9"
|
||||||
|
|
||||||
"@esbuild/android-arm64@0.19.4":
|
"@esbuild/android-arm64@0.19.5":
|
||||||
version "0.19.4"
|
version "0.19.5"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.4.tgz#74752a09301b8c6b9a415fbda9fb71406a62a7b7"
|
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz#276c5f99604054d3dbb733577e09adae944baa90"
|
||||||
integrity sha512-mRsi2vJsk4Bx/AFsNBqOH2fqedxn5L/moT58xgg51DjX1la64Z3Npicut2VbhvDFO26qjWtPMsVxCd80YTFVeg==
|
integrity sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==
|
||||||
|
|
||||||
"@esbuild/android-arm@0.19.4":
|
"@esbuild/android-arm@0.19.5":
|
||||||
version "0.19.4"
|
version "0.19.5"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.4.tgz#c27363e1e280e577d9b5c8fa7c7a3be2a8d79bf5"
|
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.5.tgz#4a3cbf14758166abaae8ba9c01a80e68342a4eec"
|
||||||
integrity sha512-uBIbiYMeSsy2U0XQoOGVVcpIktjLMEKa7ryz2RLr7L/vTnANNEsPVAh4xOv7ondGz6ac1zVb0F8Jx20rQikffQ==
|
integrity sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==
|
||||||
|
|
||||||
"@esbuild/android-x64@0.19.4":
|
"@esbuild/android-x64@0.19.5":
|
||||||
version "0.19.4"
|
version "0.19.5"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.4.tgz#6c9ee03d1488973d928618100048b75b147e0426"
|
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.5.tgz#21a3d11cd4613d2d3c5ccb9e746c254eb9265b0a"
|
||||||
integrity sha512-4iPufZ1TMOD3oBlGFqHXBpa3KFT46aLl6Vy7gwed0ZSYgHaZ/mihbYb4t7Z9etjkC9Al3ZYIoOaHrU60gcMy7g==
|
integrity sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==
|
||||||
|
|
||||||
"@esbuild/darwin-arm64@0.19.4":
|
"@esbuild/darwin-arm64@0.19.5":
|
||||||
version "0.19.4"
|
version "0.19.5"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.4.tgz#64e2ee945e5932cd49812caa80e8896e937e2f8b"
|
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz#714cb839f467d6a67b151ee8255886498e2b9bf6"
|
||||||
integrity sha512-Lviw8EzxsVQKpbS+rSt6/6zjn9ashUZ7Tbuvc2YENgRl0yZTktGlachZ9KMJUsVjZEGFVu336kl5lBgDN6PmpA==
|
integrity sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==
|
||||||
|
|
||||||
"@esbuild/darwin-x64@0.19.4":
|
"@esbuild/darwin-x64@0.19.5":
|
||||||
version "0.19.4"
|
version "0.19.5"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.4.tgz#d8e26e1b965df284692e4d1263ba69a49b39ac7a"
|
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz#2c553e97a6d2b4ae76a884e35e6cbab85a990bbf"
|
||||||
integrity sha512-YHbSFlLgDwglFn0lAO3Zsdrife9jcQXQhgRp77YiTDja23FrC2uwnhXMNkAucthsf+Psr7sTwYEryxz6FPAVqw==
|
integrity sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==
|
||||||
|
|
||||||
"@esbuild/freebsd-arm64@0.19.4":
|
"@esbuild/freebsd-arm64@0.19.5":
|
||||||
version "0.19.4"
|
version "0.19.5"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.4.tgz#29751a41b242e0a456d89713b228f1da4f45582f"
|
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz#d554f556718adb31917a0da24277bf84b6ee87f3"
|
||||||
integrity sha512-vz59ijyrTG22Hshaj620e5yhs2dU1WJy723ofc+KUgxVCM6zxQESmWdMuVmUzxtGqtj5heHyB44PjV/HKsEmuQ==
|
integrity sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==
|
||||||
|
|
||||||
"@esbuild/freebsd-x64@0.19.4":
|
"@esbuild/freebsd-x64@0.19.5":
|
||||||
version "0.19.4"
|
version "0.19.5"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.4.tgz#873edc0f73e83a82432460ea59bf568c1e90b268"
|
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz#288f7358a3bb15d99e73c65c9adaa3dabb497432"
|
||||||
integrity sha512-3sRbQ6W5kAiVQRBWREGJNd1YE7OgzS0AmOGjDmX/qZZecq8NFlQsQH0IfXjjmD0XtUYqr64e0EKNFjMUlPL3Cw==
|
integrity sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==
|
||||||
|
|
||||||
"@esbuild/linux-arm64@0.19.4":
|
"@esbuild/linux-arm64@0.19.5":
|
||||||
version "0.19.4"
|
version "0.19.5"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.4.tgz#659f2fa988d448dbf5010b5cc583be757cc1b914"
|
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz#95933ae86325c93cb6b5e8333d22120ecfdc901b"
|
||||||
integrity sha512-ZWmWORaPbsPwmyu7eIEATFlaqm0QGt+joRE9sKcnVUG3oBbr/KYdNE2TnkzdQwX6EDRdg/x8Q4EZQTXoClUqqA==
|
integrity sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==
|
||||||
|
|
||||||
"@esbuild/linux-arm@0.19.4":
|
"@esbuild/linux-arm@0.19.5":
|
||||||
version "0.19.4"
|
version "0.19.5"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.4.tgz#d5b13a7ec1f1c655ce05c8d319b3950797baee55"
|
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz#0acef93aa3e0579e46d33b666627bddb06636664"
|
||||||
integrity sha512-z/4ArqOo9EImzTi4b6Vq+pthLnepFzJ92BnofU1jgNlcVb+UqynVFdoXMCFreTK7FdhqAzH0vmdwW5373Hm9pg==
|
integrity sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==
|
||||||
|
|
||||||
"@esbuild/linux-ia32@0.19.4":
|
"@esbuild/linux-ia32@0.19.5":
|
||||||
version "0.19.4"
|
version "0.19.5"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.4.tgz#878cd8bf24c9847c77acdb5dd1b2ef6e4fa27a82"
|
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz#b6e5c9e80b42131cbd6b1ddaa48c92835f1ed67f"
|
||||||
integrity sha512-EGc4vYM7i1GRUIMqRZNCTzJh25MHePYsnQfKDexD8uPTCm9mK56NIL04LUfX2aaJ+C9vyEp2fJ7jbqFEYgO9lQ==
|
integrity sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==
|
||||||
|
|
||||||
"@esbuild/linux-loong64@0.19.4":
|
"@esbuild/linux-loong64@0.19.5":
|
||||||
version "0.19.4"
|
version "0.19.5"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.4.tgz#df890499f6e566b7de3aa2361be6df2b8d5fa015"
|
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz#e5f0cf95a180158b01ff5f417da796a1c09dfbea"
|
||||||
integrity sha512-WVhIKO26kmm8lPmNrUikxSpXcgd6HDog0cx12BUfA2PkmURHSgx9G6vA19lrlQOMw+UjMZ+l3PpbtzffCxFDRg==
|
integrity sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==
|
||||||
|
|
||||||
"@esbuild/linux-mips64el@0.19.4":
|
"@esbuild/linux-mips64el@0.19.5":
|
||||||
version "0.19.4"
|
version "0.19.5"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.4.tgz#76eae4e88d2ce9f4f1b457e93892e802851b6807"
|
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz#ae36fb86c7d5f641f3a0c8472e83dcb6ea36a408"
|
||||||
integrity sha512-keYY+Hlj5w86hNp5JJPuZNbvW4jql7c1eXdBUHIJGTeN/+0QFutU3GrS+c27L+NTmzi73yhtojHk+lr2+502Mw==
|
integrity sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==
|
||||||
|
|
||||||
"@esbuild/linux-ppc64@0.19.4":
|
"@esbuild/linux-ppc64@0.19.5":
|
||||||
version "0.19.4"
|
version "0.19.5"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.4.tgz#c49032f4abbcfa3f747b543a106931fe3dce41ff"
|
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz#7960cb1666f0340ddd9eef7b26dcea3835d472d0"
|
||||||
integrity sha512-tQ92n0WMXyEsCH4m32S21fND8VxNiVazUbU4IUGVXQpWiaAxOBvtOtbEt3cXIV3GEBydYsY8pyeRMJx9kn3rvw==
|
integrity sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==
|
||||||
|
|
||||||
"@esbuild/linux-riscv64@0.19.4":
|
"@esbuild/linux-riscv64@0.19.5":
|
||||||
version "0.19.4"
|
version "0.19.5"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.4.tgz#0f815a090772138503ee0465a747e16865bf94b1"
|
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz#32207df26af60a3a9feea1783fc21b9817bade19"
|
||||||
integrity sha512-tRRBey6fG9tqGH6V75xH3lFPpj9E8BH+N+zjSUCnFOX93kEzqS0WdyJHkta/mmJHn7MBaa++9P4ARiU4ykjhig==
|
integrity sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==
|
||||||
|
|
||||||
"@esbuild/linux-s390x@0.19.4":
|
"@esbuild/linux-s390x@0.19.5":
|
||||||
version "0.19.4"
|
version "0.19.5"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.4.tgz#8d2cca20cd4e7c311fde8701d9f1042664f8b92b"
|
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz#b38d5681db89a3723862dfa792812397b1510a7d"
|
||||||
integrity sha512-152aLpQqKZYhThiJ+uAM4PcuLCAOxDsCekIbnGzPKVBRUDlgaaAfaUl5NYkB1hgY6WN4sPkejxKlANgVcGl9Qg==
|
integrity sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==
|
||||||
|
|
||||||
"@esbuild/linux-x64@0.19.4":
|
"@esbuild/linux-x64@0.19.5":
|
||||||
version "0.19.4"
|
version "0.19.5"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.4.tgz#f618bec2655de49bff91c588777e37b5e3169d4a"
|
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz#46feba2ad041a241379d150f415b472fe3885075"
|
||||||
integrity sha512-Mi4aNA3rz1BNFtB7aGadMD0MavmzuuXNTaYL6/uiYIs08U7YMPETpgNn5oue3ICr+inKwItOwSsJDYkrE9ekVg==
|
integrity sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==
|
||||||
|
|
||||||
"@esbuild/netbsd-x64@0.19.4":
|
"@esbuild/netbsd-x64@0.19.5":
|
||||||
version "0.19.4"
|
version "0.19.5"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.4.tgz#7889744ca4d60f1538d62382b95e90a49687cef2"
|
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz#3b5c1fb068f26bfc681d31f682adf1bea4ef0702"
|
||||||
integrity sha512-9+Wxx1i5N/CYo505CTT7T+ix4lVzEdz0uCoYGxM5JDVlP2YdDC1Bdz+Khv6IbqmisT0Si928eAxbmGkcbiuM/A==
|
integrity sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==
|
||||||
|
|
||||||
"@esbuild/openbsd-x64@0.19.4":
|
"@esbuild/openbsd-x64@0.19.5":
|
||||||
version "0.19.4"
|
version "0.19.5"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.4.tgz#c3e436eb9271a423d2e8436fcb120e3fd90e2b01"
|
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz#ca6830316ca68056c5c88a875f103ad3235e00db"
|
||||||
integrity sha512-MFsHleM5/rWRW9EivFssop+OulYVUoVcqkyOkjiynKBCGBj9Lihl7kh9IzrreDyXa4sNkquei5/DTP4uCk25xw==
|
integrity sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==
|
||||||
|
|
||||||
"@esbuild/sunos-x64@0.19.4":
|
"@esbuild/sunos-x64@0.19.5":
|
||||||
version "0.19.4"
|
version "0.19.5"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.4.tgz#f63f5841ba8c8c1a1c840d073afc99b53e8ce740"
|
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz#9efc4eb9539a7be7d5a05ada52ee43cda0d8e2dd"
|
||||||
integrity sha512-6Xq8SpK46yLvrGxjp6HftkDwPP49puU4OF0hEL4dTxqCbfx09LyrbUj/D7tmIRMj5D5FCUPksBbxyQhp8tmHzw==
|
integrity sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==
|
||||||
|
|
||||||
"@esbuild/win32-arm64@0.19.4":
|
"@esbuild/win32-arm64@0.19.5":
|
||||||
version "0.19.4"
|
version "0.19.5"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.4.tgz#80be69cec92da4da7781cf7a8351b95cc5a236b0"
|
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz#29f8184afa7a02a956ebda4ed638099f4b8ff198"
|
||||||
integrity sha512-PkIl7Jq4mP6ke7QKwyg4fD4Xvn8PXisagV/+HntWoDEdmerB2LTukRZg728Yd1Fj+LuEX75t/hKXE2Ppk8Hh1w==
|
integrity sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==
|
||||||
|
|
||||||
"@esbuild/win32-ia32@0.19.4":
|
"@esbuild/win32-ia32@0.19.5":
|
||||||
version "0.19.4"
|
version "0.19.5"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.4.tgz#15dc0ed83d2794872b05d8edc4a358fecf97eb54"
|
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz#f3de07afb292ecad651ae4bb8727789de2d95b05"
|
||||||
integrity sha512-ga676Hnvw7/ycdKB53qPusvsKdwrWzEyJ+AtItHGoARszIqvjffTwaaW3b2L6l90i7MO9i+dlAW415INuRhSGg==
|
integrity sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==
|
||||||
|
|
||||||
"@esbuild/win32-x64@0.19.4":
|
"@esbuild/win32-x64@0.19.5":
|
||||||
version "0.19.4"
|
version "0.19.5"
|
||||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.4.tgz#d46a6e220a717f31f39ae80f49477cc3220be0f0"
|
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz#faad84c41ba12e3a0acb52571df9bff37bee75f6"
|
||||||
integrity sha512-HP0GDNla1T3ZL8Ko/SHAS2GgtjOg+VmWnnYLhuTksr++EnduYB0f3Y2LzHsUwb2iQ13JGoY6G3R8h6Du/WG6uA==
|
integrity sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==
|
||||||
|
|
||||||
"@eslint-community/eslint-utils@^4.2.0":
|
"@eslint-community/eslint-utils@^4.2.0":
|
||||||
version "4.4.0"
|
version "4.4.0"
|
||||||
|
@ -1304,21 +1304,21 @@
|
||||||
"@jridgewell/resolve-uri" "^3.1.0"
|
"@jridgewell/resolve-uri" "^3.1.0"
|
||||||
"@jridgewell/sourcemap-codec" "^1.4.14"
|
"@jridgewell/sourcemap-codec" "^1.4.14"
|
||||||
|
|
||||||
"@lerna/child-process@7.3.1":
|
"@lerna/child-process@7.4.0":
|
||||||
version "7.3.1"
|
version "7.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-7.3.1.tgz#ed9122a583adb828c26a5a6a662a3353e979495b"
|
resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-7.4.0.tgz#90e2ef119fed904845cad9977002f71354df2b68"
|
||||||
integrity sha512-9neRI51jOhyIGT3/xKUQZftzg78ZY5Ya8iBCmVQYWwo8rLiMqUqcgwIwFHFFYyY41Sb4/HXatQ0iiuTTB/vr8A==
|
integrity sha512-KhocFx7HI04N2tUdKv/kJDy627m9TzIDrtudRTMTFVS8vKzGtxpfjgWZAnJ20hwQqe/MvvfrOhHsvDBrcBEW/g==
|
||||||
dependencies:
|
dependencies:
|
||||||
chalk "^4.1.0"
|
chalk "^4.1.0"
|
||||||
execa "^5.0.0"
|
execa "^5.0.0"
|
||||||
strong-log-transformer "^2.1.0"
|
strong-log-transformer "^2.1.0"
|
||||||
|
|
||||||
"@lerna/create@7.3.1":
|
"@lerna/create@7.4.0":
|
||||||
version "7.3.1"
|
version "7.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/@lerna/create/-/create-7.3.1.tgz#9e968935deb2d5c11dd3cbfce52d4f62a4d2285c"
|
resolved "https://registry.yarnpkg.com/@lerna/create/-/create-7.4.0.tgz#5a7214b7f67e4804e7ce07d9e6c4275bfe85b3d5"
|
||||||
integrity sha512-+gHt9rzWYaC0pxE/xMC8hQaLXJKW24rWlWJ7Vq6gETsl6D5v3rSy2VIlvoDE9WsvROnMSoXw2PZY371X79hNBw==
|
integrity sha512-VmuJCS/cC2itJjpMNNBWBl1YRfYNBjo6BR4+KVdDYPO2/WT+CWqv5gWGrm0bU5/djwGJ2BN96STzHnWegACK0A==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@lerna/child-process" "7.3.1"
|
"@lerna/child-process" "7.4.0"
|
||||||
"@npmcli/run-script" "6.0.2"
|
"@npmcli/run-script" "6.0.2"
|
||||||
"@nx/devkit" ">=16.5.1 < 17"
|
"@nx/devkit" ">=16.5.1 < 17"
|
||||||
"@octokit/plugin-enterprise-rest" "6.0.1"
|
"@octokit/plugin-enterprise-rest" "6.0.1"
|
||||||
|
@ -2039,18 +2039,18 @@
|
||||||
"@smithy/types" "^2.3.5"
|
"@smithy/types" "^2.3.5"
|
||||||
tslib "^2.5.0"
|
tslib "^2.5.0"
|
||||||
|
|
||||||
"@smithy/config-resolver@^2.0.14":
|
"@smithy/config-resolver@^2.0.15":
|
||||||
version "2.0.14"
|
version "2.0.15"
|
||||||
resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-2.0.14.tgz#16163e14053949f5a717be6f5802a7039e5ff4d1"
|
resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-2.0.15.tgz#dff48ef54e989df4eeb90001a2fef9ae3c5bb884"
|
||||||
integrity sha512-K1K+FuWQoy8j/G7lAmK85o03O89s2Vvh6kMFmzEmiHUoQCRH1rzbDtMnGNiaMHeSeYJ6y79IyTusdRG+LuWwtg==
|
integrity sha512-a2Pfocla5nSrG2RyB8i20jcWgMyR71TUeFKm8pmrnZotr/X22tlg4y/EhSvBK2oTE8MKHlKh4YdpDO2AryJbGQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@smithy/node-config-provider" "^2.1.1"
|
"@smithy/node-config-provider" "^2.1.2"
|
||||||
"@smithy/types" "^2.3.5"
|
"@smithy/types" "^2.3.5"
|
||||||
"@smithy/util-config-provider" "^2.0.0"
|
"@smithy/util-config-provider" "^2.0.0"
|
||||||
"@smithy/util-middleware" "^2.0.4"
|
"@smithy/util-middleware" "^2.0.4"
|
||||||
tslib "^2.5.0"
|
tslib "^2.5.0"
|
||||||
|
|
||||||
"@smithy/credential-provider-imds@^2.0.0", "@smithy/credential-provider-imds@^2.0.16":
|
"@smithy/credential-provider-imds@^2.0.0":
|
||||||
version "2.0.16"
|
version "2.0.16"
|
||||||
resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.0.16.tgz#07da7ecd43eff92156ddc54f3b5330bbc128d5cd"
|
resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.0.16.tgz#07da7ecd43eff92156ddc54f3b5330bbc128d5cd"
|
||||||
integrity sha512-tKa2xF+69TvGxJT+lnJpGrKxUuAZDLYXFhqnPEgnHz+psTpkpcB4QRjHj63+uj83KaeFJdTfW201eLZeRn6FfA==
|
integrity sha512-tKa2xF+69TvGxJT+lnJpGrKxUuAZDLYXFhqnPEgnHz+psTpkpcB4QRjHj63+uj83KaeFJdTfW201eLZeRn6FfA==
|
||||||
|
@ -2061,6 +2061,17 @@
|
||||||
"@smithy/url-parser" "^2.0.11"
|
"@smithy/url-parser" "^2.0.11"
|
||||||
tslib "^2.5.0"
|
tslib "^2.5.0"
|
||||||
|
|
||||||
|
"@smithy/credential-provider-imds@^2.0.17":
|
||||||
|
version "2.0.17"
|
||||||
|
resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.0.17.tgz#004463c314b9c3df4883fe643f0b3855f1f64d40"
|
||||||
|
integrity sha512-2XcD414yrwbxxuYueTo7tzLC2/w3jj9FZqfenpv3MQkocdOEmuOVS0v9WHsY/nW6V+2EcR340rj/z5HnvsHncQ==
|
||||||
|
dependencies:
|
||||||
|
"@smithy/node-config-provider" "^2.1.2"
|
||||||
|
"@smithy/property-provider" "^2.0.12"
|
||||||
|
"@smithy/types" "^2.3.5"
|
||||||
|
"@smithy/url-parser" "^2.0.11"
|
||||||
|
tslib "^2.5.0"
|
||||||
|
|
||||||
"@smithy/eventstream-codec@^2.0.11":
|
"@smithy/eventstream-codec@^2.0.11":
|
||||||
version "2.0.11"
|
version "2.0.11"
|
||||||
resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-2.0.11.tgz#1ba090ea5dbf956e32d3d0d0986ffb0d0af8c57d"
|
resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-2.0.11.tgz#1ba090ea5dbf956e32d3d0d0986ffb0d0af8c57d"
|
||||||
|
@ -2116,7 +2127,7 @@
|
||||||
"@smithy/types" "^2.3.5"
|
"@smithy/types" "^2.3.5"
|
||||||
tslib "^2.5.0"
|
tslib "^2.5.0"
|
||||||
|
|
||||||
"@smithy/middleware-endpoint@^2.1.1":
|
"@smithy/middleware-endpoint@^2.1.2":
|
||||||
version "2.1.2"
|
version "2.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.1.2.tgz#c6610f17b3c5773e4f272eb4de5c18a878607fe0"
|
resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.1.2.tgz#c6610f17b3c5773e4f272eb4de5c18a878607fe0"
|
||||||
integrity sha512-dua4r2EbSTRzNefz72snz+KDuXN73RCe1K+rGeemzUyYemxuh1jujFbLQbTU6DVlTgHkhtrbH0+kdOFY/SV4Qg==
|
integrity sha512-dua4r2EbSTRzNefz72snz+KDuXN73RCe1K+rGeemzUyYemxuh1jujFbLQbTU6DVlTgHkhtrbH0+kdOFY/SV4Qg==
|
||||||
|
@ -2129,12 +2140,12 @@
|
||||||
"@smithy/util-middleware" "^2.0.4"
|
"@smithy/util-middleware" "^2.0.4"
|
||||||
tslib "^2.5.0"
|
tslib "^2.5.0"
|
||||||
|
|
||||||
"@smithy/middleware-retry@^2.0.16":
|
"@smithy/middleware-retry@^2.0.17":
|
||||||
version "2.0.16"
|
version "2.0.17"
|
||||||
resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-2.0.16.tgz#f87401a01317de351df5228e4591961d04663607"
|
resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-2.0.17.tgz#bf154e441accef071e9f3455bc673c8e7cae14e6"
|
||||||
integrity sha512-Br5+0yoiMS0ugiOAfJxregzMMGIRCbX4PYo1kDHtLgvkA/d++aHbnHB819m5zOIAMPvPE7AThZgcsoK+WOsUTA==
|
integrity sha512-ZYVU1MmshCTbEKTNc5h7/Pps1vhH5C7hRclQWnAbVYKkIT+PEGu9dSVqprzEo/nlMA8Zv4Dj5Y+fv3pRnUwElw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@smithy/node-config-provider" "^2.1.1"
|
"@smithy/node-config-provider" "^2.1.2"
|
||||||
"@smithy/protocol-http" "^3.0.7"
|
"@smithy/protocol-http" "^3.0.7"
|
||||||
"@smithy/service-error-classification" "^2.0.4"
|
"@smithy/service-error-classification" "^2.0.4"
|
||||||
"@smithy/types" "^2.3.5"
|
"@smithy/types" "^2.3.5"
|
||||||
|
@ -2324,14 +2335,14 @@
|
||||||
bowser "^2.11.0"
|
bowser "^2.11.0"
|
||||||
tslib "^2.5.0"
|
tslib "^2.5.0"
|
||||||
|
|
||||||
"@smithy/util-defaults-mode-node@^2.0.19":
|
"@smithy/util-defaults-mode-node@^2.0.20":
|
||||||
version "2.0.19"
|
version "2.0.20"
|
||||||
resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.19.tgz#8996479c76dd68baae65fd863180a802a66fdf5d"
|
resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.20.tgz#4381d74cb6c7cbca3a2609dc81a7437973d7cdd2"
|
||||||
integrity sha512-7pScU4jBFADB2MBYKM3zb5onMh6Nn0X3IfaFVLYPyCarTIZDLUtUl1GtruzEUJPmDzP+uGeqOtU589HDY0Ni6g==
|
integrity sha512-kJjcZ/Lzvs3sPDKBwlhZsFFcgPNIpB3CMb6/saCakawRzo0E+JkyS3ZZRjVR3ce29yHtwoP/0YLKC1PeH0Dffg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@smithy/config-resolver" "^2.0.14"
|
"@smithy/config-resolver" "^2.0.15"
|
||||||
"@smithy/credential-provider-imds" "^2.0.16"
|
"@smithy/credential-provider-imds" "^2.0.17"
|
||||||
"@smithy/node-config-provider" "^2.1.1"
|
"@smithy/node-config-provider" "^2.1.2"
|
||||||
"@smithy/property-provider" "^2.0.12"
|
"@smithy/property-provider" "^2.0.12"
|
||||||
"@smithy/smithy-client" "^2.1.11"
|
"@smithy/smithy-client" "^2.1.11"
|
||||||
"@smithy/types" "^2.3.5"
|
"@smithy/types" "^2.3.5"
|
||||||
|
@ -4593,10 +4604,10 @@ dagre-d3-es@7.0.10:
|
||||||
d3 "^7.8.2"
|
d3 "^7.8.2"
|
||||||
lodash-es "^4.17.21"
|
lodash-es "^4.17.21"
|
||||||
|
|
||||||
daisyui@3.9.2:
|
daisyui@3.9.3:
|
||||||
version "3.9.2"
|
version "3.9.3"
|
||||||
resolved "https://registry.yarnpkg.com/daisyui/-/daisyui-3.9.2.tgz#73c83d46ff86186568b211be2d231f4aee5a9ecc"
|
resolved "https://registry.yarnpkg.com/daisyui/-/daisyui-3.9.3.tgz#d8cd193feb57460d56a5fdf9e15063fd667842ec"
|
||||||
integrity sha512-yJZ1QjHUaL+r9BkquTdzNHb7KIgAJVFh0zbOXql2Wu0r7zx5qZNLxclhjN0WLoIpY+o2h/8lqXg7ijj8oTigOw==
|
integrity sha512-8li177QCu6dqlEOzE3h/dAV1y9Movbjx5bzJIO/hNqMNZtJkbHM0trjTzbDejV7N57eNGdjBvAGtxZYKzS4jow==
|
||||||
dependencies:
|
dependencies:
|
||||||
colord "^2.9"
|
colord "^2.9"
|
||||||
css-selector-tokenizer "^0.8"
|
css-selector-tokenizer "^0.8"
|
||||||
|
@ -5256,33 +5267,33 @@ esbuild-plugin-yaml@^0.0.1:
|
||||||
fs-extra "^9.1.0"
|
fs-extra "^9.1.0"
|
||||||
js-yaml "^4.0.0"
|
js-yaml "^4.0.0"
|
||||||
|
|
||||||
esbuild@0.19.4, esbuild@^0.19.0:
|
esbuild@0.19.5, esbuild@^0.19.0:
|
||||||
version "0.19.4"
|
version "0.19.5"
|
||||||
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.4.tgz#cdf5c4c684956d550bc3c6d0c01dac7fef6c75b1"
|
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.5.tgz#53a0e19dfbf61ba6c827d51a80813cf071239a8c"
|
||||||
integrity sha512-x7jL0tbRRpv4QUyuDMjONtWFciygUxWaUM1kMX2zWxI0X2YWOt7MSA0g4UdeSiHM8fcYVzpQhKYOycZwxTdZkA==
|
integrity sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
"@esbuild/android-arm" "0.19.4"
|
"@esbuild/android-arm" "0.19.5"
|
||||||
"@esbuild/android-arm64" "0.19.4"
|
"@esbuild/android-arm64" "0.19.5"
|
||||||
"@esbuild/android-x64" "0.19.4"
|
"@esbuild/android-x64" "0.19.5"
|
||||||
"@esbuild/darwin-arm64" "0.19.4"
|
"@esbuild/darwin-arm64" "0.19.5"
|
||||||
"@esbuild/darwin-x64" "0.19.4"
|
"@esbuild/darwin-x64" "0.19.5"
|
||||||
"@esbuild/freebsd-arm64" "0.19.4"
|
"@esbuild/freebsd-arm64" "0.19.5"
|
||||||
"@esbuild/freebsd-x64" "0.19.4"
|
"@esbuild/freebsd-x64" "0.19.5"
|
||||||
"@esbuild/linux-arm" "0.19.4"
|
"@esbuild/linux-arm" "0.19.5"
|
||||||
"@esbuild/linux-arm64" "0.19.4"
|
"@esbuild/linux-arm64" "0.19.5"
|
||||||
"@esbuild/linux-ia32" "0.19.4"
|
"@esbuild/linux-ia32" "0.19.5"
|
||||||
"@esbuild/linux-loong64" "0.19.4"
|
"@esbuild/linux-loong64" "0.19.5"
|
||||||
"@esbuild/linux-mips64el" "0.19.4"
|
"@esbuild/linux-mips64el" "0.19.5"
|
||||||
"@esbuild/linux-ppc64" "0.19.4"
|
"@esbuild/linux-ppc64" "0.19.5"
|
||||||
"@esbuild/linux-riscv64" "0.19.4"
|
"@esbuild/linux-riscv64" "0.19.5"
|
||||||
"@esbuild/linux-s390x" "0.19.4"
|
"@esbuild/linux-s390x" "0.19.5"
|
||||||
"@esbuild/linux-x64" "0.19.4"
|
"@esbuild/linux-x64" "0.19.5"
|
||||||
"@esbuild/netbsd-x64" "0.19.4"
|
"@esbuild/netbsd-x64" "0.19.5"
|
||||||
"@esbuild/openbsd-x64" "0.19.4"
|
"@esbuild/openbsd-x64" "0.19.5"
|
||||||
"@esbuild/sunos-x64" "0.19.4"
|
"@esbuild/sunos-x64" "0.19.5"
|
||||||
"@esbuild/win32-arm64" "0.19.4"
|
"@esbuild/win32-arm64" "0.19.5"
|
||||||
"@esbuild/win32-ia32" "0.19.4"
|
"@esbuild/win32-ia32" "0.19.5"
|
||||||
"@esbuild/win32-x64" "0.19.4"
|
"@esbuild/win32-x64" "0.19.5"
|
||||||
|
|
||||||
escalade@^3.1.1:
|
escalade@^3.1.1:
|
||||||
version "3.1.1"
|
version "3.1.1"
|
||||||
|
@ -8058,12 +8069,12 @@ leac@^0.6.0:
|
||||||
integrity sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==
|
integrity sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==
|
||||||
|
|
||||||
lerna@^7.2.0:
|
lerna@^7.2.0:
|
||||||
version "7.3.1"
|
version "7.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/lerna/-/lerna-7.3.1.tgz#eda0021dbd48287e9f1de3c69c48a2089ff0952c"
|
resolved "https://registry.yarnpkg.com/lerna/-/lerna-7.4.0.tgz#e6dabe956cc771eabe90c97e5e4759eb5d5117ef"
|
||||||
integrity sha512-4Lt6nKIqCDqWgRlKu02g6+0Gfl5Hx9ZK3EIJTjMntea6QBuOgfSpJEj3j20osmE1tzFCkbAltJRyeLE1CImv+A==
|
integrity sha512-Dp5js6R7mygy3Ncxc/1HxDd5EgiE7mFqZbCAYKm6FzeOn/GLcqyOPJHLsck6PlSu/uvqUh1lZO4wGaJJQAcW2Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@lerna/child-process" "7.3.1"
|
"@lerna/child-process" "7.4.0"
|
||||||
"@lerna/create" "7.3.1"
|
"@lerna/create" "7.4.0"
|
||||||
"@npmcli/run-script" "6.0.2"
|
"@npmcli/run-script" "6.0.2"
|
||||||
"@nx/devkit" ">=16.5.1 < 17"
|
"@nx/devkit" ">=16.5.1 < 17"
|
||||||
"@octokit/plugin-enterprise-rest" "6.0.1"
|
"@octokit/plugin-enterprise-rest" "6.0.1"
|
||||||
|
@ -9828,10 +9839,10 @@ nested-error-stacks@^2.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz#26c8a3cee6cc05fbcf1e333cd2fc3e003326c0b5"
|
resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz#26c8a3cee6cc05fbcf1e333cd2fc3e003326c0b5"
|
||||||
integrity sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==
|
integrity sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==
|
||||||
|
|
||||||
next-i18next@14.0.0:
|
next-i18next@14.0.3:
|
||||||
version "14.0.0"
|
version "14.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/next-i18next/-/next-i18next-14.0.0.tgz#fd637c81df96c9d6f2cc4716037130ac4e5d6968"
|
resolved "https://registry.yarnpkg.com/next-i18next/-/next-i18next-14.0.3.tgz#9c17e69483b3af4172b15454af2ef92c5f79be48"
|
||||||
integrity sha512-umv8hOZoSoAA+td3ErfemyO/5Ib2pnYCdQ8/Oy+fncS2skFIL3hHKRer3Oa3Nfm4Xbv5p6DHWzm3NhT1j4tWwg==
|
integrity sha512-FtnjRMfhlamk8YyeyWqd+pndNL+3er83iMZnH4M4mhiGA93l0+vtBUvuObgOAMHDJGLLB2SS2xOOZq69oiJh7A==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime" "^7.20.13"
|
"@babel/runtime" "^7.20.13"
|
||||||
"@types/hoist-non-react-statics" "^3.3.1"
|
"@types/hoist-non-react-statics" "^3.3.1"
|
||||||
|
@ -11373,10 +11384,10 @@ react-timeago@7.2.0:
|
||||||
resolved "https://registry.yarnpkg.com/react-timeago/-/react-timeago-7.2.0.tgz#ae929d7423a63cbc3dc228e49d22fbf586d459ca"
|
resolved "https://registry.yarnpkg.com/react-timeago/-/react-timeago-7.2.0.tgz#ae929d7423a63cbc3dc228e49d22fbf586d459ca"
|
||||||
integrity sha512-2KsBEEs+qRhKx/kekUVNSTIpop3Jwd7SRBm0R4Eiq3mPeswRGSsftY9FpKsE/lXLdURyQFiHeHFrIUxLYskG5g==
|
integrity sha512-2KsBEEs+qRhKx/kekUVNSTIpop3Jwd7SRBm0R4Eiq3mPeswRGSsftY9FpKsE/lXLdURyQFiHeHFrIUxLYskG5g==
|
||||||
|
|
||||||
react-zoom-pan-pinch@3.1.0:
|
react-zoom-pan-pinch@3.2.0:
|
||||||
version "3.1.0"
|
version "3.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/react-zoom-pan-pinch/-/react-zoom-pan-pinch-3.1.0.tgz#d87a66fd22a97f5dd56b54076411a9dce1f448cd"
|
resolved "https://registry.yarnpkg.com/react-zoom-pan-pinch/-/react-zoom-pan-pinch-3.2.0.tgz#6ce7d014a8dc4aa62ce83ca57f85e76cf2e934b8"
|
||||||
integrity sha512-a3LlP8QPgTikvteCNkZ3X6wIWC0lrg1geP5WkUJyx2MXXAhHQek3r17N1nT/esOiWGuPIECnsd9AGoK8jOeGcg==
|
integrity sha512-7MS0wYWoXjr6PrmpgHOVpVyNQr9gj7LEr4xIvq6lBy62nuNwjdI1r+XxahQ0SDHhWrLuSF11e2PTL/YLengYyg==
|
||||||
|
|
||||||
react@18.2.0, react@^18.2.0:
|
react@18.2.0, react@^18.2.0:
|
||||||
version "18.2.0"
|
version "18.2.0"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue