react-filerobot-image-editor
Version:
React component version of filerobot image editor (FIE).
1 lines • 2.11 kB
JavaScript
import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["dismissHistory","replaceCurrent","selectOnSet","onAnnotationAdd"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import{EVENTS}from"../utils/constants";import emitCustomEvent from"../utils/emitCustomEvent";import randomId from"../utils/randomId";export var SET_ANNOTATION="SET_ANNOTATION";var setAnnotation=function(a){var b,c=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},d=c.dismissHistory,e=c.replaceCurrent,f=void 0!==e&&e,g=c.selectOnSet,h=c.onAnnotationAdd,i=_objectWithoutProperties(c,_excluded),j=null!==(b=i.id)&&void 0!==b?b:randomId(i.name),k=a.annotations[j]||{},l=0===Object.keys(k).length,m=_objectSpread(_objectSpread({},i),{},{id:j});if((f||l)&&"function"==typeof h){var n=h(m,a);m=_objectSpread(_objectSpread({},m),n)}if(k&&!Object.keys(m).some(function(a){return"undefined"!=typeof m[a]&&m[a]!==k[a]}))return a;var o=_objectSpread(_objectSpread({},f?{}:k),m);return emitCustomEvent(l?EVENTS.ANNOTATION_ADD:EVENTS.ANNOTATION_EDIT,{annotation:o}),_objectSpread(_objectSpread({},a),{},{isDesignState:!(void 0!==d&&d),annotationIds:l?[].concat(_toConsumableArray(a.annotationIds),[o.id]):a.annotationIds,annotations:_objectSpread(_objectSpread({},a.annotations),{},_defineProperty({},o.id,o)),selectionsIds:void 0!==g&&g?[o.id]:a.selectionsIds})};export default setAnnotation;