diff --git a/packages/core/src/part.js b/packages/core/src/part.js index da32054e147..39773658a68 100644 --- a/packages/core/src/part.js +++ b/packages/core/src/part.js @@ -418,15 +418,15 @@ Part.prototype.setCutOnFold = function (p1, p2) { Part.prototype.isEmpty = function() { if (Object.keys(this.snippets).length > 0) return false - if (Object.keys(this.paths).length > 0) return false - - for (var p in this.paths) { - if (paths[p].length()) return false + if (Object.keys(this.paths).length > 0) { + for (var p in this.paths) { + if (this.paths[p].render && this.paths[p].length()) return false + } } for (var p in this.points) { - if (points[p].attributes.get('data-text')) return false - if (points[p].attributes.get('data-circle')) return false + if (this.points[p].attributes.get('data-text')) return false + if (this.points[p].attributes.get('data-circle')) return false } return true diff --git a/packages/core/tests/part.test.js b/packages/core/tests/part.test.js index 2256b020d98..b09c7d1620f 100644 --- a/packages/core/tests/part.test.js +++ b/packages/core/tests/part.test.js @@ -406,11 +406,27 @@ describe('isEmpty', () => { expect(part.isEmpty()).to.be.true }) - it("Should return false if the part has a path", () => { + it("Should return true if the part has paths but they have no length", () => { let pattern = new freesewing.Pattern(); let part = new pattern.Part(); - const { Path, paths } = part.shorthand() + const { Path, paths, Point } = part.shorthand() paths.seam = new Path() + expect(part.isEmpty()).to.be.true + }) + + it("Should return true if the part has paths but they don't render", () => { + let pattern = new freesewing.Pattern(); + let part = new pattern.Part(); + const { Path, paths, Point } = part.shorthand() + paths.seam = new Path().move(new Point(0,0)).line(new Point(2,3)).setRender(false) + expect(part.isEmpty()).to.be.true + }) + + it("Should return false if the part has a path with length", () => { + let pattern = new freesewing.Pattern(); + let part = new pattern.Part(); + const { Path, paths, Point } = part.shorthand() + paths.seam = new Path().move(new Point(0,0)).line(new Point(2,3)) expect(part.isEmpty()).to.be.false }) @@ -423,6 +439,24 @@ describe('isEmpty', () => { expect(part.isEmpty()).to.be.false }) + + it("Should return false if the part has a point that has text", () => { + let pattern = new freesewing.Pattern(); + let part = new pattern.Part(); + const {Point, points} = part.shorthand() + points.test = new Point(0,0) + points.test.attributes.set('data-text', 'text') + expect(part.isEmpty()).to.be.false + }) + + it("Should return false if the part has a point that has a circle", () => { + let pattern = new freesewing.Pattern(); + let part = new pattern.Part(); + const {Point, points} = part.shorthand() + points.test = new Point(0,0) + points.test.attributes.set('data-circle', 10) + expect(part.isEmpty()).to.be.false + }) }) }) diff --git a/sites/lab/package.json b/sites/lab/package.json index 39bc676b16d..690e5156b5f 100644 --- a/sites/lab/package.json +++ b/sites/lab/package.json @@ -55,8 +55,5 @@ }, "browserslist": [ "last 2 versions" - ], - "engines": { - "node": "14.x" - } + ] }