Initial commit
This commit is contained in:
commit
e49726988c
5445 files changed
+1089914
No files matched your search
+361
@@ -0,0 +1,361 @@
|
||||
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
||||
|
||||
exports[`All align combinations for contain > horizontal contain aligned to CENTER BOTTOM 1`] = `
|
||||
Visualization:
|
||||
|
||||
|
||||
|
||||
▴▴▴▸▸▸
|
||||
▴▴▴▸▸▸
|
||||
▾▾▾◆◆◆
|
||||
▾▾▾◆◆◆
|
||||
|
||||
Data:
|
||||
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
`;
|
||||
|
||||
exports[`All align combinations for contain > horizontal contain aligned to CENTER MIDDLE 1`] = `
|
||||
Visualization:
|
||||
|
||||
|
||||
▴▴▴▸▸▸
|
||||
▴▴▴▸▸▸
|
||||
▾▾▾◆◆◆
|
||||
▾▾▾◆◆◆
|
||||
|
||||
|
||||
Data:
|
||||
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
`;
|
||||
|
||||
exports[`All align combinations for contain > horizontal contain aligned to CENTER TOP 1`] = `
|
||||
Visualization:
|
||||
|
||||
▴▴▴▸▸▸
|
||||
▴▴▴▸▸▸
|
||||
▾▾▾◆◆◆
|
||||
▾▾▾◆◆◆
|
||||
|
||||
|
||||
|
||||
Data:
|
||||
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
`;
|
||||
|
||||
exports[`All align combinations for contain > horizontal contain aligned to LEFT BOTTOM 1`] = `
|
||||
Visualization:
|
||||
|
||||
|
||||
|
||||
▴▴▴▸▸▸
|
||||
▴▴▴▸▸▸
|
||||
▾▾▾◆◆◆
|
||||
▾▾▾◆◆◆
|
||||
|
||||
Data:
|
||||
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
`;
|
||||
|
||||
exports[`All align combinations for contain > horizontal contain aligned to LEFT MIDDLE 1`] = `
|
||||
Visualization:
|
||||
|
||||
|
||||
▴▴▴▸▸▸
|
||||
▴▴▴▸▸▸
|
||||
▾▾▾◆◆◆
|
||||
▾▾▾◆◆◆
|
||||
|
||||
|
||||
Data:
|
||||
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
`;
|
||||
|
||||
exports[`All align combinations for contain > horizontal contain aligned to LEFT TOP 1`] = `
|
||||
Visualization:
|
||||
|
||||
▴▴▴▸▸▸
|
||||
▴▴▴▸▸▸
|
||||
▾▾▾◆◆◆
|
||||
▾▾▾◆◆◆
|
||||
|
||||
|
||||
|
||||
Data:
|
||||
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
`;
|
||||
|
||||
exports[`All align combinations for contain > horizontal contain aligned to RIGHT BOTTOM 1`] = `
|
||||
Visualization:
|
||||
|
||||
|
||||
|
||||
▴▴▴▸▸▸
|
||||
▴▴▴▸▸▸
|
||||
▾▾▾◆◆◆
|
||||
▾▾▾◆◆◆
|
||||
|
||||
Data:
|
||||
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
`;
|
||||
|
||||
exports[`All align combinations for contain > horizontal contain aligned to RIGHT MIDDLE 1`] = `
|
||||
Visualization:
|
||||
|
||||
|
||||
▴▴▴▸▸▸
|
||||
▴▴▴▸▸▸
|
||||
▾▾▾◆◆◆
|
||||
▾▾▾◆◆◆
|
||||
|
||||
|
||||
Data:
|
||||
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
`;
|
||||
|
||||
exports[`All align combinations for contain > horizontal contain aligned to RIGHT TOP 1`] = `
|
||||
Visualization:
|
||||
|
||||
▴▴▴▸▸▸
|
||||
▴▴▴▸▸▸
|
||||
▾▾▾◆◆◆
|
||||
▾▾▾◆◆◆
|
||||
|
||||
|
||||
|
||||
Data:
|
||||
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
`;
|
||||
|
||||
exports[`All align combinations for contain > vertical contain aligned to CENTER BOTTOM 1`] = `
|
||||
Visualization:
|
||||
|
||||
▴▴▸▸
|
||||
▴▴▸▸
|
||||
▴▴▸▸
|
||||
▾▾◆◆
|
||||
▾▾◆◆
|
||||
▾▾◆◆
|
||||
|
||||
Data:
|
||||
|
||||
00-00-00⁰⁰ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-00-00⁰⁰
|
||||
00-00-00⁰⁰ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-00-00⁰⁰
|
||||
00-00-00⁰⁰ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-00-00⁰⁰
|
||||
00-00-00⁰⁰ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ 00-00-00⁰⁰
|
||||
00-00-00⁰⁰ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ 00-00-00⁰⁰
|
||||
00-00-00⁰⁰ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ 00-00-00⁰⁰
|
||||
`;
|
||||
|
||||
exports[`All align combinations for contain > vertical contain aligned to CENTER MIDDLE 1`] = `
|
||||
Visualization:
|
||||
|
||||
▴▴▸▸
|
||||
▴▴▸▸
|
||||
▴▴▸▸
|
||||
▾▾◆◆
|
||||
▾▾◆◆
|
||||
▾▾◆◆
|
||||
|
||||
Data:
|
||||
|
||||
00-00-00⁰⁰ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-00-00⁰⁰
|
||||
00-00-00⁰⁰ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-00-00⁰⁰
|
||||
00-00-00⁰⁰ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-00-00⁰⁰
|
||||
00-00-00⁰⁰ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ 00-00-00⁰⁰
|
||||
00-00-00⁰⁰ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ 00-00-00⁰⁰
|
||||
00-00-00⁰⁰ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ 00-00-00⁰⁰
|
||||
`;
|
||||
|
||||
exports[`All align combinations for contain > vertical contain aligned to CENTER TOP 1`] = `
|
||||
Visualization:
|
||||
|
||||
▴▴▸▸
|
||||
▴▴▸▸
|
||||
▴▴▸▸
|
||||
▾▾◆◆
|
||||
▾▾◆◆
|
||||
▾▾◆◆
|
||||
|
||||
Data:
|
||||
|
||||
00-00-00⁰⁰ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-00-00⁰⁰
|
||||
00-00-00⁰⁰ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-00-00⁰⁰
|
||||
00-00-00⁰⁰ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-00-00⁰⁰
|
||||
00-00-00⁰⁰ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ 00-00-00⁰⁰
|
||||
00-00-00⁰⁰ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ 00-00-00⁰⁰
|
||||
00-00-00⁰⁰ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ 00-00-00⁰⁰
|
||||
`;
|
||||
|
||||
exports[`All align combinations for contain > vertical contain aligned to LEFT BOTTOM 1`] = `
|
||||
Visualization:
|
||||
|
||||
▴▴▸▸
|
||||
▴▴▸▸
|
||||
▴▴▸▸
|
||||
▾▾◆◆
|
||||
▾▾◆◆
|
||||
▾▾◆◆
|
||||
|
||||
Data:
|
||||
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
`;
|
||||
|
||||
exports[`All align combinations for contain > vertical contain aligned to LEFT MIDDLE 1`] = `
|
||||
Visualization:
|
||||
|
||||
▴▴▸▸
|
||||
▴▴▸▸
|
||||
▴▴▸▸
|
||||
▾▾◆◆
|
||||
▾▾◆◆
|
||||
▾▾◆◆
|
||||
|
||||
Data:
|
||||
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
`;
|
||||
|
||||
exports[`All align combinations for contain > vertical contain aligned to LEFT TOP 1`] = `
|
||||
Visualization:
|
||||
|
||||
▴▴▸▸
|
||||
▴▴▸▸
|
||||
▴▴▸▸
|
||||
▾▾◆◆
|
||||
▾▾◆◆
|
||||
▾▾◆◆
|
||||
|
||||
Data:
|
||||
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ 00-00-00⁰⁰ 00-00-00⁰⁰
|
||||
`;
|
||||
|
||||
exports[`All align combinations for contain > vertical contain aligned to RIGHT BOTTOM 1`] = `
|
||||
Visualization:
|
||||
|
||||
▴▴▸▸
|
||||
▴▴▸▸
|
||||
▴▴▸▸
|
||||
▾▾◆◆
|
||||
▾▾◆◆
|
||||
▾▾◆◆
|
||||
|
||||
Data:
|
||||
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
`;
|
||||
|
||||
exports[`All align combinations for contain > vertical contain aligned to RIGHT MIDDLE 1`] = `
|
||||
Visualization:
|
||||
|
||||
▴▴▸▸
|
||||
▴▴▸▸
|
||||
▴▴▸▸
|
||||
▾▾◆◆
|
||||
▾▾◆◆
|
||||
▾▾◆◆
|
||||
|
||||
Data:
|
||||
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
`;
|
||||
|
||||
exports[`All align combinations for contain > vertical contain aligned to RIGHT TOP 1`] = `
|
||||
Visualization:
|
||||
|
||||
▴▴▸▸
|
||||
▴▴▸▸
|
||||
▴▴▸▸
|
||||
▾▾◆◆
|
||||
▾▾◆◆
|
||||
▾▾◆◆
|
||||
|
||||
Data:
|
||||
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ FF-00-00ᶠᶠ FF-00-00ᶠᶠ 00-FF-00ᶠᶠ 00-FF-00ᶠᶠ
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
00-00-00⁰⁰ 00-00-00⁰⁰ 00-00-FFᶠᶠ 00-00-FFᶠᶠ FF-FF-00ᶠᶠ FF-FF-00ᶠᶠ
|
||||
`;
|
||||
+75
@@ -0,0 +1,75 @@
|
||||
import { expect, test, describe } from "vitest";
|
||||
|
||||
import { makeTestImage } from "@jimp/test-utils";
|
||||
import { HorizontalAlign, VerticalAlign, createJimp } from "@jimp/core";
|
||||
|
||||
import { methods } from "./index.js";
|
||||
|
||||
const jimp = createJimp({ plugins: [methods] });
|
||||
|
||||
describe("All align combinations for contain", () => {
|
||||
const vertical = jimp.fromBitmap(
|
||||
makeTestImage(
|
||||
"▴▴▴▴▸▸▸▸",
|
||||
"▴▴▴▴▸▸▸▸",
|
||||
"▴▴▴▴▸▸▸▸",
|
||||
"▴▴▴▴▸▸▸▸",
|
||||
"▴▴▴▴▸▸▸▸",
|
||||
"▴▴▴▴▸▸▸▸",
|
||||
"▾▾▾▾◆◆◆◆",
|
||||
"▾▾▾▾◆◆◆◆",
|
||||
"▾▾▾▾◆◆◆◆",
|
||||
"▾▾▾▾◆◆◆◆",
|
||||
"▾▾▾▾◆◆◆◆",
|
||||
"▾▾▾▾◆◆◆◆",
|
||||
),
|
||||
);
|
||||
// stores the Jimp instances of the JGD images above.
|
||||
const horizontal = jimp.fromBitmap(
|
||||
makeTestImage(
|
||||
"▴▴▴▴▴▴▸▸▸▸▸▸",
|
||||
"▴▴▴▴▴▴▸▸▸▸▸▸",
|
||||
"▴▴▴▴▴▴▸▸▸▸▸▸",
|
||||
"▴▴▴▴▴▴▸▸▸▸▸▸",
|
||||
"▾▾▾▾▾▾◆◆◆◆◆◆",
|
||||
"▾▾▾▾▾▾◆◆◆◆◆◆",
|
||||
"▾▾▾▾▾▾◆◆◆◆◆◆",
|
||||
"▾▾▾▾▾▾◆◆◆◆◆◆",
|
||||
),
|
||||
);
|
||||
|
||||
const tests: Array<
|
||||
[keyof typeof HorizontalAlign, keyof typeof VerticalAlign]
|
||||
> = [
|
||||
["LEFT", "TOP"],
|
||||
["CENTER", "TOP"],
|
||||
["RIGHT", "TOP"],
|
||||
["LEFT", "MIDDLE"],
|
||||
["CENTER", "MIDDLE"],
|
||||
["RIGHT", "MIDDLE"],
|
||||
["LEFT", "BOTTOM"],
|
||||
["CENTER", "BOTTOM"],
|
||||
["RIGHT", "BOTTOM"],
|
||||
];
|
||||
|
||||
tests.forEach(([horizontalAlign, verticalAlign]) => {
|
||||
const align = horizontalAlign + " " + verticalAlign;
|
||||
const alignValue =
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
(HorizontalAlign as any)[horizontalAlign] |
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
(VerticalAlign as any)[verticalAlign];
|
||||
|
||||
test("vertical contain aligned to " + align, () => {
|
||||
expect(
|
||||
vertical.clone().contain({ w: 6, h: 6, align: alignValue }),
|
||||
).toMatchSnapshot();
|
||||
});
|
||||
|
||||
test("horizontal contain aligned to " + align, () => {
|
||||
expect(
|
||||
horizontal.clone().contain({ w: 6, h: 6, align: alignValue }),
|
||||
).toMatchSnapshot();
|
||||
});
|
||||
});
|
||||
});
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
import { JimpClass } from "@jimp/types";
|
||||
import { HorizontalAlign, VerticalAlign } from "@jimp/core";
|
||||
import { clone } from "@jimp/utils";
|
||||
import { ResizeStrategy, methods as resizeMethods } from "@jimp/plugin-resize";
|
||||
import { methods as blitMethods } from "@jimp/plugin-blit";
|
||||
import { z } from "zod";
|
||||
|
||||
const ContainOptionsSchema = z.object({
|
||||
/** the width to resize the image to */
|
||||
w: z.number(),
|
||||
/** the height to resize the image to */
|
||||
h: z.number(),
|
||||
/** A bitmask for horizontal and vertical alignment */
|
||||
align: z.number().optional(),
|
||||
/** a scaling method (e.g. Jimp.RESIZE_BEZIER) */
|
||||
mode: z.nativeEnum(ResizeStrategy).optional(),
|
||||
});
|
||||
|
||||
export type ContainOptions = z.infer<typeof ContainOptionsSchema>;
|
||||
|
||||
export const methods = {
|
||||
/**
|
||||
* Scale the image to the given width and height keeping the aspect ratio. Some parts of the image may be letter boxed.
|
||||
* @param w the width to resize the image to
|
||||
* @param h the height to resize the image to
|
||||
* @param align A bitmask for horizontal and vertical alignment
|
||||
* @param mode a scaling method (e.g. Jimp.RESIZE_BEZIER)
|
||||
* @example
|
||||
* ```ts
|
||||
* import { Jimp } from "jimp";
|
||||
*
|
||||
* const image = await Jimp.read("test/image.png");
|
||||
*
|
||||
* image.contain({ w: 150, h: 100 });
|
||||
* ```
|
||||
*/
|
||||
contain<I extends JimpClass>(image: I, options: ContainOptions) {
|
||||
const {
|
||||
w,
|
||||
h,
|
||||
align = HorizontalAlign.CENTER | VerticalAlign.MIDDLE,
|
||||
mode,
|
||||
} = ContainOptionsSchema.parse(options);
|
||||
|
||||
const hbits = align & ((1 << 3) - 1);
|
||||
const vbits = align >> 3;
|
||||
|
||||
// check if more flags than one is in the bit sets
|
||||
if (
|
||||
!(
|
||||
(hbits !== 0 && !(hbits & (hbits - 1))) ||
|
||||
(vbits !== 0 && !(vbits & (vbits - 1)))
|
||||
)
|
||||
) {
|
||||
throw new Error("only use one flag per alignment direction");
|
||||
}
|
||||
|
||||
const alignH = hbits >> 1; // 0, 1, 2
|
||||
const alignV = vbits >> 1; // 0, 1, 2
|
||||
|
||||
const f =
|
||||
w / h > image.bitmap.width / image.bitmap.height
|
||||
? h / image.bitmap.height
|
||||
: w / image.bitmap.width;
|
||||
|
||||
const c = resizeMethods.scale(clone(image), { f, mode });
|
||||
|
||||
image = resizeMethods.resize(image, { w, h, mode });
|
||||
|
||||
image.scan((_, __, idx) => {
|
||||
image.bitmap.data.writeUInt32BE(image.background, idx);
|
||||
});
|
||||
|
||||
image = blitMethods.blit(image, {
|
||||
src: c,
|
||||
x: ((image.bitmap.width - c.bitmap.width) / 2) * alignH,
|
||||
y: ((image.bitmap.height - c.bitmap.height) / 2) * alignV,
|
||||
});
|
||||
|
||||
return image;
|
||||
},
|
||||
};
|
||||
Reference in new issue
Block a user