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),
}}
/>