@craftjs/utils
Advanced tools
Comparing version 0.1.0-beta.12 to 0.1.0-beta.13
@@ -1,1 +0,1 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var produce=require("immer"),React=require("react"),isEqualWith=require("lodash.isequalwith"),invariant=require("tiny-invariant");function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var produce__default=_interopDefaultLegacy(produce),React__default=_interopDefaultLegacy(React),isEqualWith__default=_interopDefaultLegacy(isEqualWith),invariant__default=_interopDefaultLegacy(invariant),ROOT_NODE="ROOT",DEPRECATED_ROOT_NODE="canvas-ROOT",ERROR_NOPARENT="Parent id cannot be ommited",ERROR_DUPLICATE_NODEID="Attempting to add a node with duplicated id",ERROR_INVALID_NODEID="Node does not exist, it may have been removed",ERROR_TOP_LEVEL_ELEMENT_NO_ID='A <Element /> that is used inside a User Component must specify an `id` prop, eg: <Element id="text_element">...</Element> ',ERROR_MISSING_PLACEHOLDER_PLACEMENT="Placeholder required placement info (parent, index, or where) is missing",ERROR_MOVE_CANNOT_DROP="Node cannot be dropped into target parent",ERROR_MOVE_INCOMING_PARENT="Target parent rejects incoming node",ERROR_MOVE_OUTGOING_PARENT="Current parent rejects outgoing node",ERROR_MOVE_NONCANVAS_CHILD="Cannot move node that is not a direct child of a Canvas node",ERROR_MOVE_TO_NONCANVAS_PARENT="Cannot move node into a non-Canvas parent",ERROR_MOVE_TOP_LEVEL_NODE="A top-level Node cannot be moved",ERROR_MOVE_ROOT_NODE="Root Node cannot be moved",ERROR_MOVE_TO_DESCENDANT="Cannot move node into a descendant",ERROR_NOT_IN_RESOLVER="The component type specified for this node does not exist in the resolver",ERROR_INFINITE_CANVAS="The component specified in the <Canvas> `is` prop has additional Canvas specified in it's render template.",ERROR_CANNOT_DRAG="The node has specified a canDrag() rule that prevents it from being dragged",ERROR_INVALID_NODE_ID="Invalid parameter Node Id specified",ERROR_DELETE_TOP_LEVEL_NODE="Attempting to delete a top-level Node",_assign=function(){return(_assign=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function __spreadArrays(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),o=0;for(t=0;t<n;t++)for(var i=arguments[t],a=0,s=i.length;a<s;a++,o++)r[o]=i[a];return r}var HISTORY_ACTIONS={UNDO:"HISTORY_UNDO",REDO:"HISTORY_REDO",THROTTLE:"HISTORY_THROTTLE",IGNORE:"HISTORY_IGNORE"},History=function(){function e(){this.timeline=[],this.pointer=-1}return e.prototype.add=function(e,t){0===e.length&&0===t.length||(this.pointer=this.pointer+1,this.timeline.length=this.pointer,this.timeline[this.pointer]={patches:e,inversePatches:t,timestamp:Date.now()})},e.prototype.throttleAdd=function(e,t,n){if(void 0===n&&(n=500),0!==e.length||0!==t.length){if(this.timeline.length&&this.pointer>=0){var r=this.timeline[this.pointer],o=r.patches,i=r.timestamp;if((new Date).getTime()-i<n&&o.length===e.length&&o.every((function(t,n){var r=e[n];return r.op===t.op&&isEqualWith__default.default(r.path,t.path)})))return void(this.throttledInversePatch||(this.throttledInversePatch=t))}this.add(e,this.throttledInversePatch||t),this.throttledInversePatch=null}},e.prototype.canUndo=function(){return this.pointer>=0},e.prototype.canRedo=function(){return this.pointer<this.timeline.length-1},e.prototype.undo=function(e){if(this.canUndo()){this.throttledInversePatch=null;var t=this.timeline[this.pointer].inversePatches;return this.pointer=this.pointer-1,produce.applyPatches(e,t)}},e.prototype.redo=function(e){if(this.canRedo())return this.pointer=this.pointer+1,produce.applyPatches(e,this.timeline[this.pointer].patches)},e}();function useMethods(e,t,n,r){var o,i=React.useMemo((function(){return new History}),[]),a=React.useRef([]),s=React.useRef();"function"==typeof e?o=e:(o=e.methods,a.current=e.ignoreHistoryForActions,s.current=e.normalizeHistory);var c=React.useRef(r);c.current=r;var u=React.useMemo((function(){var e=s.current,t=a.current,r=c.current;return[function(a,s){var c,u=n&&createQuery(n,(function(){return a}),i),R=produce.produceWithPatches(a,(function(e){var t,n;switch(s.type){case HISTORY_ACTIONS.UNDO:return i.undo(e);case HISTORY_ACTIONS.REDO:return i.redo(e);case HISTORY_ACTIONS.IGNORE:case HISTORY_ACTIONS.THROTTLE:var r=s.payload,a=r[0],c=r.slice(1);(t=o(e,u))[a].apply(t,c);break;default:(n=o(e,u))[s.type].apply(n,s.payload)}})),d=R[0],l=R[1],O=R[2];return c=d,r&&r(d,a,{type:s.type,params:s.payload,patches:l},u,(function(e){var t=produce.produceWithPatches(d,e);c=t[0],l=__spreadArrays(l,t[1]),O=__spreadArrays(t[2],O)})),[HISTORY_ACTIONS.UNDO,HISTORY_ACTIONS.REDO].includes(s.type)&&e&&(c=produce__default.default(c,e)),__spreadArrays(t,[HISTORY_ACTIONS.UNDO,HISTORY_ACTIONS.REDO,HISTORY_ACTIONS.IGNORE]).includes(s.type)||(s.type===HISTORY_ACTIONS.THROTTLE?i.throttleAdd(l,O,s.config&&s.config.rate):i.add(l,O)),c},o]}),[i,o,n]),R=u[1],d=React.useReducer(u[0],t),l=d[0],O=d[1],p=React.useRef();p.current=l;var E=React.useMemo((function(){return n?createQuery(n,(function(){return p.current}),i):[]}),[i,n]),_=React.useMemo((function(){var e=Object.keys(R(null,null)),t=a.current;return _assign(_assign({},e.reduce((function(e,t){return e[t]=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return O({type:t,payload:e})},e}),{})),{history:{undo:function(){return O({type:HISTORY_ACTIONS.UNDO})},redo:function(){return O({type:HISTORY_ACTIONS.REDO})},throttle:function(n){return _assign({},e.filter((function(e){return!t.includes(e)})).reduce((function(e,t){return e[t]=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return O({type:HISTORY_ACTIONS.THROTTLE,payload:__spreadArrays([t],e),config:{rate:n}})},e}),{}))},ignore:function(){return _assign({},e.filter((function(e){return!t.includes(e)})).reduce((function(e,t){return e[t]=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return O({type:HISTORY_ACTIONS.IGNORE,payload:__spreadArrays([t],e)})},e}),{}))}}})}),[R]),f=React.useCallback((function(){return p.current}),[]),h=React.useMemo((function(){return new Watcher(f)}),[f]);return React.useEffect((function(){p.current=l,h.notify()}),[l,h]),React.useMemo((function(){return{getState:f,subscribe:function(e,t,n){return h.subscribe(e,t,n)},actions:_,query:E,history:i}}),[_,E,h,f,i])}function createQuery(e,t,n){var r=Object.keys(e()).reduce((function(n,r){var o;return _assign(_assign({},n),((o={})[r]=function(){for(var n,o=[],i=0;i<arguments.length;i++)o[i]=arguments[i];return(n=e(t()))[r].apply(n,o)},o))}),{});return _assign(_assign({},r),{history:{canUndo:function(){return n.canUndo()},canRedo:function(){return n.canRedo()}}})}var Watcher=function(){function e(e){this.subscribers=[],this.getState=e}return e.prototype.subscribe=function(e,t,n){var r=this,o=new Subscriber((function(){return e(r.getState())}),t,n);return this.subscribers.push(o),this.unsubscribe.bind(this,o)},e.prototype.unsubscribe=function(e){if(this.subscribers.length){var t=this.subscribers.indexOf(e);if(t>-1)return this.subscribers.splice(t,1)}},e.prototype.notify=function(){this.subscribers.forEach((function(e){return e.collect()}))},e}(),Subscriber=function(){function e(e,t,n){void 0===n&&(n=!1),this.collector=e,this.onChange=t,n&&this.collect()}return e.prototype.collect=function(){try{var e=this.collector();isEqualWith__default.default(e,this.collected)||(this.collected=e,this.onChange&&this.onChange(this.collected))}catch(e){console.warn(e)}},e}(),getDOMPadding=function(e){return{left:parseInt(window.getComputedStyle(e).paddingLeft),right:parseInt(window.getComputedStyle(e).paddingRight),bottom:parseInt(window.getComputedStyle(e).paddingTop),top:parseInt(window.getComputedStyle(e).paddingBottom)}},getDOMMargin=function(e){return{left:parseInt(window.getComputedStyle(e).marginLeft),right:parseInt(window.getComputedStyle(e).marginRight),bottom:parseInt(window.getComputedStyle(e).marginTop),top:parseInt(window.getComputedStyle(e).marginBottom)}},getDOMInfo=function(e){var t=e.getBoundingClientRect(),n=t.x,r=t.y,o=t.top,i=t.left,a=t.bottom,s=t.right,c=t.width,u=t.height,R=getDOMMargin(e),d=getDOMPadding(e);return{x:Math.round(n),y:Math.round(r),top:Math.round(o),left:Math.round(i),bottom:Math.round(a),right:Math.round(s),width:Math.round(c),height:Math.round(u),outerWidth:Math.round(c+R.left+R.right),outerHeight:Math.round(u+R.top+R.bottom),margin:R,padding:d,inFlow:e&&e.parentElement&&!!styleInFlow(e,e.parentElement)}},getComputedStyle=function(e){return window.getComputedStyle(e)},styleInFlow=function(e,t){var n=getComputedStyle(e),r=getComputedStyle(t);if(!(n.overflow&&"visible"!==n.overflow||"none"!==r.float||t&&"flex"===r.display&&"column"!==r["flex-direction"])){switch(n.position){case"static":case"relative":break;default:return}switch(e.tagName){case"TR":case"TBODY":case"THEAD":case"TFOOT":return!0}switch(n.display){case"block":case"list-item":case"table":case"flex":return!0}}};function useCollector(e,t){var n=e.subscribe,r=e.getState,o=e.actions,i=e.query,a=React.useRef(!0),s=React.useRef(null),c=React.useRef(t);c.current=t;var u=React.useCallback((function(e){return _assign(_assign({},e),{actions:o,query:i})}),[o,i]);a.current&&t&&(s.current=t(r(),i),a.current=!1);var R=React.useState(u(s.current)),d=R[0],l=R[1];return React.useEffect((function(){var e;return c.current&&(e=n((function(e){return c.current(e,i)}),(function(e){l(u(e))}))),function(){e&&e()}}),[u,i,n]),d}function setRef(e,t){t&&("function"==typeof e?e(t):e.current=t)}function cloneWithRef(e,t){var n=e.ref;return invariant__default.default("string"!=typeof n,"Cannot connect to an element with an existing string ref. Please convert it to use a callback ref instead, or wrap it into a <span> or <div>. Read more: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute"),React.cloneElement(e,n?{ref:function(e){setRef(n,e),setRef(t,e)}}:{ref:t})}function throwIfCompositeComponentElement(e){if("string"!=typeof e.type)throw new Error}function wrapHookToRecognizeElement(e){return function(t,n){if(void 0===t&&(t=null),!React.isValidElement(t)){var r=t;return r&&e(r,n),r}var o=t;return throwIfCompositeComponentElement(o),cloneWithRef(o,e)}}var RenderIndicator=function(e){return React__default.default.createElement("div",{style:_assign({position:"fixed",display:"block",opacity:1,borderStyle:"solid",borderWidth:"1px",borderColor:"transparent",zIndex:99999},e.style)})},useEffectOnce=function(e){React.useEffect(e,[])},defineEventListener=function(e,t,n){return[e,t,n]},isEventBlockedByDescendant=function(e,t,n){for(var r=e.craft&&e.craft.blockedEvents[t]||[],o=0;o<r.length;o++){var i=r[o];if(n!==i&&n.contains(i))return!0}return!1},WatchHandler=function(){function e(e,t,n,r){var o=this;this.el=t,this.opts=n,this.handler=r,this.unsubscribe=e.subscribe((function(e){return{enabled:e.options.enabled}}),(function(e){var n=e.enabled;if(!document.body.contains(t))return o.remove(),o.unsubscribe();n?o.add():o.remove()}),!0)}return e.prototype.add=function(){var e=this,t=this.handler,n=t.init,r=t.events;this.cleanDOM=n&&n(this.el,this.opts),this.listenersToRemove=r&&r.map((function(t){var n=t[0],r=t[1],o=t[2],i=function(t){t.craft||(t.craft={blockedEvents:{},stopPropagation:function(){}}),isEventBlockedByDescendant(t,n,e.el)||(t.craft.stopPropagation=function(){t.craft.blockedEvents[n]||(t.craft.blockedEvents[n]=[]),t.craft.blockedEvents[n].push(e.el)},r(t,e.opts))};return e.el.addEventListener(n,i,o),function(){return e.el.removeEventListener(n,i,o)}}))},e.prototype.remove=function(){this.cleanDOM&&(this.cleanDOM(),this.cleanDOM=null),this.listenersToRemove&&(this.listenersToRemove.forEach((function(e){return e()})),this.listenersToRemove=null)},e}(),Handlers=function(){function e(e){this.wm=new WeakMap,this.store=e}return e.prototype.connectors=function(){var e=this,t=this.handlers()||{};return Object.keys(t).reduce((function(n,r){var o=t[r],i=o.init,a=o.events;return i||a?(n[r]=wrapHookToRecognizeElement((function(t,n){var o;if(t&&document.body.contains(t)){var s=e.wm.get(t);s&&s[r]||e.wm.set(t,_assign(_assign({},s),((o={})[r]=new WatchHandler(e.store,t,n,{init:i,events:a}),o)))}else e.wm.delete(t)})),n):(n[r]=function(){},n)}),{})},e.getConnectors=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=new(this.bind.apply(this,__spreadArrays([void 0],e)));return n.connectors()},e}(),deprecationWarning=function(e,t){var n="Deprecation warning: "+e+" will be deprecated in future relases.",r=t.suggest,o=t.doc;r&&(n+=" Please use "+r+" instead."),o&&(n+="("+o+")"),console.warn(n)};exports.DEPRECATED_ROOT_NODE=DEPRECATED_ROOT_NODE,exports.ERROR_CANNOT_DRAG=ERROR_CANNOT_DRAG,exports.ERROR_DELETE_TOP_LEVEL_NODE=ERROR_DELETE_TOP_LEVEL_NODE,exports.ERROR_DUPLICATE_NODEID=ERROR_DUPLICATE_NODEID,exports.ERROR_INFINITE_CANVAS=ERROR_INFINITE_CANVAS,exports.ERROR_INVALID_NODEID=ERROR_INVALID_NODEID,exports.ERROR_INVALID_NODE_ID=ERROR_INVALID_NODE_ID,exports.ERROR_MISSING_PLACEHOLDER_PLACEMENT=ERROR_MISSING_PLACEHOLDER_PLACEMENT,exports.ERROR_MOVE_CANNOT_DROP=ERROR_MOVE_CANNOT_DROP,exports.ERROR_MOVE_INCOMING_PARENT=ERROR_MOVE_INCOMING_PARENT,exports.ERROR_MOVE_NONCANVAS_CHILD=ERROR_MOVE_NONCANVAS_CHILD,exports.ERROR_MOVE_OUTGOING_PARENT=ERROR_MOVE_OUTGOING_PARENT,exports.ERROR_MOVE_ROOT_NODE=ERROR_MOVE_ROOT_NODE,exports.ERROR_MOVE_TOP_LEVEL_NODE=ERROR_MOVE_TOP_LEVEL_NODE,exports.ERROR_MOVE_TO_DESCENDANT=ERROR_MOVE_TO_DESCENDANT,exports.ERROR_MOVE_TO_NONCANVAS_PARENT=ERROR_MOVE_TO_NONCANVAS_PARENT,exports.ERROR_NOPARENT=ERROR_NOPARENT,exports.ERROR_NOT_IN_RESOLVER=ERROR_NOT_IN_RESOLVER,exports.ERROR_TOP_LEVEL_ELEMENT_NO_ID=ERROR_TOP_LEVEL_ELEMENT_NO_ID,exports.HISTORY_ACTIONS=HISTORY_ACTIONS,exports.Handlers=Handlers,exports.History=History,exports.ROOT_NODE=ROOT_NODE,exports.RenderIndicator=RenderIndicator,exports.cloneWithRef=cloneWithRef,exports.createQuery=createQuery,exports.defineEventListener=defineEventListener,exports.deprecationWarning=deprecationWarning,exports.getComputedStyle=getComputedStyle,exports.getDOMInfo=getDOMInfo,exports.getDOMMargin=getDOMMargin,exports.getDOMPadding=getDOMPadding,exports.styleInFlow=styleInFlow,exports.useCollector=useCollector,exports.useEffectOnce=useEffectOnce,exports.useMethods=useMethods,exports.wrapHookToRecognizeElement=wrapHookToRecognizeElement; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var produce=require("immer"),isEqualWith=require("lodash.isequalwith"),React=require("react"),invariant=require("tiny-invariant");function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var produce__default=_interopDefaultLegacy(produce),isEqualWith__default=_interopDefaultLegacy(isEqualWith),React__default=_interopDefaultLegacy(React),invariant__default=_interopDefaultLegacy(invariant),ROOT_NODE="ROOT",DEPRECATED_ROOT_NODE="canvas-ROOT",ERROR_NOPARENT="Parent id cannot be ommited",ERROR_DUPLICATE_NODEID="Attempting to add a node with duplicated id",ERROR_INVALID_NODEID="Node does not exist, it may have been removed",ERROR_TOP_LEVEL_ELEMENT_NO_ID='A <Element /> that is used inside a User Component must specify an `id` prop, eg: <Element id="text_element">...</Element> ',ERROR_MISSING_PLACEHOLDER_PLACEMENT="Placeholder required placement info (parent, index, or where) is missing",ERROR_MOVE_CANNOT_DROP="Node cannot be dropped into target parent",ERROR_MOVE_INCOMING_PARENT="Target parent rejects incoming node",ERROR_MOVE_OUTGOING_PARENT="Current parent rejects outgoing node",ERROR_MOVE_NONCANVAS_CHILD="Cannot move node that is not a direct child of a Canvas node",ERROR_MOVE_TO_NONCANVAS_PARENT="Cannot move node into a non-Canvas parent",ERROR_MOVE_TOP_LEVEL_NODE="A top-level Node cannot be moved",ERROR_MOVE_ROOT_NODE="Root Node cannot be moved",ERROR_MOVE_TO_DESCENDANT="Cannot move node into a descendant",ERROR_NOT_IN_RESOLVER="The component type specified for this node does not exist in the resolver",ERROR_INFINITE_CANVAS="The component specified in the <Canvas> `is` prop has additional Canvas specified in it's render template.",ERROR_CANNOT_DRAG="The node has specified a canDrag() rule that prevents it from being dragged",ERROR_INVALID_NODE_ID="Invalid parameter Node Id specified",ERROR_DELETE_TOP_LEVEL_NODE="Attempting to delete a top-level Node",ERROR_RESOLVER_NOT_AN_OBJECT="Resolver in <Editor /> has to be an object. For (de)serialization Craft.js needs a list of all the User Components. \n \nMore info: https://craft.js.org/r/docs/api/editor#props",ERROR_DESERIALIZE_COMPONENT_NOT_IN_RESOLVER="An Error occurred while deserializing components: Cannot find component <%displayName% /> in resolver map. Please check your resolver in <Editor />\n\nAvailable components in resolver: %availableComponents%\n\nMore info: https://craft.js.org/r/docs/api/editor#props",_assign=function(){return(_assign=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function __spreadArrays(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),o=0;for(t=0;t<n;t++)for(var i=arguments[t],a=0,s=i.length;a<s;a++,o++)r[o]=i[a];return r}var HISTORY_ACTIONS={UNDO:"HISTORY_UNDO",REDO:"HISTORY_REDO",THROTTLE:"HISTORY_THROTTLE",IGNORE:"HISTORY_IGNORE"},History=function(){function e(){this.timeline=[],this.pointer=-1}return e.prototype.add=function(e,t){0===e.length&&0===t.length||(this.pointer=this.pointer+1,this.timeline.length=this.pointer,this.timeline[this.pointer]={patches:e,inversePatches:t,timestamp:Date.now()})},e.prototype.throttleAdd=function(e,t,n){if(void 0===n&&(n=500),0!==e.length||0!==t.length){if(this.timeline.length&&this.pointer>=0){var r=this.timeline[this.pointer],o=r.patches,i=r.timestamp;if((new Date).getTime()-i<n&&o.length===e.length&&o.every((function(t,n){var r=e[n];return r.op===t.op&&isEqualWith__default.default(r.path,t.path)})))return void(this.throttledInversePatch||(this.throttledInversePatch=t))}this.add(e,this.throttledInversePatch||t),this.throttledInversePatch=null}},e.prototype.canUndo=function(){return this.pointer>=0},e.prototype.canRedo=function(){return this.pointer<this.timeline.length-1},e.prototype.undo=function(e){if(this.canUndo()){this.throttledInversePatch=null;var t=this.timeline[this.pointer].inversePatches;return this.pointer=this.pointer-1,produce.applyPatches(e,t)}},e.prototype.redo=function(e){if(this.canRedo())return this.pointer=this.pointer+1,produce.applyPatches(e,this.timeline[this.pointer].patches)},e}();function useMethods(e,t,n,r){var o,i=React.useMemo((function(){return new History}),[]),a=React.useRef([]),s=React.useRef();"function"==typeof e?o=e:(o=e.methods,a.current=e.ignoreHistoryForActions,s.current=e.normalizeHistory);var c=React.useRef(r);c.current=r;var R=React.useMemo((function(){var e=s.current,t=a.current,r=c.current;return[function(a,s){var c,R=n&&createQuery(n,(function(){return a}),i),u=produce.produceWithPatches(a,(function(e){var t,n;switch(s.type){case HISTORY_ACTIONS.UNDO:return i.undo(e);case HISTORY_ACTIONS.REDO:return i.redo(e);case HISTORY_ACTIONS.IGNORE:case HISTORY_ACTIONS.THROTTLE:var r=s.payload,a=r[0],c=r.slice(1);(t=o(e,R))[a].apply(t,c);break;default:(n=o(e,R))[s.type].apply(n,s.payload)}})),O=u[0],E=u[1],_=u[2];return c=O,r&&r(O,a,{type:s.type,params:s.payload,patches:E},R,(function(e){var t=produce.produceWithPatches(O,e);c=t[0],E=__spreadArrays(E,t[1]),_=__spreadArrays(t[2],_)})),[HISTORY_ACTIONS.UNDO,HISTORY_ACTIONS.REDO].includes(s.type)&&e&&(c=produce__default.default(c,e)),__spreadArrays(t,[HISTORY_ACTIONS.UNDO,HISTORY_ACTIONS.REDO,HISTORY_ACTIONS.IGNORE]).includes(s.type)||(s.type===HISTORY_ACTIONS.THROTTLE?i.throttleAdd(E,_,s.config&&s.config.rate):i.add(E,_)),c},o]}),[i,o,n]),u=R[1],O=React.useReducer(R[0],t),E=O[0],_=O[1],p=React.useRef();p.current=E;var d=React.useMemo((function(){return n?createQuery(n,(function(){return p.current}),i):[]}),[i,n]),l=React.useMemo((function(){var e=Object.keys(u(null,null)),t=a.current;return _assign(_assign({},e.reduce((function(e,t){return e[t]=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return _({type:t,payload:e})},e}),{})),{history:{undo:function(){return _({type:HISTORY_ACTIONS.UNDO})},redo:function(){return _({type:HISTORY_ACTIONS.REDO})},throttle:function(n){return _assign({},e.filter((function(e){return!t.includes(e)})).reduce((function(e,t){return e[t]=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return _({type:HISTORY_ACTIONS.THROTTLE,payload:__spreadArrays([t],e),config:{rate:n}})},e}),{}))},ignore:function(){return _assign({},e.filter((function(e){return!t.includes(e)})).reduce((function(e,t){return e[t]=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return _({type:HISTORY_ACTIONS.IGNORE,payload:__spreadArrays([t],e)})},e}),{}))}}})}),[u]),f=React.useCallback((function(){return p.current}),[]),h=React.useMemo((function(){return new Watcher(f)}),[f]);return React.useEffect((function(){p.current=E,h.notify()}),[E,h]),React.useMemo((function(){return{getState:f,subscribe:function(e,t,n){return h.subscribe(e,t,n)},actions:l,query:d,history:i}}),[l,d,h,f,i])}function createQuery(e,t,n){var r=Object.keys(e()).reduce((function(n,r){var o;return _assign(_assign({},n),((o={})[r]=function(){for(var n,o=[],i=0;i<arguments.length;i++)o[i]=arguments[i];return(n=e(t()))[r].apply(n,o)},o))}),{});return _assign(_assign({},r),{history:{canUndo:function(){return n.canUndo()},canRedo:function(){return n.canRedo()}}})}var Watcher=function(){function e(e){this.subscribers=[],this.getState=e}return e.prototype.subscribe=function(e,t,n){var r=this,o=new Subscriber((function(){return e(r.getState())}),t,n);return this.subscribers.push(o),this.unsubscribe.bind(this,o)},e.prototype.unsubscribe=function(e){if(this.subscribers.length){var t=this.subscribers.indexOf(e);if(t>-1)return this.subscribers.splice(t,1)}},e.prototype.notify=function(){this.subscribers.forEach((function(e){return e.collect()}))},e}(),Subscriber=function(){function e(e,t,n){void 0===n&&(n=!1),this.collector=e,this.onChange=t,n&&this.collect()}return e.prototype.collect=function(){try{var e=this.collector();isEqualWith__default.default(e,this.collected)||(this.collected=e,this.onChange&&this.onChange(this.collected))}catch(e){console.warn(e)}},e}(),getDOMPadding=function(e){return{left:parseInt(window.getComputedStyle(e).paddingLeft),right:parseInt(window.getComputedStyle(e).paddingRight),bottom:parseInt(window.getComputedStyle(e).paddingTop),top:parseInt(window.getComputedStyle(e).paddingBottom)}},getDOMMargin=function(e){return{left:parseInt(window.getComputedStyle(e).marginLeft),right:parseInt(window.getComputedStyle(e).marginRight),bottom:parseInt(window.getComputedStyle(e).marginTop),top:parseInt(window.getComputedStyle(e).marginBottom)}},getDOMInfo=function(e){var t=e.getBoundingClientRect(),n=t.x,r=t.y,o=t.top,i=t.left,a=t.bottom,s=t.right,c=t.width,R=t.height,u=getDOMMargin(e),O=getDOMPadding(e);return{x:Math.round(n),y:Math.round(r),top:Math.round(o),left:Math.round(i),bottom:Math.round(a),right:Math.round(s),width:Math.round(c),height:Math.round(R),outerWidth:Math.round(c+u.left+u.right),outerHeight:Math.round(R+u.top+u.bottom),margin:u,padding:O,inFlow:e&&e.parentElement&&!!styleInFlow(e,e.parentElement)}},getComputedStyle=function(e){return window.getComputedStyle(e)},styleInFlow=function(e,t){var n=getComputedStyle(e),r=getComputedStyle(t);if(!(n.overflow&&"visible"!==n.overflow||"none"!==r.float||t&&"flex"===r.display&&"column"!==r["flex-direction"])){switch(n.position){case"static":case"relative":break;default:return}switch(e.tagName){case"TR":case"TBODY":case"THEAD":case"TFOOT":return!0}switch(n.display){case"block":case"list-item":case"table":case"flex":return!0}}};function useCollector(e,t){var n=e.subscribe,r=e.getState,o=e.actions,i=e.query,a=React.useRef(!0),s=React.useRef(null),c=React.useRef(t);c.current=t;var R=React.useCallback((function(e){return _assign(_assign({},e),{actions:o,query:i})}),[o,i]);a.current&&t&&(s.current=t(r(),i),a.current=!1);var u=React.useState(R(s.current)),O=u[0],E=u[1];return React.useEffect((function(){var e;return c.current&&(e=n((function(e){return c.current(e,i)}),(function(e){E(R(e))}))),function(){e&&e()}}),[R,i,n]),O}function setRef(e,t){t&&("function"==typeof e?e(t):e.current=t)}function cloneWithRef(e,t){var n=e.ref;return invariant__default.default("string"!=typeof n,"Cannot connect to an element with an existing string ref. Please convert it to use a callback ref instead, or wrap it into a <span> or <div>. Read more: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute"),React.cloneElement(e,n?{ref:function(e){setRef(n,e),setRef(t,e)}}:{ref:t})}function throwIfCompositeComponentElement(e){if("string"!=typeof e.type)throw new Error}function wrapHookToRecognizeElement(e){return function(t,n){if(void 0===t&&(t=null),!React.isValidElement(t)){var r=t;return r&&e(r,n),r}var o=t;return throwIfCompositeComponentElement(o),cloneWithRef(o,e)}}var RenderIndicator=function(e){return React__default.default.createElement("div",{style:_assign({position:"fixed",display:"block",opacity:1,borderStyle:"solid",borderWidth:"1px",borderColor:"transparent",zIndex:99999},e.style)})},useEffectOnce=function(e){React.useEffect(e,[])},deprecationWarning=function(e,t){var n="Deprecation warning: "+e+" will be deprecated in future relases.",r=t.suggest,o=t.doc;r&&(n+=" Please use "+r+" instead."),o&&(n+="("+o+")"),console.warn(n)};exports.DEPRECATED_ROOT_NODE=DEPRECATED_ROOT_NODE,exports.ERROR_CANNOT_DRAG=ERROR_CANNOT_DRAG,exports.ERROR_DELETE_TOP_LEVEL_NODE=ERROR_DELETE_TOP_LEVEL_NODE,exports.ERROR_DESERIALIZE_COMPONENT_NOT_IN_RESOLVER=ERROR_DESERIALIZE_COMPONENT_NOT_IN_RESOLVER,exports.ERROR_DUPLICATE_NODEID=ERROR_DUPLICATE_NODEID,exports.ERROR_INFINITE_CANVAS=ERROR_INFINITE_CANVAS,exports.ERROR_INVALID_NODEID=ERROR_INVALID_NODEID,exports.ERROR_INVALID_NODE_ID=ERROR_INVALID_NODE_ID,exports.ERROR_MISSING_PLACEHOLDER_PLACEMENT=ERROR_MISSING_PLACEHOLDER_PLACEMENT,exports.ERROR_MOVE_CANNOT_DROP=ERROR_MOVE_CANNOT_DROP,exports.ERROR_MOVE_INCOMING_PARENT=ERROR_MOVE_INCOMING_PARENT,exports.ERROR_MOVE_NONCANVAS_CHILD=ERROR_MOVE_NONCANVAS_CHILD,exports.ERROR_MOVE_OUTGOING_PARENT=ERROR_MOVE_OUTGOING_PARENT,exports.ERROR_MOVE_ROOT_NODE=ERROR_MOVE_ROOT_NODE,exports.ERROR_MOVE_TOP_LEVEL_NODE=ERROR_MOVE_TOP_LEVEL_NODE,exports.ERROR_MOVE_TO_DESCENDANT=ERROR_MOVE_TO_DESCENDANT,exports.ERROR_MOVE_TO_NONCANVAS_PARENT=ERROR_MOVE_TO_NONCANVAS_PARENT,exports.ERROR_NOPARENT=ERROR_NOPARENT,exports.ERROR_NOT_IN_RESOLVER=ERROR_NOT_IN_RESOLVER,exports.ERROR_RESOLVER_NOT_AN_OBJECT=ERROR_RESOLVER_NOT_AN_OBJECT,exports.ERROR_TOP_LEVEL_ELEMENT_NO_ID=ERROR_TOP_LEVEL_ELEMENT_NO_ID,exports.HISTORY_ACTIONS=HISTORY_ACTIONS,exports.History=History,exports.ROOT_NODE=ROOT_NODE,exports.RenderIndicator=RenderIndicator,exports.cloneWithRef=cloneWithRef,exports.createQuery=createQuery,exports.deprecationWarning=deprecationWarning,exports.getComputedStyle=getComputedStyle,exports.getDOMInfo=getDOMInfo,exports.getDOMMargin=getDOMMargin,exports.getDOMPadding=getDOMPadding,exports.styleInFlow=styleInFlow,exports.useCollector=useCollector,exports.useEffectOnce=useEffectOnce,exports.useMethods=useMethods,exports.wrapHookToRecognizeElement=wrapHookToRecognizeElement; |
@@ -1,1 +0,1 @@ | ||
import t,{applyPatches as e,produceWithPatches as n}from"immer";import r,{useMemo as o,useRef as i,useReducer as a,useCallback as c,useEffect as s,useState as u,cloneElement as d,isValidElement as l}from"react";import h from"lodash.isequalwith";import f from"tiny-invariant";var p="ROOT",v="canvas-ROOT",m="Parent id cannot be ommited",g="Attempting to add a node with duplicated id",y="Node does not exist, it may have been removed",b='A <Element /> that is used inside a User Component must specify an `id` prop, eg: <Element id="text_element">...</Element> ',w="Placeholder required placement info (parent, index, or where) is missing",O="Node cannot be dropped into target parent",T="Target parent rejects incoming node",R="Current parent rejects outgoing node",E="Cannot move node that is not a direct child of a Canvas node",C="Cannot move node into a non-Canvas parent",I="A top-level Node cannot be moved",D="Root Node cannot be moved",N="Cannot move node into a descendant",S="The component type specified for this node does not exist in the resolver",k="The component specified in the <Canvas> `is` prop has additional Canvas specified in it's render template.",x="The node has specified a canDrag() rule that prevents it from being dragged",M="Invalid parameter Node Id specified",P="Attempting to delete a top-level Node",H=function(){return(H=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var o in e=arguments[n])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};function U(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;var r=Array(t),o=0;for(e=0;e<n;e++)for(var i=arguments[e],a=0,c=i.length;a<c;a++,o++)r[o]=i[a];return r}var A={UNDO:"HISTORY_UNDO",REDO:"HISTORY_REDO",THROTTLE:"HISTORY_THROTTLE",IGNORE:"HISTORY_IGNORE"},L=function(){function t(){this.timeline=[],this.pointer=-1}return t.prototype.add=function(t,e){0===t.length&&0===e.length||(this.pointer=this.pointer+1,this.timeline.length=this.pointer,this.timeline[this.pointer]={patches:t,inversePatches:e,timestamp:Date.now()})},t.prototype.throttleAdd=function(t,e,n){if(void 0===n&&(n=500),0!==t.length||0!==e.length){if(this.timeline.length&&this.pointer>=0){var r=this.timeline[this.pointer],o=r.patches,i=r.timestamp;if((new Date).getTime()-i<n&&o.length===t.length&&o.every((function(e,n){var r=t[n];return r.op===e.op&&h(r.path,e.path)})))return void(this.throttledInversePatch||(this.throttledInversePatch=e))}this.add(t,this.throttledInversePatch||e),this.throttledInversePatch=null}},t.prototype.canUndo=function(){return this.pointer>=0},t.prototype.canRedo=function(){return this.pointer<this.timeline.length-1},t.prototype.undo=function(t){if(this.canUndo()){this.throttledInversePatch=null;var n=this.timeline[this.pointer].inversePatches;return this.pointer=this.pointer-1,e(t,n)}},t.prototype.redo=function(t){if(this.canRedo())return this.pointer=this.pointer+1,e(t,this.timeline[this.pointer].patches)},t}();function j(e,r,u,d){var l,h=o((function(){return new L}),[]),f=i([]),p=i();"function"==typeof e?l=e:(l=e.methods,f.current=e.ignoreHistoryForActions,p.current=e.normalizeHistory);var v=i(d);v.current=d;var m=o((function(){var e=p.current,r=f.current,o=v.current;return[function(i,a){var c,s=u&&q(u,(function(){return i}),h),d=n(i,(function(t){var e,n;switch(a.type){case A.UNDO:return h.undo(t);case A.REDO:return h.redo(t);case A.IGNORE:case A.THROTTLE:var r=a.payload,o=r[0],i=r.slice(1);(e=l(t,s))[o].apply(e,i);break;default:(n=l(t,s))[a.type].apply(n,a.payload)}})),f=d[0],p=d[1],v=d[2];return c=f,o&&o(f,i,{type:a.type,params:a.payload,patches:p},s,(function(t){var e=n(f,t);c=e[0],p=U(p,e[1]),v=U(e[2],v)})),[A.UNDO,A.REDO].includes(a.type)&&e&&(c=t(c,e)),U(r,[A.UNDO,A.REDO,A.IGNORE]).includes(a.type)||(a.type===A.THROTTLE?h.throttleAdd(p,v,a.config&&a.config.rate):h.add(p,v)),c},l]}),[h,l,u]),g=m[1],y=a(m[0],r),b=y[0],w=y[1],O=i();O.current=b;var T=o((function(){return u?q(u,(function(){return O.current}),h):[]}),[h,u]),R=o((function(){var t=Object.keys(g(null,null)),e=f.current;return H(H({},t.reduce((function(t,e){return t[e]=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return w({type:e,payload:t})},t}),{})),{history:{undo:function(){return w({type:A.UNDO})},redo:function(){return w({type:A.REDO})},throttle:function(n){return H({},t.filter((function(t){return!e.includes(t)})).reduce((function(t,e){return t[e]=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return w({type:A.THROTTLE,payload:U([e],t),config:{rate:n}})},t}),{}))},ignore:function(){return H({},t.filter((function(t){return!e.includes(t)})).reduce((function(t,e){return t[e]=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return w({type:A.IGNORE,payload:U([e],t)})},t}),{}))}}})}),[g]),E=c((function(){return O.current}),[]),C=o((function(){return new G(E)}),[E]);return s((function(){O.current=b,C.notify()}),[b,C]),o((function(){return{getState:E,subscribe:function(t,e,n){return C.subscribe(t,e,n)},actions:R,query:T,history:h}}),[R,T,C,E,h])}function q(t,e,n){var r=Object.keys(t()).reduce((function(n,r){var o;return H(H({},n),((o={})[r]=function(){for(var n,o=[],i=0;i<arguments.length;i++)o[i]=arguments[i];return(n=t(e()))[r].apply(n,o)},o))}),{});return H(H({},r),{history:{canUndo:function(){return n.canUndo()},canRedo:function(){return n.canRedo()}}})}var G=function(){function t(t){this.subscribers=[],this.getState=t}return t.prototype.subscribe=function(t,e,n){var r=this,o=new Y((function(){return t(r.getState())}),e,n);return this.subscribers.push(o),this.unsubscribe.bind(this,o)},t.prototype.unsubscribe=function(t){if(this.subscribers.length){var e=this.subscribers.indexOf(t);if(e>-1)return this.subscribers.splice(e,1)}},t.prototype.notify=function(){this.subscribers.forEach((function(t){return t.collect()}))},t}(),Y=function(){function t(t,e,n){void 0===n&&(n=!1),this.collector=t,this.onChange=e,n&&this.collect()}return t.prototype.collect=function(){try{var t=this.collector();h(t,this.collected)||(this.collected=t,this.onChange&&this.onChange(this.collected))}catch(t){console.warn(t)}},t}(),_=function(t){return{left:parseInt(window.getComputedStyle(t).paddingLeft),right:parseInt(window.getComputedStyle(t).paddingRight),bottom:parseInt(window.getComputedStyle(t).paddingTop),top:parseInt(window.getComputedStyle(t).paddingBottom)}},B=function(t){return{left:parseInt(window.getComputedStyle(t).marginLeft),right:parseInt(window.getComputedStyle(t).marginRight),bottom:parseInt(window.getComputedStyle(t).marginTop),top:parseInt(window.getComputedStyle(t).marginBottom)}},F=function(t){var e=t.getBoundingClientRect(),n=e.x,r=e.y,o=e.top,i=e.left,a=e.bottom,c=e.right,s=e.width,u=e.height,d=B(t),l=_(t);return{x:Math.round(n),y:Math.round(r),top:Math.round(o),left:Math.round(i),bottom:Math.round(a),right:Math.round(c),width:Math.round(s),height:Math.round(u),outerWidth:Math.round(s+d.left+d.right),outerHeight:Math.round(u+d.top+d.bottom),margin:d,padding:l,inFlow:t&&t.parentElement&&!!z(t,t.parentElement)}},W=function(t){return window.getComputedStyle(t)},z=function(t,e){var n=W(t),r=W(e);if(!(n.overflow&&"visible"!==n.overflow||"none"!==r.float||e&&"flex"===r.display&&"column"!==r["flex-direction"])){switch(n.position){case"static":case"relative":break;default:return}switch(t.tagName){case"TR":case"TBODY":case"THEAD":case"TFOOT":return!0}switch(n.display){case"block":case"list-item":case"table":case"flex":return!0}}};function J(t,e){var n=t.subscribe,r=t.getState,o=t.actions,a=t.query,d=i(!0),l=i(null),h=i(e);h.current=e;var f=c((function(t){return H(H({},t),{actions:o,query:a})}),[o,a]);d.current&&e&&(l.current=e(r(),a),d.current=!1);var p=u(f(l.current)),v=p[0],m=p[1];return s((function(){var t;return h.current&&(t=n((function(t){return h.current(t,a)}),(function(t){m(f(t))}))),function(){t&&t()}}),[f,a,n]),v}function K(t,e){e&&("function"==typeof t?t(e):t.current=e)}function Q(t,e){var n=t.ref;return f("string"!=typeof n,"Cannot connect to an element with an existing string ref. Please convert it to use a callback ref instead, or wrap it into a <span> or <div>. Read more: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute"),d(t,n?{ref:function(t){K(n,t),K(e,t)}}:{ref:e})}function V(t){return function(e,n){if(void 0===e&&(e=null),!l(e)){var r=e;return r&&t(r,n),r}var o=e;return function(t){if("string"!=typeof t.type)throw new Error}(o),Q(o,t)}}var X=function(t){return r.createElement("div",{style:H({position:"fixed",display:"block",opacity:1,borderStyle:"solid",borderWidth:"1px",borderColor:"transparent",zIndex:99999},t.style)})},Z=function(t){s(t,[])},$=function(t,e,n){return[t,e,n]},tt=function(){function t(t,e,n,r){var o=this;this.el=e,this.opts=n,this.handler=r,this.unsubscribe=t.subscribe((function(t){return{enabled:t.options.enabled}}),(function(t){var n=t.enabled;if(!document.body.contains(e))return o.remove(),o.unsubscribe();n?o.add():o.remove()}),!0)}return t.prototype.add=function(){var t=this,e=this.handler,n=e.init,r=e.events;this.cleanDOM=n&&n(this.el,this.opts),this.listenersToRemove=r&&r.map((function(e){var n=e[0],r=e[1],o=e[2],i=function(e){e.craft||(e.craft={blockedEvents:{},stopPropagation:function(){}}),function(t,e,n){for(var r=t.craft&&t.craft.blockedEvents[e]||[],o=0;o<r.length;o++){var i=r[o];if(n!==i&&n.contains(i))return!0}return!1}(e,n,t.el)||(e.craft.stopPropagation=function(){e.craft.blockedEvents[n]||(e.craft.blockedEvents[n]=[]),e.craft.blockedEvents[n].push(t.el)},r(e,t.opts))};return t.el.addEventListener(n,i,o),function(){return t.el.removeEventListener(n,i,o)}}))},t.prototype.remove=function(){this.cleanDOM&&(this.cleanDOM(),this.cleanDOM=null),this.listenersToRemove&&(this.listenersToRemove.forEach((function(t){return t()})),this.listenersToRemove=null)},t}(),et=function(){function t(t){this.wm=new WeakMap,this.store=t}return t.prototype.connectors=function(){var t=this,e=this.handlers()||{};return Object.keys(e).reduce((function(n,r){var o=e[r],i=o.init,a=o.events;return i||a?(n[r]=V((function(e,n){var o;if(e&&document.body.contains(e)){var c=t.wm.get(e);c&&c[r]||t.wm.set(e,H(H({},c),((o={})[r]=new tt(t.store,e,n,{init:i,events:a}),o)))}else t.wm.delete(e)})),n):(n[r]=function(){},n)}),{})},t.getConnectors=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=new(this.bind.apply(this,U([void 0],t)));return n.connectors()},t}(),nt=function(t,e){var n="Deprecation warning: "+t+" will be deprecated in future relases.",r=e.suggest,o=e.doc;r&&(n+=" Please use "+r+" instead."),o&&(n+="("+o+")"),console.warn(n)};export{v as DEPRECATED_ROOT_NODE,x as ERROR_CANNOT_DRAG,P as ERROR_DELETE_TOP_LEVEL_NODE,g as ERROR_DUPLICATE_NODEID,k as ERROR_INFINITE_CANVAS,y as ERROR_INVALID_NODEID,M as ERROR_INVALID_NODE_ID,w as ERROR_MISSING_PLACEHOLDER_PLACEMENT,O as ERROR_MOVE_CANNOT_DROP,T as ERROR_MOVE_INCOMING_PARENT,E as ERROR_MOVE_NONCANVAS_CHILD,R as ERROR_MOVE_OUTGOING_PARENT,D as ERROR_MOVE_ROOT_NODE,I as ERROR_MOVE_TOP_LEVEL_NODE,N as ERROR_MOVE_TO_DESCENDANT,C as ERROR_MOVE_TO_NONCANVAS_PARENT,m as ERROR_NOPARENT,S as ERROR_NOT_IN_RESOLVER,b as ERROR_TOP_LEVEL_ELEMENT_NO_ID,A as HISTORY_ACTIONS,et as Handlers,L as History,p as ROOT_NODE,X as RenderIndicator,Q as cloneWithRef,q as createQuery,$ as defineEventListener,nt as deprecationWarning,W as getComputedStyle,F as getDOMInfo,B as getDOMMargin,_ as getDOMPadding,z as styleInFlow,J as useCollector,Z as useEffectOnce,j as useMethods,V as wrapHookToRecognizeElement}; | ||
import t,{applyPatches as e,produceWithPatches as n}from"immer";import r from"lodash.isequalwith";import o,{useMemo as i,useRef as a,useReducer as c,useCallback as s,useEffect as u,useState as d,cloneElement as p,isValidElement as l}from"react";import h from"tiny-invariant";var f="ROOT",m="canvas-ROOT",g="Parent id cannot be ommited",v="Attempting to add a node with duplicated id",y="Node does not exist, it may have been removed",b='A <Element /> that is used inside a User Component must specify an `id` prop, eg: <Element id="text_element">...</Element> ',w="Placeholder required placement info (parent, index, or where) is missing",O="Node cannot be dropped into target parent",R="Target parent rejects incoming node",T="Current parent rejects outgoing node",C="Cannot move node that is not a direct child of a Canvas node",E="Cannot move node into a non-Canvas parent",I="A top-level Node cannot be moved",N="Root Node cannot be moved",D="Cannot move node into a descendant",S="The component type specified for this node does not exist in the resolver",x="The component specified in the <Canvas> `is` prop has additional Canvas specified in it's render template.",H="The node has specified a canDrag() rule that prevents it from being dragged",P="Invalid parameter Node Id specified",M="Attempting to delete a top-level Node",U="Resolver in <Editor /> has to be an object. For (de)serialization Craft.js needs a list of all the User Components. \n \nMore info: https://craft.js.org/r/docs/api/editor#props",A="An Error occurred while deserializing components: Cannot find component <%displayName% /> in resolver map. Please check your resolver in <Editor />\n\nAvailable components in resolver: %availableComponents%\n\nMore info: https://craft.js.org/r/docs/api/editor#props",j=function(){return(j=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var o in e=arguments[n])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};function k(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;var r=Array(t),o=0;for(e=0;e<n;e++)for(var i=arguments[e],a=0,c=i.length;a<c;a++,o++)r[o]=i[a];return r}var L={UNDO:"HISTORY_UNDO",REDO:"HISTORY_REDO",THROTTLE:"HISTORY_THROTTLE",IGNORE:"HISTORY_IGNORE"},q=function(){function t(){this.timeline=[],this.pointer=-1}return t.prototype.add=function(t,e){0===t.length&&0===e.length||(this.pointer=this.pointer+1,this.timeline.length=this.pointer,this.timeline[this.pointer]={patches:t,inversePatches:e,timestamp:Date.now()})},t.prototype.throttleAdd=function(t,e,n){if(void 0===n&&(n=500),0!==t.length||0!==e.length){if(this.timeline.length&&this.pointer>=0){var o=this.timeline[this.pointer],i=o.patches,a=o.timestamp;if((new Date).getTime()-a<n&&i.length===t.length&&i.every((function(e,n){var o=t[n];return o.op===e.op&&r(o.path,e.path)})))return void(this.throttledInversePatch||(this.throttledInversePatch=e))}this.add(t,this.throttledInversePatch||e),this.throttledInversePatch=null}},t.prototype.canUndo=function(){return this.pointer>=0},t.prototype.canRedo=function(){return this.pointer<this.timeline.length-1},t.prototype.undo=function(t){if(this.canUndo()){this.throttledInversePatch=null;var n=this.timeline[this.pointer].inversePatches;return this.pointer=this.pointer-1,e(t,n)}},t.prototype.redo=function(t){if(this.canRedo())return this.pointer=this.pointer+1,e(t,this.timeline[this.pointer].patches)},t}();function G(e,r,o,d){var p,l=i((function(){return new q}),[]),h=a([]),f=a();"function"==typeof e?p=e:(p=e.methods,h.current=e.ignoreHistoryForActions,f.current=e.normalizeHistory);var m=a(d);m.current=d;var g=i((function(){var e=f.current,r=h.current,i=m.current;return[function(a,c){var s,u=o&&Y(o,(function(){return a}),l),d=n(a,(function(t){var e,n;switch(c.type){case L.UNDO:return l.undo(t);case L.REDO:return l.redo(t);case L.IGNORE:case L.THROTTLE:var r=c.payload,o=r[0],i=r.slice(1);(e=p(t,u))[o].apply(e,i);break;default:(n=p(t,u))[c.type].apply(n,c.payload)}})),h=d[0],f=d[1],m=d[2];return s=h,i&&i(h,a,{type:c.type,params:c.payload,patches:f},u,(function(t){var e=n(h,t);s=e[0],f=k(f,e[1]),m=k(e[2],m)})),[L.UNDO,L.REDO].includes(c.type)&&e&&(s=t(s,e)),k(r,[L.UNDO,L.REDO,L.IGNORE]).includes(c.type)||(c.type===L.THROTTLE?l.throttleAdd(f,m,c.config&&c.config.rate):l.add(f,m)),s},p]}),[l,p,o]),v=g[1],y=c(g[0],r),b=y[0],w=y[1],O=a();O.current=b;var R=i((function(){return o?Y(o,(function(){return O.current}),l):[]}),[l,o]),T=i((function(){var t=Object.keys(v(null,null)),e=h.current;return j(j({},t.reduce((function(t,e){return t[e]=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return w({type:e,payload:t})},t}),{})),{history:{undo:function(){return w({type:L.UNDO})},redo:function(){return w({type:L.REDO})},throttle:function(n){return j({},t.filter((function(t){return!e.includes(t)})).reduce((function(t,e){return t[e]=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return w({type:L.THROTTLE,payload:k([e],t),config:{rate:n}})},t}),{}))},ignore:function(){return j({},t.filter((function(t){return!e.includes(t)})).reduce((function(t,e){return t[e]=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return w({type:L.IGNORE,payload:k([e],t)})},t}),{}))}}})}),[v]),C=s((function(){return O.current}),[]),E=i((function(){return new _(C)}),[C]);return u((function(){O.current=b,E.notify()}),[b,E]),i((function(){return{getState:C,subscribe:function(t,e,n){return E.subscribe(t,e,n)},actions:T,query:R,history:l}}),[T,R,E,C,l])}function Y(t,e,n){var r=Object.keys(t()).reduce((function(n,r){var o;return j(j({},n),((o={})[r]=function(){for(var n,o=[],i=0;i<arguments.length;i++)o[i]=arguments[i];return(n=t(e()))[r].apply(n,o)},o))}),{});return j(j({},r),{history:{canUndo:function(){return n.canUndo()},canRedo:function(){return n.canRedo()}}})}var _=function(){function t(t){this.subscribers=[],this.getState=t}return t.prototype.subscribe=function(t,e,n){var r=this,o=new z((function(){return t(r.getState())}),e,n);return this.subscribers.push(o),this.unsubscribe.bind(this,o)},t.prototype.unsubscribe=function(t){if(this.subscribers.length){var e=this.subscribers.indexOf(t);if(e>-1)return this.subscribers.splice(e,1)}},t.prototype.notify=function(){this.subscribers.forEach((function(t){return t.collect()}))},t}(),z=function(){function t(t,e,n){void 0===n&&(n=!1),this.collector=t,this.onChange=e,n&&this.collect()}return t.prototype.collect=function(){try{var t=this.collector();r(t,this.collected)||(this.collected=t,this.onChange&&this.onChange(this.collected))}catch(t){console.warn(t)}},t}(),B=function(t){return{left:parseInt(window.getComputedStyle(t).paddingLeft),right:parseInt(window.getComputedStyle(t).paddingRight),bottom:parseInt(window.getComputedStyle(t).paddingTop),top:parseInt(window.getComputedStyle(t).paddingBottom)}},F=function(t){return{left:parseInt(window.getComputedStyle(t).marginLeft),right:parseInt(window.getComputedStyle(t).marginRight),bottom:parseInt(window.getComputedStyle(t).marginTop),top:parseInt(window.getComputedStyle(t).marginBottom)}},W=function(t){var e=t.getBoundingClientRect(),n=e.x,r=e.y,o=e.top,i=e.left,a=e.bottom,c=e.right,s=e.width,u=e.height,d=F(t),p=B(t);return{x:Math.round(n),y:Math.round(r),top:Math.round(o),left:Math.round(i),bottom:Math.round(a),right:Math.round(c),width:Math.round(s),height:Math.round(u),outerWidth:Math.round(s+d.left+d.right),outerHeight:Math.round(u+d.top+d.bottom),margin:d,padding:p,inFlow:t&&t.parentElement&&!!K(t,t.parentElement)}},J=function(t){return window.getComputedStyle(t)},K=function(t,e){var n=J(t),r=J(e);if(!(n.overflow&&"visible"!==n.overflow||"none"!==r.float||e&&"flex"===r.display&&"column"!==r["flex-direction"])){switch(n.position){case"static":case"relative":break;default:return}switch(t.tagName){case"TR":case"TBODY":case"THEAD":case"TFOOT":return!0}switch(n.display){case"block":case"list-item":case"table":case"flex":return!0}}};function Q(t,e){var n=t.subscribe,r=t.getState,o=t.actions,i=t.query,c=a(!0),p=a(null),l=a(e);l.current=e;var h=s((function(t){return j(j({},t),{actions:o,query:i})}),[o,i]);c.current&&e&&(p.current=e(r(),i),c.current=!1);var f=d(h(p.current)),m=f[0],g=f[1];return u((function(){var t;return l.current&&(t=n((function(t){return l.current(t,i)}),(function(t){g(h(t))}))),function(){t&&t()}}),[h,i,n]),m}function V(t,e){e&&("function"==typeof t?t(e):t.current=e)}function X(t,e){var n=t.ref;return h("string"!=typeof n,"Cannot connect to an element with an existing string ref. Please convert it to use a callback ref instead, or wrap it into a <span> or <div>. Read more: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute"),p(t,n?{ref:function(t){V(n,t),V(e,t)}}:{ref:e})}function Z(t){return function(e,n){if(void 0===e&&(e=null),!l(e)){var r=e;return r&&t(r,n),r}var o=e;return function(t){if("string"!=typeof t.type)throw new Error}(o),X(o,t)}}var $=function(t){return o.createElement("div",{style:j({position:"fixed",display:"block",opacity:1,borderStyle:"solid",borderWidth:"1px",borderColor:"transparent",zIndex:99999},t.style)})},tt=function(t){u(t,[])},et=function(t,e){var n="Deprecation warning: "+t+" will be deprecated in future relases.",r=e.suggest,o=e.doc;r&&(n+=" Please use "+r+" instead."),o&&(n+="("+o+")"),console.warn(n)};export{m as DEPRECATED_ROOT_NODE,H as ERROR_CANNOT_DRAG,M as ERROR_DELETE_TOP_LEVEL_NODE,A as ERROR_DESERIALIZE_COMPONENT_NOT_IN_RESOLVER,v as ERROR_DUPLICATE_NODEID,x as ERROR_INFINITE_CANVAS,y as ERROR_INVALID_NODEID,P as ERROR_INVALID_NODE_ID,w as ERROR_MISSING_PLACEHOLDER_PLACEMENT,O as ERROR_MOVE_CANNOT_DROP,R as ERROR_MOVE_INCOMING_PARENT,C as ERROR_MOVE_NONCANVAS_CHILD,T as ERROR_MOVE_OUTGOING_PARENT,N as ERROR_MOVE_ROOT_NODE,I as ERROR_MOVE_TOP_LEVEL_NODE,D as ERROR_MOVE_TO_DESCENDANT,E as ERROR_MOVE_TO_NONCANVAS_PARENT,g as ERROR_NOPARENT,S as ERROR_NOT_IN_RESOLVER,U as ERROR_RESOLVER_NOT_AN_OBJECT,b as ERROR_TOP_LEVEL_ELEMENT_NO_ID,L as HISTORY_ACTIONS,q as History,f as ROOT_NODE,$ as RenderIndicator,X as cloneWithRef,Y as createQuery,et as deprecationWarning,J as getComputedStyle,W as getDOMInfo,F as getDOMMargin,B as getDOMPadding,K as styleInFlow,Q as useCollector,tt as useEffectOnce,G as useMethods,Z as wrapHookToRecognizeElement}; |
@@ -21,1 +21,3 @@ export declare const ROOT_NODE = "ROOT"; | ||
export declare const ERROR_DELETE_TOP_LEVEL_NODE = "Attempting to delete a top-level Node"; | ||
export declare const ERROR_RESOLVER_NOT_AN_OBJECT = "Resolver in <Editor /> has to be an object. For (de)serialization Craft.js needs a list of all the User Components. \n \nMore info: https://craft.js.org/r/docs/api/editor#props"; | ||
export declare const ERROR_DESERIALIZE_COMPONENT_NOT_IN_RESOLVER = "An Error occurred while deserializing components: Cannot find component <%displayName% /> in resolver map. Please check your resolver in <Editor />\n\nAvailable components in resolver: %availableComponents%\n\nMore info: https://craft.js.org/r/docs/api/editor#props"; |
@@ -8,5 +8,4 @@ export * from './constants'; | ||
export * from './useEffectOnce'; | ||
export * from './Handlers'; | ||
export * from './deprecate'; | ||
export * from './utilityTypes'; | ||
export * from './History'; |
@@ -43,3 +43,6 @@ import { Patch } from 'immer'; | ||
export declare type ActionUnion<R extends MethodRecordBase> = { | ||
[T in keyof R]: Action<T, Parameters<R[T]>>; | ||
[T in keyof R]: { | ||
type: T; | ||
payload: Parameters<R[T]>; | ||
}; | ||
}[keyof R]; | ||
@@ -64,3 +67,4 @@ export declare type ActionByType<A, T> = A extends { | ||
export declare type PatchListener<S, M extends MethodsOrOptions, Q extends QueryMethods> = (newState: S, previousState: S, actionPerformedWithPatches: PatchListenerAction<S, M>, query: QueryCallbacksFor<Q>, normalizer: (cb: (draft: S) => void) => void) => void; | ||
export declare function useMethods<S, R extends MethodRecordBase<S>>(methodsOrOptions: Methods<S, R>, initialState: any): SubscriberAndCallbacksFor<MethodsOrOptions<S, R>>; | ||
export declare function useMethods<S, R extends MethodRecordBase<S>>(methodsOrOptions: MethodsOrOptions<S, R>, // methods to manipulate the state | ||
initialState: any): SubscriberAndCallbacksFor<MethodsOrOptions<S, R>>; | ||
export declare function useMethods<S, R extends MethodRecordBase<S>, Q extends QueryMethods>(methodsOrOptions: MethodsOrOptions<S, R, QueryCallbacksFor<Q>>, // methods to manipulate the state | ||
@@ -67,0 +71,0 @@ initialState: any, queryMethods: Q): SubscriberAndCallbacksFor<MethodsOrOptions<S, R>, Q>; |
@@ -5,3 +5,3 @@ { | ||
"private": false, | ||
"version": "0.1.0-beta.12", | ||
"version": "0.1.0-beta.13", | ||
"author": "Prev Wong <prevwong@gmail.com>", | ||
@@ -15,2 +15,3 @@ "license": "MIT", | ||
"build": "cross-env NODE_ENV=production ../../scripts/build.sh", | ||
"dev:yalc": "../../scripts/yalc.sh", | ||
"clean": "rimraf lib dist" | ||
@@ -27,3 +28,3 @@ }, | ||
}, | ||
"gitHead": "3f69646474be34bbaa388c4423124c744ddd44f8" | ||
"gitHead": "466358b2604fbe5c40bc2d8dad35d51252de2d48" | ||
} |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1105706
313