From 50b37f4cb540f0516171bdcf93fda7fd03784b46 Mon Sep 17 00:00:00 2001 From: joostdecock Date: Sat, 23 Jul 2022 14:52:56 +0200 Subject: [PATCH] feat(core): Added new utility methods for attrs --- packages/core/src/part.js | 16 ++++++++++++++++ packages/core/src/path.js | 7 +++++++ packages/core/src/point.js | 16 ++++++++++++++++ 3 files changed, 39 insertions(+) diff --git a/packages/core/src/part.js b/packages/core/src/part.js index ae19aad1a80..7a7829964d1 100644 --- a/packages/core/src/part.js +++ b/packages/core/src/part.js @@ -359,4 +359,20 @@ Part.prototype.generateTransform = function(transforms) { } } +/** Chainable way to set the grain property */ +Part.prototype.setGrain = function (grain = 90) { + this.attributes.set('data-grain', grain) + + return this +} + +/** Chainable way to set the grain property */ +Part.prototype.setCut = function (cut = { count: 2, mirror: true, onFold: false }) { + this.attributes.set('data-cut', cut) + + return this +} + + + export default Part diff --git a/packages/core/src/path.js b/packages/core/src/path.js index 0cd589ba75a..710fa01f2fe 100644 --- a/packages/core/src/path.js +++ b/packages/core/src/path.js @@ -35,6 +35,13 @@ Path.prototype.setRender = function (render = true) { return this } +/** Chainable way to set the class property */ +Path.prototype.setClass = function (className = false) { + if (className) this.attributes.set('class', className) + + return this +} + /** Adds a move operation to Point to */ Path.prototype.move = function (to) { if (to instanceof Point !== true) diff --git a/packages/core/src/point.js b/packages/core/src/point.js index fd00e49f41b..9830e4349e0 100644 --- a/packages/core/src/point.js +++ b/packages/core/src/point.js @@ -231,4 +231,20 @@ Point.prototype.translate = function (x, y) { return p } +/** Chainable way to set the data-text property (and optional class) */ +Point.prototype.setText = function (text = '', className=false) { + this.attributes.set('data-text', text) + if (className) this.attributes.set('data-text-class', className) + + return this +} + +/** Chainable way to set the data-circle property (and optional class) */ +Point.prototype.setCircle = function (radius = false, className=false) { + if (radius) this.attributes.set('data-circle', radius) + if (className) this.attributes.set('data-circle-class', className) + + return this +} + export default Point