diff --git a/packages/builder/src/components/ComponentOptions/components/Content/Canvas/components/fabric/index.js b/packages/builder/src/components/ComponentOptions/components/Content/Canvas/components/fabric/index.js index 362757d9b..37a6d90fc 100644 --- a/packages/builder/src/components/ComponentOptions/components/Content/Canvas/components/fabric/index.js +++ b/packages/builder/src/components/ComponentOptions/components/Content/Canvas/components/fabric/index.js @@ -68,6 +68,21 @@ fabric.Image.fromObject = function(_object, callback) { }) } +// Add AOI object type --------------------------------------------------------- + +// (apparently fabric requires camelcased constructors) +fabric.Aoi = fabric.util.createClass(fabric.Rect, { + type: 'aoi', + initialize: function(options={}) { + options.fill = 'rgba(0, 0, 0, 0.2)' + this.callSuper('initialize', options) + }, +}) + +fabric.Aoi.fromObject = function(object, callback, forceAsync) { + return fabric.Object._fromObject('Aoi', object, callback, forceAsync); +} + // Canvas component ------------------------------------------------------------ const handlePadding = 6 @@ -354,6 +369,11 @@ export default class FabricCanvas extends Component { ...defaults, ...options, }) + case 'aoi': + return new fabric.Aoi({ + width: 50, height: 50, + ...defaults, + }) default: return undefined } diff --git a/packages/builder/src/components/ComponentOptions/components/Content/Canvas/components/form/AddDropDown.js b/packages/builder/src/components/ComponentOptions/components/Content/Canvas/components/form/AddDropDown.js index 7b4f42bda..49a2f2ed4 100644 --- a/packages/builder/src/components/ComponentOptions/components/Content/Canvas/components/form/AddDropDown.js +++ b/packages/builder/src/components/ComponentOptions/components/Content/Canvas/components/form/AddDropDown.js @@ -80,6 +80,13 @@ const AddDropDown = ( Image + Interaction + addHandler('aoi') } + > + AOI + + From selected model=".strokeWidth" component={ StrokeWidthDropdown } controlProps={{ - disabled: ['image', undefined].includes(selection.type), + disabled: ['image', 'aoi', undefined].includes(selection.type), }} /> controlProps={{ icon: 'circle', iconFallbackWeight: 'r', - disabled: ['image', undefined].includes(selection.type), + disabled: ['image', 'aoi', undefined].includes(selection.type), }} /> controlProps={{ icon: 'circle', iconWeight: 's', - disabled: ['line', 'image', undefined].includes(selection.type), + disabled: ['line', 'image', 'aoi', undefined].includes(selection.type), }} />