diff --git a/Classes/DataSource/ReferenceResolverSource.php b/Classes/DataSource/ReferenceResolverSource.php new file mode 100644 index 0000000..4e4cb16 --- /dev/null +++ b/Classes/DataSource/ReferenceResolverSource.php @@ -0,0 +1,107 @@ + { label, identifier, nodeType, icon, properties } + * @api + */ + public function getData(NodeInterface $node = null, array $arguments = []) + { + $identifiers = $arguments['identifiers'] ?? []; + + if (empty($identifiers) || !is_array($identifiers)) { + return []; + } + + // Get context from the node if available, otherwise create one for the current user's workspace + if ($node !== null) { + $context = $node->getContext(); + } else { + $context = $this->contextFactory->create([ + 'workspaceName' => $this->userService->getPersonalWorkspaceName(), + 'invisibleContentShown' => true, + 'removedContentShown' => false, + 'inaccessibleContentShown' => true + ]); + } + + $result = []; + + foreach ($identifiers as $identifier) { + if (empty($identifier) || !is_string($identifier)) { + continue; + } + + $referencedNode = $context->getNodeByIdentifier($identifier); + + if ($referencedNode instanceof NodeInterface) { + $nodeType = $referencedNode->getNodeType(); + + // Get all node properties + $properties = []; + foreach ($referencedNode->getProperties() as $propertyName => $propertyValue) { + // Only include serializable properties (skip objects like images, assets) + if (is_scalar($propertyValue) || is_null($propertyValue)) { + $properties[$propertyName] = $propertyValue; + } elseif (is_array($propertyValue)) { + // Include arrays if they contain only scalar values + $isSerializable = true; + array_walk_recursive($propertyValue, function ($item) use (&$isSerializable) { + if (!is_scalar($item) && !is_null($item)) { + $isSerializable = false; + } + }); + if ($isSerializable) { + $properties[$propertyName] = $propertyValue; + } + } + } + + $result[$identifier] = [ + 'label' => $referencedNode->getLabel(), + 'identifier' => $identifier, + 'nodeType' => $nodeType->getName(), + 'icon' => $nodeType->getConfiguration('ui.icon') ?? 'question', + 'properties' => $properties + ]; + } + } + + return $result; + } +} diff --git a/README.md b/README.md index 9becee6..6a93b57 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ Create property with type `reapeatable`. # ... # collapse view on load. controls.collapse must be true. defaults to false collapsed: true - # Set preview + # Set preview (see "Preview with Reference Properties" section below) preview: text: 'ItemEval: item.field0' image: 'ItemEval: item.field1' @@ -93,6 +93,52 @@ Create property with type `reapeatable`. placeholder: 'test placeholder 2' ``` +## Preview with Reference Properties + +When using `reference` type properties in a repeatable field, you can access the referenced node's properties in preview expressions. This allows you to display meaningful information like a person's name instead of just the node identifier. + +### Example + +```YAML +properties: + teamMembers: + type: repeatable + ui: + inspector: + editorOptions: + collapsed: true + preview: + text: 'ItemEval: item.person?.properties?.firstName + " " + item.person?.properties?.lastName' + properties: + person: + type: reference + label: 'Person' + editorOptions: + nodeTypes: ['My.Package:Document.Person'] +``` + +### Available Properties + +When a property is a `reference` type, the preview expression can access: + +**Node properties** (nested under `properties` to avoid naming collisions): +- `item.propertyName.properties.firstName` - Any property defined on the referenced node +- `item.propertyName.properties.lastName` +- `item.propertyName.properties.position` +- etc. + +**Metadata** (top-level): +- `item.propertyName.label` - The node's label +- `item.propertyName.identifier` - The node identifier (UUID) +- `item.propertyName.nodeType` - The node type name +- `item.propertyName.icon` - The node type icon + +### Notes + +- Reference resolution only applies to preview expressions (`preview.text` and `preview.image`) +- Editors continue to work with the original node identifier +- Only scalar properties (strings, numbers, booleans) are available; complex objects like images are not included + ## Important notice Please don't name any property (in the example `fieldN`) `_UUID_`, as this is used internaly to set a unique key to the items diff --git a/Resources/Private/Editor/Repeatable/index.jsx b/Resources/Private/Editor/Repeatable/index.jsx index 0d03e98..5206ba8 100644 --- a/Resources/Private/Editor/Repeatable/index.jsx +++ b/Resources/Private/Editor/Repeatable/index.jsx @@ -58,6 +58,8 @@ function Repeatable({ const [options, setOptions] = useState(hasDataSource ? null : props.options); const [emptyGroup, setEmptyGroup] = useState({}); const [collapsed, setCollapsed] = useState({}); + // Separate state for resolved references - used ONLY for preview, never merged into currentValue + const [resolvedReferences, setResolvedReferences] = useState({}); // We use this hack to prevent the editor from re-rendering all the time, even if the options are the same. const returnCurrentValueAsJSON = () => JSON.stringify(currentValue); @@ -121,6 +123,52 @@ function Repeatable({ }); }, [dataSourceIdentifier, dataSourceUri, dataSourceAdditionalData]); + // Fetch resolved reference data for preview - stored separately, never modifies currentValue + useEffect(() => { + if (!options?.properties || !currentValue?.length) { + return; + } + + // Find properties that are reference types + const referenceProperties = Object.entries(options.properties) + .filter(([, config]) => config?.type === "reference") + .map(([name]) => name); + + if (referenceProperties.length === 0) { + return; + } + + // Collect all unique node identifiers from reference properties + const identifiers = new Set(); + currentValue.forEach((item) => { + referenceProperties.forEach((propName) => { + const value = item[propName]; + if (typeof value === "string" && value) { + identifiers.add(value); + } + }); + }); + + if (identifiers.size === 0) { + return; + } + + // Fetch resolved reference data from the DataSource + backend + .get() + .endpoints.dataSource("resolve-references", null, { + identifiers: Array.from(identifiers), + }) + .then((resolved) => { + if (resolved && typeof resolved === "object") { + setResolvedReferences(resolved); + } + }) + .catch((error) => { + console.warn("Failed to resolve references for preview:", error); + }); + }, [currentValue, options?.properties]); + function getEmptyGroup() { let group = {}; const properties = options.properties; @@ -366,11 +414,21 @@ function Repeatable({ if (!text && !image) { return null; } + + // Create a TEMPORARY enriched copy for preview evaluation ONLY + // This does NOT modify currentValue or affect editors + const itemForPreview = { ...currentValue[idx] }; + for (const [propName, value] of Object.entries(itemForPreview)) { + if (typeof value === "string" && resolvedReferences[value]) { + itemForPreview[propName] = resolvedReferences[value]; + } + } + if (text) { - text = ItemEvalRecursive(text, currentValue[idx], props.node, props.parentNode, props.documentNode); + text = ItemEvalRecursive(text, itemForPreview, props.node, props.parentNode, props.documentNode); } if (image) { - image = ItemEvalRecursive(image, currentValue[idx], props.node, props.parentNode, props.documentNode); + image = ItemEvalRecursive(image, itemForPreview, props.node, props.parentNode, props.documentNode); } return ; } diff --git a/Resources/Public/Plugin.js b/Resources/Public/Plugin.js index 1f27603..b3acb9a 100644 --- a/Resources/Public/Plugin.js +++ b/Resources/Public/Plugin.js @@ -1,5 +1,5 @@ -(()=>{var mr=Object.create;var Ft=Object.defineProperty;var br=Object.getOwnPropertyDescriptor;var yr=Object.getOwnPropertyNames;var vr=Object.getPrototypeOf,xr=Object.prototype.hasOwnProperty;var wr=(e,n)=>()=>(e&&(n=e(e=0)),n);var ue=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports);var Ir=(e,n,r,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of yr(n))!xr.call(e,i)&&i!==r&&Ft(e,i,{get:()=>n[i],enumerable:!(o=br(n,i))||o.enumerable});return e};var Y=(e,n,r)=>(r=e!=null?mr(vr(e)):{},Ir(n||!e||!e.__esModule?Ft(r,"default",{value:e,enumerable:!0}):r,e));function j(e){return(...n)=>{if(window["@Neos:HostPluginAPI"]&&window["@Neos:HostPluginAPI"][`@${e}`])return window["@Neos:HostPluginAPI"][`@${e}`](...n);throw new Error("You are trying to read from a consumer api that hasn't been initialized yet!")}}var ee=wr(()=>{});var ne=ue((Mo,Ut)=>{ee();Ut.exports=j("vendor")().React});var _t=ue((Yo,Jt)=>{ee();Jt.exports=j("vendor")().reactRedux});var De=ue((Zo,Kt)=>{ee();Kt.exports=j("vendor")().PropTypes});var nn=ue((Jo,tn)=>{ee();tn.exports=j("NeosProjectPackages")().NeosUiReduxStore});var Qe=ue((Ko,rn)=>{ee();rn.exports=j("NeosProjectPackages")().NeosUiDecorators});var xt=ue(($o,on)=>{ee();on.exports=j("NeosProjectPackages")().ReactUiComponents});var mn=ue((Li,hn)=>{ee();hn.exports=j("vendor")().ReactDOM});var yn=ue((Yi,bn)=>{"use strict";var Tr=function(e,n,r,o,i,s,l,t){if(!e){var d;if(n===void 0)d=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var a=[r,o,i,s,l,t],c=0;d=new Error(n.replace(/%s/g,function(){return a[c++]})),d.name="Invariant Violation"}throw d.framesToPop=1,d}};bn.exports=Tr});ee();var Cr=(e,n="position",r="key")=>{let o=typeof n=="string"?b=>b[n]:n,i={},s={},l={},t={},d={},a={};e.forEach((b,G)=>{let I=b[r]?b[r]:String(G);i[I]=G;let C=o(b),A=String(C||G),L=!1;if(A.startsWith("start")){let g=A.match(/start\s+(\d+)/),E=g&&g[1]?Number(g[1]):0;l[E]||(l[E]=[]),l[E].push(I)}else if(A.startsWith("end")){let g=A.match(/end\s+(\d+)/),E=g&&g[1]?Number(g[1]):0;t[E]||(t[E]=[]),t[E].push(I)}else if(A.startsWith("before")){let g=A.match(/before\s+(\S+)(\s+(\d+))?/);if(!g)L=!0;else{let E=g[1],x=g[3]?Number(g[3]):0;d[E]||(d[E]={}),d[E][x]||(d[E][x]=[]),d[E][x].push(I)}}else if(A.startsWith("after")){let g=A.match(/after\s+(\S+)(\s+(\d+))?/);if(!g)L=!0;else{let E=g[1],x=g[3]?Number(g[3]):0;a[E]||(a[E]={}),a[E][x]||(a[E][x]=[]),a[E][x].push(I)}}else L=!0;if(L){let g=parseFloat(A);(isNaN(g)||!isFinite(g))&&(g=G),s[g]||(s[g]=[]),s[g].push(I)}});let c=[],u=[],f=[],p=[],y=(b,G)=>{let I=Object.keys(b).map(C=>Number(C)).sort((C,A)=>C-A);return G?I:I.reverse()},v=(b,G)=>{b.forEach(I=>{if(!(p.indexOf(I)>=0)){if(p.push(I),d[I]){let C=y(d[I],!0);for(let A of C)v(d[I][A],G)}if(G.push(I),a[I]){let C=y(a[I],!1);for(let A of C)v(a[I][A],G)}}})};for(let b of y(l,!1))v(l[b],c);for(let b of y(s,!0))v(s[b],u);for(let b of y(t,!0))v(t[b],f);for(let b of Object.keys(d))if(!(p.indexOf(b)>=0))for(let G of y(d[b],!1))v(d[b][G],c);for(let b of Object.keys(a))if(!(p.indexOf(b)>=0))for(let G of y(a[b],!1))v(a[b][G],u);return[...c,...u,...f].map(b=>i[b]).map(b=>e[b])},vt=Cr;var zt=j("manifest");var S=Y(ne()),tr=Y(_t()),O=Y(De());var Qt="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var $t=(e=21)=>{let n="",r=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)n+=Qt[r[e]&63];return n};function qt(e){var n,r,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(n=0;nre.default.createElement("animate",{key:o,attributeName:`stroke-${o}`,values:i,dur:"1.5s",calcMode:"spline",keyTimes:"0;0.475;0.95;1",keySplines:"0.42,0,0.58,1;0.42,0,0.58,1;0.42,0,0.58,1",repeatCount:"indefinite"}))),re.default.createElement("animateTransform",{attributeName:"transform",type:"rotate",dur:"2s",values:"0 12 12;360 12 12",repeatCount:"indefinite"})))}function sn({style:e,className:n,size:r=30}){return re.default.createElement("svg",{width:r*2,height:r,viewBox:"0 0 24 12",class:n,style:e},[1,2,3].map(o=>{let i=o*6,s=Math.round(100/3*(o-1))/100;return re.default.createElement("circle",{cx:i,cy:"6",r:"0",fill:"currentColor"},re.default.createElement("animate",{attributeName:"r",begin:s,calcMode:"spline",dur:"1.5s",keySplines:"0.2 0.2 0.4 0.8;0.2 0.2 0.4 0.8;0.2 0.2 0.4 0.8",repeatCount:"indefinite",values:"0;2;0;0"}))}))}var ln=Y(Qe()),wt={container:(e=1)=>({display:"grid",gridTemplate:"'content' 1fr / 1fr",alignItems:"center",justifyItems:"center",width:"100%",minHeight:`calc(var(--spacing-GoldenUnit) * ${e})`}),item:(e=!1)=>({gridArea:"content",transition:"opacity var(--transition-Default), transform var(--transition-Default) ease",opacity:e?1:0,transform:`scale(${e?1:0})`})};function Sr({id:e,title:n="Neos.Neos:Main:loading",isLoading:r=!1,delayTime:o=500,timeoutTime:i=5e3,i18nRegistry:s,heightMultiplier:l=1,width:t=60}){let[d,a]=(0,fe.useState)(0),c=n?s.translate(n):null;return(0,fe.useEffect)(()=>{if(!r){a(0);return}let u=setTimeout(()=>{a(1)},o),f=setTimeout(()=>{a(2)},o+i);return()=>{clearTimeout(u),clearTimeout(f)}},[r]),r?fe.default.createElement("div",{id:e,style:wt.container(l),title:c},fe.default.createElement(an,{size:t/2,style:wt.item(d==1)}),fe.default.createElement(sn,{size:t/2,style:wt.item(d==2)})):null}var Gr=(0,ln.neos)(e=>({i18nRegistry:e.get("i18n")})),cn=Gr(Sr);var Q=Y(ne());function Oe(){return Oe=Object.assign?Object.assign.bind():function(e){for(var n=1;ne.length)&&(n=e.length);for(var r=0,o=Array(n);r0&&arguments[0]!==void 0?arguments[0]:this.active.collection;return this.refs[r].sort(Nr)}}]),e})();function Nr(e,n){var r=e.node.sortableInfo.index,o=n.node.sortableInfo.index;return r-o}function Sn(e,n){return Object.keys(e).reduce(function(r,o){return n.indexOf(o)===-1&&(r[o]=e[o]),r},{})}var Ee={end:["touchend","touchcancel","mouseup"],move:["touchmove","mousemove"],start:["touchstart","mousedown"]},Gn=(function(){if(typeof window>"u"||typeof document>"u")return"";var e=window.getComputedStyle(document.documentElement,"")||["-moz-hidden-iframe"],n=(Array.prototype.slice.call(e).join("").match(/-(moz|webkit|ms)-/)||e.OLink===""&&["","o"])[1];return n==="ms"?"ms":n&&n.length?n[0].toUpperCase()+n.substr(1):""})();function it(e,n){Object.keys(n).forEach(function(r){e.style[r]=n[r]})}function at(e,n){e.style["".concat(Gn,"Transform")]=n==null?"":"translate3d(".concat(n.x,"px,").concat(n.y,"px,0)")}function Ct(e,n){e.style["".concat(Gn,"TransitionDuration")]=n==null?"":"".concat(n,"ms")}function Me(e,n){for(;e;){if(n(e))return e;e=e.parentNode}return null}function Cn(e,n,r){return Math.max(e,Math.min(r,n))}function Ne(e){return e.substr(-2)==="px"?parseFloat(e):0}function Wr(e){var n=window.getComputedStyle(e);return{bottom:Ne(n.marginBottom),left:Ne(n.marginLeft),right:Ne(n.marginRight),top:Ne(n.marginTop)}}function Ot(e,n){var r=n.displayName||n.name;return r?"".concat(e,"(").concat(r,")"):e}function At(e,n){var r=e.getBoundingClientRect();return{top:r.top+n.top,left:r.left+n.left}}function Pe(e){return e.touches&&e.touches.length?{x:e.touches[0].pageX,y:e.touches[0].pageY}:e.changedTouches&&e.changedTouches.length?{x:e.changedTouches[0].pageX,y:e.changedTouches[0].pageY}:{x:e.pageX,y:e.pageY}}function kr(e){return e.touches&&e.touches.length||e.changedTouches&&e.changedTouches.length}function st(e,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{left:0,top:0};if(e){var o={left:r.left+e.offsetLeft,top:r.top+e.offsetTop};return e.parentNode===n?o:st(e.parentNode,n,o)}}function Br(e,n,r){return en?e-1:e>r&&e0&&r[l].height>0){var t=s.getContext("2d");t.drawImage(r[l],0,0)}}),o}function En(e){var n,r,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{withRef:!1};return r=n=(function(i){ot(s,i);function s(){var l,t;Se(this,s);for(var d=arguments.length,a=new Array(d),c=0;c=l.y-d/2&&!C?(a.y=1,c.y=u.y*Math.abs((l.y-d/2-i.y)/d)):i.x>=l.x-t/2&&!L?(a.x=1,c.x=u.x*Math.abs((l.x-t/2-i.x)/t)):i.y<=s.y+d/2&&!I?(a.y=-1,c.y=u.y*Math.abs((i.y-d/2-s.y)/d)):i.x<=s.x+t/2&&!A&&(a.x=-1,c.x=u.x*Math.abs((i.x-t/2-s.x)/t)),this.interval&&(this.clear(),this.isAutoScrolling=!1),(a.x!==0||a.y!==0)&&(this.interval=setInterval(function(){o.isAutoScrolling=!0;var g={left:c.x*a.x,top:c.y*a.y};o.container.scrollTop+=g.top,o.container.scrollLeft+=g.left,o.onScrollCallback(g)},5))}}]),e})();function Lr(e){var n=e.node;return{height:n.offsetHeight,width:n.offsetWidth}}function Yr(e){var n=[ye.Input,ye.Textarea,ye.Select,ye.Option,ye.Button];return!!(n.indexOf(e.target.tagName)!==-1||Me(e.target,function(r){return r.contentEditable==="true"}))}var Nn={axis:w.default.oneOf(["x","y","xy"]),contentWindow:w.default.any,disableAutoscroll:w.default.bool,distance:w.default.number,getContainer:w.default.func,getHelperDimensions:w.default.func,helperClass:w.default.string,helperContainer:w.default.oneOfType([w.default.func,typeof HTMLElement>"u"?w.default.any:w.default.instanceOf(HTMLElement)]),hideSortableGhost:w.default.bool,keyboardSortingTransitionDuration:w.default.number,lockAxis:w.default.string,lockOffset:w.default.oneOfType([w.default.number,w.default.string,w.default.arrayOf(w.default.oneOfType([w.default.number,w.default.string]))]),lockToContainerEdges:w.default.bool,onSortEnd:w.default.func,onSortMove:w.default.func,onSortOver:w.default.func,onSortStart:w.default.func,pressDelay:w.default.number,pressThreshold:w.default.number,keyCodes:w.default.shape({lift:w.default.arrayOf(w.default.number),drop:w.default.arrayOf(w.default.number),cancel:w.default.arrayOf(w.default.number),up:w.default.arrayOf(w.default.number),down:w.default.arrayOf(w.default.number)}),shouldCancelStart:w.default.func,transitionDuration:w.default.number,updateBeforeSortStart:w.default.func,useDragHandle:w.default.bool,useWindowAsScrollContainer:w.default.bool},Wn={lift:[be.SPACE],drop:[be.SPACE],cancel:[be.ESC],up:[be.UP,be.LEFT],down:[be.DOWN,be.RIGHT]},jr={axis:"y",disableAutoscroll:!1,distance:0,getHelperDimensions:Lr,hideSortableGhost:!0,lockOffset:"50%",lockToContainerEdges:!1,pressDelay:0,pressThreshold:5,keyCodes:Wn,shouldCancelStart:Yr,transitionDuration:300,useWindowAsScrollContainer:!1},Zr=Object.keys(Nn);function Hr(e){(0,pe.default)(!(e.distance&&e.pressDelay),"Attempted to set both `pressDelay` and `distance` on SortableContainer, you may only use one or the other, not both at the same time.")}function Fr(e,n){try{var r=e()}catch(o){return n(!0,o)}return r&&r.then?r.then(n.bind(null,!1),n.bind(null,!0)):n(!1,value)}var kn=(0,z.createContext)({manager:{}});function Bn(e){var n,r,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{withRef:!1};return r=n=(function(i){ot(s,i);function s(l){var t;Se(this,s),t=nt(this,Te(s).call(this,l)),W(T(T(t)),"state",{}),W(T(T(t)),"handleStart",function(a){var c=t.props,u=c.distance,f=c.shouldCancelStart;if(!(a.button===2||f(a))){t.touched=!0,t.position=Pe(a);var p=Me(a.target,function(I){return I.sortableInfo!=null});if(p&&p.sortableInfo&&t.nodeIsChild(p)&&!t.state.sorting){var y=t.props.useDragHandle,v=p.sortableInfo,R=v.index,b=v.collection,G=v.disabled;if(G||y&&!Me(a.target,On))return;t.manager.active={collection:b,index:R},!kr(a)&&a.target.tagName===ye.Anchor&&a.preventDefault(),u||(t.props.pressDelay===0?t.handlePress(a):t.pressTimer=setTimeout(function(){return t.handlePress(a)},t.props.pressDelay))}}}),W(T(T(t)),"nodeIsChild",function(a){return a.sortableInfo.manager===t.manager}),W(T(T(t)),"handleMove",function(a){var c=t.props,u=c.distance,f=c.pressThreshold;if(!t.state.sorting&&t.touched&&!t._awaitingUpdateBeforeSortStart){var p=Pe(a),y={x:t.position.x-p.x,y:t.position.y-p.y},v=Math.abs(y.x)+Math.abs(y.y);t.delta=y,!u&&(!f||v>=f)?(clearTimeout(t.cancelTimer),t.cancelTimer=setTimeout(t.cancel,0)):u&&v>=u&&t.manager.isActive()&&t.handlePress(a)}}),W(T(T(t)),"handleEnd",function(){t.touched=!1,t.cancel()}),W(T(T(t)),"cancel",function(){var a=t.props.distance,c=t.state.sorting;c||(a||clearTimeout(t.pressTimer),t.manager.active=null)}),W(T(T(t)),"handlePress",function(a){try{var c=t.manager.getActive(),u=(function(){if(c){var f=function(){var D=A.sortableInfo.index,k=Wr(A),J=Xr(t.container),F=t.scrollContainer.getBoundingClientRect(),ce=v({index:D,node:A,collection:L});if(t.node=A,t.margin=k,t.gridGap=J,t.width=ce.width,t.height=ce.height,t.marginOffset={x:t.margin.left+t.margin.right+t.gridGap.x,y:Math.max(t.margin.top,t.margin.bottom,t.gridGap.y)},t.boundingClientRect=A.getBoundingClientRect(),t.containerBoundingRect=F,t.index=D,t.newIndex=D,t.axis={x:y.indexOf("x")>=0,y:y.indexOf("y")>=0},t.offsetEdge=st(A,t.container),g?t.initialOffset=Pe(tt({},a,{pageX:t.boundingClientRect.left,pageY:t.boundingClientRect.top})):t.initialOffset=Pe(a),t.initialScroll={left:t.scrollContainer.scrollLeft,top:t.scrollContainer.scrollTop},t.initialWindowScroll={left:window.pageXOffset,top:window.pageYOffset},t.helper=t.helperContainer.appendChild(Pr(A)),it(t.helper,{boxSizing:"border-box",height:"".concat(t.height,"px"),left:"".concat(t.boundingClientRect.left-k.left,"px"),pointerEvents:"none",position:"fixed",top:"".concat(t.boundingClientRect.top-k.top,"px"),width:"".concat(t.width,"px")}),g&&t.helper.focus(),b&&(t.sortableGhost=A,it(A,{opacity:0,visibility:"hidden"})),t.minTranslate={},t.maxTranslate={},g){var Ce=C?{top:0,left:0,width:t.contentWindow.innerWidth,height:t.contentWindow.innerHeight}:t.containerBoundingRect,ze=Ce.top,Ue=Ce.left,ht=Ce.width,mt=Ce.height,bt=ze+mt,yt=Ue+ht;t.axis.x&&(t.minTranslate.x=Ue-t.boundingClientRect.left,t.maxTranslate.x=yt-(t.boundingClientRect.left+t.width)),t.axis.y&&(t.minTranslate.y=ze-t.boundingClientRect.top,t.maxTranslate.y=bt-(t.boundingClientRect.top+t.height))}else t.axis.x&&(t.minTranslate.x=(C?0:F.left)-t.boundingClientRect.left-t.width/2,t.maxTranslate.x=(C?t.contentWindow.innerWidth:F.left+F.width)-t.boundingClientRect.left-t.width/2),t.axis.y&&(t.minTranslate.y=(C?0:F.top)-t.boundingClientRect.top-t.height/2,t.maxTranslate.y=(C?t.contentWindow.innerHeight:F.top+F.height)-t.boundingClientRect.top-t.height/2);R&&R.split(" ").forEach(function(he){return t.helper.classList.add(he)}),t.listenerNode=a.touches?a.target:t.contentWindow,g?(t.listenerNode.addEventListener("wheel",t.handleKeyEnd,!0),t.listenerNode.addEventListener("mousedown",t.handleKeyEnd,!0),t.listenerNode.addEventListener("keydown",t.handleKeyDown)):(Ee.move.forEach(function(he){return t.listenerNode.addEventListener(he,t.handleSortMove,!1)}),Ee.end.forEach(function(he){return t.listenerNode.addEventListener(he,t.handleSortEnd,!1)})),t.setState({sorting:!0,sortingIndex:D}),I&&I({node:A,index:D,collection:L,isKeySorting:g,nodes:t.manager.getOrderedRefs(),helper:t.helper},a),g&&t.keyMove(0)},p=t.props,y=p.axis,v=p.getHelperDimensions,R=p.helperClass,b=p.hideSortableGhost,G=p.updateBeforeSortStart,I=p.onSortStart,C=p.useWindowAsScrollContainer,A=c.node,L=c.collection,g=t.manager.isKeySorting,E=(function(){if(typeof G=="function"){t._awaitingUpdateBeforeSortStart=!0;var x=Fr(function(){var D=A.sortableInfo.index;return Promise.resolve(G({collection:L,index:D,node:A,isKeySorting:g},a)).then(function(){})},function(D,k){if(t._awaitingUpdateBeforeSortStart=!1,D)throw k;return k});if(x&&x.then)return x.then(function(){})}})();return E&&E.then?E.then(f):f(E)}})();return Promise.resolve(u&&u.then?u.then(function(){}):void 0)}catch(f){return Promise.reject(f)}}),W(T(T(t)),"handleSortMove",function(a){var c=t.props.onSortMove;typeof a.preventDefault=="function"&&a.cancelable&&a.preventDefault(),t.updateHelperPosition(a),t.animateNodes(),t.autoscroll(),c&&c(a)}),W(T(T(t)),"handleSortEnd",function(a){var c=t.props,u=c.hideSortableGhost,f=c.onSortEnd,p=t.manager,y=p.active.collection,v=p.isKeySorting,R=t.manager.getOrderedRefs();t.listenerNode&&(v?(t.listenerNode.removeEventListener("wheel",t.handleKeyEnd,!0),t.listenerNode.removeEventListener("mousedown",t.handleKeyEnd,!0),t.listenerNode.removeEventListener("keydown",t.handleKeyDown)):(Ee.move.forEach(function(A){return t.listenerNode.removeEventListener(A,t.handleSortMove)}),Ee.end.forEach(function(A){return t.listenerNode.removeEventListener(A,t.handleSortEnd)}))),t.helper.parentNode.removeChild(t.helper),u&&t.sortableGhost&&it(t.sortableGhost,{opacity:"",visibility:""});for(var b=0,G=R.length;bu)){t.prevIndex=p,t.newIndex=f;var y=Br(t.newIndex,t.prevIndex,t.index),v=c.find(function(g){var E=g.node;return E.sortableInfo.index===y}),R=v.node,b=t.containerScrollDelta,G=v.boundingClientRect||At(R,b),I=v.translate||{x:0,y:0},C={top:G.top+I.y-b.top,left:G.left+I.x-b.left},A=pL?L/2:this.height/2,width:this.width>A?A/2:this.width/2},E=v&&C>this.index&&C<=R,x=v&&C=R,D={x:0,y:0},k=p[b].edgeOffset;k||(k=st(I,this.container),p[b].edgeOffset=k,v&&(p[b].boundingClientRect=At(I,u)));var J=b0&&p[b-1];if(J&&!J.edgeOffset&&(J.edgeOffset=st(J.node,this.container),v&&(J.boundingClientRect=At(J.node,u))),C===this.index){a&&(this.sortableGhost=I,it(I,{opacity:0,visibility:"hidden"}));continue}d&&Ct(I,d),this.axis.x?this.axis.y?x||Cthis.containerBoundingRect.width-g.width&&J&&(D.x=J.edgeOffset.left-k.left,D.y=J.edgeOffset.top-k.top),this.newIndex===null&&(this.newIndex=C)):(E||C>this.index&&(y.left+f.left+g.width>=k.left&&y.top+f.top+g.height>=k.top||y.top+f.top+g.height>=k.top+L))&&(D.x=-(this.width+this.marginOffset.x),k.left+D.xthis.index&&y.left+f.left+g.width>=k.left?(D.x=-(this.width+this.marginOffset.x),this.newIndex=C):(x||Cthis.index&&y.top+f.top+g.height>=k.top?(D.y=-(this.height+this.marginOffset.y),this.newIndex=C):(x||C1&&arguments[1]!==void 0?arguments[1]:{withRef:!1};return r=n=(function(i){ot(s,i);function s(){var l,t;Se(this,s);for(var d=arguments.length,a=new Array(d),c=0;c0&&arguments[0]!==void 0?arguments[0]:this.props.collection;this.context.manager.remove(t,this.ref)}},{key:"getWrappedInstance",value:function(){return(0,pe.default)(o.withRef,"To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableElement() call"),this.wrappedInstance.current}},{key:"render",value:function(){var t=o.withRef?this.wrappedInstance:null;return(0,z.createElement)(e,Oe({ref:t},Sn(this.props,Vr)))}}]),s})(z.Component),W(n,"displayName",Ot("sortableElement",e)),W(n,"contextType",kn),W(n,"propTypes",Rn),W(n,"defaultProps",{collection:0}),r}var se=Y(ne(),1);var Tt=new Set,V=new WeakMap,xe=new WeakMap,K=new WeakMap,Ye=new WeakMap,St=new WeakMap,Le=new WeakMap,ve=new WeakMap,ge=new WeakMap,We=new WeakSet,U,Et=0,Nt=0,ae="__aa_tgt",je="__aa_del",dt="__aa_new",Mn=e=>{let n=_r(e);n&&n.forEach(r=>Kr(r))},zr=e=>{e.forEach(n=>{n.target===U&&Ur(),V.has(n.target)&&we(n.target)})};function Ln(e){let n=e.getBoundingClientRect(),r=U?.clientWidth||0,o=U?.clientHeight||0;return n.bottom<0||n.top>o||n.right<0||n.left>r}function Wt(e){let n=Ye.get(e);n?.disconnect();let r=V.get(e),o=0,i=5;r||(r=ke(e),V.set(e,r));let{offsetWidth:s,offsetHeight:l}=U,d=[r.top-i,s-(r.left+i+r.width),l-(r.top+i+r.height),r.left-i].map(c=>`${-1*Math.floor(c)}px`).join(" "),a=new IntersectionObserver(()=>{++o>1&&we(e)},{root:U,threshold:1,rootMargin:d});a.observe(e),Ye.set(e,a)}function we(e,n=!0){clearTimeout(ge.get(e));let r=ut(e),o=n?Ze(r)?500:r.duration:0;ge.set(e,setTimeout(async()=>{let i=K.get(e);try{await i?.finished,V.set(e,ke(e)),Wt(e)}catch{}},o))}function Ur(){clearTimeout(ge.get(U)),ge.set(U,setTimeout(()=>{Tt.forEach(e=>ct(e,n=>Yn(()=>we(n))))},100))}function Jr(e){setTimeout(()=>{Le.set(e,setInterval(()=>Yn(we.bind(null,e)),2e3))},Math.round(2e3*Math.random()))}function Yn(e){typeof requestIdleCallback=="function"?requestIdleCallback(()=>e()):requestAnimationFrame(()=>e())}var ie,jn=typeof window<"u"&&"ResizeObserver"in window;jn&&(U=document.documentElement,new MutationObserver(Mn),ie=new ResizeObserver(zr),window.addEventListener("scroll",()=>{Nt=window.scrollY,Et=window.scrollX}),ie.observe(U));function _r(e){return e.reduce((o,i)=>[...o,...Array.from(i.addedNodes),...Array.from(i.removedNodes)],[]).every(o=>o.nodeName==="#comment")?!1:e.reduce((o,i)=>{if(o===!1)return!1;if(i.target instanceof Element){if(Gt(i.target),!o.has(i.target)){o.add(i.target);for(let s=0;sr(e,ve.has(e)));for(let r=0;ri(o,ve.has(o)))}}function Bt(e){return Array.isArray(e)?e:[e]}function Ze(e){return typeof e=="function"}function $r(e){let n=V.get(e),r=ke(e);if(!kt(e))return V.set(e,r);if(Ln(e)){V.set(e,r),Wt(e);return}let o;if(!n)return;let i=ut(e);if(typeof i!="function"){let s=n.left-r.left,l=n.top-r.top,t=n.left+n.width-(r.left+r.width);n.top+n.height-(r.top+r.height)==0&&(l=0),t==0&&(s=0);let[a,c,u,f]=Zn(e,n,r),p={transform:`translate(${s}px, ${l}px)`},y={transform:"translate(0, 0)"};a!==c&&(p.width=`${a}px`,y.width=`${c}px`),u!==f&&(p.height=`${u}px`,y.height=`${f}px`),o=e.animate([p,y],{duration:i.duration,easing:i.easing})}else{let[s]=Bt(i(e,"remain",n,r));o=new Animation(s),o.play()}K.set(e,o),V.set(e,r),o.addEventListener("finish",we.bind(null,e,!1),{once:!0})}function Xn(e){dt in e&&delete e[dt];let n=ke(e);V.set(e,n);let r=ut(e);if(!kt(e))return;if(Ln(e)){Wt(e);return}let o;if(typeof r!="function")o=e.animate([{transform:"scale(.98)",opacity:0},{transform:"scale(0.98)",opacity:0,offset:.5},{transform:"scale(1)",opacity:1}],{duration:r.duration*1.5,easing:"ease-in"});else{let[i]=Bt(r(e,"add",n));o=new Animation(i),o.play()}K.set(e,o),o.addEventListener("finish",we.bind(null,e,!1),{once:!0})}function Pn(e,n){var r;e.remove(),V.delete(e),xe.delete(e),K.delete(e),(r=Ye.get(e))===null||r===void 0||r.disconnect(),setTimeout(()=>{if(je in e&&delete e[je],Object.defineProperty(e,dt,{value:!0,configurable:!0}),n&&e instanceof HTMLElement)for(let o in n)e.style[o]=""},0)}function qr(e){var n;if(!xe.has(e)||!V.has(e))return;let[r,o]=xe.get(e);Object.defineProperty(e,je,{value:!0,configurable:!0});let i=window.scrollX,s=window.scrollY;if(o&&o.parentNode&&o.parentNode instanceof Element?o.parentNode.insertBefore(e,o):r&&r.parentNode?r.parentNode.appendChild(e):(n=Hn(e))===null||n===void 0||n.appendChild(e),!kt(e))return Pn(e);let[l,t,d,a]=to(e),c=ut(e),u=V.get(e);(i!==Et||s!==Nt)&&eo(e,i,s,c);let f,p={position:"absolute",top:`${l}px`,left:`${t}px`,width:`${d}px`,height:`${a}px`,margin:"0",pointerEvents:"none",transformOrigin:"center",zIndex:"100"};if(!Ze(c))Object.assign(e.style,p),f=e.animate([{transform:"scale(1)",opacity:1},{transform:"scale(.98)",opacity:0}],{duration:c.duration,easing:"ease-out"});else{let[y,v]=Bt(c(e,"remove",u));v?.styleReset!==!1&&(p=v?.styleReset||p,Object.assign(e.style,p)),f=new Animation(y),f.play()}K.set(e,f),f.addEventListener("finish",()=>Pn(e,p),{once:!0})}function eo(e,n,r,o){let i=Et-n,s=Nt-r,l=document.documentElement.style.scrollBehavior;if(getComputedStyle(U).scrollBehavior==="smooth"&&(document.documentElement.style.scrollBehavior="auto"),window.scrollTo(window.scrollX+i,window.scrollY+s),!e.parentElement)return;let d=e.parentElement,a=d.clientHeight,c=d.clientWidth,u=performance.now();function f(){requestAnimationFrame(()=>{if(!Ze(o)){let p=a-d.clientHeight,y=c-d.clientWidth;u+o.duration>performance.now()?(window.scrollTo({left:window.scrollX-y,top:window.scrollY-p}),a=d.clientHeight,c=d.clientWidth,f()):document.documentElement.style.scrollBehavior=l}})}f()}function to(e){var n;let r=V.get(e),[o,,i]=Zn(e,r,ke(e)),s=e.parentElement;for(;s&&(getComputedStyle(s).position==="static"||s instanceof HTMLBodyElement);)s=s.parentElement;s||(s=document.body);let l=getComputedStyle(s),t=!K.has(e)||((n=K.get(e))===null||n===void 0?void 0:n.playState)==="finished"?ke(s):V.get(s),d=Math.round(r.top-t.top)-te(l.borderTopWidth),a=Math.round(r.left-t.left)-te(l.borderLeftWidth);return[d,a,o,i]}function Fn(e,n={}){if(jn&&ie&&!(window.matchMedia("(prefers-reduced-motion: reduce)").matches&&!Ze(n)&&!n.disrespectUserMotionPreference)){We.add(e),getComputedStyle(e).position==="static"&&Object.assign(e.style,{position:"relative"}),ct(e,we,Jr,l=>ie?.observe(l)),Ze(n)?ve.set(e,n):ve.set(e,{duration:250,easing:"ease-in-out",...n});let s=new MutationObserver(Mn);s.observe(e,{childList:!0}),St.set(e,s),Tt.add(e)}return Object.freeze({parent:e,enable:()=>{We.add(e)},disable:()=>{We.delete(e),ct(e,o=>{let i=K.get(o);try{i?.cancel()}catch{}K.delete(o);let s=ge.get(o);s&&clearTimeout(s),ge.delete(o);let l=Le.get(o);l&&clearInterval(l),Le.delete(o)})},isEnabled:()=>We.has(e),destroy:()=>{We.delete(e),Tt.delete(e),ve.delete(e);let o=St.get(e);o?.disconnect(),St.delete(e),ct(e,i=>{ie?.unobserve(i);let s=K.get(i);try{s?.cancel()}catch{}K.delete(i);let l=Ye.get(i);l?.disconnect(),Ye.delete(i);let t=Le.get(i);t&&clearInterval(t),Le.delete(i);let d=ge.get(i);d&&clearTimeout(d),ge.delete(i),V.delete(i),xe.delete(i)})}})}function Rt(e){let[n,r]=(0,se.useState)(),o=(0,se.useMemo)(()=>e,[]),i=(0,se.useCallback)(l=>{l instanceof HTMLElement?r(Fn(l,o)):r(void 0)},[o]),s=(0,se.useCallback)(l=>{n&&(l?n.enable():n.disable())},[n]);return(0,se.useEffect)(()=>()=>{var l;(l=n?.destroy)===null||l===void 0||l.call(n)},[n]),[i,s]}var zn=Y(xt());function no(e,n,r){let o=n<0?e.length+n:n;if(o>=0&&oQ.default.createElement("span",{type:"button",className:Z.move},Q.default.createElement(zn.Icon,{icon:"sort"}))),Un={disrespectUserMotionPreferences:!0},ro=Dn(({value:e})=>Q.default.createElement("div",null,e)),oo=Bn(({children:e,automaticSorting:n,manualSort:r})=>{let[o,i]=Rt(Un);return(0,Q.useEffect)(()=>{document.body.style.cursor=r?"grabbing":null,i(!1);let s=setTimeout(()=>{i(!r)},500);return()=>clearTimeout(s)},[r]),Q.default.createElement("div",{className:r&&Z.noSelect,ref:n?o:null},e)});function Xt({onChange:e,value:n,element:r,items:o,enable:i,automaticSorting:s,KEY_PROPERTY:l}){if(!i){let[c]=Rt(Un);return Q.default.createElement("div",{ref:s?c:null},o.map((u,f)=>Q.default.createElement("div",{key:u[l]},r(f))))}let[t,d]=(0,Q.useState)(!1);function a({oldIndex:c,newIndex:u}){e(Vn(n,c,u)),d(!1)}return Q.default.createElement(oo,{onSortStart:()=>d(!0),manualSort:t,onSortEnd:a,automaticSorting:s,useDragHandle:!0,axis:"y",lockAxis:"y"},o.map((c,u)=>Q.default.createElement(ro,{key:c[l],index:u,value:r(u)})))}Xt.propTypes={items:ft.default.array.isRequired,onSortEndAction:ft.default.func.isRequired,element:ft.default.func.isRequired};var Jn=Y(ne()),H=Y(De()),_n=Y(Qe()),io=window["@Neos:HostPluginAPI"]["@NeosProjectPackages"]().NeosUiEditors.EditorEnvelope;function Kn({commit:e,editorId:n,editorOptions:r,id:o,...i}){function s(l,t){let{property:d,hooksRegistry:a}=i;if(t){Object.keys(t).map(c=>{a.get(c)(l,t[c]).then(f=>{let p=(({__type:y,...v})=>v)(f);e(o,d,p)})});return}e(o,d,l)}return Jn.default.createElement(io,{...i,commit:s,options:r||{},id:`${n}-${o}`})}Kn.propTypes={identifier:H.default.string.isRequired,label:H.default.string.isRequired,options:H.default.object,value:H.default.any,renderSecondaryInspector:H.default.func,editor:H.default.string.isRequired,editorRegistry:H.default.object.isRequired,i18nRegistry:H.default.object.isRequired,validationErrors:H.default.array,onEnterKey:H.default.func,helpMessage:H.default.string,helpThumbnail:H.default.string,highlight:H.default.bool,property:H.default.string.isRequired,id:H.default.number.isRequired,commit:H.default.func.isRequired};var ao=(0,_n.neos)(e=>({hooksRegistry:e.get("inspector").get("saveHooks")})),Qn=ao(Kn);var $=Y(ne());var Pt=null;function Mt({text:e,image:n}){let[r,o]=(0,$.useState)(),[i,s]=(0,$.useState)({}),[l,t]=(0,$.useState)({});(0,$.useEffect)(()=>{if(!n)return;if(typeof n=="string"){o(n);return}if(!n?.__identity)return;(async()=>{Pt||(Pt=await $e.get().endpoints.loadImageMetadata);let c=await Pt(n?.__identity);if(c?.previewImageResourceUri){let u=c?.object?.adjustments?.["Neos\\Media\\Domain\\Model\\Adjustment\\CropImageAdjustment"]||null,{thumbnail:f,cropArea:p}=lo(c?.previewDimensions,c?.originalDimensions,u);s(f),t(p),o(c.previewImageResourceUri)}})()},[n]);let d=so(e||"");return r?$.default.createElement("div",{className:Z.preview},$.default.createElement("figure",{style:l},$.default.createElement("img",{src:r,style:i,title:d}))):d?$.default.createElement("span",{className:Z.label},d):null}function so(e){let n=document.createElement("div");return n.innerHTML=e,n.textContent||n.innerText||""}function lo(e,n,r){let o={height:40,width:129},i=(()=>{if(!r?.height)return null;let c=n.height/e.height;return{height:r.height/c,width:r?.width/c,x:r?.x/c,y:r?.y/c}})(),s=(()=>{let c=o.height/(i?.height||e.height),u=o.width/(i?.width||e.width);return Math.min(c,u)})(),l={width:e.width*s,height:e.height*s},t={width:(i?.width||e.width)*s,height:(i?.height||e.height)*s},d=i?.x||0,a=i?.y||0;return{thumbnail:{width:`${l.width}px`,height:`${l.height}px`,left:`-${d*s}px`,top:`-${a*s}px`},cropArea:{width:`${t.width}px`,height:`${t.height}px`}}}function $n(e,n,r){return e=uo(e),Lt(r,n,e)}var Ie=e=>JSON.parse(JSON.stringify(e)),Yt=(e,n)=>JSON.stringify(e)==JSON.stringify(n);function pt(e){return typeof e=="number"?!0:typeof e!="string"?!1:!isNaN(e)&&!isNaN(parseFloat(e))}function gt(e){return e?typeof e=="string"?e.includes("ClientEval:"):Array.isArray(e)?e.some(n=>gt(n)):qn(e)?gt(Object.values(e)):!1:!1}function Be(e,n,r,o,i){return typeof e=="string"?co(e,n,r,o,i):Array.isArray(e)?e.map(s=>Be(s,n,r,o,i)):qn(e)?Object.fromEntries(Object.entries(e).map(([s,l])=>[s,Be(l,n,r,o,i)])):e}function co(e,n,r,o,i){if(typeof e=="string"&&e.startsWith("ItemEval:"))try{return new Function("item,node,parentNode,documentNode","return "+e.replace("ItemEval:",""))(n,r,o,i)}catch(s){return console.warn('An error occurred while trying to evaluate "'+e+`" -`,s),e}return e}function qn(e){return e!=null&&(e.constructor===Object||!e.constructor&&typeof e=="object")}function er(e,n){let r=Ie(e);return!Array.isArray(r)||!r.length||!Array.isArray(n)||!n.length?r:r.sort((o,i)=>n.reduce((s,l)=>{if(s!==0)return s;let{property:t,order:d="asc"}=l,a=o[t],c=i[t],u=0;return pt(a)&&pt(c)?a>c?u=1:a{let r=parseInt(n);return!isNaN(r)&&String(r)===n?r:n})}function Lt(e,n,r){if(r.length===0)return n;if(typeof e>"u"&&(typeof r[0]=="number"?e=[]:e={}),Array.isArray(e)){typeof r[0]=="number"&&e.length({contextNodePath:e.focusedNodePath,dataSourceIdentifier:e.options.dataSourceIdentifier,dataSourceUri:e.options.dataSourceUri,dataSourceAdditionalData:e.options.dataSourceAdditionalData,dataSourceDisableCaching:!!e.options.dataSourceDisableCaching});function rr({commit:e,dataSourcesDataLoader:n,editorRegistry:r,i18nRegistry:o,id:i,validatorRegistry:s,value:l,renderHelpIcon:t,identifier:d,...a}){let{dataSourceIdentifier:c,dataSourceUri:u,dataSourceAdditionalData:f}=a.options,p=!!(c||u),y=o.translate(a.label),[v,R]=(0,S.useState)(!0),[b,G]=(0,S.useState)({}),[I,C]=(0,S.useState)(!0),[A,L]=(0,S.useState)(!0),[g,E]=(0,S.useState)([]),[x,D]=(0,S.useState)(p?null:a.options),[k,J]=(0,S.useState)({}),[F,ce]=(0,S.useState)({}),Ce=()=>JSON.stringify(g),[ze,Ue]=(0,S.useState)([]);(0,S.useEffect)(()=>{R(!0),$e.get().endpoints.dataSource("get-property-types",null,{}).then(h=>{G(h),R(!1)})},[]),(0,S.useEffect)(()=>{let h=Ce();if(!(ze===h||!x)&&(Ue(h),ir(g),ar(g),x.sortBy)){let m=setTimeout(()=>{let N=er(g,x.sortBy);Re(N)},2e3);return()=>clearTimeout(m)}},[g]),(0,S.useEffect)(()=>{if(!x||gt(x))return;let h=yt();J(h),he(h)},[x,b]);let ht=()=>JSON.stringify({dataSourceIdentifier:c,dataSourceUri:u,dataSourceAdditionalData:f}),[mt,bt]=(0,S.useState)(null);(0,S.useEffect)(()=>{if(!p)return;let h=ht();mt!==h&&(R(!0),bt(h),n.resolveValue(fo(a),g).then(m=>{D(He(a.options,m)),R(!1)}))},[c,u,f]);function yt(){let h={},m=x.properties;if(m){let N=[];for(let M in m){let P=m[M];N.push({key:M,position:P?.position??null,item:P})}vt(N).forEach(({key:M,item:P})=>{let B=P&&P.defaultValue;h[M]=Je(B,"")})}return h}function he(h){let m=l?Ie(l):[];m=m.map(B=>B[Fe]?B:{...B,[Fe]:$t()});let{min:N,max:M}=x;if(N&&m.lengthM&&(m=m.slice(0,M)),m.length)for(let B=0;Bme==Fe||me in h).reduce((me,de)=>{let Ke=_?.[de]?.defaultValue!=null?_[de].defaultValue:X[de];return pt(Ke)&&(Ke=parseFloat(Ke)),{...me,[de]:Ke}},{});m[B]=q}E(m)}function Re(h){if(Yt(h,g))return;let m=Ie(h).map(N=>(delete N[Fe],N));Yt(m,l)||e(m),E(h)}function ir(h){x&&x.max&&C(x.max>h.length)}function ar(h){x&&x.min&&L(x.minh!==M);Re(m)}function lr(h,m){ce({...F,[h]:!m})}function cr(h,m,N){Re($n(m,N,g))}function dr(h,m,N,M){if(!m||!m.validation)return;let P=m.validation,_=Object.keys(P).map(X=>{let Ae=P[X];return ur(h,X,Ae)}).filter(X=>X);if(x.controls&&x.controls.add){let X=x?.max?x.max>g.length:!0;C(X&&_.length<=0)}return _}function ur(h,m,N){let M=s.get(m);if(M)return M(h,N);console.warn(`Validator ${m} not found`)}function fr(h){let m=!!x.predefinedProperties&&x.predefinedProperties[h],{controls:N,sortBy:M,properties:P,allowRemovePredefinedProperties:B}=x,_=N.remove&&A?!m||B:!1,X=!m&&N.move&&g.length>1,Ae=_&&X,q=_||X;if(Object.keys(P).length===1)return S.default.createElement("div",{className:en(Z.simpleWrapper,Ae?Z.simpleWrapperTwoButtons:q&&Z.simpleWrapperOneButton)},Zt(h),q&&S.default.createElement("div",{class:Z.simpleButtons},_&&S.default.createElement(le.IconButton,{onClick:()=>jt(h),className:Z.delete,icon:"trash"}),X&&S.default.createElement(Dt,null)));let de=!!N.collapse,_e=de?typeof F[h]=="boolean"?F[h]:!!x?.collapsed:!1;return S.default.createElement("div",{className:Z.wrapper},!!(q||de)&&S.default.createElement("div",{class:Z.buttons},pr(h),X&&S.default.createElement(Dt,null),de&&S.default.createElement(le.IconButton,{onClick:()=>lr(h,_e),icon:_e?"chevron-down":"chevron-up"}),_&&S.default.createElement(le.IconButton,{onClick:()=>jt(h),className:Z.delete,icon:"trash"})),!_e&&Zt(h))}function Zt(h){let{predefinedProperties:m}=x,N=m&&m[h]?m[h].label:null,M=[];return Object.keys(k).map(P=>{M.push(gr(P,h))}),M=M.filter(Boolean),M.length===0?null:S.default.createElement("div",{className:Z.group},N&&S.default.createElement("span",{dangerouslySetInnerHTML:{__html:N}}),M)}function Ht(h){return h!=null}function Je(h,m=""){return Ht(h)?h:m}function pr(h){let m=x?.preview?.text,N=x?.preview?.image;return!m&&!N?null:(m&&(m=Be(m,g[h],a.node,a.parentNode,a.documentNode)),N&&(N=Be(N,g[h],a.node,a.parentNode,a.documentNode)),S.default.createElement(Mt,{text:o.translate(m),image:N}))}function gr(h,m){let N=Ie(g),{properties:M,predefinedProperties:P}=x,B=Be(M[h],N[m],a.node,a.parentNode,a.documentNode);P&&P[m]&&P[m].properties&&P[m].properties[h]&&(B=He(B,P[m].properties[h]));let _=B.type?b[B.type]:{};_&&(B=He(_,B));let X=Je(B.editorOptions,{}),Ae=Je(B.editor,"Neos.Neos/Inspector/Editors/TextFieldEditor"),q=Je(N[m][h]);!q&&Ht(B.defaultValue)&&(q=B.defaultValue),(X.hasOwnProperty("dataSourceUri")||X.hasOwnProperty("dataSourceIdentifier"))&&(X={...X},X.dataSourceAdditionalData?(X.dataSourceAdditionalData.hasOwnProperty("repeatableIndex")&&(X.dataSourceAdditionalData.repeatableIndex=m),X.dataSourceAdditionalData.hasOwnProperty("repeatableValue")&&(X.dataSourceAdditionalData.repeatableValue=g)):X.dataSourceAdditionalData={});let me=Object.keys(M).length<=1;return S.default.createElement("div",{className:!me&&Z.property,hidden:B.hidden},S.default.createElement(Qn,{identifier:`${d}-repeatable-${m}-${h}`,options:X,value:q,renderSecondaryInspector:a.renderSecondaryInspector,editor:Ae,editorRegistry:r,i18nRegistry:o,validationErrors:dr(q,B,m,h),highlight:!1,property:`${m}.${h}`,id:`repeatable-${m}-${h}`,editorId:i,commit:cr,...B}))}if(v||!x)return S.default.createElement(S.default.Fragment,null,!!y&&S.default.createElement(le.Label,{htmlFor:i},y," ",t()),S.default.createElement(cn,{id:i,isLoading:v,heightMultiplier:2}));if(x.hidden)return null;let{buttonAddLabel:hr="Mireo.RepeatableFields:Main:addRow"}=x;return S.default.createElement(S.default.Fragment,null,!!y&&S.default.createElement(le.Label,{htmlFor:i},y," ",t()),S.default.createElement(Xt,{element:fr,items:g,onChange:Re,enable:x.controls?.move,automaticSorting:x.sortBy,value:g,KEY_PROPERTY:Fe}),x.controls.add&&I&&S.default.createElement(S.default.Fragment,null,S.default.createElement(le.Button,{onClick:sr,id:i},o.translate(hr)),!!y||t()))}rr.propTypes={identifier:O.default.string.isRequired,label:O.default.string.isRequired,value:O.default.arrayOf(O.default.object),renderSecondaryInspector:O.default.func,editor:O.default.string.isRequired,editorRegistry:O.default.object.isRequired,i18nRegistry:O.default.object.isRequired,validationErrors:O.default.array,onEnterKey:O.default.func,helpMessage:O.default.string,helpThumbnail:O.default.string,highlight:O.default.bool,commit:O.default.func.isRequired,options:O.default.shape({hidden:O.default.bool,buttonAddLabel:O.default.string,dataSourceIdentifier:O.default.string,dataSourceUri:O.default.string,dataSourceDisableCaching:O.default.bool,dataSourceAdditionalData:O.default.objectOf(O.default.any),predefinedProperties:O.default.arrayOf(O.default.shape({label:O.default.string,value:O.default.object})),max:O.default.number,min:O.default.number,collapsed:O.default.bool,label:O.default.shape({label:O.default.string,image:O.default.string}),controls:O.default.shape({move:O.default.bool,remove:O.default.bool,add:O.default.bool,collapse:O.default.bool}),sortBy:O.default.arrayOf(O.default.shape({property:O.default.string,direction:O.default.oneOf(["asc","desc"])}))}).isRequired,dataSourcesDataLoader:O.default.shape({resolveValue:O.default.func.isRequired}).isRequired,focusedNodePath:O.default.string.isRequired};var po=(0,nr.neos)(e=>({editorRegistry:e.get("inspector").get("editors"),i18nRegistry:e.get("i18n"),dataSourcesDataLoader:e.get("dataLoaders").get("DataSources")})),go=(0,tr.connect)(e=>({focusedNodePath:Ve.selectors.CR.Nodes.focusedNodePathSelector(e),node:Ve.selectors.CR.Nodes.focusedSelector(e),parentNode:Ve.selectors.CR.Nodes.focusedParentSelector(e),documentNode:Ve.selectors.CR.Nodes.documentNodeSelector(e)})),or=po(go(rr));zt("Mireo.RepeatableFields:RepeatableField",{},e=>{e.get("inspector").get("editors").set("Mireo.RepeatableFields/Inspector/Editors/RepeatableFieldEditor",{component:or,hasOwnLabel:!0})});})(); +(()=>{var yr=Object.create;var Ft=Object.defineProperty;var vr=Object.getOwnPropertyDescriptor;var xr=Object.getOwnPropertyNames;var wr=Object.getPrototypeOf,Ir=Object.prototype.hasOwnProperty;var Cr=(e,n)=>()=>(e&&(n=e(e=0)),n);var ue=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports);var Ar=(e,n,r,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of xr(n))!Ir.call(e,i)&&i!==r&&Ft(e,i,{get:()=>n[i],enumerable:!(o=vr(n,i))||o.enumerable});return e};var Y=(e,n,r)=>(r=e!=null?yr(wr(e)):{},Ar(n||!e||!e.__esModule?Ft(r,"default",{value:e,enumerable:!0}):r,e));function j(e){return(...n)=>{if(window["@Neos:HostPluginAPI"]&&window["@Neos:HostPluginAPI"][`@${e}`])return window["@Neos:HostPluginAPI"][`@${e}`](...n);throw new Error("You are trying to read from a consumer api that hasn't been initialized yet!")}}var ee=Cr(()=>{});var ne=ue((Yo,Ut)=>{ee();Ut.exports=j("vendor")().React});var _t=ue((Zo,Jt)=>{ee();Jt.exports=j("vendor")().reactRedux});var De=ue((Fo,Kt)=>{ee();Kt.exports=j("vendor")().PropTypes});var nn=ue((Ko,tn)=>{ee();tn.exports=j("NeosProjectPackages")().NeosUiReduxStore});var $e=ue(($o,rn)=>{ee();rn.exports=j("NeosProjectPackages")().NeosUiDecorators});var xt=ue((ei,on)=>{ee();on.exports=j("NeosProjectPackages")().ReactUiComponents});var mn=ue((ji,hn)=>{ee();hn.exports=j("vendor")().ReactDOM});var yn=ue((Zi,bn)=>{"use strict";var Nr=function(e,n,r,o,i,s,l,t){if(!e){var d;if(n===void 0)d=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var a=[r,o,i,s,l,t],c=0;d=new Error(n.replace(/%s/g,function(){return a[c++]})),d.name="Invariant Violation"}throw d.framesToPop=1,d}};bn.exports=Nr});ee();var Or=(e,n="position",r="key")=>{let o=typeof n=="string"?b=>b[n]:n,i={},s={},l={},t={},d={},a={};e.forEach((b,T)=>{let I=b[r]?b[r]:String(T);i[I]=T;let C=o(b),A=String(C||T),L=!1;if(A.startsWith("start")){let p=A.match(/start\s+(\d+)/),N=p&&p[1]?Number(p[1]):0;l[N]||(l[N]=[]),l[N].push(I)}else if(A.startsWith("end")){let p=A.match(/end\s+(\d+)/),N=p&&p[1]?Number(p[1]):0;t[N]||(t[N]=[]),t[N].push(I)}else if(A.startsWith("before")){let p=A.match(/before\s+(\S+)(\s+(\d+))?/);if(!p)L=!0;else{let N=p[1],x=p[3]?Number(p[3]):0;d[N]||(d[N]={}),d[N][x]||(d[N][x]=[]),d[N][x].push(I)}}else if(A.startsWith("after")){let p=A.match(/after\s+(\S+)(\s+(\d+))?/);if(!p)L=!0;else{let N=p[1],x=p[3]?Number(p[3]):0;a[N]||(a[N]={}),a[N][x]||(a[N][x]=[]),a[N][x].push(I)}}else L=!0;if(L){let p=parseFloat(A);(isNaN(p)||!isFinite(p))&&(p=T),s[p]||(s[p]=[]),s[p].push(I)}});let c=[],u=[],f=[],g=[],y=(b,T)=>{let I=Object.keys(b).map(C=>Number(C)).sort((C,A)=>C-A);return T?I:I.reverse()},v=(b,T)=>{b.forEach(I=>{if(!(g.indexOf(I)>=0)){if(g.push(I),d[I]){let C=y(d[I],!0);for(let A of C)v(d[I][A],T)}if(T.push(I),a[I]){let C=y(a[I],!1);for(let A of C)v(a[I][A],T)}}})};for(let b of y(l,!1))v(l[b],c);for(let b of y(s,!0))v(s[b],u);for(let b of y(t,!0))v(t[b],f);for(let b of Object.keys(d))if(!(g.indexOf(b)>=0))for(let T of y(d[b],!1))v(d[b][T],c);for(let b of Object.keys(a))if(!(g.indexOf(b)>=0))for(let T of y(a[b],!1))v(a[b][T],u);return[...c,...u,...f].map(b=>i[b]).map(b=>e[b])},vt=Or;var zt=j("manifest");var G=Y(ne()),tr=Y(_t()),S=Y(De());var Qt="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var $t=(e=21)=>{let n="",r=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)n+=Qt[r[e]&63];return n};function qt(e){var n,r,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(n=0;nre.default.createElement("animate",{key:o,attributeName:`stroke-${o}`,values:i,dur:"1.5s",calcMode:"spline",keyTimes:"0;0.475;0.95;1",keySplines:"0.42,0,0.58,1;0.42,0,0.58,1;0.42,0,0.58,1",repeatCount:"indefinite"}))),re.default.createElement("animateTransform",{attributeName:"transform",type:"rotate",dur:"2s",values:"0 12 12;360 12 12",repeatCount:"indefinite"})))}function sn({style:e,className:n,size:r=30}){return re.default.createElement("svg",{width:r*2,height:r,viewBox:"0 0 24 12",class:n,style:e},[1,2,3].map(o=>{let i=o*6,s=Math.round(100/3*(o-1))/100;return re.default.createElement("circle",{cx:i,cy:"6",r:"0",fill:"currentColor"},re.default.createElement("animate",{attributeName:"r",begin:s,calcMode:"spline",dur:"1.5s",keySplines:"0.2 0.2 0.4 0.8;0.2 0.2 0.4 0.8;0.2 0.2 0.4 0.8",repeatCount:"indefinite",values:"0;2;0;0"}))}))}var ln=Y($e()),wt={container:(e=1)=>({display:"grid",gridTemplate:"'content' 1fr / 1fr",alignItems:"center",justifyItems:"center",width:"100%",minHeight:`calc(var(--spacing-GoldenUnit) * ${e})`}),item:(e=!1)=>({gridArea:"content",transition:"opacity var(--transition-Default), transform var(--transition-Default) ease",opacity:e?1:0,transform:`scale(${e?1:0})`})};function Tr({id:e,title:n="Neos.Neos:Main:loading",isLoading:r=!1,delayTime:o=500,timeoutTime:i=5e3,i18nRegistry:s,heightMultiplier:l=1,width:t=60}){let[d,a]=(0,fe.useState)(0),c=n?s.translate(n):null;return(0,fe.useEffect)(()=>{if(!r){a(0);return}let u=setTimeout(()=>{a(1)},o),f=setTimeout(()=>{a(2)},o+i);return()=>{clearTimeout(u),clearTimeout(f)}},[r]),r?fe.default.createElement("div",{id:e,style:wt.container(l),title:c},fe.default.createElement(an,{size:t/2,style:wt.item(d==1)}),fe.default.createElement(sn,{size:t/2,style:wt.item(d==2)})):null}var Er=(0,ln.neos)(e=>({i18nRegistry:e.get("i18n")})),cn=Er(Tr);var Q=Y(ne());function Oe(){return Oe=Object.assign?Object.assign.bind():function(e){for(var n=1;ne.length)&&(n=e.length);for(var r=0,o=Array(n);r0&&arguments[0]!==void 0?arguments[0]:this.active.collection;return this.refs[r].sort(kr)}}]),e})();function kr(e,n){var r=e.node.sortableInfo.index,o=n.node.sortableInfo.index;return r-o}function Sn(e,n){return Object.keys(e).reduce(function(r,o){return n.indexOf(o)===-1&&(r[o]=e[o]),r},{})}var Ee={end:["touchend","touchcancel","mouseup"],move:["touchmove","mousemove"],start:["touchstart","mousedown"]},Gn=(function(){if(typeof window>"u"||typeof document>"u")return"";var e=window.getComputedStyle(document.documentElement,"")||["-moz-hidden-iframe"],n=(Array.prototype.slice.call(e).join("").match(/-(moz|webkit|ms)-/)||e.OLink===""&&["","o"])[1];return n==="ms"?"ms":n&&n.length?n[0].toUpperCase()+n.substr(1):""})();function it(e,n){Object.keys(n).forEach(function(r){e.style[r]=n[r]})}function at(e,n){e.style["".concat(Gn,"Transform")]=n==null?"":"translate3d(".concat(n.x,"px,").concat(n.y,"px,0)")}function Ct(e,n){e.style["".concat(Gn,"TransitionDuration")]=n==null?"":"".concat(n,"ms")}function Le(e,n){for(;e;){if(n(e))return e;e=e.parentNode}return null}function Cn(e,n,r){return Math.max(e,Math.min(r,n))}function Ne(e){return e.substr(-2)==="px"?parseFloat(e):0}function Br(e){var n=window.getComputedStyle(e);return{bottom:Ne(n.marginBottom),left:Ne(n.marginLeft),right:Ne(n.marginRight),top:Ne(n.marginTop)}}function Ot(e,n){var r=n.displayName||n.name;return r?"".concat(e,"(").concat(r,")"):e}function At(e,n){var r=e.getBoundingClientRect();return{top:r.top+n.top,left:r.left+n.left}}function Me(e){return e.touches&&e.touches.length?{x:e.touches[0].pageX,y:e.touches[0].pageY}:e.changedTouches&&e.changedTouches.length?{x:e.changedTouches[0].pageX,y:e.changedTouches[0].pageY}:{x:e.pageX,y:e.pageY}}function Rr(e){return e.touches&&e.touches.length||e.changedTouches&&e.changedTouches.length}function st(e,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{left:0,top:0};if(e){var o={left:r.left+e.offsetLeft,top:r.top+e.offsetTop};return e.parentNode===n?o:st(e.parentNode,n,o)}}function Dr(e,n,r){return en?e-1:e>r&&e0&&r[l].height>0){var t=s.getContext("2d");t.drawImage(r[l],0,0)}}),o}function En(e){var n,r,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{withRef:!1};return r=n=(function(i){ot(s,i);function s(){var l,t;Se(this,s);for(var d=arguments.length,a=new Array(d),c=0;c=l.y-d/2&&!C?(a.y=1,c.y=u.y*Math.abs((l.y-d/2-i.y)/d)):i.x>=l.x-t/2&&!L?(a.x=1,c.x=u.x*Math.abs((l.x-t/2-i.x)/t)):i.y<=s.y+d/2&&!I?(a.y=-1,c.y=u.y*Math.abs((i.y-d/2-s.y)/d)):i.x<=s.x+t/2&&!A&&(a.x=-1,c.x=u.x*Math.abs((i.x-t/2-s.x)/t)),this.interval&&(this.clear(),this.isAutoScrolling=!1),(a.x!==0||a.y!==0)&&(this.interval=setInterval(function(){o.isAutoScrolling=!0;var p={left:c.x*a.x,top:c.y*a.y};o.container.scrollTop+=p.top,o.container.scrollLeft+=p.left,o.onScrollCallback(p)},5))}}]),e})();function jr(e){var n=e.node;return{height:n.offsetHeight,width:n.offsetWidth}}function Zr(e){var n=[ve.Input,ve.Textarea,ve.Select,ve.Option,ve.Button];return!!(n.indexOf(e.target.tagName)!==-1||Le(e.target,function(r){return r.contentEditable==="true"}))}var Nn={axis:w.default.oneOf(["x","y","xy"]),contentWindow:w.default.any,disableAutoscroll:w.default.bool,distance:w.default.number,getContainer:w.default.func,getHelperDimensions:w.default.func,helperClass:w.default.string,helperContainer:w.default.oneOfType([w.default.func,typeof HTMLElement>"u"?w.default.any:w.default.instanceOf(HTMLElement)]),hideSortableGhost:w.default.bool,keyboardSortingTransitionDuration:w.default.number,lockAxis:w.default.string,lockOffset:w.default.oneOfType([w.default.number,w.default.string,w.default.arrayOf(w.default.oneOfType([w.default.number,w.default.string]))]),lockToContainerEdges:w.default.bool,onSortEnd:w.default.func,onSortMove:w.default.func,onSortOver:w.default.func,onSortStart:w.default.func,pressDelay:w.default.number,pressThreshold:w.default.number,keyCodes:w.default.shape({lift:w.default.arrayOf(w.default.number),drop:w.default.arrayOf(w.default.number),cancel:w.default.arrayOf(w.default.number),up:w.default.arrayOf(w.default.number),down:w.default.arrayOf(w.default.number)}),shouldCancelStart:w.default.func,transitionDuration:w.default.number,updateBeforeSortStart:w.default.func,useDragHandle:w.default.bool,useWindowAsScrollContainer:w.default.bool},Wn={lift:[ye.SPACE],drop:[ye.SPACE],cancel:[ye.ESC],up:[ye.UP,ye.LEFT],down:[ye.DOWN,ye.RIGHT]},Hr={axis:"y",disableAutoscroll:!1,distance:0,getHelperDimensions:jr,hideSortableGhost:!0,lockOffset:"50%",lockToContainerEdges:!1,pressDelay:0,pressThreshold:5,keyCodes:Wn,shouldCancelStart:Zr,transitionDuration:300,useWindowAsScrollContainer:!1},Fr=Object.keys(Nn);function Vr(e){(0,pe.default)(!(e.distance&&e.pressDelay),"Attempted to set both `pressDelay` and `distance` on SortableContainer, you may only use one or the other, not both at the same time.")}function zr(e,n){try{var r=e()}catch(o){return n(!0,o)}return r&&r.then?r.then(n.bind(null,!1),n.bind(null,!0)):n(!1,value)}var kn=(0,z.createContext)({manager:{}});function Bn(e){var n,r,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{withRef:!1};return r=n=(function(i){ot(s,i);function s(l){var t;Se(this,s),t=nt(this,Te(s).call(this,l)),R(E(E(t)),"state",{}),R(E(E(t)),"handleStart",function(a){var c=t.props,u=c.distance,f=c.shouldCancelStart;if(!(a.button===2||f(a))){t.touched=!0,t.position=Me(a);var g=Le(a.target,function(I){return I.sortableInfo!=null});if(g&&g.sortableInfo&&t.nodeIsChild(g)&&!t.state.sorting){var y=t.props.useDragHandle,v=g.sortableInfo,X=v.index,b=v.collection,T=v.disabled;if(T||y&&!Le(a.target,On))return;t.manager.active={collection:b,index:X},!Rr(a)&&a.target.tagName===ve.Anchor&&a.preventDefault(),u||(t.props.pressDelay===0?t.handlePress(a):t.pressTimer=setTimeout(function(){return t.handlePress(a)},t.props.pressDelay))}}}),R(E(E(t)),"nodeIsChild",function(a){return a.sortableInfo.manager===t.manager}),R(E(E(t)),"handleMove",function(a){var c=t.props,u=c.distance,f=c.pressThreshold;if(!t.state.sorting&&t.touched&&!t._awaitingUpdateBeforeSortStart){var g=Me(a),y={x:t.position.x-g.x,y:t.position.y-g.y},v=Math.abs(y.x)+Math.abs(y.y);t.delta=y,!u&&(!f||v>=f)?(clearTimeout(t.cancelTimer),t.cancelTimer=setTimeout(t.cancel,0)):u&&v>=u&&t.manager.isActive()&&t.handlePress(a)}}),R(E(E(t)),"handleEnd",function(){t.touched=!1,t.cancel()}),R(E(E(t)),"cancel",function(){var a=t.props.distance,c=t.state.sorting;c||(a||clearTimeout(t.pressTimer),t.manager.active=null)}),R(E(E(t)),"handlePress",function(a){try{var c=t.manager.getActive(),u=(function(){if(c){var f=function(){var P=A.sortableInfo.index,D=Br(A),J=Mr(t.container),F=t.scrollContainer.getBoundingClientRect(),ce=v({index:P,node:A,collection:L});if(t.node=A,t.margin=D,t.gridGap=J,t.width=ce.width,t.height=ce.height,t.marginOffset={x:t.margin.left+t.margin.right+t.gridGap.x,y:Math.max(t.margin.top,t.margin.bottom,t.gridGap.y)},t.boundingClientRect=A.getBoundingClientRect(),t.containerBoundingRect=F,t.index=P,t.newIndex=P,t.axis={x:y.indexOf("x")>=0,y:y.indexOf("y")>=0},t.offsetEdge=st(A,t.container),p?t.initialOffset=Me(tt({},a,{pageX:t.boundingClientRect.left,pageY:t.boundingClientRect.top})):t.initialOffset=Me(a),t.initialScroll={left:t.scrollContainer.scrollLeft,top:t.scrollContainer.scrollTop},t.initialWindowScroll={left:window.pageXOffset,top:window.pageYOffset},t.helper=t.helperContainer.appendChild(Lr(A)),it(t.helper,{boxSizing:"border-box",height:"".concat(t.height,"px"),left:"".concat(t.boundingClientRect.left-D.left,"px"),pointerEvents:"none",position:"fixed",top:"".concat(t.boundingClientRect.top-D.top,"px"),width:"".concat(t.width,"px")}),p&&t.helper.focus(),b&&(t.sortableGhost=A,it(A,{opacity:0,visibility:"hidden"})),t.minTranslate={},t.maxTranslate={},p){var he=C?{top:0,left:0,width:t.contentWindow.innerWidth,height:t.contentWindow.innerHeight}:t.containerBoundingRect,Ue=he.top,Je=he.left,ht=he.width,mt=he.height,bt=Ue+mt,yt=Je+ht;t.axis.x&&(t.minTranslate.x=Je-t.boundingClientRect.left,t.maxTranslate.x=yt-(t.boundingClientRect.left+t.width)),t.axis.y&&(t.minTranslate.y=Ue-t.boundingClientRect.top,t.maxTranslate.y=bt-(t.boundingClientRect.top+t.height))}else t.axis.x&&(t.minTranslate.x=(C?0:F.left)-t.boundingClientRect.left-t.width/2,t.maxTranslate.x=(C?t.contentWindow.innerWidth:F.left+F.width)-t.boundingClientRect.left-t.width/2),t.axis.y&&(t.minTranslate.y=(C?0:F.top)-t.boundingClientRect.top-t.height/2,t.maxTranslate.y=(C?t.contentWindow.innerHeight:F.top+F.height)-t.boundingClientRect.top-t.height/2);X&&X.split(" ").forEach(function(me){return t.helper.classList.add(me)}),t.listenerNode=a.touches?a.target:t.contentWindow,p?(t.listenerNode.addEventListener("wheel",t.handleKeyEnd,!0),t.listenerNode.addEventListener("mousedown",t.handleKeyEnd,!0),t.listenerNode.addEventListener("keydown",t.handleKeyDown)):(Ee.move.forEach(function(me){return t.listenerNode.addEventListener(me,t.handleSortMove,!1)}),Ee.end.forEach(function(me){return t.listenerNode.addEventListener(me,t.handleSortEnd,!1)})),t.setState({sorting:!0,sortingIndex:P}),I&&I({node:A,index:P,collection:L,isKeySorting:p,nodes:t.manager.getOrderedRefs(),helper:t.helper},a),p&&t.keyMove(0)},g=t.props,y=g.axis,v=g.getHelperDimensions,X=g.helperClass,b=g.hideSortableGhost,T=g.updateBeforeSortStart,I=g.onSortStart,C=g.useWindowAsScrollContainer,A=c.node,L=c.collection,p=t.manager.isKeySorting,N=(function(){if(typeof T=="function"){t._awaitingUpdateBeforeSortStart=!0;var x=zr(function(){var P=A.sortableInfo.index;return Promise.resolve(T({collection:L,index:P,node:A,isKeySorting:p},a)).then(function(){})},function(P,D){if(t._awaitingUpdateBeforeSortStart=!1,P)throw D;return D});if(x&&x.then)return x.then(function(){})}})();return N&&N.then?N.then(f):f(N)}})();return Promise.resolve(u&&u.then?u.then(function(){}):void 0)}catch(f){return Promise.reject(f)}}),R(E(E(t)),"handleSortMove",function(a){var c=t.props.onSortMove;typeof a.preventDefault=="function"&&a.cancelable&&a.preventDefault(),t.updateHelperPosition(a),t.animateNodes(),t.autoscroll(),c&&c(a)}),R(E(E(t)),"handleSortEnd",function(a){var c=t.props,u=c.hideSortableGhost,f=c.onSortEnd,g=t.manager,y=g.active.collection,v=g.isKeySorting,X=t.manager.getOrderedRefs();t.listenerNode&&(v?(t.listenerNode.removeEventListener("wheel",t.handleKeyEnd,!0),t.listenerNode.removeEventListener("mousedown",t.handleKeyEnd,!0),t.listenerNode.removeEventListener("keydown",t.handleKeyDown)):(Ee.move.forEach(function(A){return t.listenerNode.removeEventListener(A,t.handleSortMove)}),Ee.end.forEach(function(A){return t.listenerNode.removeEventListener(A,t.handleSortEnd)}))),t.helper.parentNode.removeChild(t.helper),u&&t.sortableGhost&&it(t.sortableGhost,{opacity:"",visibility:""});for(var b=0,T=X.length;bu)){t.prevIndex=g,t.newIndex=f;var y=Dr(t.newIndex,t.prevIndex,t.index),v=c.find(function(p){var N=p.node;return N.sortableInfo.index===y}),X=v.node,b=t.containerScrollDelta,T=v.boundingClientRect||At(X,b),I=v.translate||{x:0,y:0},C={top:T.top+I.y-b.top,left:T.left+I.x-b.left},A=gL?L/2:this.height/2,width:this.width>A?A/2:this.width/2},N=v&&C>this.index&&C<=X,x=v&&C=X,P={x:0,y:0},D=g[b].edgeOffset;D||(D=st(I,this.container),g[b].edgeOffset=D,v&&(g[b].boundingClientRect=At(I,u)));var J=b0&&g[b-1];if(J&&!J.edgeOffset&&(J.edgeOffset=st(J.node,this.container),v&&(J.boundingClientRect=At(J.node,u))),C===this.index){a&&(this.sortableGhost=I,it(I,{opacity:0,visibility:"hidden"}));continue}d&&Ct(I,d),this.axis.x?this.axis.y?x||Cthis.containerBoundingRect.width-p.width&&J&&(P.x=J.edgeOffset.left-D.left,P.y=J.edgeOffset.top-D.top),this.newIndex===null&&(this.newIndex=C)):(N||C>this.index&&(y.left+f.left+p.width>=D.left&&y.top+f.top+p.height>=D.top||y.top+f.top+p.height>=D.top+L))&&(P.x=-(this.width+this.marginOffset.x),D.left+P.xthis.index&&y.left+f.left+p.width>=D.left?(P.x=-(this.width+this.marginOffset.x),this.newIndex=C):(x||Cthis.index&&y.top+f.top+p.height>=D.top?(P.y=-(this.height+this.marginOffset.y),this.newIndex=C):(x||C1&&arguments[1]!==void 0?arguments[1]:{withRef:!1};return r=n=(function(i){ot(s,i);function s(){var l,t;Se(this,s);for(var d=arguments.length,a=new Array(d),c=0;c0&&arguments[0]!==void 0?arguments[0]:this.props.collection;this.context.manager.remove(t,this.ref)}},{key:"getWrappedInstance",value:function(){return(0,pe.default)(o.withRef,"To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableElement() call"),this.wrappedInstance.current}},{key:"render",value:function(){var t=o.withRef?this.wrappedInstance:null;return(0,z.createElement)(e,Oe({ref:t},Sn(this.props,Ur)))}}]),s})(z.Component),R(n,"displayName",Ot("sortableElement",e)),R(n,"contextType",kn),R(n,"propTypes",Rn),R(n,"defaultProps",{collection:0}),r}var se=Y(ne(),1);var Tt=new Set,V=new WeakMap,we=new WeakMap,K=new WeakMap,je=new WeakMap,St=new WeakMap,Ye=new WeakMap,xe=new WeakMap,ge=new WeakMap,We=new WeakSet,U,Et=0,Nt=0,ae="__aa_tgt",Ze="__aa_del",dt="__aa_new",Mn=e=>{let n=Qr(e);n&&n.forEach(r=>$r(r))},Jr=e=>{e.forEach(n=>{n.target===U&&_r(),V.has(n.target)&&Ie(n.target)})};function Ln(e){let n=e.getBoundingClientRect(),r=U?.clientWidth||0,o=U?.clientHeight||0;return n.bottom<0||n.top>o||n.right<0||n.left>r}function Wt(e){let n=je.get(e);n?.disconnect();let r=V.get(e),o=0,i=5;r||(r=ke(e),V.set(e,r));let{offsetWidth:s,offsetHeight:l}=U,d=[r.top-i,s-(r.left+i+r.width),l-(r.top+i+r.height),r.left-i].map(c=>`${-1*Math.floor(c)}px`).join(" "),a=new IntersectionObserver(()=>{++o>1&&Ie(e)},{root:U,threshold:1,rootMargin:d});a.observe(e),je.set(e,a)}function Ie(e,n=!0){clearTimeout(ge.get(e));let r=ut(e),o=n?He(r)?500:r.duration:0;ge.set(e,setTimeout(async()=>{let i=K.get(e);try{await i?.finished,V.set(e,ke(e)),Wt(e)}catch{}},o))}function _r(){clearTimeout(ge.get(U)),ge.set(U,setTimeout(()=>{Tt.forEach(e=>ct(e,n=>Yn(()=>Ie(n))))},100))}function Kr(e){setTimeout(()=>{Ye.set(e,setInterval(()=>Yn(Ie.bind(null,e)),2e3))},Math.round(2e3*Math.random()))}function Yn(e){typeof requestIdleCallback=="function"?requestIdleCallback(()=>e()):requestAnimationFrame(()=>e())}var ie,jn=typeof window<"u"&&"ResizeObserver"in window;jn&&(U=document.documentElement,new MutationObserver(Mn),ie=new ResizeObserver(Jr),window.addEventListener("scroll",()=>{Nt=window.scrollY,Et=window.scrollX}),ie.observe(U));function Qr(e){return e.reduce((o,i)=>[...o,...Array.from(i.addedNodes),...Array.from(i.removedNodes)],[]).every(o=>o.nodeName==="#comment")?!1:e.reduce((o,i)=>{if(o===!1)return!1;if(i.target instanceof Element){if(Gt(i.target),!o.has(i.target)){o.add(i.target);for(let s=0;sr(e,xe.has(e)));for(let r=0;ri(o,xe.has(o)))}}function Bt(e){return Array.isArray(e)?e:[e]}function He(e){return typeof e=="function"}function eo(e){let n=V.get(e),r=ke(e);if(!kt(e))return V.set(e,r);if(Ln(e)){V.set(e,r),Wt(e);return}let o;if(!n)return;let i=ut(e);if(typeof i!="function"){let s=n.left-r.left,l=n.top-r.top,t=n.left+n.width-(r.left+r.width);n.top+n.height-(r.top+r.height)==0&&(l=0),t==0&&(s=0);let[a,c,u,f]=Zn(e,n,r),g={transform:`translate(${s}px, ${l}px)`},y={transform:"translate(0, 0)"};a!==c&&(g.width=`${a}px`,y.width=`${c}px`),u!==f&&(g.height=`${u}px`,y.height=`${f}px`),o=e.animate([g,y],{duration:i.duration,easing:i.easing})}else{let[s]=Bt(i(e,"remain",n,r));o=new Animation(s),o.play()}K.set(e,o),V.set(e,r),o.addEventListener("finish",Ie.bind(null,e,!1),{once:!0})}function Xn(e){dt in e&&delete e[dt];let n=ke(e);V.set(e,n);let r=ut(e);if(!kt(e))return;if(Ln(e)){Wt(e);return}let o;if(typeof r!="function")o=e.animate([{transform:"scale(.98)",opacity:0},{transform:"scale(0.98)",opacity:0,offset:.5},{transform:"scale(1)",opacity:1}],{duration:r.duration*1.5,easing:"ease-in"});else{let[i]=Bt(r(e,"add",n));o=new Animation(i),o.play()}K.set(e,o),o.addEventListener("finish",Ie.bind(null,e,!1),{once:!0})}function Pn(e,n){var r;e.remove(),V.delete(e),we.delete(e),K.delete(e),(r=je.get(e))===null||r===void 0||r.disconnect(),setTimeout(()=>{if(Ze in e&&delete e[Ze],Object.defineProperty(e,dt,{value:!0,configurable:!0}),n&&e instanceof HTMLElement)for(let o in n)e.style[o]=""},0)}function to(e){var n;if(!we.has(e)||!V.has(e))return;let[r,o]=we.get(e);Object.defineProperty(e,Ze,{value:!0,configurable:!0});let i=window.scrollX,s=window.scrollY;if(o&&o.parentNode&&o.parentNode instanceof Element?o.parentNode.insertBefore(e,o):r&&r.parentNode?r.parentNode.appendChild(e):(n=Hn(e))===null||n===void 0||n.appendChild(e),!kt(e))return Pn(e);let[l,t,d,a]=ro(e),c=ut(e),u=V.get(e);(i!==Et||s!==Nt)&&no(e,i,s,c);let f,g={position:"absolute",top:`${l}px`,left:`${t}px`,width:`${d}px`,height:`${a}px`,margin:"0",pointerEvents:"none",transformOrigin:"center",zIndex:"100"};if(!He(c))Object.assign(e.style,g),f=e.animate([{transform:"scale(1)",opacity:1},{transform:"scale(.98)",opacity:0}],{duration:c.duration,easing:"ease-out"});else{let[y,v]=Bt(c(e,"remove",u));v?.styleReset!==!1&&(g=v?.styleReset||g,Object.assign(e.style,g)),f=new Animation(y),f.play()}K.set(e,f),f.addEventListener("finish",()=>Pn(e,g),{once:!0})}function no(e,n,r,o){let i=Et-n,s=Nt-r,l=document.documentElement.style.scrollBehavior;if(getComputedStyle(U).scrollBehavior==="smooth"&&(document.documentElement.style.scrollBehavior="auto"),window.scrollTo(window.scrollX+i,window.scrollY+s),!e.parentElement)return;let d=e.parentElement,a=d.clientHeight,c=d.clientWidth,u=performance.now();function f(){requestAnimationFrame(()=>{if(!He(o)){let g=a-d.clientHeight,y=c-d.clientWidth;u+o.duration>performance.now()?(window.scrollTo({left:window.scrollX-y,top:window.scrollY-g}),a=d.clientHeight,c=d.clientWidth,f()):document.documentElement.style.scrollBehavior=l}})}f()}function ro(e){var n;let r=V.get(e),[o,,i]=Zn(e,r,ke(e)),s=e.parentElement;for(;s&&(getComputedStyle(s).position==="static"||s instanceof HTMLBodyElement);)s=s.parentElement;s||(s=document.body);let l=getComputedStyle(s),t=!K.has(e)||((n=K.get(e))===null||n===void 0?void 0:n.playState)==="finished"?ke(s):V.get(s),d=Math.round(r.top-t.top)-te(l.borderTopWidth),a=Math.round(r.left-t.left)-te(l.borderLeftWidth);return[d,a,o,i]}function Fn(e,n={}){if(jn&&ie&&!(window.matchMedia("(prefers-reduced-motion: reduce)").matches&&!He(n)&&!n.disrespectUserMotionPreference)){We.add(e),getComputedStyle(e).position==="static"&&Object.assign(e.style,{position:"relative"}),ct(e,Ie,Kr,l=>ie?.observe(l)),He(n)?xe.set(e,n):xe.set(e,{duration:250,easing:"ease-in-out",...n});let s=new MutationObserver(Mn);s.observe(e,{childList:!0}),St.set(e,s),Tt.add(e)}return Object.freeze({parent:e,enable:()=>{We.add(e)},disable:()=>{We.delete(e),ct(e,o=>{let i=K.get(o);try{i?.cancel()}catch{}K.delete(o);let s=ge.get(o);s&&clearTimeout(s),ge.delete(o);let l=Ye.get(o);l&&clearInterval(l),Ye.delete(o)})},isEnabled:()=>We.has(e),destroy:()=>{We.delete(e),Tt.delete(e),xe.delete(e);let o=St.get(e);o?.disconnect(),St.delete(e),ct(e,i=>{ie?.unobserve(i);let s=K.get(i);try{s?.cancel()}catch{}K.delete(i);let l=je.get(i);l?.disconnect(),je.delete(i);let t=Ye.get(i);t&&clearInterval(t),Ye.delete(i);let d=ge.get(i);d&&clearTimeout(d),ge.delete(i),V.delete(i),we.delete(i)})}})}function Rt(e){let[n,r]=(0,se.useState)(),o=(0,se.useMemo)(()=>e,[]),i=(0,se.useCallback)(l=>{l instanceof HTMLElement?r(Fn(l,o)):r(void 0)},[o]),s=(0,se.useCallback)(l=>{n&&(l?n.enable():n.disable())},[n]);return(0,se.useEffect)(()=>()=>{var l;(l=n?.destroy)===null||l===void 0||l.call(n)},[n]),[i,s]}var zn=Y(xt());function oo(e,n,r){let o=n<0?e.length+n:n;if(o>=0&&oQ.default.createElement("span",{type:"button",className:Z.move},Q.default.createElement(zn.Icon,{icon:"sort"}))),Un={disrespectUserMotionPreferences:!0},io=Dn(({value:e})=>Q.default.createElement("div",null,e)),ao=Bn(({children:e,automaticSorting:n,manualSort:r})=>{let[o,i]=Rt(Un);return(0,Q.useEffect)(()=>{document.body.style.cursor=r?"grabbing":null,i(!1);let s=setTimeout(()=>{i(!r)},500);return()=>clearTimeout(s)},[r]),Q.default.createElement("div",{className:r&&Z.noSelect,ref:n?o:null},e)});function Xt({onChange:e,value:n,element:r,items:o,enable:i,automaticSorting:s,KEY_PROPERTY:l}){if(!i){let[c]=Rt(Un);return Q.default.createElement("div",{ref:s?c:null},o.map((u,f)=>Q.default.createElement("div",{key:u[l]},r(f))))}let[t,d]=(0,Q.useState)(!1);function a({oldIndex:c,newIndex:u}){e(Vn(n,c,u)),d(!1)}return Q.default.createElement(ao,{onSortStart:()=>d(!0),manualSort:t,onSortEnd:a,automaticSorting:s,useDragHandle:!0,axis:"y",lockAxis:"y"},o.map((c,u)=>Q.default.createElement(io,{key:c[l],index:u,value:r(u)})))}Xt.propTypes={items:ft.default.array.isRequired,onSortEndAction:ft.default.func.isRequired,element:ft.default.func.isRequired};var Jn=Y(ne()),H=Y(De()),_n=Y($e()),so=window["@Neos:HostPluginAPI"]["@NeosProjectPackages"]().NeosUiEditors.EditorEnvelope;function Kn({commit:e,editorId:n,editorOptions:r,id:o,...i}){function s(l,t){let{property:d,hooksRegistry:a}=i;if(t){Object.keys(t).map(c=>{a.get(c)(l,t[c]).then(f=>{let g=(({__type:y,...v})=>v)(f);e(o,d,g)})});return}e(o,d,l)}return Jn.default.createElement(so,{...i,commit:s,options:r||{},id:`${n}-${o}`})}Kn.propTypes={identifier:H.default.string.isRequired,label:H.default.string.isRequired,options:H.default.object,value:H.default.any,renderSecondaryInspector:H.default.func,editor:H.default.string.isRequired,editorRegistry:H.default.object.isRequired,i18nRegistry:H.default.object.isRequired,validationErrors:H.default.array,onEnterKey:H.default.func,helpMessage:H.default.string,helpThumbnail:H.default.string,highlight:H.default.bool,property:H.default.string.isRequired,id:H.default.number.isRequired,commit:H.default.func.isRequired};var lo=(0,_n.neos)(e=>({hooksRegistry:e.get("inspector").get("saveHooks")})),Qn=lo(Kn);var $=Y(ne());var Pt=null;function Mt({text:e,image:n}){let[r,o]=(0,$.useState)(),[i,s]=(0,$.useState)({}),[l,t]=(0,$.useState)({});(0,$.useEffect)(()=>{if(!n)return;if(typeof n=="string"){o(n);return}if(!n?.__identity)return;(async()=>{Pt||(Pt=await Xe.get().endpoints.loadImageMetadata);let c=await Pt(n?.__identity);if(c?.previewImageResourceUri){let u=c?.object?.adjustments?.["Neos\\Media\\Domain\\Model\\Adjustment\\CropImageAdjustment"]||null,{thumbnail:f,cropArea:g}=uo(c?.previewDimensions,c?.originalDimensions,u);s(f),t(g),o(c.previewImageResourceUri)}})()},[n]);let d=co(e||"");return r?$.default.createElement("div",{className:Z.preview},$.default.createElement("figure",{style:l},$.default.createElement("img",{src:r,style:i,title:d}))):d?$.default.createElement("span",{className:Z.label},d):null}function co(e){let n=document.createElement("div");return n.innerHTML=e,n.textContent||n.innerText||""}function uo(e,n,r){let o={height:40,width:129},i=(()=>{if(!r?.height)return null;let c=n.height/e.height;return{height:r.height/c,width:r?.width/c,x:r?.x/c,y:r?.y/c}})(),s=(()=>{let c=o.height/(i?.height||e.height),u=o.width/(i?.width||e.width);return Math.min(c,u)})(),l={width:e.width*s,height:e.height*s},t={width:(i?.width||e.width)*s,height:(i?.height||e.height)*s},d=i?.x||0,a=i?.y||0;return{thumbnail:{width:`${l.width}px`,height:`${l.height}px`,left:`-${d*s}px`,top:`-${a*s}px`},cropArea:{width:`${t.width}px`,height:`${t.height}px`}}}function $n(e,n,r){return e=po(e),Lt(r,n,e)}var Ce=e=>JSON.parse(JSON.stringify(e)),Yt=(e,n)=>JSON.stringify(e)==JSON.stringify(n);function pt(e){return typeof e=="number"?!0:typeof e!="string"?!1:!isNaN(e)&&!isNaN(parseFloat(e))}function gt(e){return e?typeof e=="string"?e.includes("ClientEval:"):Array.isArray(e)?e.some(n=>gt(n)):qn(e)?gt(Object.values(e)):!1:!1}function Be(e,n,r,o,i){return typeof e=="string"?fo(e,n,r,o,i):Array.isArray(e)?e.map(s=>Be(s,n,r,o,i)):qn(e)?Object.fromEntries(Object.entries(e).map(([s,l])=>[s,Be(l,n,r,o,i)])):e}function fo(e,n,r,o,i){if(typeof e=="string"&&e.startsWith("ItemEval:"))try{return new Function("item,node,parentNode,documentNode","return "+e.replace("ItemEval:",""))(n,r,o,i)}catch(s){return console.warn('An error occurred while trying to evaluate "'+e+`" +`,s),e}return e}function qn(e){return e!=null&&(e.constructor===Object||!e.constructor&&typeof e=="object")}function er(e,n){let r=Ce(e);return!Array.isArray(r)||!r.length||!Array.isArray(n)||!n.length?r:r.sort((o,i)=>n.reduce((s,l)=>{if(s!==0)return s;let{property:t,order:d="asc"}=l,a=o[t],c=i[t],u=0;return pt(a)&&pt(c)?a>c?u=1:a{let r=parseInt(n);return!isNaN(r)&&String(r)===n?r:n})}function Lt(e,n,r){if(r.length===0)return n;if(typeof e>"u"&&(typeof r[0]=="number"?e=[]:e={}),Array.isArray(e)){typeof r[0]=="number"&&e.length({contextNodePath:e.focusedNodePath,dataSourceIdentifier:e.options.dataSourceIdentifier,dataSourceUri:e.options.dataSourceUri,dataSourceAdditionalData:e.options.dataSourceAdditionalData,dataSourceDisableCaching:!!e.options.dataSourceDisableCaching});function rr({commit:e,dataSourcesDataLoader:n,editorRegistry:r,i18nRegistry:o,id:i,validatorRegistry:s,value:l,renderHelpIcon:t,identifier:d,...a}){let{dataSourceIdentifier:c,dataSourceUri:u,dataSourceAdditionalData:f}=a.options,g=!!(c||u),y=o.translate(a.label),[v,X]=(0,G.useState)(!0),[b,T]=(0,G.useState)({}),[I,C]=(0,G.useState)(!0),[A,L]=(0,G.useState)(!0),[p,N]=(0,G.useState)([]),[x,P]=(0,G.useState)(g?null:a.options),[D,J]=(0,G.useState)({}),[F,ce]=(0,G.useState)({}),[he,Ue]=(0,G.useState)({}),Je=()=>JSON.stringify(p),[ht,mt]=(0,G.useState)([]);(0,G.useEffect)(()=>{X(!0),Xe.get().endpoints.dataSource("get-property-types",null,{}).then(m=>{T(m),X(!1)})},[]),(0,G.useEffect)(()=>{let m=Je();if(!(ht===m||!x)&&(mt(m),sr(p),lr(p),x.sortBy)){let h=setTimeout(()=>{let O=er(p,x.sortBy);Re(O)},2e3);return()=>clearTimeout(h)}},[p]),(0,G.useEffect)(()=>{if(!x||gt(x))return;let m=ir();J(m),ar(m)},[x,b]);let bt=()=>JSON.stringify({dataSourceIdentifier:c,dataSourceUri:u,dataSourceAdditionalData:f}),[yt,me]=(0,G.useState)(null);(0,G.useEffect)(()=>{if(!g)return;let m=bt();yt!==m&&(X(!0),me(m),n.resolveValue(go(a),p).then(h=>{P(Fe(a.options,h)),X(!1)}))},[c,u,f]),(0,G.useEffect)(()=>{if(!x?.properties||!p?.length)return;let m=Object.entries(x.properties).filter(([,O])=>O?.type==="reference").map(([O])=>O);if(m.length===0)return;let h=new Set;p.forEach(O=>{m.forEach(k=>{let B=O[k];typeof B=="string"&&B&&h.add(B)})}),h.size!==0&&Xe.get().endpoints.dataSource("resolve-references",null,{identifiers:Array.from(h)}).then(O=>{O&&typeof O=="object"&&Ue(O)}).catch(O=>{console.warn("Failed to resolve references for preview:",O)})},[p,x?.properties]);function ir(){let m={},h=x.properties;if(h){let O=[];for(let k in h){let B=h[k];O.push({key:k,position:B?.position??null,item:B})}vt(O).forEach(({key:k,item:B})=>{let W=B&&B.defaultValue;m[k]=_e(W,"")})}return m}function ar(m){let h=l?Ce(l):[];h=h.map(W=>W[Ve]?W:{...W,[Ve]:$t()});let{min:O,max:k}=x;if(O&&h.lengthk&&(h=h.slice(0,k)),h.length)for(let W=0;Wbe==Ve||be in m).reduce((be,de)=>{let Qe=_?.[de]?.defaultValue!=null?_[de].defaultValue:M[de];return pt(Qe)&&(Qe=parseFloat(Qe)),{...be,[de]:Qe}},{});h[W]=q}N(h)}function Re(m){if(Yt(m,p))return;let h=Ce(m).map(O=>(delete O[Ve],O));Yt(h,l)||e(h),N(m)}function sr(m){x&&x.max&&C(x.max>m.length)}function lr(m){x&&x.min&&L(x.minm!==k);Re(h)}function dr(m,h){ce({...F,[m]:!h})}function ur(m,h,O){Re($n(h,O,p))}function fr(m,h,O,k){if(!h||!h.validation)return;let B=h.validation,_=Object.keys(B).map(M=>{let Ae=B[M];return pr(m,M,Ae)}).filter(M=>M);if(x.controls&&x.controls.add){let M=x?.max?x.max>p.length:!0;C(M&&_.length<=0)}return _}function pr(m,h,O){let k=s.get(h);if(k)return k(m,O);console.warn(`Validator ${h} not found`)}function gr(m){let h=!!x.predefinedProperties&&x.predefinedProperties[m],{controls:O,sortBy:k,properties:B,allowRemovePredefinedProperties:W}=x,_=O.remove&&A?!h||W:!1,M=!h&&O.move&&p.length>1,Ae=_&&M,q=_||M;if(Object.keys(B).length===1)return G.default.createElement("div",{className:en(Z.simpleWrapper,Ae?Z.simpleWrapperTwoButtons:q&&Z.simpleWrapperOneButton)},Zt(m),q&&G.default.createElement("div",{class:Z.simpleButtons},_&&G.default.createElement(le.IconButton,{onClick:()=>jt(m),className:Z.delete,icon:"trash"}),M&&G.default.createElement(Dt,null)));let de=!!O.collapse,Ke=de?typeof F[m]=="boolean"?F[m]:!!x?.collapsed:!1;return G.default.createElement("div",{className:Z.wrapper},!!(q||de)&&G.default.createElement("div",{class:Z.buttons},hr(m),M&&G.default.createElement(Dt,null),de&&G.default.createElement(le.IconButton,{onClick:()=>dr(m,Ke),icon:Ke?"chevron-down":"chevron-up"}),_&&G.default.createElement(le.IconButton,{onClick:()=>jt(m),className:Z.delete,icon:"trash"})),!Ke&&Zt(m))}function Zt(m){let{predefinedProperties:h}=x,O=h&&h[m]?h[m].label:null,k=[];return Object.keys(D).map(B=>{k.push(mr(B,m))}),k=k.filter(Boolean),k.length===0?null:G.default.createElement("div",{className:Z.group},O&&G.default.createElement("span",{dangerouslySetInnerHTML:{__html:O}}),k)}function Ht(m){return m!=null}function _e(m,h=""){return Ht(m)?m:h}function hr(m){let h=x?.preview?.text,O=x?.preview?.image;if(!h&&!O)return null;let k={...p[m]};for(let[B,W]of Object.entries(k))typeof W=="string"&&he[W]&&(k[B]=he[W]);return h&&(h=Be(h,k,a.node,a.parentNode,a.documentNode)),O&&(O=Be(O,k,a.node,a.parentNode,a.documentNode)),G.default.createElement(Mt,{text:o.translate(h),image:O})}function mr(m,h){let O=Ce(p),{properties:k,predefinedProperties:B}=x,W=Be(k[m],O[h],a.node,a.parentNode,a.documentNode);B&&B[h]&&B[h].properties&&B[h].properties[m]&&(W=Fe(W,B[h].properties[m]));let _=W.type?b[W.type]:{};_&&(W=Fe(_,W));let M=_e(W.editorOptions,{}),Ae=_e(W.editor,"Neos.Neos/Inspector/Editors/TextFieldEditor"),q=_e(O[h][m]);!q&&Ht(W.defaultValue)&&(q=W.defaultValue),(M.hasOwnProperty("dataSourceUri")||M.hasOwnProperty("dataSourceIdentifier"))&&(M={...M},M.dataSourceAdditionalData?(M.dataSourceAdditionalData.hasOwnProperty("repeatableIndex")&&(M.dataSourceAdditionalData.repeatableIndex=h),M.dataSourceAdditionalData.hasOwnProperty("repeatableValue")&&(M.dataSourceAdditionalData.repeatableValue=p)):M.dataSourceAdditionalData={});let be=Object.keys(k).length<=1;return G.default.createElement("div",{className:!be&&Z.property,hidden:W.hidden},G.default.createElement(Qn,{identifier:`${d}-repeatable-${h}-${m}`,options:M,value:q,renderSecondaryInspector:a.renderSecondaryInspector,editor:Ae,editorRegistry:r,i18nRegistry:o,validationErrors:fr(q,W,h,m),highlight:!1,property:`${h}.${m}`,id:`repeatable-${h}-${m}`,editorId:i,commit:ur,...W}))}if(v||!x)return G.default.createElement(G.default.Fragment,null,!!y&&G.default.createElement(le.Label,{htmlFor:i},y," ",t()),G.default.createElement(cn,{id:i,isLoading:v,heightMultiplier:2}));if(x.hidden)return null;let{buttonAddLabel:br="Mireo.RepeatableFields:Main:addRow"}=x;return G.default.createElement(G.default.Fragment,null,!!y&&G.default.createElement(le.Label,{htmlFor:i},y," ",t()),G.default.createElement(Xt,{element:gr,items:p,onChange:Re,enable:x.controls?.move,automaticSorting:x.sortBy,value:p,KEY_PROPERTY:Ve}),x.controls.add&&I&&G.default.createElement(G.default.Fragment,null,G.default.createElement(le.Button,{onClick:cr,id:i},o.translate(br)),!!y||t()))}rr.propTypes={identifier:S.default.string.isRequired,label:S.default.string.isRequired,value:S.default.arrayOf(S.default.object),renderSecondaryInspector:S.default.func,editor:S.default.string.isRequired,editorRegistry:S.default.object.isRequired,i18nRegistry:S.default.object.isRequired,validationErrors:S.default.array,onEnterKey:S.default.func,helpMessage:S.default.string,helpThumbnail:S.default.string,highlight:S.default.bool,commit:S.default.func.isRequired,options:S.default.shape({hidden:S.default.bool,buttonAddLabel:S.default.string,dataSourceIdentifier:S.default.string,dataSourceUri:S.default.string,dataSourceDisableCaching:S.default.bool,dataSourceAdditionalData:S.default.objectOf(S.default.any),predefinedProperties:S.default.arrayOf(S.default.shape({label:S.default.string,value:S.default.object})),max:S.default.number,min:S.default.number,collapsed:S.default.bool,label:S.default.shape({label:S.default.string,image:S.default.string}),controls:S.default.shape({move:S.default.bool,remove:S.default.bool,add:S.default.bool,collapse:S.default.bool}),sortBy:S.default.arrayOf(S.default.shape({property:S.default.string,direction:S.default.oneOf(["asc","desc"])}))}).isRequired,dataSourcesDataLoader:S.default.shape({resolveValue:S.default.func.isRequired}).isRequired,focusedNodePath:S.default.string.isRequired};var ho=(0,nr.neos)(e=>({editorRegistry:e.get("inspector").get("editors"),i18nRegistry:e.get("i18n"),dataSourcesDataLoader:e.get("dataLoaders").get("DataSources")})),mo=(0,tr.connect)(e=>({focusedNodePath:ze.selectors.CR.Nodes.focusedNodePathSelector(e),node:ze.selectors.CR.Nodes.focusedSelector(e),parentNode:ze.selectors.CR.Nodes.focusedParentSelector(e),documentNode:ze.selectors.CR.Nodes.documentNodeSelector(e)})),or=ho(mo(rr));zt("Mireo.RepeatableFields:RepeatableField",{},e=>{e.get("inspector").get("editors").set("Mireo.RepeatableFields/Inspector/Editors/RepeatableFieldEditor",{component:or,hasOwnLabel:!0})});})(); //# sourceMappingURL=Plugin.js.map diff --git a/Resources/Public/Plugin.js.map b/Resources/Public/Plugin.js.map index 42ac132..6fc801f 100644 --- a/Resources/Public/Plugin.js.map +++ b/Resources/Public/Plugin.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../../node_modules/.pnpm/@neos-project+neos-ui-extensibility@8.4.0/node_modules/@neos-project/neos-ui-extensibility/src/readFromConsumerApi.ts", "../../node_modules/.pnpm/@neos-project+neos-ui-extensibility@8.4.0/node_modules/@neos-project/neos-ui-extensibility/src/shims/vendor/react/index.js", "../../node_modules/.pnpm/@neos-project+neos-ui-extensibility@8.4.0/node_modules/@neos-project/neos-ui-extensibility/src/shims/vendor/react-redux/index.js", "../../node_modules/.pnpm/@neos-project+neos-ui-extensibility@8.4.0/node_modules/@neos-project/neos-ui-extensibility/src/shims/vendor/prop-types/index.js", "../../node_modules/.pnpm/@neos-project+neos-ui-extensibility@8.4.0/node_modules/@neos-project/neos-ui-extensibility/src/shims/neosProjectPackages/neos-ui-redux-store/index.js", "../../node_modules/.pnpm/@neos-project+neos-ui-extensibility@8.4.0/node_modules/@neos-project/neos-ui-extensibility/src/shims/neosProjectPackages/neos-ui-decorators/index.js", "../../node_modules/.pnpm/@neos-project+neos-ui-extensibility@8.4.0/node_modules/@neos-project/neos-ui-extensibility/src/shims/neosProjectPackages/react-ui-components/index.js", "../../node_modules/.pnpm/@neos-project+neos-ui-extensibility@8.4.0/node_modules/@neos-project/neos-ui-extensibility/src/shims/vendor/react-dom/index.js", "../../node_modules/.pnpm/invariant@2.2.4/node_modules/invariant/browser.js", "../../node_modules/.pnpm/@neos-project+neos-ui-extensibility@8.4.0/node_modules/@neos-project/neos-ui-extensibility/src/index.ts", "../../node_modules/.pnpm/@neos-project+positional-array-sorter@8.4.0/node_modules/@neos-project/positional-array-sorter/src/positionalArraySorter.ts", "../Private/Editor/Repeatable/index.jsx", "../../node_modules/.pnpm/nanoid@5.1.6/node_modules/nanoid/url-alphabet/index.js", "../../node_modules/.pnpm/nanoid@5.1.6/node_modules/nanoid/index.browser.js", "../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs", "../../node_modules/.pnpm/@neos-project+neos-ui-extensibility@8.4.0/node_modules/@neos-project/neos-ui-extensibility/src/shims/neosProjectPackages/neos-ui-backend-connector/index.js", "../../node_modules/.pnpm/carbon-neos-loadinganimation@1.2.0_@neos-project+neos-ui-extensibility@8.4.0/node_modules/carbon-neos-loadinganimation/src/LoadingWithStyles.jsx", "../../node_modules/.pnpm/carbon-neos-loadinganimation@1.2.0_@neos-project+neos-ui-extensibility@8.4.0/node_modules/carbon-neos-loadinganimation/src/Elements.jsx", "../Private/Editor/Repeatable/Sortable.jsx", "../../node_modules/.pnpm/@babel+runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/extends.js", "../../node_modules/.pnpm/@babel+runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js", "../../node_modules/.pnpm/@babel+runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js", "../../node_modules/.pnpm/@babel+runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js", "../../node_modules/.pnpm/@babel+runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js", "../../node_modules/.pnpm/@babel+runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js", "../../node_modules/.pnpm/@babel+runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/slicedToArray.js", "../../node_modules/.pnpm/@babel+runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/typeof.js", "../../node_modules/.pnpm/@babel+runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/toPrimitive.js", "../../node_modules/.pnpm/@babel+runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js", "../../node_modules/.pnpm/@babel+runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/defineProperty.js", "../../node_modules/.pnpm/@babel+runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/objectSpread.js", "../../node_modules/.pnpm/@babel+runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/classCallCheck.js", "../../node_modules/.pnpm/@babel+runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/createClass.js", "../../node_modules/.pnpm/@babel+runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js", "../../node_modules/.pnpm/@babel+runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js", "../../node_modules/.pnpm/@babel+runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js", "../../node_modules/.pnpm/@babel+runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js", "../../node_modules/.pnpm/@babel+runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/inherits.js", "../../node_modules/.pnpm/react-sortable-hoc@2.0.0_prop-types@15.8.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/react-sortable-hoc/dist/react-sortable-hoc.esm.js", "../../node_modules/.pnpm/@babel+runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js", "../../node_modules/.pnpm/@babel+runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/iterableToArray.js", "../../node_modules/.pnpm/@babel+runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js", "../../node_modules/.pnpm/@babel+runtime@7.28.6/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js", "../../node_modules/.pnpm/@formkit+auto-animate@0.9.0/node_modules/@formkit/auto-animate/react/index.mjs", "../../node_modules/.pnpm/@formkit+auto-animate@0.9.0/node_modules/@formkit/auto-animate/index.mjs", "../../node_modules/.pnpm/array-move@4.0.0/node_modules/array-move/index.js", "../Private/Editor/Repeatable/style.module.css", "../Private/Editor/Repeatable/Envelope.jsx", "../Private/Editor/Repeatable/Preview.jsx", "../Private/Editor/Repeatable/helper.js", "../Private/Editor/manifest.js"], - "sourcesContent": [null, null, null, null, null, null, null, null, "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n", null, null, "import React, { useState, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport { nanoid } from \"nanoid\";\nimport clsx from \"clsx\";\nimport { selectors } from \"@neos-project/neos-ui-redux-store\";\nimport { neos } from \"@neos-project/neos-ui-decorators\";\nimport { IconButton, Button, Label } from \"@neos-project/react-ui-components\";\nimport backend from \"@neos-project/neos-ui-backend-connector\";\nimport positionalArraySorter from \"@neos-project/positional-array-sorter\";\nimport Loading from \"carbon-neos-loadinganimation/LoadingWithStyles\";\nimport { Sortable, DragHandle } from \"./Sortable\";\nimport Envelope from \"./Envelope\";\nimport Preview from \"./Preview\";\nimport {\n deepMerge,\n set,\n isNumeric,\n dynamicSort,\n clone,\n isSame,\n ClientEvalIsNotFinished,\n ItemEvalRecursive,\n} from \"./helper\";\nimport style from \"./style.module.css\";\n\nconst KEY_PROPERTY = \"_UUID_\";\n\nconst getDataLoaderOptionsForProps = (props) => ({\n contextNodePath: props.focusedNodePath,\n dataSourceIdentifier: props.options.dataSourceIdentifier,\n dataSourceUri: props.options.dataSourceUri,\n dataSourceAdditionalData: props.options.dataSourceAdditionalData,\n dataSourceDisableCaching: Boolean(props.options.dataSourceDisableCaching),\n});\n\nfunction Repeatable({\n commit,\n dataSourcesDataLoader,\n editorRegistry,\n i18nRegistry,\n id,\n validatorRegistry,\n value,\n renderHelpIcon,\n identifier,\n ...props\n}) {\n const { dataSourceIdentifier, dataSourceUri, dataSourceAdditionalData } = props.options;\n const hasDataSource = !!(dataSourceIdentifier || dataSourceUri);\n\n const label = i18nRegistry.translate(props.label);\n const [isLoading, setLoading] = useState(true);\n const [dataTypes, setDataTypes] = useState({});\n const [allowAdd, setAllowAdd] = useState(true);\n const [allowRemove, setAllowRemove] = useState(true);\n const [currentValue, setCurrentValue] = useState([]);\n const [options, setOptions] = useState(hasDataSource ? null : props.options);\n const [emptyGroup, setEmptyGroup] = useState({});\n const [collapsed, setCollapsed] = useState({});\n\n // We use this hack to prevent the editor from re-rendering all the time, even if the options are the same.\n const returnCurrentValueAsJSON = () => JSON.stringify(currentValue);\n const [currentValueAsJSON, setCurrentValueAsJSON] = useState([]);\n\n useEffect(() => {\n setLoading(true);\n backend\n .get()\n .endpoints.dataSource(\"get-property-types\", null, {})\n .then((json) => {\n setDataTypes(json);\n setLoading(false);\n });\n }, []);\n\n useEffect(() => {\n const dataAsJSON = returnCurrentValueAsJSON();\n if (currentValueAsJSON === dataAsJSON || !options) {\n return;\n }\n setCurrentValueAsJSON(dataAsJSON);\n testIfAdd(currentValue);\n testIfRemove(currentValue);\n if (options.sortBy) {\n const timeout = setTimeout(() => {\n const sorted = dynamicSort(currentValue, options.sortBy);\n handleValueChange(sorted);\n }, 2000);\n return () => clearTimeout(timeout);\n }\n }, [currentValue]);\n\n useEffect(() => {\n if (!options || ClientEvalIsNotFinished(options)) {\n return;\n }\n const group = getEmptyGroup();\n setEmptyGroup(group);\n initialValue(group);\n }, [options, dataTypes]);\n\n // We use this hack to prevent the editor from re-rendering all the time, even if the options are the same.\n const returnDataSourceOptionsAsJSON = () =>\n JSON.stringify({ dataSourceIdentifier, dataSourceUri, dataSourceAdditionalData });\n const [dataSourceOptionsAsJSON, setDataSourceOptionsAsJSON] = useState(null);\n useEffect(() => {\n if (!hasDataSource) {\n return;\n }\n const dataAsJSON = returnDataSourceOptionsAsJSON();\n if (dataSourceOptionsAsJSON === dataAsJSON) {\n return;\n }\n setLoading(true);\n setDataSourceOptionsAsJSON(dataAsJSON);\n\n dataSourcesDataLoader.resolveValue(getDataLoaderOptionsForProps(props), currentValue).then((values) => {\n setOptions(deepMerge(props.options, values));\n setLoading(false);\n });\n }, [dataSourceIdentifier, dataSourceUri, dataSourceAdditionalData]);\n\n function getEmptyGroup() {\n let group = {};\n const properties = options.properties;\n if (properties) {\n // Create array to enable sorting\n const array = [];\n for (const key in properties) {\n const item = properties[key];\n array.push({ key, position: item?.position ?? null, item });\n }\n positionalArraySorter(array).forEach(({ key, item }) => {\n const defaultValue = item && item.defaultValue;\n group[key] = returnValueIfSet(defaultValue, \"\");\n });\n }\n return group;\n }\n\n function initialValue(group) {\n let newValue = value ? clone(value) : [];\n // add an fixed index to the value\n newValue = newValue.map((item) => {\n if (item[KEY_PROPERTY]) {\n return item;\n }\n return {\n ...item,\n [KEY_PROPERTY]: nanoid(),\n };\n });\n const { min, max } = options;\n\n if (min) {\n if (newValue.length < min) {\n for (var i = 0; i < min; ++i) {\n if (newValue[i]) {\n newValue[i] = value[i];\n } else {\n newValue[i] = group;\n }\n }\n }\n }\n if (max && newValue.length > max) {\n newValue = newValue.slice(0, max);\n }\n\n if (newValue.length) {\n for (let key = 0; key < newValue.length; key++) {\n const predefined = options.predefinedProperties?.[key]?.properties;\n const currentEntry = clone(newValue[key]);\n const availableKeys = Object.keys(currentEntry).filter((key) => key == KEY_PROPERTY || key in group);\n const cleanedUpEntry = availableKeys.reduce((cur, keyname) => {\n const isPredefined = predefined?.[keyname]?.defaultValue != undefined;\n let value = isPredefined ? predefined[keyname].defaultValue : currentEntry[keyname];\n if (isNumeric(value)) {\n value = parseFloat(value);\n }\n\n return {\n ...cur,\n [keyname]: value,\n };\n }, {});\n newValue[key] = cleanedUpEntry;\n }\n }\n setCurrentValue(newValue);\n }\n\n function handleValueChange(inputValue) {\n // Nothing changed, do nothing\n if (isSame(inputValue, currentValue)) {\n return;\n }\n\n // Remove the KEY_PROPERTY from the inputValue\n const commitValue = clone(inputValue).map((item) => {\n delete item[KEY_PROPERTY];\n return item;\n });\n\n // If the value is the same as the commitValue, don't commit\n if (!isSame(commitValue, value)) {\n commit(commitValue);\n }\n setCurrentValue(inputValue);\n }\n\n function testIfAdd(value) {\n if (options && options.max) {\n setAllowAdd(options.max > value.length);\n }\n }\n\n function testIfRemove(value) {\n if (options && options.min) {\n setAllowRemove(options.min < value.length);\n }\n }\n\n function handleAdd() {\n setCollapsed({\n ...collapsed,\n [currentValue.length]: false,\n });\n handleValueChange([...currentValue, emptyGroup]);\n }\n\n function handleRemove(idx) {\n const value = currentValue.filter((s, sidx) => idx !== sidx);\n handleValueChange(value);\n }\n\n function handleCollapse(idx, currentValue) {\n setCollapsed({\n ...collapsed,\n [idx]: !currentValue,\n });\n }\n\n function commitChange(idx, property, event) {\n handleValueChange(set(property, event, currentValue));\n }\n\n function validateElement(elementValue, elementConfiguration, idx, identifier) {\n if (!elementConfiguration || !elementConfiguration.validation) {\n return;\n }\n const validators = elementConfiguration.validation;\n const validationResults = Object.keys(validators).map((validatorName) => {\n const validatorConfiguration = validators[validatorName];\n return checkValidator(elementValue, validatorName, validatorConfiguration);\n });\n const validationResultsArray = validationResults.filter((result) => result);\n if (options.controls && options.controls.add) {\n const allowed = options?.max ? options.max > currentValue.length : true;\n setAllowAdd(allowed && validationResultsArray.length <= 0);\n }\n return validationResultsArray;\n }\n\n function checkValidator(elementValue, validatorName, validatorConfiguration) {\n const validator = validatorRegistry.get(validatorName);\n if (validator) {\n return validator(elementValue, validatorConfiguration);\n }\n console.warn(`Validator ${validatorName} not found`);\n }\n\n function createElement(idx) {\n const isPredefined = !!options.predefinedProperties && options.predefinedProperties[idx];\n const { controls, sortBy, properties, allowRemovePredefinedProperties } = options;\n\n const hasRemove = controls.remove && allowRemove ? !isPredefined || allowRemovePredefinedProperties : false;\n\n const hasMove = !isPredefined && controls.move && currentValue.length > 1;\n const hasTwoButtons = hasRemove && hasMove;\n const hasOneButton = hasRemove || hasMove;\n const propertiesCount = Object.keys(properties).length;\n if (propertiesCount === 1) {\n return (\n \n {getProperties(idx)}\n {hasOneButton && (\n
\n {hasRemove && (\n handleRemove(idx)} className={style.delete} icon=\"trash\" />\n )}\n {hasMove && }\n
\n )}\n \n );\n }\n\n const hasCollapse = !!controls.collapse;\n const isCollapsed = hasCollapse\n ? typeof collapsed[idx] === \"boolean\"\n ? collapsed[idx]\n : !!options?.collapsed\n : false;\n\n return (\n
\n {Boolean(hasOneButton || hasCollapse) && (\n
\n {getPreview(idx)}\n {hasMove && }\n {hasCollapse && (\n handleCollapse(idx, isCollapsed)}\n icon={isCollapsed ? \"chevron-down\" : \"chevron-up\"}\n />\n )}\n {hasRemove && (\n handleRemove(idx)} className={style.delete} icon=\"trash\" />\n )}\n
\n )}\n {!isCollapsed && getProperties(idx)}\n
\n );\n }\n\n function getProperties(idx) {\n const { predefinedProperties } = options;\n const groupLabel = predefinedProperties && predefinedProperties[idx] ? predefinedProperties[idx].label : null;\n let properties = [];\n Object.keys(emptyGroup).map((property) => {\n properties.push(getProperty(property, idx));\n });\n properties = properties.filter(Boolean);\n\n if (properties.length === 0) {\n return null;\n }\n\n return (\n
\n {groupLabel && }\n {properties}\n
\n );\n }\n\n function checkIfValueIsSet(value) {\n return !!(value !== null && value !== undefined);\n }\n\n function returnValueIfSet(value, fallback = \"\") {\n return checkIfValueIsSet(value) ? value : fallback;\n }\n\n function getPreview(idx) {\n let text = options?.preview?.text;\n let image = options?.preview?.image;\n if (!text && !image) {\n return null;\n }\n if (text) {\n text = ItemEvalRecursive(text, currentValue[idx], props.node, props.parentNode, props.documentNode);\n }\n if (image) {\n image = ItemEvalRecursive(image, currentValue[idx], props.node, props.parentNode, props.documentNode);\n }\n return ;\n }\n\n function getProperty(property, idx) {\n const repeatableValue = clone(currentValue);\n const { properties, predefinedProperties } = options;\n let propertyDefinition = ItemEvalRecursive(\n properties[property],\n repeatableValue[idx],\n props.node,\n props.parentNode,\n props.documentNode,\n );\n if (\n predefinedProperties &&\n predefinedProperties[idx] &&\n predefinedProperties[idx].properties &&\n predefinedProperties[idx].properties[property]\n ) {\n propertyDefinition = deepMerge(propertyDefinition, predefinedProperties[idx][\"properties\"][property]);\n }\n\n const defaultDataType = propertyDefinition.type ? dataTypes[propertyDefinition.type] : {};\n if (defaultDataType) {\n propertyDefinition = deepMerge(defaultDataType, propertyDefinition);\n }\n\n let editorOptions = returnValueIfSet(propertyDefinition.editorOptions, {});\n const editor = returnValueIfSet(propertyDefinition.editor, \"Neos.Neos/Inspector/Editors/TextFieldEditor\");\n let value = returnValueIfSet(repeatableValue[idx][property]);\n\n if (!value && checkIfValueIsSet(propertyDefinition.defaultValue)) {\n value = propertyDefinition.defaultValue;\n }\n\n if (editorOptions.hasOwnProperty(\"dataSourceUri\") || editorOptions.hasOwnProperty(\"dataSourceIdentifier\")) {\n editorOptions = { ...editorOptions };\n if (!editorOptions.dataSourceAdditionalData) {\n editorOptions.dataSourceAdditionalData = {};\n } else {\n if (editorOptions.dataSourceAdditionalData.hasOwnProperty(\"repeatableIndex\")) {\n editorOptions.dataSourceAdditionalData[\"repeatableIndex\"] = idx;\n }\n if (editorOptions.dataSourceAdditionalData.hasOwnProperty(\"repeatableValue\")) {\n editorOptions.dataSourceAdditionalData[\"repeatableValue\"] = currentValue;\n }\n }\n }\n const isSimpleView = Object.keys(properties).length <= 1;\n\n return (\n \n );\n }\n\n if (isLoading || !options) {\n return (\n <>\n {Boolean(label) && (\n \n )}\n \n \n );\n }\n\n if (options.hidden) {\n return null;\n }\n\n const { buttonAddLabel = \"Mireo.RepeatableFields:Main:addRow\" } = options;\n\n return (\n <>\n {Boolean(label) && (\n \n )}\n \n {options.controls.add && allowAdd && (\n <>\n \n {Boolean(label) || renderHelpIcon()}\n \n )}\n \n );\n}\nRepeatable.propTypes = {\n identifier: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n // options: PropTypes.object,\n value: PropTypes.arrayOf(PropTypes.object),\n renderSecondaryInspector: PropTypes.func,\n editor: PropTypes.string.isRequired,\n editorRegistry: PropTypes.object.isRequired,\n i18nRegistry: PropTypes.object.isRequired,\n validationErrors: PropTypes.array,\n onEnterKey: PropTypes.func,\n helpMessage: PropTypes.string,\n helpThumbnail: PropTypes.string,\n highlight: PropTypes.bool,\n\n commit: PropTypes.func.isRequired,\n options: PropTypes.shape({\n hidden: PropTypes.bool,\n buttonAddLabel: PropTypes.string,\n dataSourceIdentifier: PropTypes.string,\n dataSourceUri: PropTypes.string,\n dataSourceDisableCaching: PropTypes.bool,\n dataSourceAdditionalData: PropTypes.objectOf(PropTypes.any),\n predefinedProperties: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.object,\n }),\n ),\n max: PropTypes.number,\n min: PropTypes.number,\n collapsed: PropTypes.bool,\n label: PropTypes.shape({\n label: PropTypes.string,\n image: PropTypes.string,\n }),\n controls: PropTypes.shape({\n move: PropTypes.bool,\n remove: PropTypes.bool,\n add: PropTypes.bool,\n collapse: PropTypes.bool,\n }),\n sortBy: PropTypes.arrayOf(\n PropTypes.shape({\n property: PropTypes.string,\n direction: PropTypes.oneOf([\"asc\", \"desc\"]),\n }),\n ),\n //\n // \tproperties: PropTypes.objectOf(\n // \t\tPropTypes.object()\n // \t),\n //\n // \tplaceholder: PropTypes.integersOnly,\n // \t// disabled: PropTypes.bool,\n // \t//\n // \t// multiple: PropTypes.bool,\n //\n // \tdataSourceIdentifier: PropTypes.string,\n // \tdataSourceUri: PropTypes.string,\n // \tdataSourceDisableCaching: PropTypes.bool,\n // \tdataSourceAdditionalData: PropTypes.objectOf(PropTypes.any),\n //\n // \t// minimumResultsForSearch: PropTypes.number,\n //\n // properties: PropTypes.objectOf(\n // \tPropTypes.shape({\n // \t\tlabel: PropTypes.string,\n // \t\ticon: PropTypes.string,\n // \t\tpreview: PropTypes.string,\n //\n // \t\t// TODO\n // \t\tgroup: PropTypes.string\n // \t})\n // )\n //\n }).isRequired,\n dataSourcesDataLoader: PropTypes.shape({\n resolveValue: PropTypes.func.isRequired,\n }).isRequired,\n focusedNodePath: PropTypes.string.isRequired,\n};\n\nconst neosifier = neos((globalRegistry) => ({\n editorRegistry: globalRegistry.get(\"inspector\").get(\"editors\"),\n i18nRegistry: globalRegistry.get(\"i18n\"),\n dataSourcesDataLoader: globalRegistry.get(\"dataLoaders\").get(\"DataSources\"),\n}));\nconst connector = connect((state) => ({\n focusedNodePath: selectors.CR.Nodes.focusedNodePathSelector(state),\n node: selectors.CR.Nodes.focusedSelector(state),\n parentNode: selectors.CR.Nodes.focusedParentSelector(state),\n documentNode: selectors.CR.Nodes.documentNodeSelector(state),\n}));\nexport default neosifier(connector(Repeatable));\n", "export const urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n", "/* @ts-self-types=\"./index.d.ts\" */\nimport { urlAlphabet as scopedUrlAlphabet } from './url-alphabet/index.js'\nexport { urlAlphabet } from './url-alphabet/index.js'\nexport let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nexport let customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << Math.log2(alphabet.length - 1)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step | 0\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length >= size) return id\n }\n }\n }\n}\nexport let customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size | 0, random)\nexport let nanoid = (size = 21) => {\n let id = ''\n let bytes = crypto.getRandomValues(new Uint8Array((size |= 0)))\n while (size--) {\n id += scopedUrlAlphabet[bytes[size] & 63]\n }\n return id\n}\n", "function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t ({\n display: \"grid\",\n gridTemplate: \"'content' 1fr / 1fr\",\n alignItems: \"center\",\n justifyItems: \"center\",\n width: \"100%\",\n minHeight: `calc(var(--spacing-GoldenUnit) * ${heightMultiplier})`,\n }),\n item: (active = false) => ({\n gridArea: \"content\",\n transition: \"opacity var(--transition-Default), transform var(--transition-Default) ease\",\n opacity: active ? 1 : 0,\n transform: `scale(${active ? 1 : 0})`,\n }),\n};\n\nfunction Loading({\n id,\n title = \"Neos.Neos:Main:loading\",\n isLoading = false,\n delayTime = 500,\n timeoutTime = 5000,\n i18nRegistry,\n heightMultiplier = 1,\n width = 60,\n}) {\n const [showLoading, setShowLoading] = useState(0);\n const translatedTitle = title ? i18nRegistry.translate(title) : null;\n\n useEffect(() => {\n if (!isLoading) {\n setShowLoading(0);\n return;\n }\n const delay = setTimeout(() => {\n setShowLoading(1);\n }, delayTime);\n const timeout = setTimeout(() => {\n setShowLoading(2);\n }, delayTime + timeoutTime);\n\n return () => {\n clearTimeout(delay);\n clearTimeout(timeout);\n };\n }, [isLoading]);\n\n if (!isLoading) {\n return null;\n }\n\n return (\n
\n \n \n
\n );\n}\n\nconst neosifier = neos((globalRegistry) => ({\n i18nRegistry: globalRegistry.get(\"i18n\"),\n}));\nexport default neosifier(Loading);\n", "import React from \"react\";\n\nexport function Circle({ style, className, size = 30 }) {\n return (\n \n \n \n {[\n {\n attribute: \"dasharray\",\n values: \"0 150;42 150;42 150;42 150\",\n },\n {\n attribute: \"dashoffset\",\n values: \"0;-16;-59;-59\",\n },\n ].map(({ attribute, values }) => (\n \n ))}\n \n \n \n \n );\n}\n\nexport function Dots({ style, className, size = 30 }) {\n return (\n \n {[1, 2, 3].map((number) => {\n const cx = number * 6;\n const beginn = Math.round((100 / 3) * (number - 1)) / 100;\n return (\n \n \n \n );\n })}\n \n );\n}\n", "import React, { useEffect, useState } from \"react\";\nimport { SortableContainer, SortableElement, SortableHandle } from \"react-sortable-hoc\";\nimport { useAutoAnimate } from \"@formkit/auto-animate/react\";\nimport { Icon } from \"@neos-project/react-ui-components\";\nimport { arrayMoveImmutable } from \"array-move\";\nimport PropTypes from \"prop-types\";\nimport style from \"./style.module.css\";\n\nexport const DragHandle = SortableHandle(() => (\n \n \n \n));\n\nconst animateOptions = { disrespectUserMotionPreferences: true };\n\nconst SortableItem = SortableElement(({ value }) => {\n return
{value}
;\n});\n\nconst SortableList = SortableContainer(({ children, automaticSorting, manualSort }) => {\n const [animationParent, enable] = useAutoAnimate(animateOptions);\n\n useEffect(() => {\n document.body.style.cursor = manualSort ? \"grabbing\" : null;\n enable(false);\n const timeout = setTimeout(() => {\n enable(!manualSort);\n }, 500);\n return () => clearTimeout(timeout);\n }, [manualSort]);\n\n return (\n
\n {children}\n
\n );\n});\n\nexport function Sortable({ onChange, value, element, items, enable, automaticSorting, KEY_PROPERTY }) {\n if (!enable) {\n const [animationParent] = useAutoAnimate(animateOptions);\n\n return (\n
\n {items.map((value, idx) => (\n
{element(idx)}
\n ))}\n
\n );\n }\n\n const [manualSort, setManualSort] = useState(false);\n\n function onSortEnd({ oldIndex, newIndex }) {\n onChange(arrayMoveImmutable(value, oldIndex, newIndex));\n setManualSort(false);\n }\n\n return (\n setManualSort(true)}\n manualSort={manualSort}\n onSortEnd={onSortEnd}\n automaticSorting={automaticSorting}\n useDragHandle\n axis=\"y\"\n lockAxis=\"y\"\n >\n {items.map((value, idx) => (\n \n ))}\n \n );\n}\n\nSortable.propTypes = {\n items: PropTypes.array.isRequired,\n onSortEndAction: PropTypes.func.isRequired,\n element: PropTypes.func.isRequired,\n};\n", "function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };", "function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };", "function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };", "function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };", "import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };", "function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };", "import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };", "function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };", "import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };", "import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };", "import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };", "import defineProperty from \"./defineProperty.js\";\nfunction _objectSpread(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? Object(arguments[r]) : {},\n o = Object.keys(t);\n \"function\" == typeof Object.getOwnPropertySymbols && o.push.apply(o, Object.getOwnPropertySymbols(t).filter(function (e) {\n return Object.getOwnPropertyDescriptor(t, e).enumerable;\n })), o.forEach(function (r) {\n defineProperty(e, r, t[r]);\n });\n }\n return e;\n}\nexport { _objectSpread as default };", "function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };", "import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };", "function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };", "import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };", "function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };", "function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };", "import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };", "import _extends from '@babel/runtime/helpers/esm/extends';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { createRef, createElement, Component, createContext } from 'react';\nimport { findDOMNode } from 'react-dom';\nimport invariant from 'invariant';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport PropTypes from 'prop-types';\n\nvar Manager = function () {\n function Manager() {\n _classCallCheck(this, Manager);\n\n _defineProperty(this, \"refs\", {});\n }\n\n _createClass(Manager, [{\n key: \"add\",\n value: function add(collection, ref) {\n if (!this.refs[collection]) {\n this.refs[collection] = [];\n }\n\n this.refs[collection].push(ref);\n }\n }, {\n key: \"remove\",\n value: function remove(collection, ref) {\n var index = this.getIndex(collection, ref);\n\n if (index !== -1) {\n this.refs[collection].splice(index, 1);\n }\n }\n }, {\n key: \"isActive\",\n value: function isActive() {\n return this.active;\n }\n }, {\n key: \"getActive\",\n value: function getActive() {\n var _this = this;\n\n return this.refs[this.active.collection].find(function (_ref) {\n var node = _ref.node;\n return node.sortableInfo.index == _this.active.index;\n });\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(collection, ref) {\n return this.refs[collection].indexOf(ref);\n }\n }, {\n key: \"getOrderedRefs\",\n value: function getOrderedRefs() {\n var collection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.active.collection;\n return this.refs[collection].sort(sortByIndex);\n }\n }]);\n\n return Manager;\n}();\n\nfunction sortByIndex(_ref2, _ref3) {\n var index1 = _ref2.node.sortableInfo.index;\n var index2 = _ref3.node.sortableInfo.index;\n return index1 - index2;\n}\n\nfunction arrayMove(array, from, to) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof console !== 'undefined') {\n console.warn(\"Deprecation warning: arrayMove will no longer be exported by 'react-sortable-hoc' in the next major release. Please install the `array-move` package locally instead. https://www.npmjs.com/package/array-move\");\n }\n }\n\n array = array.slice();\n array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);\n return array;\n}\nfunction omit(obj, keysToOmit) {\n return Object.keys(obj).reduce(function (acc, key) {\n if (keysToOmit.indexOf(key) === -1) {\n acc[key] = obj[key];\n }\n\n return acc;\n }, {});\n}\nvar events = {\n end: ['touchend', 'touchcancel', 'mouseup'],\n move: ['touchmove', 'mousemove'],\n start: ['touchstart', 'mousedown']\n};\nvar vendorPrefix = function () {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return '';\n }\n\n var styles = window.getComputedStyle(document.documentElement, '') || ['-moz-hidden-iframe'];\n var pre = (Array.prototype.slice.call(styles).join('').match(/-(moz|webkit|ms)-/) || styles.OLink === '' && ['', 'o'])[1];\n\n switch (pre) {\n case 'ms':\n return 'ms';\n\n default:\n return pre && pre.length ? pre[0].toUpperCase() + pre.substr(1) : '';\n }\n}();\nfunction setInlineStyles(node, styles) {\n Object.keys(styles).forEach(function (key) {\n node.style[key] = styles[key];\n });\n}\nfunction setTranslate3d(node, translate) {\n node.style[\"\".concat(vendorPrefix, \"Transform\")] = translate == null ? '' : \"translate3d(\".concat(translate.x, \"px,\").concat(translate.y, \"px,0)\");\n}\nfunction setTransitionDuration(node, duration) {\n node.style[\"\".concat(vendorPrefix, \"TransitionDuration\")] = duration == null ? '' : \"\".concat(duration, \"ms\");\n}\nfunction closest(el, fn) {\n while (el) {\n if (fn(el)) {\n return el;\n }\n\n el = el.parentNode;\n }\n\n return null;\n}\nfunction limit(min, max, value) {\n return Math.max(min, Math.min(value, max));\n}\n\nfunction getPixelValue(stringValue) {\n if (stringValue.substr(-2) === 'px') {\n return parseFloat(stringValue);\n }\n\n return 0;\n}\n\nfunction getElementMargin(element) {\n var style = window.getComputedStyle(element);\n return {\n bottom: getPixelValue(style.marginBottom),\n left: getPixelValue(style.marginLeft),\n right: getPixelValue(style.marginRight),\n top: getPixelValue(style.marginTop)\n };\n}\nfunction provideDisplayName(prefix, Component$$1) {\n var componentName = Component$$1.displayName || Component$$1.name;\n return componentName ? \"\".concat(prefix, \"(\").concat(componentName, \")\") : prefix;\n}\nfunction getScrollAdjustedBoundingClientRect(node, scrollDelta) {\n var boundingClientRect = node.getBoundingClientRect();\n return {\n top: boundingClientRect.top + scrollDelta.top,\n left: boundingClientRect.left + scrollDelta.left\n };\n}\nfunction getPosition(event) {\n if (event.touches && event.touches.length) {\n return {\n x: event.touches[0].pageX,\n y: event.touches[0].pageY\n };\n } else if (event.changedTouches && event.changedTouches.length) {\n return {\n x: event.changedTouches[0].pageX,\n y: event.changedTouches[0].pageY\n };\n } else {\n return {\n x: event.pageX,\n y: event.pageY\n };\n }\n}\nfunction isTouchEvent(event) {\n return event.touches && event.touches.length || event.changedTouches && event.changedTouches.length;\n}\nfunction getEdgeOffset(node, parent) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n left: 0,\n top: 0\n };\n\n if (!node) {\n return undefined;\n }\n\n var nodeOffset = {\n left: offset.left + node.offsetLeft,\n top: offset.top + node.offsetTop\n };\n\n if (node.parentNode === parent) {\n return nodeOffset;\n }\n\n return getEdgeOffset(node.parentNode, parent, nodeOffset);\n}\nfunction getTargetIndex(newIndex, prevIndex, oldIndex) {\n if (newIndex < oldIndex && newIndex > prevIndex) {\n return newIndex - 1;\n } else if (newIndex > oldIndex && newIndex < prevIndex) {\n return newIndex + 1;\n } else {\n return newIndex;\n }\n}\nfunction getLockPixelOffset(_ref) {\n var lockOffset = _ref.lockOffset,\n width = _ref.width,\n height = _ref.height;\n var offsetX = lockOffset;\n var offsetY = lockOffset;\n var unit = 'px';\n\n if (typeof lockOffset === 'string') {\n var match = /^[+-]?\\d*(?:\\.\\d*)?(px|%)$/.exec(lockOffset);\n invariant(match !== null, 'lockOffset value should be a number or a string of a ' + 'number followed by \"px\" or \"%\". Given %s', lockOffset);\n offsetX = parseFloat(lockOffset);\n offsetY = parseFloat(lockOffset);\n unit = match[1];\n }\n\n invariant(isFinite(offsetX) && isFinite(offsetY), 'lockOffset value should be a finite. Given %s', lockOffset);\n\n if (unit === '%') {\n offsetX = offsetX * width / 100;\n offsetY = offsetY * height / 100;\n }\n\n return {\n x: offsetX,\n y: offsetY\n };\n}\nfunction getLockPixelOffsets(_ref2) {\n var height = _ref2.height,\n width = _ref2.width,\n lockOffset = _ref2.lockOffset;\n var offsets = Array.isArray(lockOffset) ? lockOffset : [lockOffset, lockOffset];\n invariant(offsets.length === 2, 'lockOffset prop of SortableContainer should be a single ' + 'value or an array of exactly two values. Given %s', lockOffset);\n\n var _offsets = _slicedToArray(offsets, 2),\n minLockOffset = _offsets[0],\n maxLockOffset = _offsets[1];\n\n return [getLockPixelOffset({\n height: height,\n lockOffset: minLockOffset,\n width: width\n }), getLockPixelOffset({\n height: height,\n lockOffset: maxLockOffset,\n width: width\n })];\n}\n\nfunction isScrollable(el) {\n var computedStyle = window.getComputedStyle(el);\n var overflowRegex = /(auto|scroll)/;\n var properties = ['overflow', 'overflowX', 'overflowY'];\n return properties.find(function (property) {\n return overflowRegex.test(computedStyle[property]);\n });\n}\n\nfunction getScrollingParent(el) {\n if (!(el instanceof HTMLElement)) {\n return null;\n } else if (isScrollable(el)) {\n return el;\n } else {\n return getScrollingParent(el.parentNode);\n }\n}\nfunction getContainerGridGap(element) {\n var style = window.getComputedStyle(element);\n\n if (style.display === 'grid') {\n return {\n x: getPixelValue(style.gridColumnGap),\n y: getPixelValue(style.gridRowGap)\n };\n }\n\n return {\n x: 0,\n y: 0\n };\n}\nvar KEYCODE = {\n TAB: 9,\n ESC: 27,\n SPACE: 32,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40\n};\nvar NodeType = {\n Anchor: 'A',\n Button: 'BUTTON',\n Canvas: 'CANVAS',\n Input: 'INPUT',\n Option: 'OPTION',\n Textarea: 'TEXTAREA',\n Select: 'SELECT'\n};\nfunction cloneNode(node) {\n var selector = 'input, textarea, select, canvas, [contenteditable]';\n var fields = node.querySelectorAll(selector);\n var clonedNode = node.cloneNode(true);\n\n var clonedFields = _toConsumableArray(clonedNode.querySelectorAll(selector));\n\n clonedFields.forEach(function (field, i) {\n if (field.type !== 'file') {\n field.value = fields[i].value;\n }\n\n if (field.type === 'radio' && field.name) {\n field.name = \"__sortableClone__\".concat(field.name);\n }\n\n if (field.tagName === NodeType.Canvas && fields[i].width > 0 && fields[i].height > 0) {\n var destCtx = field.getContext('2d');\n destCtx.drawImage(fields[i], 0, 0);\n }\n });\n return clonedNode;\n}\n\nfunction sortableHandle(WrappedComponent) {\n var _class, _temp;\n\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n withRef: false\n };\n return _temp = _class = function (_React$Component) {\n _inherits(WithSortableHandle, _React$Component);\n\n function WithSortableHandle() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, WithSortableHandle);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(WithSortableHandle)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"wrappedInstance\", createRef());\n\n return _this;\n }\n\n _createClass(WithSortableHandle, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var node = findDOMNode(this);\n node.sortableHandle = true;\n }\n }, {\n key: \"getWrappedInstance\",\n value: function getWrappedInstance() {\n invariant(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableHandle() call');\n return this.wrappedInstance.current;\n }\n }, {\n key: \"render\",\n value: function render() {\n var ref = config.withRef ? this.wrappedInstance : null;\n return createElement(WrappedComponent, _extends({\n ref: ref\n }, this.props));\n }\n }]);\n\n return WithSortableHandle;\n }(Component), _defineProperty(_class, \"displayName\", provideDisplayName('sortableHandle', WrappedComponent)), _temp;\n}\nfunction isSortableHandle(node) {\n return node.sortableHandle != null;\n}\n\nvar AutoScroller = function () {\n function AutoScroller(container, onScrollCallback) {\n _classCallCheck(this, AutoScroller);\n\n this.container = container;\n this.onScrollCallback = onScrollCallback;\n }\n\n _createClass(AutoScroller, [{\n key: \"clear\",\n value: function clear() {\n if (this.interval == null) {\n return;\n }\n\n clearInterval(this.interval);\n this.interval = null;\n }\n }, {\n key: \"update\",\n value: function update(_ref) {\n var _this = this;\n\n var translate = _ref.translate,\n minTranslate = _ref.minTranslate,\n maxTranslate = _ref.maxTranslate,\n width = _ref.width,\n height = _ref.height;\n var direction = {\n x: 0,\n y: 0\n };\n var speed = {\n x: 1,\n y: 1\n };\n var acceleration = {\n x: 10,\n y: 10\n };\n var _this$container = this.container,\n scrollTop = _this$container.scrollTop,\n scrollLeft = _this$container.scrollLeft,\n scrollHeight = _this$container.scrollHeight,\n scrollWidth = _this$container.scrollWidth,\n clientHeight = _this$container.clientHeight,\n clientWidth = _this$container.clientWidth;\n var isTop = scrollTop === 0;\n var isBottom = scrollHeight - scrollTop - clientHeight === 0;\n var isLeft = scrollLeft === 0;\n var isRight = scrollWidth - scrollLeft - clientWidth === 0;\n\n if (translate.y >= maxTranslate.y - height / 2 && !isBottom) {\n direction.y = 1;\n speed.y = acceleration.y * Math.abs((maxTranslate.y - height / 2 - translate.y) / height);\n } else if (translate.x >= maxTranslate.x - width / 2 && !isRight) {\n direction.x = 1;\n speed.x = acceleration.x * Math.abs((maxTranslate.x - width / 2 - translate.x) / width);\n } else if (translate.y <= minTranslate.y + height / 2 && !isTop) {\n direction.y = -1;\n speed.y = acceleration.y * Math.abs((translate.y - height / 2 - minTranslate.y) / height);\n } else if (translate.x <= minTranslate.x + width / 2 && !isLeft) {\n direction.x = -1;\n speed.x = acceleration.x * Math.abs((translate.x - width / 2 - minTranslate.x) / width);\n }\n\n if (this.interval) {\n this.clear();\n this.isAutoScrolling = false;\n }\n\n if (direction.x !== 0 || direction.y !== 0) {\n this.interval = setInterval(function () {\n _this.isAutoScrolling = true;\n var offset = {\n left: speed.x * direction.x,\n top: speed.y * direction.y\n };\n _this.container.scrollTop += offset.top;\n _this.container.scrollLeft += offset.left;\n\n _this.onScrollCallback(offset);\n }, 5);\n }\n }\n }]);\n\n return AutoScroller;\n}();\n\nfunction defaultGetHelperDimensions(_ref) {\n var node = _ref.node;\n return {\n height: node.offsetHeight,\n width: node.offsetWidth\n };\n}\n\nfunction defaultShouldCancelStart(event) {\n var interactiveElements = [NodeType.Input, NodeType.Textarea, NodeType.Select, NodeType.Option, NodeType.Button];\n\n if (interactiveElements.indexOf(event.target.tagName) !== -1) {\n return true;\n }\n\n if (closest(event.target, function (el) {\n return el.contentEditable === 'true';\n })) {\n return true;\n }\n\n return false;\n}\n\nvar propTypes = {\n axis: PropTypes.oneOf(['x', 'y', 'xy']),\n contentWindow: PropTypes.any,\n disableAutoscroll: PropTypes.bool,\n distance: PropTypes.number,\n getContainer: PropTypes.func,\n getHelperDimensions: PropTypes.func,\n helperClass: PropTypes.string,\n helperContainer: PropTypes.oneOfType([PropTypes.func, typeof HTMLElement === 'undefined' ? PropTypes.any : PropTypes.instanceOf(HTMLElement)]),\n hideSortableGhost: PropTypes.bool,\n keyboardSortingTransitionDuration: PropTypes.number,\n lockAxis: PropTypes.string,\n lockOffset: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string]))]),\n lockToContainerEdges: PropTypes.bool,\n onSortEnd: PropTypes.func,\n onSortMove: PropTypes.func,\n onSortOver: PropTypes.func,\n onSortStart: PropTypes.func,\n pressDelay: PropTypes.number,\n pressThreshold: PropTypes.number,\n keyCodes: PropTypes.shape({\n lift: PropTypes.arrayOf(PropTypes.number),\n drop: PropTypes.arrayOf(PropTypes.number),\n cancel: PropTypes.arrayOf(PropTypes.number),\n up: PropTypes.arrayOf(PropTypes.number),\n down: PropTypes.arrayOf(PropTypes.number)\n }),\n shouldCancelStart: PropTypes.func,\n transitionDuration: PropTypes.number,\n updateBeforeSortStart: PropTypes.func,\n useDragHandle: PropTypes.bool,\n useWindowAsScrollContainer: PropTypes.bool\n};\nvar defaultKeyCodes = {\n lift: [KEYCODE.SPACE],\n drop: [KEYCODE.SPACE],\n cancel: [KEYCODE.ESC],\n up: [KEYCODE.UP, KEYCODE.LEFT],\n down: [KEYCODE.DOWN, KEYCODE.RIGHT]\n};\nvar defaultProps = {\n axis: 'y',\n disableAutoscroll: false,\n distance: 0,\n getHelperDimensions: defaultGetHelperDimensions,\n hideSortableGhost: true,\n lockOffset: '50%',\n lockToContainerEdges: false,\n pressDelay: 0,\n pressThreshold: 5,\n keyCodes: defaultKeyCodes,\n shouldCancelStart: defaultShouldCancelStart,\n transitionDuration: 300,\n useWindowAsScrollContainer: false\n};\nvar omittedProps = Object.keys(propTypes);\nfunction validateProps(props) {\n invariant(!(props.distance && props.pressDelay), 'Attempted to set both `pressDelay` and `distance` on SortableContainer, you may only use one or the other, not both at the same time.');\n}\n\nfunction _finallyRethrows(body, finalizer) {\n try {\n var result = body();\n } catch (e) {\n return finalizer(true, e);\n }\n\n if (result && result.then) {\n return result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n }\n\n return finalizer(false, value);\n}\nvar SortableContext = createContext({\n manager: {}\n});\nfunction sortableContainer(WrappedComponent) {\n var _class, _temp;\n\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n withRef: false\n };\n return _temp = _class = function (_React$Component) {\n _inherits(WithSortableContainer, _React$Component);\n\n function WithSortableContainer(props) {\n var _this;\n\n _classCallCheck(this, WithSortableContainer);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(WithSortableContainer).call(this, props));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {});\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleStart\", function (event) {\n var _this$props = _this.props,\n distance = _this$props.distance,\n shouldCancelStart = _this$props.shouldCancelStart;\n\n if (event.button === 2 || shouldCancelStart(event)) {\n return;\n }\n\n _this.touched = true;\n _this.position = getPosition(event);\n var node = closest(event.target, function (el) {\n return el.sortableInfo != null;\n });\n\n if (node && node.sortableInfo && _this.nodeIsChild(node) && !_this.state.sorting) {\n var useDragHandle = _this.props.useDragHandle;\n var _node$sortableInfo = node.sortableInfo,\n index = _node$sortableInfo.index,\n collection = _node$sortableInfo.collection,\n disabled = _node$sortableInfo.disabled;\n\n if (disabled) {\n return;\n }\n\n if (useDragHandle && !closest(event.target, isSortableHandle)) {\n return;\n }\n\n _this.manager.active = {\n collection: collection,\n index: index\n };\n\n if (!isTouchEvent(event) && event.target.tagName === NodeType.Anchor) {\n event.preventDefault();\n }\n\n if (!distance) {\n if (_this.props.pressDelay === 0) {\n _this.handlePress(event);\n } else {\n _this.pressTimer = setTimeout(function () {\n return _this.handlePress(event);\n }, _this.props.pressDelay);\n }\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"nodeIsChild\", function (node) {\n return node.sortableInfo.manager === _this.manager;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleMove\", function (event) {\n var _this$props2 = _this.props,\n distance = _this$props2.distance,\n pressThreshold = _this$props2.pressThreshold;\n\n if (!_this.state.sorting && _this.touched && !_this._awaitingUpdateBeforeSortStart) {\n var position = getPosition(event);\n var delta = {\n x: _this.position.x - position.x,\n y: _this.position.y - position.y\n };\n var combinedDelta = Math.abs(delta.x) + Math.abs(delta.y);\n _this.delta = delta;\n\n if (!distance && (!pressThreshold || combinedDelta >= pressThreshold)) {\n clearTimeout(_this.cancelTimer);\n _this.cancelTimer = setTimeout(_this.cancel, 0);\n } else if (distance && combinedDelta >= distance && _this.manager.isActive()) {\n _this.handlePress(event);\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleEnd\", function () {\n _this.touched = false;\n\n _this.cancel();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"cancel\", function () {\n var distance = _this.props.distance;\n var sorting = _this.state.sorting;\n\n if (!sorting) {\n if (!distance) {\n clearTimeout(_this.pressTimer);\n }\n\n _this.manager.active = null;\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handlePress\", function (event) {\n try {\n var active = _this.manager.getActive();\n\n var _temp6 = function () {\n if (active) {\n var _temp7 = function _temp7() {\n var index = _node.sortableInfo.index;\n var margin = getElementMargin(_node);\n var gridGap = getContainerGridGap(_this.container);\n\n var containerBoundingRect = _this.scrollContainer.getBoundingClientRect();\n\n var dimensions = _getHelperDimensions({\n index: index,\n node: _node,\n collection: _collection\n });\n\n _this.node = _node;\n _this.margin = margin;\n _this.gridGap = gridGap;\n _this.width = dimensions.width;\n _this.height = dimensions.height;\n _this.marginOffset = {\n x: _this.margin.left + _this.margin.right + _this.gridGap.x,\n y: Math.max(_this.margin.top, _this.margin.bottom, _this.gridGap.y)\n };\n _this.boundingClientRect = _node.getBoundingClientRect();\n _this.containerBoundingRect = containerBoundingRect;\n _this.index = index;\n _this.newIndex = index;\n _this.axis = {\n x: _axis.indexOf('x') >= 0,\n y: _axis.indexOf('y') >= 0\n };\n _this.offsetEdge = getEdgeOffset(_node, _this.container);\n\n if (_isKeySorting) {\n _this.initialOffset = getPosition(_objectSpread({}, event, {\n pageX: _this.boundingClientRect.left,\n pageY: _this.boundingClientRect.top\n }));\n } else {\n _this.initialOffset = getPosition(event);\n }\n\n _this.initialScroll = {\n left: _this.scrollContainer.scrollLeft,\n top: _this.scrollContainer.scrollTop\n };\n _this.initialWindowScroll = {\n left: window.pageXOffset,\n top: window.pageYOffset\n };\n _this.helper = _this.helperContainer.appendChild(cloneNode(_node));\n setInlineStyles(_this.helper, {\n boxSizing: 'border-box',\n height: \"\".concat(_this.height, \"px\"),\n left: \"\".concat(_this.boundingClientRect.left - margin.left, \"px\"),\n pointerEvents: 'none',\n position: 'fixed',\n top: \"\".concat(_this.boundingClientRect.top - margin.top, \"px\"),\n width: \"\".concat(_this.width, \"px\")\n });\n\n if (_isKeySorting) {\n _this.helper.focus();\n }\n\n if (_hideSortableGhost) {\n _this.sortableGhost = _node;\n setInlineStyles(_node, {\n opacity: 0,\n visibility: 'hidden'\n });\n }\n\n _this.minTranslate = {};\n _this.maxTranslate = {};\n\n if (_isKeySorting) {\n var _ref = _useWindowAsScrollContainer ? {\n top: 0,\n left: 0,\n width: _this.contentWindow.innerWidth,\n height: _this.contentWindow.innerHeight\n } : _this.containerBoundingRect,\n containerTop = _ref.top,\n containerLeft = _ref.left,\n containerWidth = _ref.width,\n containerHeight = _ref.height;\n\n var containerBottom = containerTop + containerHeight;\n var containerRight = containerLeft + containerWidth;\n\n if (_this.axis.x) {\n _this.minTranslate.x = containerLeft - _this.boundingClientRect.left;\n _this.maxTranslate.x = containerRight - (_this.boundingClientRect.left + _this.width);\n }\n\n if (_this.axis.y) {\n _this.minTranslate.y = containerTop - _this.boundingClientRect.top;\n _this.maxTranslate.y = containerBottom - (_this.boundingClientRect.top + _this.height);\n }\n } else {\n if (_this.axis.x) {\n _this.minTranslate.x = (_useWindowAsScrollContainer ? 0 : containerBoundingRect.left) - _this.boundingClientRect.left - _this.width / 2;\n _this.maxTranslate.x = (_useWindowAsScrollContainer ? _this.contentWindow.innerWidth : containerBoundingRect.left + containerBoundingRect.width) - _this.boundingClientRect.left - _this.width / 2;\n }\n\n if (_this.axis.y) {\n _this.minTranslate.y = (_useWindowAsScrollContainer ? 0 : containerBoundingRect.top) - _this.boundingClientRect.top - _this.height / 2;\n _this.maxTranslate.y = (_useWindowAsScrollContainer ? _this.contentWindow.innerHeight : containerBoundingRect.top + containerBoundingRect.height) - _this.boundingClientRect.top - _this.height / 2;\n }\n }\n\n if (_helperClass) {\n _helperClass.split(' ').forEach(function (className) {\n return _this.helper.classList.add(className);\n });\n }\n\n _this.listenerNode = event.touches ? event.target : _this.contentWindow;\n\n if (_isKeySorting) {\n _this.listenerNode.addEventListener('wheel', _this.handleKeyEnd, true);\n\n _this.listenerNode.addEventListener('mousedown', _this.handleKeyEnd, true);\n\n _this.listenerNode.addEventListener('keydown', _this.handleKeyDown);\n } else {\n events.move.forEach(function (eventName) {\n return _this.listenerNode.addEventListener(eventName, _this.handleSortMove, false);\n });\n events.end.forEach(function (eventName) {\n return _this.listenerNode.addEventListener(eventName, _this.handleSortEnd, false);\n });\n }\n\n _this.setState({\n sorting: true,\n sortingIndex: index\n });\n\n if (_onSortStart) {\n _onSortStart({\n node: _node,\n index: index,\n collection: _collection,\n isKeySorting: _isKeySorting,\n nodes: _this.manager.getOrderedRefs(),\n helper: _this.helper\n }, event);\n }\n\n if (_isKeySorting) {\n _this.keyMove(0);\n }\n };\n\n var _this$props3 = _this.props,\n _axis = _this$props3.axis,\n _getHelperDimensions = _this$props3.getHelperDimensions,\n _helperClass = _this$props3.helperClass,\n _hideSortableGhost = _this$props3.hideSortableGhost,\n updateBeforeSortStart = _this$props3.updateBeforeSortStart,\n _onSortStart = _this$props3.onSortStart,\n _useWindowAsScrollContainer = _this$props3.useWindowAsScrollContainer;\n var _node = active.node,\n _collection = active.collection;\n var _isKeySorting = _this.manager.isKeySorting;\n\n var _temp8 = function () {\n if (typeof updateBeforeSortStart === 'function') {\n _this._awaitingUpdateBeforeSortStart = true;\n\n var _temp9 = _finallyRethrows(function () {\n var index = _node.sortableInfo.index;\n return Promise.resolve(updateBeforeSortStart({\n collection: _collection,\n index: index,\n node: _node,\n isKeySorting: _isKeySorting\n }, event)).then(function () {});\n }, function (_wasThrown, _result) {\n _this._awaitingUpdateBeforeSortStart = false;\n if (_wasThrown) throw _result;\n return _result;\n });\n\n if (_temp9 && _temp9.then) return _temp9.then(function () {});\n }\n }();\n\n return _temp8 && _temp8.then ? _temp8.then(_temp7) : _temp7(_temp8);\n }\n }();\n\n return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);\n } catch (e) {\n return Promise.reject(e);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleSortMove\", function (event) {\n var onSortMove = _this.props.onSortMove;\n\n if (typeof event.preventDefault === 'function' && event.cancelable) {\n event.preventDefault();\n }\n\n _this.updateHelperPosition(event);\n\n _this.animateNodes();\n\n _this.autoscroll();\n\n if (onSortMove) {\n onSortMove(event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleSortEnd\", function (event) {\n var _this$props4 = _this.props,\n hideSortableGhost = _this$props4.hideSortableGhost,\n onSortEnd = _this$props4.onSortEnd;\n var _this$manager = _this.manager,\n collection = _this$manager.active.collection,\n isKeySorting = _this$manager.isKeySorting;\n\n var nodes = _this.manager.getOrderedRefs();\n\n if (_this.listenerNode) {\n if (isKeySorting) {\n _this.listenerNode.removeEventListener('wheel', _this.handleKeyEnd, true);\n\n _this.listenerNode.removeEventListener('mousedown', _this.handleKeyEnd, true);\n\n _this.listenerNode.removeEventListener('keydown', _this.handleKeyDown);\n } else {\n events.move.forEach(function (eventName) {\n return _this.listenerNode.removeEventListener(eventName, _this.handleSortMove);\n });\n events.end.forEach(function (eventName) {\n return _this.listenerNode.removeEventListener(eventName, _this.handleSortEnd);\n });\n }\n }\n\n _this.helper.parentNode.removeChild(_this.helper);\n\n if (hideSortableGhost && _this.sortableGhost) {\n setInlineStyles(_this.sortableGhost, {\n opacity: '',\n visibility: ''\n });\n }\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n var _node2 = nodes[i];\n var el = _node2.node;\n _node2.edgeOffset = null;\n _node2.boundingClientRect = null;\n setTranslate3d(el, null);\n setTransitionDuration(el, null);\n _node2.translate = null;\n }\n\n _this.autoScroller.clear();\n\n _this.manager.active = null;\n _this.manager.isKeySorting = false;\n\n _this.setState({\n sorting: false,\n sortingIndex: null\n });\n\n if (typeof onSortEnd === 'function') {\n onSortEnd({\n collection: collection,\n newIndex: _this.newIndex,\n oldIndex: _this.index,\n isKeySorting: isKeySorting,\n nodes: nodes\n }, event);\n }\n\n _this.touched = false;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"autoscroll\", function () {\n var disableAutoscroll = _this.props.disableAutoscroll;\n var isKeySorting = _this.manager.isKeySorting;\n\n if (disableAutoscroll) {\n _this.autoScroller.clear();\n\n return;\n }\n\n if (isKeySorting) {\n var translate = _objectSpread({}, _this.translate);\n\n var scrollX = 0;\n var scrollY = 0;\n\n if (_this.axis.x) {\n translate.x = Math.min(_this.maxTranslate.x, Math.max(_this.minTranslate.x, _this.translate.x));\n scrollX = _this.translate.x - translate.x;\n }\n\n if (_this.axis.y) {\n translate.y = Math.min(_this.maxTranslate.y, Math.max(_this.minTranslate.y, _this.translate.y));\n scrollY = _this.translate.y - translate.y;\n }\n\n _this.translate = translate;\n setTranslate3d(_this.helper, _this.translate);\n _this.scrollContainer.scrollLeft += scrollX;\n _this.scrollContainer.scrollTop += scrollY;\n return;\n }\n\n _this.autoScroller.update({\n height: _this.height,\n maxTranslate: _this.maxTranslate,\n minTranslate: _this.minTranslate,\n translate: _this.translate,\n width: _this.width\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onAutoScroll\", function (offset) {\n _this.translate.x += offset.left;\n _this.translate.y += offset.top;\n\n _this.animateNodes();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleKeyDown\", function (event) {\n var keyCode = event.keyCode;\n var _this$props5 = _this.props,\n shouldCancelStart = _this$props5.shouldCancelStart,\n _this$props5$keyCodes = _this$props5.keyCodes,\n customKeyCodes = _this$props5$keyCodes === void 0 ? {} : _this$props5$keyCodes;\n\n var keyCodes = _objectSpread({}, defaultKeyCodes, customKeyCodes);\n\n if (_this.manager.active && !_this.manager.isKeySorting || !_this.manager.active && (!keyCodes.lift.includes(keyCode) || shouldCancelStart(event) || !_this.isValidSortingTarget(event))) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n if (keyCodes.lift.includes(keyCode) && !_this.manager.active) {\n _this.keyLift(event);\n } else if (keyCodes.drop.includes(keyCode) && _this.manager.active) {\n _this.keyDrop(event);\n } else if (keyCodes.cancel.includes(keyCode)) {\n _this.newIndex = _this.manager.active.index;\n\n _this.keyDrop(event);\n } else if (keyCodes.up.includes(keyCode)) {\n _this.keyMove(-1);\n } else if (keyCodes.down.includes(keyCode)) {\n _this.keyMove(1);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"keyLift\", function (event) {\n var target = event.target;\n var node = closest(target, function (el) {\n return el.sortableInfo != null;\n });\n var _node$sortableInfo2 = node.sortableInfo,\n index = _node$sortableInfo2.index,\n collection = _node$sortableInfo2.collection;\n _this.initialFocusedNode = target;\n _this.manager.isKeySorting = true;\n _this.manager.active = {\n index: index,\n collection: collection\n };\n\n _this.handlePress(event);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"keyMove\", function (shift) {\n var nodes = _this.manager.getOrderedRefs();\n\n var lastIndex = nodes[nodes.length - 1].node.sortableInfo.index;\n var newIndex = _this.newIndex + shift;\n var prevIndex = _this.newIndex;\n\n if (newIndex < 0 || newIndex > lastIndex) {\n return;\n }\n\n _this.prevIndex = prevIndex;\n _this.newIndex = newIndex;\n var targetIndex = getTargetIndex(_this.newIndex, _this.prevIndex, _this.index);\n var target = nodes.find(function (_ref2) {\n var node = _ref2.node;\n return node.sortableInfo.index === targetIndex;\n });\n var targetNode = target.node;\n var scrollDelta = _this.containerScrollDelta;\n var targetBoundingClientRect = target.boundingClientRect || getScrollAdjustedBoundingClientRect(targetNode, scrollDelta);\n var targetTranslate = target.translate || {\n x: 0,\n y: 0\n };\n var targetPosition = {\n top: targetBoundingClientRect.top + targetTranslate.y - scrollDelta.top,\n left: targetBoundingClientRect.left + targetTranslate.x - scrollDelta.left\n };\n var shouldAdjustForSize = prevIndex < newIndex;\n var sizeAdjustment = {\n x: shouldAdjustForSize && _this.axis.x ? targetNode.offsetWidth - _this.width : 0,\n y: shouldAdjustForSize && _this.axis.y ? targetNode.offsetHeight - _this.height : 0\n };\n\n _this.handleSortMove({\n pageX: targetPosition.left + sizeAdjustment.x,\n pageY: targetPosition.top + sizeAdjustment.y,\n ignoreTransition: shift === 0\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"keyDrop\", function (event) {\n _this.handleSortEnd(event);\n\n if (_this.initialFocusedNode) {\n _this.initialFocusedNode.focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleKeyEnd\", function (event) {\n if (_this.manager.active) {\n _this.keyDrop(event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"isValidSortingTarget\", function (event) {\n var useDragHandle = _this.props.useDragHandle;\n var target = event.target;\n var node = closest(target, function (el) {\n return el.sortableInfo != null;\n });\n return node && node.sortableInfo && !node.sortableInfo.disabled && (useDragHandle ? isSortableHandle(target) : target.sortableInfo);\n });\n\n var manager = new Manager();\n validateProps(props);\n _this.manager = manager;\n _this.wrappedInstance = createRef();\n _this.sortableContextValue = {\n manager: manager\n };\n _this.events = {\n end: _this.handleEnd,\n move: _this.handleMove,\n start: _this.handleStart\n };\n return _this;\n }\n\n _createClass(WithSortableContainer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n var useWindowAsScrollContainer = this.props.useWindowAsScrollContainer;\n var container = this.getContainer();\n Promise.resolve(container).then(function (containerNode) {\n _this2.container = containerNode;\n _this2.document = _this2.container.ownerDocument || document;\n var contentWindow = _this2.props.contentWindow || _this2.document.defaultView || window;\n _this2.contentWindow = typeof contentWindow === 'function' ? contentWindow() : contentWindow;\n _this2.scrollContainer = useWindowAsScrollContainer ? _this2.document.scrollingElement || _this2.document.documentElement : getScrollingParent(_this2.container) || _this2.container;\n _this2.autoScroller = new AutoScroller(_this2.scrollContainer, _this2.onAutoScroll);\n Object.keys(_this2.events).forEach(function (key) {\n return events[key].forEach(function (eventName) {\n return _this2.container.addEventListener(eventName, _this2.events[key], false);\n });\n });\n\n _this2.container.addEventListener('keydown', _this2.handleKeyDown);\n });\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var _this3 = this;\n\n if (this.helper && this.helper.parentNode) {\n this.helper.parentNode.removeChild(this.helper);\n }\n\n if (!this.container) {\n return;\n }\n\n Object.keys(this.events).forEach(function (key) {\n return events[key].forEach(function (eventName) {\n return _this3.container.removeEventListener(eventName, _this3.events[key]);\n });\n });\n this.container.removeEventListener('keydown', this.handleKeyDown);\n }\n }, {\n key: \"updateHelperPosition\",\n value: function updateHelperPosition(event) {\n var _this$props6 = this.props,\n lockAxis = _this$props6.lockAxis,\n lockOffset = _this$props6.lockOffset,\n lockToContainerEdges = _this$props6.lockToContainerEdges,\n transitionDuration = _this$props6.transitionDuration,\n _this$props6$keyboard = _this$props6.keyboardSortingTransitionDuration,\n keyboardSortingTransitionDuration = _this$props6$keyboard === void 0 ? transitionDuration : _this$props6$keyboard;\n var isKeySorting = this.manager.isKeySorting;\n var ignoreTransition = event.ignoreTransition;\n var offset = getPosition(event);\n var translate = {\n x: offset.x - this.initialOffset.x,\n y: offset.y - this.initialOffset.y\n };\n translate.y -= window.pageYOffset - this.initialWindowScroll.top;\n translate.x -= window.pageXOffset - this.initialWindowScroll.left;\n this.translate = translate;\n\n if (lockToContainerEdges) {\n var _getLockPixelOffsets = getLockPixelOffsets({\n height: this.height,\n lockOffset: lockOffset,\n width: this.width\n }),\n _getLockPixelOffsets2 = _slicedToArray(_getLockPixelOffsets, 2),\n minLockOffset = _getLockPixelOffsets2[0],\n maxLockOffset = _getLockPixelOffsets2[1];\n\n var minOffset = {\n x: this.width / 2 - minLockOffset.x,\n y: this.height / 2 - minLockOffset.y\n };\n var maxOffset = {\n x: this.width / 2 - maxLockOffset.x,\n y: this.height / 2 - maxLockOffset.y\n };\n translate.x = limit(this.minTranslate.x + minOffset.x, this.maxTranslate.x - maxOffset.x, translate.x);\n translate.y = limit(this.minTranslate.y + minOffset.y, this.maxTranslate.y - maxOffset.y, translate.y);\n }\n\n if (lockAxis === 'x') {\n translate.y = 0;\n } else if (lockAxis === 'y') {\n translate.x = 0;\n }\n\n if (isKeySorting && keyboardSortingTransitionDuration && !ignoreTransition) {\n setTransitionDuration(this.helper, keyboardSortingTransitionDuration);\n }\n\n setTranslate3d(this.helper, translate);\n }\n }, {\n key: \"animateNodes\",\n value: function animateNodes() {\n var _this$props7 = this.props,\n transitionDuration = _this$props7.transitionDuration,\n hideSortableGhost = _this$props7.hideSortableGhost,\n onSortOver = _this$props7.onSortOver;\n var containerScrollDelta = this.containerScrollDelta,\n windowScrollDelta = this.windowScrollDelta;\n var nodes = this.manager.getOrderedRefs();\n var sortingOffset = {\n left: this.offsetEdge.left + this.translate.x + containerScrollDelta.left,\n top: this.offsetEdge.top + this.translate.y + containerScrollDelta.top\n };\n var isKeySorting = this.manager.isKeySorting;\n var prevIndex = this.newIndex;\n this.newIndex = null;\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n var _node3 = nodes[i].node;\n var index = _node3.sortableInfo.index;\n var width = _node3.offsetWidth;\n var height = _node3.offsetHeight;\n var offset = {\n height: this.height > height ? height / 2 : this.height / 2,\n width: this.width > width ? width / 2 : this.width / 2\n };\n var mustShiftBackward = isKeySorting && index > this.index && index <= prevIndex;\n var mustShiftForward = isKeySorting && index < this.index && index >= prevIndex;\n var translate = {\n x: 0,\n y: 0\n };\n var edgeOffset = nodes[i].edgeOffset;\n\n if (!edgeOffset) {\n edgeOffset = getEdgeOffset(_node3, this.container);\n nodes[i].edgeOffset = edgeOffset;\n\n if (isKeySorting) {\n nodes[i].boundingClientRect = getScrollAdjustedBoundingClientRect(_node3, containerScrollDelta);\n }\n }\n\n var nextNode = i < nodes.length - 1 && nodes[i + 1];\n var prevNode = i > 0 && nodes[i - 1];\n\n if (nextNode && !nextNode.edgeOffset) {\n nextNode.edgeOffset = getEdgeOffset(nextNode.node, this.container);\n\n if (isKeySorting) {\n nextNode.boundingClientRect = getScrollAdjustedBoundingClientRect(nextNode.node, containerScrollDelta);\n }\n }\n\n if (index === this.index) {\n if (hideSortableGhost) {\n this.sortableGhost = _node3;\n setInlineStyles(_node3, {\n opacity: 0,\n visibility: 'hidden'\n });\n }\n\n continue;\n }\n\n if (transitionDuration) {\n setTransitionDuration(_node3, transitionDuration);\n }\n\n if (this.axis.x) {\n if (this.axis.y) {\n if (mustShiftForward || index < this.index && (sortingOffset.left + windowScrollDelta.left - offset.width <= edgeOffset.left && sortingOffset.top + windowScrollDelta.top <= edgeOffset.top + offset.height || sortingOffset.top + windowScrollDelta.top + offset.height <= edgeOffset.top)) {\n translate.x = this.width + this.marginOffset.x;\n\n if (edgeOffset.left + translate.x > this.containerBoundingRect.width - offset.width) {\n if (nextNode) {\n translate.x = nextNode.edgeOffset.left - edgeOffset.left;\n translate.y = nextNode.edgeOffset.top - edgeOffset.top;\n }\n }\n\n if (this.newIndex === null) {\n this.newIndex = index;\n }\n } else if (mustShiftBackward || index > this.index && (sortingOffset.left + windowScrollDelta.left + offset.width >= edgeOffset.left && sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top || sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top + height)) {\n translate.x = -(this.width + this.marginOffset.x);\n\n if (edgeOffset.left + translate.x < this.containerBoundingRect.left + offset.width) {\n if (prevNode) {\n translate.x = prevNode.edgeOffset.left - edgeOffset.left;\n translate.y = prevNode.edgeOffset.top - edgeOffset.top;\n }\n }\n\n this.newIndex = index;\n }\n } else {\n if (mustShiftBackward || index > this.index && sortingOffset.left + windowScrollDelta.left + offset.width >= edgeOffset.left) {\n translate.x = -(this.width + this.marginOffset.x);\n this.newIndex = index;\n } else if (mustShiftForward || index < this.index && sortingOffset.left + windowScrollDelta.left <= edgeOffset.left + offset.width) {\n translate.x = this.width + this.marginOffset.x;\n\n if (this.newIndex == null) {\n this.newIndex = index;\n }\n }\n }\n } else if (this.axis.y) {\n if (mustShiftBackward || index > this.index && sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top) {\n translate.y = -(this.height + this.marginOffset.y);\n this.newIndex = index;\n } else if (mustShiftForward || index < this.index && sortingOffset.top + windowScrollDelta.top <= edgeOffset.top + offset.height) {\n translate.y = this.height + this.marginOffset.y;\n\n if (this.newIndex == null) {\n this.newIndex = index;\n }\n }\n }\n\n setTranslate3d(_node3, translate);\n nodes[i].translate = translate;\n }\n\n if (this.newIndex == null) {\n this.newIndex = this.index;\n }\n\n if (isKeySorting) {\n this.newIndex = prevIndex;\n }\n\n var oldIndex = isKeySorting ? this.prevIndex : prevIndex;\n\n if (onSortOver && this.newIndex !== oldIndex) {\n onSortOver({\n collection: this.manager.active.collection,\n index: this.index,\n newIndex: this.newIndex,\n oldIndex: oldIndex,\n isKeySorting: isKeySorting,\n nodes: nodes,\n helper: this.helper\n });\n }\n }\n }, {\n key: \"getWrappedInstance\",\n value: function getWrappedInstance() {\n invariant(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableContainer() call');\n return this.wrappedInstance.current;\n }\n }, {\n key: \"getContainer\",\n value: function getContainer() {\n var getContainer = this.props.getContainer;\n\n if (typeof getContainer !== 'function') {\n return findDOMNode(this);\n }\n\n return getContainer(config.withRef ? this.getWrappedInstance() : undefined);\n }\n }, {\n key: \"render\",\n value: function render() {\n var ref = config.withRef ? this.wrappedInstance : null;\n return createElement(SortableContext.Provider, {\n value: this.sortableContextValue\n }, createElement(WrappedComponent, _extends({\n ref: ref\n }, omit(this.props, omittedProps))));\n }\n }, {\n key: \"helperContainer\",\n get: function get() {\n var helperContainer = this.props.helperContainer;\n\n if (typeof helperContainer === 'function') {\n return helperContainer();\n }\n\n return this.props.helperContainer || this.document.body;\n }\n }, {\n key: \"containerScrollDelta\",\n get: function get() {\n var useWindowAsScrollContainer = this.props.useWindowAsScrollContainer;\n\n if (useWindowAsScrollContainer) {\n return {\n left: 0,\n top: 0\n };\n }\n\n return {\n left: this.scrollContainer.scrollLeft - this.initialScroll.left,\n top: this.scrollContainer.scrollTop - this.initialScroll.top\n };\n }\n }, {\n key: \"windowScrollDelta\",\n get: function get() {\n return {\n left: this.contentWindow.pageXOffset - this.initialWindowScroll.left,\n top: this.contentWindow.pageYOffset - this.initialWindowScroll.top\n };\n }\n }]);\n\n return WithSortableContainer;\n }(Component), _defineProperty(_class, \"displayName\", provideDisplayName('sortableList', WrappedComponent)), _defineProperty(_class, \"defaultProps\", defaultProps), _defineProperty(_class, \"propTypes\", propTypes), _temp;\n}\n\nvar propTypes$1 = {\n index: PropTypes.number.isRequired,\n collection: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n disabled: PropTypes.bool\n};\nvar omittedProps$1 = Object.keys(propTypes$1);\nfunction sortableElement(WrappedComponent) {\n var _class, _temp;\n\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n withRef: false\n };\n return _temp = _class = function (_React$Component) {\n _inherits(WithSortableElement, _React$Component);\n\n function WithSortableElement() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, WithSortableElement);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(WithSortableElement)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"wrappedInstance\", createRef());\n\n return _this;\n }\n\n _createClass(WithSortableElement, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.register();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.node) {\n if (prevProps.index !== this.props.index) {\n this.node.sortableInfo.index = this.props.index;\n }\n\n if (prevProps.disabled !== this.props.disabled) {\n this.node.sortableInfo.disabled = this.props.disabled;\n }\n }\n\n if (prevProps.collection !== this.props.collection) {\n this.unregister(prevProps.collection);\n this.register();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unregister();\n }\n }, {\n key: \"register\",\n value: function register() {\n var _this$props = this.props,\n collection = _this$props.collection,\n disabled = _this$props.disabled,\n index = _this$props.index;\n var node = findDOMNode(this);\n node.sortableInfo = {\n collection: collection,\n disabled: disabled,\n index: index,\n manager: this.context.manager\n };\n this.node = node;\n this.ref = {\n node: node\n };\n this.context.manager.add(collection, this.ref);\n }\n }, {\n key: \"unregister\",\n value: function unregister() {\n var collection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.collection;\n this.context.manager.remove(collection, this.ref);\n }\n }, {\n key: \"getWrappedInstance\",\n value: function getWrappedInstance() {\n invariant(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableElement() call');\n return this.wrappedInstance.current;\n }\n }, {\n key: \"render\",\n value: function render() {\n var ref = config.withRef ? this.wrappedInstance : null;\n return createElement(WrappedComponent, _extends({\n ref: ref\n }, omit(this.props, omittedProps$1)));\n }\n }]);\n\n return WithSortableElement;\n }(Component), _defineProperty(_class, \"displayName\", provideDisplayName('sortableElement', WrappedComponent)), _defineProperty(_class, \"contextType\", SortableContext), _defineProperty(_class, \"propTypes\", propTypes$1), _defineProperty(_class, \"defaultProps\", {\n collection: 0\n }), _temp;\n}\n\nexport { sortableContainer as SortableContainer, sortableContainer, sortableElement as SortableElement, sortableElement, sortableHandle as SortableHandle, sortableHandle, arrayMove };\n", "import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };", "function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };", "function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };", "import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };", "import { useState, useMemo, useCallback, useEffect } from 'react';\nimport autoAnimate from '../index.mjs';\n\n/**\n * AutoAnimate hook for adding dead-simple transitions and animations to react.\n * @param options - Auto animate options or a plugin\n * @returns\n */\nfunction useAutoAnimate(options) {\n const [controller, setController] = useState();\n const memoizedOptions = useMemo(() => options, []);\n const element = useCallback((node) => {\n if (node instanceof HTMLElement) {\n setController(autoAnimate(node, memoizedOptions));\n }\n else {\n setController(undefined);\n }\n }, [memoizedOptions]);\n const setEnabled = useCallback((enabled) => {\n if (controller) {\n enabled ? controller.enable() : controller.disable();\n }\n }, [controller]);\n useEffect(() => {\n return () => {\n var _a;\n (_a = controller === null || controller === void 0 ? void 0 : controller.destroy) === null || _a === void 0 ? void 0 : _a.call(controller);\n };\n }, [controller]);\n return [element, setEnabled];\n}\n\nexport { useAutoAnimate };\n", "/**\n * A set of all the parents currently being observe. This is the only non weak\n * registry.\n */\nconst parents = new Set();\n/**\n * Element coordinates that is constantly kept up to date.\n */\nconst coords = new WeakMap();\n/**\n * Siblings of elements that have been removed from the dom.\n */\nconst siblings = new WeakMap();\n/**\n * Animations that are currently running.\n */\nconst animations = new WeakMap();\n/**\n * A map of existing intersection observers used to track element movements.\n */\nconst intersections = new WeakMap();\n/**\n * A map of existing mutation observers used to track element movements.\n */\nconst mutationObservers = new WeakMap();\n/**\n * Intervals for automatically checking the position of elements occasionally.\n */\nconst intervals = new WeakMap();\n/**\n * The configuration options for each group of elements.\n */\nconst options = new WeakMap();\n/**\n * Debounce counters by id, used to debounce calls to update positions.\n */\nconst debounces = new WeakMap();\n/**\n * All parents that are currently enabled are tracked here.\n */\nconst enabled = new WeakSet();\n/**\n * The document used to calculate transitions.\n */\nlet root;\n/**\n * The root\u2019s XY scroll positions.\n */\nlet scrollX = 0;\nlet scrollY = 0;\n/**\n * Used to sign an element as the target.\n */\nconst TGT = \"__aa_tgt\";\n/**\n * Used to sign an element as being part of a removal.\n */\nconst DEL = \"__aa_del\";\n/**\n * Used to sign an element as being \"new\". When an element is removed from the\n * dom, but may cycle back in we can sign it with new to ensure the next time\n * it is recognized we consider it new.\n */\nconst NEW = \"__aa_new\";\n/**\n * Callback for handling all mutations.\n * @param mutations - A mutation list\n */\nconst handleMutations = (mutations) => {\n const elements = getElements(mutations);\n // If elements is \"false\" that means this mutation that should be ignored.\n if (elements) {\n elements.forEach((el) => animate(el));\n }\n};\n/**\n *\n * @param entries - Elements that have been resized.\n */\nconst handleResizes = (entries) => {\n entries.forEach((entry) => {\n if (entry.target === root)\n updateAllPos();\n if (coords.has(entry.target))\n updatePos(entry.target);\n });\n};\n/**\n * Determine if an element is fully outside of the current viewport.\n * @param el - Element to test\n */\nfunction isOffscreen(el) {\n const rect = el.getBoundingClientRect();\n const vw = (root === null || root === void 0 ? void 0 : root.clientWidth) || 0;\n const vh = (root === null || root === void 0 ? void 0 : root.clientHeight) || 0;\n return rect.bottom < 0 || rect.top > vh || rect.right < 0 || rect.left > vw;\n}\n/**\n * Observe this elements position.\n * @param el - The element to observe the position of.\n */\nfunction observePosition(el) {\n const oldObserver = intersections.get(el);\n oldObserver === null || oldObserver === void 0 ? void 0 : oldObserver.disconnect();\n let rect = coords.get(el);\n let invocations = 0;\n const buffer = 5;\n if (!rect) {\n rect = getCoords(el);\n coords.set(el, rect);\n }\n const { offsetWidth, offsetHeight } = root;\n const rootMargins = [\n rect.top - buffer,\n offsetWidth - (rect.left + buffer + rect.width),\n offsetHeight - (rect.top + buffer + rect.height),\n rect.left - buffer,\n ];\n const rootMargin = rootMargins\n .map((px) => `${ -1 * Math.floor(px)}px`)\n .join(\" \");\n const observer = new IntersectionObserver(() => {\n ++invocations > 1 && updatePos(el);\n }, {\n root,\n threshold: 1,\n rootMargin,\n });\n observer.observe(el);\n intersections.set(el, observer);\n}\n/**\n * Update the exact position of a given element.\n * @param el - An element to update the position of.\n * @param debounce - Whether or not to debounce the update. After an animation is finished, it should update as soon as possible to prevent flickering on quick toggles.\n */\nfunction updatePos(el, debounce = true) {\n clearTimeout(debounces.get(el));\n const optionsOrPlugin = getOptions(el);\n const delay = debounce\n ? isPlugin(optionsOrPlugin)\n ? 500\n : optionsOrPlugin.duration\n : 0;\n debounces.set(el, setTimeout(async () => {\n const currentAnimation = animations.get(el);\n try {\n await (currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.finished);\n coords.set(el, getCoords(el));\n observePosition(el);\n }\n catch {\n // ignore errors as the `.finished` promise is rejected when animations were cancelled\n }\n }, delay));\n}\n/**\n * Updates all positions that are currently being tracked.\n */\nfunction updateAllPos() {\n clearTimeout(debounces.get(root));\n debounces.set(root, setTimeout(() => {\n parents.forEach((parent) => forEach(parent, (el) => lowPriority(() => updatePos(el))));\n }, 100));\n}\n/**\n * Its possible for a quick scroll or other fast events to get past the\n * intersection observer, so occasionally we need want \"cold-poll\" for the\n * latests and greatest position. We try to do this in the most non-disruptive\n * fashion possible. First we only do this ever couple seconds, staggard by a\n * random offset.\n * @param el - Element\n */\nfunction poll(el) {\n setTimeout(() => {\n intervals.set(el, setInterval(() => lowPriority(updatePos.bind(null, el)), 2000));\n }, Math.round(2000 * Math.random()));\n}\n/**\n * Perform some operation that is non critical at some point.\n * @param callback\n */\nfunction lowPriority(callback) {\n if (typeof requestIdleCallback === \"function\") {\n requestIdleCallback(() => callback());\n }\n else {\n requestAnimationFrame(() => callback());\n }\n}\n/**\n * A resize observer, responsible for recalculating elements on resize.\n */\nlet resize;\n/**\n * Ensure the browser is supported.\n */\nconst supportedBrowser = typeof window !== \"undefined\" && \"ResizeObserver\" in window;\n/**\n * If this is in a browser, initialize our Web APIs\n */\nif (supportedBrowser) {\n root = document.documentElement;\n new MutationObserver(handleMutations);\n resize = new ResizeObserver(handleResizes);\n window.addEventListener(\"scroll\", () => {\n scrollY = window.scrollY;\n scrollX = window.scrollX;\n });\n resize.observe(root);\n}\n/**\n * Retrieves all the elements that may have been affected by the last mutation\n * including ones that have been removed and are no longer in the DOM.\n * @param mutations - A mutation list.\n * @returns\n */\nfunction getElements(mutations) {\n const observedNodes = mutations.reduce((nodes, mutation) => {\n return [\n ...nodes,\n ...Array.from(mutation.addedNodes),\n ...Array.from(mutation.removedNodes),\n ];\n }, []);\n // Short circuit if _only_ comment nodes are observed\n const onlyCommentNodesObserved = observedNodes.every((node) => node.nodeName === \"#comment\");\n if (onlyCommentNodesObserved)\n return false;\n return mutations.reduce((elements, mutation) => {\n // Short circuit if we find a purposefully deleted node.\n if (elements === false)\n return false;\n if (mutation.target instanceof Element) {\n target(mutation.target);\n if (!elements.has(mutation.target)) {\n elements.add(mutation.target);\n for (let i = 0; i < mutation.target.children.length; i++) {\n const child = mutation.target.children.item(i);\n if (!child)\n continue;\n if (DEL in child) {\n return false;\n }\n target(mutation.target, child);\n elements.add(child);\n }\n }\n if (mutation.removedNodes.length) {\n for (let i = 0; i < mutation.removedNodes.length; i++) {\n const child = mutation.removedNodes[i];\n if (DEL in child) {\n return false;\n }\n if (child instanceof Element) {\n elements.add(child);\n target(mutation.target, child);\n siblings.set(child, [\n mutation.previousSibling,\n mutation.nextSibling,\n ]);\n }\n }\n }\n }\n return elements;\n }, new Set());\n}\n/**\n * Assign the target to an element.\n * @param el - The root element\n * @param child\n */\nfunction target(el, child) {\n if (!child && !(TGT in el))\n Object.defineProperty(el, TGT, { value: el });\n else if (child && !(TGT in child))\n Object.defineProperty(child, TGT, { value: el });\n}\n/**\n * Determines what kind of change took place on the given element and then\n * performs the proper animation based on that.\n * @param el - The specific element to animate.\n */\nfunction animate(el) {\n var _a, _b;\n const isMounted = el.isConnected;\n const preExisting = coords.has(el);\n if (isMounted && siblings.has(el))\n siblings.delete(el);\n if (((_a = animations.get(el)) === null || _a === void 0 ? void 0 : _a.playState) !== \"finished\") {\n (_b = animations.get(el)) === null || _b === void 0 ? void 0 : _b.cancel();\n }\n if (NEW in el) {\n add(el);\n }\n else if (preExisting && isMounted) {\n remain(el);\n }\n else if (preExisting && !isMounted) {\n remove(el);\n }\n else {\n add(el);\n }\n}\n/**\n * Removes all non-digits from a string and casts to a number.\n * @param str - A string containing a pixel value.\n * @returns\n */\nfunction raw(str) {\n return Number(str.replace(/[^0-9.\\-]/g, \"\"));\n}\n/**\n * Get the scroll offset of elements\n * @param el - Element\n * @returns\n */\nfunction getScrollOffset(el) {\n let p = el.parentElement;\n while (p) {\n if (p.scrollLeft || p.scrollTop) {\n return { x: p.scrollLeft, y: p.scrollTop };\n }\n p = p.parentElement;\n }\n return { x: 0, y: 0 };\n}\n/**\n * Get the coordinates of elements adjusted for scroll position.\n * @param el - Element\n * @returns\n */\nfunction getCoords(el) {\n const rect = el.getBoundingClientRect();\n const { x, y } = getScrollOffset(el);\n return {\n top: rect.top + y,\n left: rect.left + x,\n width: rect.width,\n height: rect.height,\n };\n}\n/**\n * Returns the width/height that the element should be transitioned between.\n * This takes into account box-sizing.\n * @param el - Element being animated\n * @param oldCoords - Old set of Coordinates coordinates\n * @param newCoords - New set of Coordinates coordinates\n * @returns\n */\nfunction getTransitionSizes(el, oldCoords, newCoords) {\n let widthFrom = oldCoords.width;\n let heightFrom = oldCoords.height;\n let widthTo = newCoords.width;\n let heightTo = newCoords.height;\n const styles = getComputedStyle(el);\n const sizing = styles.getPropertyValue(\"box-sizing\");\n if (sizing === \"content-box\") {\n const paddingY = raw(styles.paddingTop) +\n raw(styles.paddingBottom) +\n raw(styles.borderTopWidth) +\n raw(styles.borderBottomWidth);\n const paddingX = raw(styles.paddingLeft) +\n raw(styles.paddingRight) +\n raw(styles.borderRightWidth) +\n raw(styles.borderLeftWidth);\n widthFrom -= paddingX;\n widthTo -= paddingX;\n heightFrom -= paddingY;\n heightTo -= paddingY;\n }\n return [widthFrom, widthTo, heightFrom, heightTo].map(Math.round);\n}\n/**\n * Retrieves animation options for the current element.\n * @param el - Element to retrieve options for.\n * @returns\n */\nfunction getOptions(el) {\n return TGT in el && options.has(el[TGT])\n ? options.get(el[TGT])\n : { duration: 250, easing: \"ease-in-out\" };\n}\n/**\n * Returns the target of a given animation (generally the parent).\n * @param el - An element to check for a target\n * @returns\n */\nfunction getTarget(el) {\n if (TGT in el)\n return el[TGT];\n return undefined;\n}\n/**\n * Checks if animations are enabled or disabled for a given element.\n * @param el - Any element\n * @returns\n */\nfunction isEnabled(el) {\n const target = getTarget(el);\n return target ? enabled.has(target) : false;\n}\n/**\n * Iterate over the children of a given parent.\n * @param parent - A parent element\n * @param callback - A callback\n */\nfunction forEach(parent, ...callbacks) {\n callbacks.forEach((callback) => callback(parent, options.has(parent)));\n for (let i = 0; i < parent.children.length; i++) {\n const child = parent.children.item(i);\n if (child) {\n callbacks.forEach((callback) => callback(child, options.has(child)));\n }\n }\n}\n/**\n * Always return tuple to provide consistent interface\n */\nfunction getPluginTuple(pluginReturn) {\n if (Array.isArray(pluginReturn))\n return pluginReturn;\n return [pluginReturn];\n}\n/**\n * Determine if config is plugin\n */\nfunction isPlugin(config) {\n return typeof config === \"function\";\n}\n/**\n * The element in question is remaining in the DOM.\n * @param el - Element to flip\n * @returns\n */\nfunction remain(el) {\n const oldCoords = coords.get(el);\n const newCoords = getCoords(el);\n if (!isEnabled(el))\n return coords.set(el, newCoords);\n if (isOffscreen(el)) {\n // When element is offscreen, skip FLIP to avoid broken transforms\n coords.set(el, newCoords);\n observePosition(el);\n return;\n }\n let animation;\n if (!oldCoords)\n return;\n const pluginOrOptions = getOptions(el);\n if (typeof pluginOrOptions !== \"function\") {\n let deltaLeft = oldCoords.left - newCoords.left;\n let deltaTop = oldCoords.top - newCoords.top;\n const deltaRight = oldCoords.left + oldCoords.width - (newCoords.left + newCoords.width);\n const deltaBottom = oldCoords.top + oldCoords.height - (newCoords.top + newCoords.height);\n // element is probably anchored and doesn't need to be offset\n if (deltaBottom == 0)\n deltaTop = 0;\n if (deltaRight == 0)\n deltaLeft = 0;\n const [widthFrom, widthTo, heightFrom, heightTo] = getTransitionSizes(el, oldCoords, newCoords);\n const start = {\n transform: `translate(${deltaLeft}px, ${deltaTop}px)`,\n };\n const end = {\n transform: `translate(0, 0)`,\n };\n if (widthFrom !== widthTo) {\n start.width = `${widthFrom}px`;\n end.width = `${widthTo}px`;\n }\n if (heightFrom !== heightTo) {\n start.height = `${heightFrom}px`;\n end.height = `${heightTo}px`;\n }\n animation = el.animate([start, end], {\n duration: pluginOrOptions.duration,\n easing: pluginOrOptions.easing,\n });\n }\n else {\n const [keyframes] = getPluginTuple(pluginOrOptions(el, \"remain\", oldCoords, newCoords));\n animation = new Animation(keyframes);\n animation.play();\n }\n animations.set(el, animation);\n coords.set(el, newCoords);\n animation.addEventListener(\"finish\", updatePos.bind(null, el, false), {\n once: true,\n });\n}\n/**\n * Adds the element with a transition.\n * @param el - Animates the element being added.\n */\nfunction add(el) {\n if (NEW in el)\n delete el[NEW];\n const newCoords = getCoords(el);\n coords.set(el, newCoords);\n const pluginOrOptions = getOptions(el);\n if (!isEnabled(el))\n return;\n if (isOffscreen(el)) {\n // Skip entry animation if element is not visible in viewport\n observePosition(el);\n return;\n }\n let animation;\n if (typeof pluginOrOptions !== \"function\") {\n animation = el.animate([\n { transform: \"scale(.98)\", opacity: 0 },\n { transform: \"scale(0.98)\", opacity: 0, offset: 0.5 },\n { transform: \"scale(1)\", opacity: 1 },\n ], {\n duration: pluginOrOptions.duration * 1.5,\n easing: \"ease-in\",\n });\n }\n else {\n const [keyframes] = getPluginTuple(pluginOrOptions(el, \"add\", newCoords));\n animation = new Animation(keyframes);\n animation.play();\n }\n animations.set(el, animation);\n animation.addEventListener(\"finish\", updatePos.bind(null, el, false), {\n once: true,\n });\n}\n/**\n * Clean up after removing an element from the dom.\n * @param el - Element being removed\n * @param styles - Optional styles that should be removed from the element.\n */\nfunction cleanUp(el, styles) {\n var _a;\n el.remove();\n coords.delete(el);\n siblings.delete(el);\n animations.delete(el);\n (_a = intersections.get(el)) === null || _a === void 0 ? void 0 : _a.disconnect();\n setTimeout(() => {\n if (DEL in el)\n delete el[DEL];\n Object.defineProperty(el, NEW, { value: true, configurable: true });\n if (styles && el instanceof HTMLElement) {\n for (const style in styles) {\n el.style[style] = \"\";\n }\n }\n }, 0);\n}\n/**\n * Animates the removal of an element.\n * @param el - Element to remove\n */\nfunction remove(el) {\n var _a;\n if (!siblings.has(el) || !coords.has(el))\n return;\n const [prev, next] = siblings.get(el);\n Object.defineProperty(el, DEL, { value: true, configurable: true });\n const finalX = window.scrollX;\n const finalY = window.scrollY;\n if (next &&\n next.parentNode &&\n next.parentNode instanceof Element) {\n next.parentNode.insertBefore(el, next);\n }\n else if (prev && prev.parentNode) {\n prev.parentNode.appendChild(el);\n }\n else {\n (_a = getTarget(el)) === null || _a === void 0 ? void 0 : _a.appendChild(el);\n }\n if (!isEnabled(el))\n return cleanUp(el);\n const [top, left, width, height] = deletePosition(el);\n const optionsOrPlugin = getOptions(el);\n const oldCoords = coords.get(el);\n if (finalX !== scrollX || finalY !== scrollY) {\n adjustScroll(el, finalX, finalY, optionsOrPlugin);\n }\n let animation;\n let styleReset = {\n position: \"absolute\",\n top: `${top}px`,\n left: `${left}px`,\n width: `${width}px`,\n height: `${height}px`,\n margin: \"0\",\n pointerEvents: \"none\",\n transformOrigin: \"center\",\n zIndex: \"100\",\n };\n if (!isPlugin(optionsOrPlugin)) {\n Object.assign(el.style, styleReset);\n animation = el.animate([\n {\n transform: \"scale(1)\",\n opacity: 1,\n },\n {\n transform: \"scale(.98)\",\n opacity: 0,\n },\n ], {\n duration: optionsOrPlugin.duration,\n easing: \"ease-out\",\n });\n }\n else {\n const [keyframes, options] = getPluginTuple(optionsOrPlugin(el, \"remove\", oldCoords));\n if ((options === null || options === void 0 ? void 0 : options.styleReset) !== false) {\n styleReset =\n (options === null || options === void 0 ? void 0 : options.styleReset) ||\n styleReset;\n Object.assign(el.style, styleReset);\n }\n animation = new Animation(keyframes);\n animation.play();\n }\n animations.set(el, animation);\n animation.addEventListener(\"finish\", () => cleanUp(el, styleReset), {\n once: true,\n });\n}\n/**\n * If the element being removed is at the very bottom of the page, and the\n * the page was scrolled into a space being \"made available\" by the element\n * that was removed, the page scroll will have jumped up some amount. We need\n * to offset the jump by the amount that the page was \"automatically\" scrolled\n * up. We can do this by comparing the scroll position before and after the\n * element was removed, and then offsetting by that amount.\n *\n * @param el - The element being deleted\n * @param finalX - The final X scroll position\n * @param finalY - The final Y scroll position\n * @param optionsOrPlugin - The options or plugin\n * @returns\n */\nfunction adjustScroll(el, finalX, finalY, optionsOrPlugin) {\n const scrollDeltaX = scrollX - finalX;\n const scrollDeltaY = scrollY - finalY;\n const scrollBefore = document.documentElement.style.scrollBehavior;\n const scrollBehavior = getComputedStyle(root).scrollBehavior;\n if (scrollBehavior === \"smooth\") {\n document.documentElement.style.scrollBehavior = \"auto\";\n }\n window.scrollTo(window.scrollX + scrollDeltaX, window.scrollY + scrollDeltaY);\n if (!el.parentElement)\n return;\n const parent = el.parentElement;\n let lastHeight = parent.clientHeight;\n let lastWidth = parent.clientWidth;\n const startScroll = performance.now();\n // Here we use a manual scroll animation to keep the element using the same\n // easing and timing as the parent\u2019s scroll animation.\n function smoothScroll() {\n requestAnimationFrame(() => {\n if (!isPlugin(optionsOrPlugin)) {\n const deltaY = lastHeight - parent.clientHeight;\n const deltaX = lastWidth - parent.clientWidth;\n if (startScroll + optionsOrPlugin.duration >\n performance.now()) {\n window.scrollTo({\n left: window.scrollX - deltaX,\n top: window.scrollY - deltaY,\n });\n lastHeight = parent.clientHeight;\n lastWidth = parent.clientWidth;\n smoothScroll();\n }\n else {\n document.documentElement.style.scrollBehavior = scrollBefore;\n }\n }\n });\n }\n smoothScroll();\n}\n/**\n * Determines the position of the element being removed.\n * @param el - The element being deleted\n * @returns\n */\nfunction deletePosition(el) {\n var _a;\n const oldCoords = coords.get(el);\n const [width, , height] = getTransitionSizes(el, oldCoords, getCoords(el));\n let offsetParent = el.parentElement;\n while (offsetParent &&\n (getComputedStyle(offsetParent).position === \"static\" ||\n offsetParent instanceof HTMLBodyElement)) {\n offsetParent = offsetParent.parentElement;\n }\n if (!offsetParent)\n offsetParent = document.body;\n const parentStyles = getComputedStyle(offsetParent);\n const parentCoords = !animations.has(el) || ((_a = animations.get(el)) === null || _a === void 0 ? void 0 : _a.playState) === \"finished\"\n ? getCoords(offsetParent)\n : coords.get(offsetParent);\n const top = Math.round(oldCoords.top - parentCoords.top) -\n raw(parentStyles.borderTopWidth);\n const left = Math.round(oldCoords.left - parentCoords.left) -\n raw(parentStyles.borderLeftWidth);\n return [top, left, width, height];\n}\n/**\n * A function that automatically adds animation effects to itself and its\n * immediate children. Specifically it adds effects for adding, moving, and\n * removing DOM elements.\n * @param el - A parent element to add animations to.\n * @param options - An optional object of options.\n */\nfunction autoAnimate(el, config = {}) {\n if (supportedBrowser && resize) {\n const mediaQuery = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n const isDisabledDueToReduceMotion = mediaQuery.matches &&\n !isPlugin(config) &&\n !config.disrespectUserMotionPreference;\n if (!isDisabledDueToReduceMotion) {\n enabled.add(el);\n if (getComputedStyle(el).position === \"static\") {\n Object.assign(el.style, { position: \"relative\" });\n }\n forEach(el, updatePos, poll, (element) => resize === null || resize === void 0 ? void 0 : resize.observe(element));\n if (isPlugin(config)) {\n options.set(el, config);\n }\n else {\n options.set(el, {\n duration: 250,\n easing: \"ease-in-out\",\n ...config,\n });\n }\n const mo = new MutationObserver(handleMutations);\n mo.observe(el, { childList: true });\n mutationObservers.set(el, mo);\n parents.add(el);\n }\n }\n const controller = Object.freeze({\n parent: el,\n enable: () => {\n enabled.add(el);\n },\n disable: () => {\n enabled.delete(el);\n // Cancel any in-flight animations and pending timers for immediate effect\n forEach(el, (node) => {\n const a = animations.get(node);\n try {\n a === null || a === void 0 ? void 0 : a.cancel();\n }\n catch { }\n animations.delete(node);\n const d = debounces.get(node);\n if (d)\n clearTimeout(d);\n debounces.delete(node);\n const i = intervals.get(node);\n if (i)\n clearInterval(i);\n intervals.delete(node);\n });\n },\n isEnabled: () => enabled.has(el),\n destroy: () => {\n enabled.delete(el);\n parents.delete(el);\n options.delete(el);\n const mo = mutationObservers.get(el);\n mo === null || mo === void 0 ? void 0 : mo.disconnect();\n mutationObservers.delete(el);\n forEach(el, (node) => {\n // unobserve resize\n resize === null || resize === void 0 ? void 0 : resize.unobserve(node);\n // cancel animations\n const a = animations.get(node);\n try {\n a === null || a === void 0 ? void 0 : a.cancel();\n }\n catch { }\n animations.delete(node);\n // disconnect observers\n const io = intersections.get(node);\n io === null || io === void 0 ? void 0 : io.disconnect();\n intersections.delete(node);\n // clear intervals and debounces\n const i = intervals.get(node);\n if (i)\n clearInterval(i);\n intervals.delete(node);\n const d = debounces.get(node);\n if (d)\n clearTimeout(d);\n debounces.delete(node);\n // clear state\n coords.delete(node);\n siblings.delete(node);\n });\n },\n });\n return controller;\n}\n/**\n * The vue directive.\n */\nconst vAutoAnimate = {\n mounted: (el, binding) => {\n const ctl = autoAnimate(el, binding.value || {});\n Object.defineProperty(el, \"__aa_ctl\", { value: ctl, configurable: true });\n },\n unmounted: (el) => {\n var _a;\n const ctl = el[\"__aa_ctl\"];\n (_a = ctl === null || ctl === void 0 ? void 0 : ctl.destroy) === null || _a === void 0 ? void 0 : _a.call(ctl);\n try {\n delete el[\"__aa_ctl\"];\n }\n catch { }\n },\n getSSRProps: () => ({}),\n};\n\nexport { autoAnimate, autoAnimate as default, getTransitionSizes, vAutoAnimate };\n", "export function arrayMoveMutable(array, fromIndex, toIndex) {\n\tconst startIndex = fromIndex < 0 ? array.length + fromIndex : fromIndex;\n\n\tif (startIndex >= 0 && startIndex < array.length) {\n\t\tconst endIndex = toIndex < 0 ? array.length + toIndex : toIndex;\n\n\t\tconst [item] = array.splice(fromIndex, 1);\n\t\tarray.splice(endIndex, 0, item);\n\t}\n}\n\nexport function arrayMoveImmutable(array, fromIndex, toIndex) {\n\tarray = [...array];\n\tarrayMoveMutable(array, fromIndex, toIndex);\n\treturn array;\n}\n", "import \"css-modules://qg-7cSo2cnCZj6cot-j0Zgtx5xZ06hmAjIpqy8iLdo8.css\"\nexport default {\"simpleWrapper\":\"mireo91-repeatablefields-xY17aG-simpleWrapper\",\"simpleWrapperOneButton\":\"mireo91-repeatablefields-xY17aG-simpleWrapperOneButton\",\"move\":\"mireo91-repeatablefields-xY17aG-move\",\"property\":\"mireo91-repeatablefields-xY17aG-property\",\"group\":\"mireo91-repeatablefields-xY17aG-group\",\"wrapper\":\"mireo91-repeatablefields-xY17aG-wrapper\",\"delete\":\"mireo91-repeatablefields-xY17aG-delete\",\"noSelect\":\"mireo91-repeatablefields-xY17aG-noSelect\",\"simpleButtons\":\"mireo91-repeatablefields-xY17aG-simpleButtons\",\"buttons\":\"mireo91-repeatablefields-xY17aG-buttons\",\"preview\":\"mireo91-repeatablefields-xY17aG-preview\",\"label\":\"mireo91-repeatablefields-xY17aG-label\",\"simpleWrapperTwoButtons\":\"mireo91-repeatablefields-xY17aG-simpleWrapperTwoButtons\",}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIiJdLCJtYXBwaW5ncyI6IkEifQ==", "import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { neos } from \"@neos-project/neos-ui-decorators\";\n\nconst EditorEnvelope = window[\"@Neos:HostPluginAPI\"][\"@NeosProjectPackages\"]().NeosUiEditors.EditorEnvelope;\n\nfunction Envelope({ commit, editorId, editorOptions, id, ...props }) {\n function commitEnvelope(event, hook) {\n const { property, hooksRegistry } = props;\n if (hook) {\n Object.keys(hook).map((h) => {\n const hookPromise = hooksRegistry.get(h);\n hookPromise(event, hook[h]).then((json) => {\n const value = (({ __type, ...rest }) => rest)(json);\n commit(id, property, value);\n });\n });\n return;\n }\n commit(id, property, event);\n }\n return ;\n}\n\nEnvelope.propTypes = {\n identifier: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n options: PropTypes.object,\n value: PropTypes.any,\n renderSecondaryInspector: PropTypes.func,\n editor: PropTypes.string.isRequired,\n editorRegistry: PropTypes.object.isRequired,\n i18nRegistry: PropTypes.object.isRequired,\n validationErrors: PropTypes.array,\n onEnterKey: PropTypes.func,\n helpMessage: PropTypes.string,\n helpThumbnail: PropTypes.string,\n highlight: PropTypes.bool,\n property: PropTypes.string.isRequired,\n id: PropTypes.number.isRequired,\n\n commit: PropTypes.func.isRequired,\n};\n\nconst neosifier = neos((globalRegistry) => ({\n hooksRegistry: globalRegistry.get(\"inspector\").get(\"saveHooks\"),\n}));\nexport default neosifier(Envelope);\n", "import React, { useEffect, useState } from \"react\";\nimport backend from \"@neos-project/neos-ui-backend-connector\";\nimport style from \"./style.module.css\";\n\nlet loadImageMetadata = null;\n\nexport default function Preview({ text, image }) {\n const [src, setSrc] = useState();\n const [thumbnailStyles, setThumbnailStyles] = useState({});\n const [cropAreaStyles, setCropAreaStyles] = useState({});\n\n useEffect(() => {\n if (!image) {\n return;\n }\n\n if (typeof image === \"string\") {\n setSrc(image);\n return;\n }\n\n if (!image?.__identity) {\n return;\n }\n\n const fn = async () => {\n if (!loadImageMetadata) {\n loadImageMetadata = await backend.get().endpoints.loadImageMetadata;\n }\n const metadata = await loadImageMetadata(image?.__identity);\n\n if (metadata?.previewImageResourceUri) {\n const adjustments =\n metadata?.object?.adjustments?.[\"Neos\\\\Media\\\\Domain\\\\Model\\\\Adjustment\\\\CropImageAdjustment\"] ||\n null;\n const { thumbnail, cropArea } = getStyles(\n metadata?.previewDimensions,\n metadata?.originalDimensions,\n adjustments,\n );\n setThumbnailStyles(thumbnail);\n setCropAreaStyles(cropArea);\n setSrc(metadata.previewImageResourceUri);\n }\n };\n fn();\n }, [image]);\n\n const cleanText = cleanHtml(text || \"\");\n\n if (src) {\n return (\n
\n
\n \n
\n
\n );\n }\n\n if (cleanText) {\n return {cleanText};\n }\n\n return null;\n}\n\nfunction cleanHtml(html) {\n const div = document.createElement(\"div\");\n div.innerHTML = html;\n return div.textContent || div.innerText || \"\";\n}\n\nfunction getStyles(previewDimensions, originalDimensions, adjustments) {\n const max = {\n height: 40,\n width: 129,\n };\n\n const previewAdjustments = (() => {\n if (!adjustments?.height) {\n return null;\n }\n const factor = originalDimensions.height / previewDimensions.height;\n return {\n height: adjustments.height / factor,\n width: adjustments?.width / factor,\n x: adjustments?.x / factor,\n y: adjustments?.y / factor,\n };\n })();\n\n const scalingFactor = (() => {\n const byHeight = max.height / (previewAdjustments?.height || previewDimensions.height);\n const byWidth = max.width / (previewAdjustments?.width || previewDimensions.width);\n return Math.min(byHeight, byWidth);\n })();\n\n const dimensions = {\n width: previewDimensions.width * scalingFactor,\n height: previewDimensions.height * scalingFactor,\n };\n\n const cropDimensions = {\n width: (previewAdjustments?.width || previewDimensions.width) * scalingFactor,\n height: (previewAdjustments?.height || previewDimensions.height) * scalingFactor,\n };\n\n const x = previewAdjustments?.x || 0;\n const y = previewAdjustments?.y || 0;\n\n return {\n thumbnail: {\n width: `${dimensions.width}px`,\n height: `${dimensions.height}px`,\n left: `-${x * scalingFactor}px`,\n top: `-${y * scalingFactor}px`,\n },\n cropArea: {\n width: `${cropDimensions.width}px`,\n height: `${cropDimensions.height}px`,\n },\n };\n}\n", "export function set(path, value, object) {\n path = getPath(path);\n return recursivelySetValueInObject(object, value, path);\n}\n\nexport const clone = (input) => JSON.parse(JSON.stringify(input));\n\nexport const isSame = (a, b) => JSON.stringify(a) == JSON.stringify(b);\n\nexport function isNumeric(str) {\n if (typeof str == \"number\") {\n return true;\n }\n if (typeof str != \"string\") {\n return false;\n }\n // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this) and ensure strings of whitespace fail\n return !isNaN(str) && !isNaN(parseFloat(str));\n}\n\nexport function ClientEvalIsNotFinished(input) {\n if (!input) {\n return false;\n }\n if (typeof input == \"string\") {\n return input.includes(\"ClientEval:\");\n }\n\n if (Array.isArray(input)) {\n return input.some((value) => ClientEvalIsNotFinished(value));\n }\n if (isObject(input)) {\n return ClientEvalIsNotFinished(Object.values(input));\n }\n return false;\n}\n\nexport function ItemEvalRecursive(input, item, node, parentNode, documentNode) {\n if (typeof input === \"string\") {\n return ItemEval(input, item, node, parentNode, documentNode);\n }\n\n if (Array.isArray(input)) {\n return input.map((value) => ItemEvalRecursive(value, item, node, parentNode, documentNode));\n }\n\n if (isObject(input)) {\n return Object.fromEntries(\n Object.entries(input).map(([key, value]) => [\n key,\n ItemEvalRecursive(value, item, node, parentNode, documentNode),\n ]),\n );\n }\n\n return input;\n}\n\nfunction ItemEval(propertyValue, item, node, parentNode, documentNode) {\n if (typeof propertyValue === \"string\" && propertyValue.startsWith(\"ItemEval:\")) {\n try {\n // eslint-disable-next-line no-new-func\n const evaluateFn = new Function(\n \"item,node,parentNode,documentNode\",\n \"return \" + propertyValue.replace(\"ItemEval:\", \"\"),\n );\n return evaluateFn(item, node, parentNode, documentNode);\n } catch (e) {\n console.warn('An error occurred while trying to evaluate \"' + propertyValue + '\"\\n', e);\n return propertyValue; // Return the original value if evaluation fails\n }\n }\n return propertyValue;\n}\n\nfunction isObject(input) {\n return input != null && (input.constructor === Object || (!input.constructor && typeof input === \"object\"));\n}\n\nexport function dynamicSort(arrayToSort, sortBy) {\n const array = clone(arrayToSort);\n if (!Array.isArray(array) || !array.length || !Array.isArray(sortBy) || !sortBy.length) {\n return array;\n }\n return array.sort((a, b) => {\n return sortBy.reduce((result, current) => {\n if (result !== 0) {\n return result;\n }\n\n const { property, order = \"asc\" } = current;\n const propA = a[property];\n const propB = b[property];\n\n let comparison = 0;\n\n if (isNumeric(propA) && isNumeric(propB)) {\n if (propA > propB) {\n comparison = 1;\n } else if (propA < propB) {\n comparison = -1;\n }\n } else {\n comparison = propA.localeCompare(propB);\n }\n\n if (order === \"desc\") {\n comparison *= -1;\n }\n\n return comparison;\n }, 0);\n });\n}\n\nexport function deepMerge(obj1, obj2) {\n const copy = clone(obj1);\n for (let key in obj2) {\n if (key in obj2) {\n if (obj2[key] instanceof Object && copy[key] instanceof Object) {\n copy[key] = deepMerge(copy[key], obj2[key]);\n } else {\n copy[key] = obj2[key];\n }\n }\n }\n return copy;\n}\n\nfunction getPath(path) {\n if (Array.isArray(path)) {\n return path;\n }\n\n if (typeof path === \"number\") {\n return [path];\n }\n\n return path.split(\".\").map((part) => {\n const partAsInteger = parseInt(part);\n\n if (!isNaN(partAsInteger) && String(partAsInteger) === part) {\n return partAsInteger;\n }\n\n return part;\n });\n}\n\nfunction recursivelySetValueInObject(object, value, path) {\n if (path.length === 0) {\n return value;\n }\n\n //\n // Create missing path targets\n //\n if (typeof object === \"undefined\") {\n if (typeof path[0] === \"number\") {\n object = [];\n } else {\n object = {};\n }\n }\n\n if (Array.isArray(object)) {\n //\n // Make sure, that array elements are always inserted at the last position, if the path exceeds the length\n // of the array\n //\n if (typeof path[0] === \"number\" && object.length < path[0]) {\n path[0] = object.length;\n }\n\n const result = [...object];\n result[path[0]] = recursivelySetValueInObject(object[path[0]], value, path.slice(1));\n\n return result;\n }\n\n return Object.assign({}, object, { [path[0]]: recursivelySetValueInObject(object[path[0]], value, path.slice(1)) });\n}\n", "import manifest from \"@neos-project/neos-ui-extensibility\";\nimport Repeatable from \"./Repeatable\";\n\nmanifest(\"Mireo.RepeatableFields:RepeatableField\", {}, (globalRegistry) => {\n const editorsRegistry = globalRegistry.get(\"inspector\").get(\"editors\");\n\n editorsRegistry.set(\"Mireo.RepeatableFields/Inspector/Editors/RepeatableFieldEditor\", {\n component: Repeatable,\n hasOwnLabel: true,\n });\n});\n"], - "mappings": "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", - "names": ["readFromConsumerApi", "key", "args", "init_readFromConsumerApi", "__esmMin", "require_react", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_react_redux", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_prop_types", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_neos_ui_redux_store", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_neos_ui_decorators", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_react_ui_components", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_react_dom", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_browser", "__commonJSMin", "exports", "module", "invariant", "condition", "format", "a", "b", "c", "d", "e", "f", "error", "args", "argIndex", "init_readFromConsumerApi", "positionalArraySorter", "subject", "position", "idKey", "positionAccessor", "value", "indexMapping", "middleKeys", "startKeys", "endKeys", "beforeKeys", "afterKeys", "item", "index", "key", "positionValue", "invalid", "weightMatch", "weight", "match", "reference", "numberPosition", "resultStart", "resultMiddle", "resultEnd", "processedKeys", "sortedWeights", "dict", "asc", "weights", "x", "a", "b", "addToResults", "keys", "result", "beforeWeights", "i", "afterWeights", "positionalArraySorter_default", "dist_default", "readFromConsumerApi", "import_react", "import_react_redux", "import_prop_types", "urlAlphabet", "nanoid", "size", "id", "bytes", "urlAlphabet", "r", "t", "f", "n", "o", "clsx", "clsx_default", "import_neos_ui_redux_store", "import_neos_ui_decorators", "import_react_ui_components", "init_readFromConsumerApi", "neos_ui_backend_connector_default", "readFromConsumerApi", "fetchWithErrorHandling", "import_react", "import_react", "Circle", "style", "className", "size", "React", "attribute", "values", "Dots", "number", "cx", "beginn", "import_neos_ui_decorators", "style", "heightMultiplier", "active", "Loading", "id", "title", "isLoading", "delayTime", "timeoutTime", "i18nRegistry", "width", "showLoading", "setShowLoading", "translatedTitle", "delay", "timeout", "React", "Circle", "Dots", "neosifier", "globalRegistry", "LoadingWithStyles_default", "import_react", "_extends", "n", "e", "t", "r", "_arrayWithHoles", "r", "_iterableToArrayLimit", "r", "l", "t", "e", "n", "i", "u", "a", "f", "o", "_arrayLikeToArray", "r", "a", "e", "n", "_unsupportedIterableToArray", "r", "a", "_arrayLikeToArray", "t", "_nonIterableRest", "_slicedToArray", "r", "e", "_arrayWithHoles", "_iterableToArrayLimit", "_unsupportedIterableToArray", "_nonIterableRest", "_typeof", "o", "toPrimitive", "t", "r", "_typeof", "e", "i", "toPropertyKey", "t", "i", "toPrimitive", "_typeof", "_defineProperty", "r", "t", "toPropertyKey", "_objectSpread", "r", "t", "e", "_defineProperty", "_classCallCheck", "a", "_defineProperties", "r", "t", "toPropertyKey", "_createClass", "_assertThisInitialized", "_possibleConstructorReturn", "t", "e", "_typeof", "_assertThisInitialized", "_getPrototypeOf", "t", "_setPrototypeOf", "t", "e", "_inherits", "t", "e", "_setPrototypeOf", "import_react", "import_react_dom", "import_invariant", "_arrayWithoutHoles", "r", "_arrayLikeToArray", "_iterableToArray", "r", "_nonIterableSpread", "_toConsumableArray", "r", "_arrayWithoutHoles", "_iterableToArray", "_unsupportedIterableToArray", "_nonIterableSpread", "import_prop_types", "Manager", "_classCallCheck", "_defineProperty", "_createClass", "collection", "ref", "index", "_this", "_ref", "node", "sortByIndex", "_ref2", "_ref3", "index1", "index2", "omit", "obj", "keysToOmit", "acc", "key", "events", "vendorPrefix", "styles", "pre", "setInlineStyles", "node", "setTranslate3d", "translate", "setTransitionDuration", "duration", "closest", "el", "fn", "limit", "min", "max", "value", "getPixelValue", "stringValue", "getElementMargin", "element", "style", "provideDisplayName", "prefix", "Component$$1", "componentName", "getScrollAdjustedBoundingClientRect", "scrollDelta", "boundingClientRect", "getPosition", "event", "isTouchEvent", "getEdgeOffset", "parent", "offset", "nodeOffset", "getTargetIndex", "newIndex", "prevIndex", "oldIndex", "getLockPixelOffset", "_ref", "lockOffset", "width", "height", "offsetX", "offsetY", "unit", "match", "invariant", "getLockPixelOffsets", "_ref2", "offsets", "_offsets", "_slicedToArray", "minLockOffset", "maxLockOffset", "isScrollable", "computedStyle", "overflowRegex", "properties", "property", "getScrollingParent", "getContainerGridGap", "KEYCODE", "NodeType", "cloneNode", "selector", "fields", "clonedNode", "clonedFields", "_toConsumableArray", "field", "i", "destCtx", "sortableHandle", "WrappedComponent", "_class", "_temp", "config", "_React$Component", "_inherits", "WithSortableHandle", "_getPrototypeOf2", "_this", "_classCallCheck", "_len", "args", "_key", "_possibleConstructorReturn", "_getPrototypeOf", "_defineProperty", "_assertThisInitialized", "_createClass", "ref", "_extends", "isSortableHandle", "AutoScroller", "container", "onScrollCallback", "minTranslate", "maxTranslate", "direction", "speed", "acceleration", "_this$container", "scrollTop", "scrollLeft", "scrollHeight", "scrollWidth", "clientHeight", "clientWidth", "isTop", "isBottom", "isLeft", "isRight", "defaultGetHelperDimensions", "defaultShouldCancelStart", "interactiveElements", "propTypes", "PropTypes", "defaultKeyCodes", "defaultProps", "omittedProps", "validateProps", "props", "_finallyRethrows", "body", "finalizer", "result", "e", "SortableContext", "sortableContainer", "WithSortableContainer", "_this$props", "distance", "shouldCancelStart", "useDragHandle", "_node$sortableInfo", "index", "collection", "disabled", "_this$props2", "pressThreshold", "position", "delta", "combinedDelta", "sorting", "active", "_temp6", "_temp7", "_node", "margin", "gridGap", "containerBoundingRect", "dimensions", "_getHelperDimensions", "_collection", "_axis", "_isKeySorting", "_objectSpread", "_hideSortableGhost", "_useWindowAsScrollContainer", "containerTop", "containerLeft", "containerWidth", "containerHeight", "containerBottom", "containerRight", "_helperClass", "className", "eventName", "_onSortStart", "_this$props3", "updateBeforeSortStart", "_temp8", "_temp9", "_wasThrown", "_result", "onSortMove", "_this$props4", "hideSortableGhost", "onSortEnd", "_this$manager", "isKeySorting", "nodes", "len", "_node2", "disableAutoscroll", "scrollX", "scrollY", "keyCode", "_this$props5", "_this$props5$keyCodes", "customKeyCodes", "keyCodes", "target", "_node$sortableInfo2", "shift", "lastIndex", "targetIndex", "targetNode", "targetBoundingClientRect", "targetTranslate", "targetPosition", "shouldAdjustForSize", "sizeAdjustment", "manager", "Manager", "_this2", "useWindowAsScrollContainer", "containerNode", "contentWindow", "_this3", "_this$props6", "lockAxis", "lockToContainerEdges", "transitionDuration", "_this$props6$keyboard", "keyboardSortingTransitionDuration", "ignoreTransition", "_getLockPixelOffsets", "_getLockPixelOffsets2", "minOffset", "maxOffset", "_this$props7", "onSortOver", "containerScrollDelta", "windowScrollDelta", "sortingOffset", "_node3", "mustShiftBackward", "mustShiftForward", "edgeOffset", "nextNode", "prevNode", "getContainer", "helperContainer", "propTypes$1", "omittedProps$1", "sortableElement", "WithSortableElement", "prevProps", "import_react", "parents", "coords", "siblings", "animations", "intersections", "mutationObservers", "intervals", "options", "debounces", "enabled", "root", "scrollX", "scrollY", "TGT", "DEL", "NEW", "handleMutations", "mutations", "elements", "getElements", "el", "animate", "handleResizes", "entries", "entry", "updateAllPos", "updatePos", "isOffscreen", "rect", "vw", "vh", "observePosition", "oldObserver", "invocations", "buffer", "getCoords", "offsetWidth", "offsetHeight", "rootMargin", "px", "observer", "debounce", "optionsOrPlugin", "getOptions", "delay", "isPlugin", "currentAnimation", "parent", "forEach", "lowPriority", "poll", "callback", "resize", "supportedBrowser", "nodes", "mutation", "node", "target", "i", "child", "_a", "_b", "isMounted", "preExisting", "add", "remain", "remove", "raw", "str", "getScrollOffset", "p", "x", "y", "getTransitionSizes", "oldCoords", "newCoords", "widthFrom", "heightFrom", "widthTo", "heightTo", "styles", "paddingY", "paddingX", "getTarget", "isEnabled", "callbacks", "getPluginTuple", "pluginReturn", "config", "animation", "pluginOrOptions", "deltaLeft", "deltaTop", "deltaRight", "start", "end", "keyframes", "cleanUp", "style", "prev", "next", "finalX", "finalY", "top", "left", "width", "height", "deletePosition", "adjustScroll", "styleReset", "scrollDeltaX", "scrollDeltaY", "scrollBefore", "lastHeight", "lastWidth", "startScroll", "smoothScroll", "deltaY", "deltaX", "offsetParent", "parentStyles", "parentCoords", "autoAnimate", "element", "mo", "a", "d", "io", "useAutoAnimate", "options", "controller", "setController", "memoizedOptions", "element", "node", "autoAnimate", "setEnabled", "enabled", "_a", "import_react_ui_components", "arrayMoveMutable", "array", "fromIndex", "toIndex", "startIndex", "endIndex", "item", "arrayMoveImmutable", "import_prop_types", "style_default", "DragHandle", "sortableHandle", "React", "style_default", "animateOptions", "SortableItem", "sortableElement", "value", "SortableList", "sortableContainer", "children", "automaticSorting", "manualSort", "animationParent", "enable", "useAutoAnimate", "timeout", "Sortable", "onChange", "element", "items", "KEY_PROPERTY", "idx", "setManualSort", "onSortEnd", "oldIndex", "newIndex", "arrayMoveImmutable", "PropTypes", "import_react", "import_prop_types", "import_neos_ui_decorators", "EditorEnvelope", "Envelope", "commit", "editorId", "editorOptions", "id", "props", "commitEnvelope", "event", "hook", "property", "hooksRegistry", "h", "json", "value", "__type", "rest", "React", "PropTypes", "neosifier", "globalRegistry", "Envelope_default", "import_react", "loadImageMetadata", "Preview", "text", "image", "src", "setSrc", "thumbnailStyles", "setThumbnailStyles", "cropAreaStyles", "setCropAreaStyles", "neos_ui_backend_connector_default", "metadata", "adjustments", "thumbnail", "cropArea", "getStyles", "cleanText", "cleanHtml", "React", "style_default", "html", "div", "previewDimensions", "originalDimensions", "max", "previewAdjustments", "factor", "scalingFactor", "byHeight", "byWidth", "dimensions", "cropDimensions", "x", "y", "set", "path", "value", "object", "getPath", "recursivelySetValueInObject", "clone", "input", "isSame", "a", "b", "isNumeric", "str", "ClientEvalIsNotFinished", "isObject", "ItemEvalRecursive", "item", "node", "parentNode", "documentNode", "ItemEval", "key", "propertyValue", "e", "dynamicSort", "arrayToSort", "sortBy", "array", "result", "current", "property", "order", "propA", "propB", "comparison", "deepMerge", "obj1", "obj2", "copy", "part", "partAsInteger", "KEY_PROPERTY", "getDataLoaderOptionsForProps", "props", "Repeatable", "commit", "dataSourcesDataLoader", "editorRegistry", "i18nRegistry", "id", "validatorRegistry", "value", "renderHelpIcon", "identifier", "dataSourceIdentifier", "dataSourceUri", "dataSourceAdditionalData", "hasDataSource", "label", "isLoading", "setLoading", "dataTypes", "setDataTypes", "allowAdd", "setAllowAdd", "allowRemove", "setAllowRemove", "currentValue", "setCurrentValue", "options", "setOptions", "emptyGroup", "setEmptyGroup", "collapsed", "setCollapsed", "returnCurrentValueAsJSON", "currentValueAsJSON", "setCurrentValueAsJSON", "neos_ui_backend_connector_default", "json", "dataAsJSON", "testIfAdd", "testIfRemove", "timeout", "sorted", "dynamicSort", "handleValueChange", "ClientEvalIsNotFinished", "group", "getEmptyGroup", "initialValue", "returnDataSourceOptionsAsJSON", "dataSourceOptionsAsJSON", "setDataSourceOptionsAsJSON", "values", "deepMerge", "properties", "array", "key", "item", "positionalArraySorter_default", "defaultValue", "returnValueIfSet", "newValue", "clone", "nanoid", "min", "max", "i", "predefined", "currentEntry", "cleanedUpEntry", "cur", "keyname", "isNumeric", "inputValue", "isSame", "commitValue", "handleAdd", "handleRemove", "idx", "s", "sidx", "handleCollapse", "commitChange", "property", "event", "set", "validateElement", "elementValue", "elementConfiguration", "validators", "validationResultsArray", "validatorName", "validatorConfiguration", "checkValidator", "result", "allowed", "validator", "createElement", "isPredefined", "controls", "sortBy", "allowRemovePredefinedProperties", "hasRemove", "hasMove", "hasTwoButtons", "hasOneButton", "React", "clsx_default", "style_default", "getProperties", "DragHandle", "hasCollapse", "isCollapsed", "getPreview", "predefinedProperties", "groupLabel", "getProperty", "checkIfValueIsSet", "fallback", "text", "image", "ItemEvalRecursive", "Preview", "repeatableValue", "propertyDefinition", "defaultDataType", "editorOptions", "editor", "isSimpleView", "Envelope_default", "LoadingWithStyles_default", "buttonAddLabel", "Sortable", "PropTypes", "neosifier", "globalRegistry", "connector", "state", "Repeatable_default", "dist_default", "globalRegistry", "Repeatable_default"] + "sourcesContent": [null, null, null, null, null, null, null, null, "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n", null, null, "import React, { useState, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport { nanoid } from \"nanoid\";\nimport clsx from \"clsx\";\nimport { selectors } from \"@neos-project/neos-ui-redux-store\";\nimport { neos } from \"@neos-project/neos-ui-decorators\";\nimport { IconButton, Button, Label } from \"@neos-project/react-ui-components\";\nimport backend from \"@neos-project/neos-ui-backend-connector\";\nimport positionalArraySorter from \"@neos-project/positional-array-sorter\";\nimport Loading from \"carbon-neos-loadinganimation/LoadingWithStyles\";\nimport { Sortable, DragHandle } from \"./Sortable\";\nimport Envelope from \"./Envelope\";\nimport Preview from \"./Preview\";\nimport {\n deepMerge,\n set,\n isNumeric,\n dynamicSort,\n clone,\n isSame,\n ClientEvalIsNotFinished,\n ItemEvalRecursive,\n} from \"./helper\";\nimport style from \"./style.module.css\";\n\nconst KEY_PROPERTY = \"_UUID_\";\n\nconst getDataLoaderOptionsForProps = (props) => ({\n contextNodePath: props.focusedNodePath,\n dataSourceIdentifier: props.options.dataSourceIdentifier,\n dataSourceUri: props.options.dataSourceUri,\n dataSourceAdditionalData: props.options.dataSourceAdditionalData,\n dataSourceDisableCaching: Boolean(props.options.dataSourceDisableCaching),\n});\n\nfunction Repeatable({\n commit,\n dataSourcesDataLoader,\n editorRegistry,\n i18nRegistry,\n id,\n validatorRegistry,\n value,\n renderHelpIcon,\n identifier,\n ...props\n}) {\n const { dataSourceIdentifier, dataSourceUri, dataSourceAdditionalData } = props.options;\n const hasDataSource = !!(dataSourceIdentifier || dataSourceUri);\n\n const label = i18nRegistry.translate(props.label);\n const [isLoading, setLoading] = useState(true);\n const [dataTypes, setDataTypes] = useState({});\n const [allowAdd, setAllowAdd] = useState(true);\n const [allowRemove, setAllowRemove] = useState(true);\n const [currentValue, setCurrentValue] = useState([]);\n const [options, setOptions] = useState(hasDataSource ? null : props.options);\n const [emptyGroup, setEmptyGroup] = useState({});\n const [collapsed, setCollapsed] = useState({});\n // Separate state for resolved references - used ONLY for preview, never merged into currentValue\n const [resolvedReferences, setResolvedReferences] = useState({});\n\n // We use this hack to prevent the editor from re-rendering all the time, even if the options are the same.\n const returnCurrentValueAsJSON = () => JSON.stringify(currentValue);\n const [currentValueAsJSON, setCurrentValueAsJSON] = useState([]);\n\n useEffect(() => {\n setLoading(true);\n backend\n .get()\n .endpoints.dataSource(\"get-property-types\", null, {})\n .then((json) => {\n setDataTypes(json);\n setLoading(false);\n });\n }, []);\n\n useEffect(() => {\n const dataAsJSON = returnCurrentValueAsJSON();\n if (currentValueAsJSON === dataAsJSON || !options) {\n return;\n }\n setCurrentValueAsJSON(dataAsJSON);\n testIfAdd(currentValue);\n testIfRemove(currentValue);\n if (options.sortBy) {\n const timeout = setTimeout(() => {\n const sorted = dynamicSort(currentValue, options.sortBy);\n handleValueChange(sorted);\n }, 2000);\n return () => clearTimeout(timeout);\n }\n }, [currentValue]);\n\n useEffect(() => {\n if (!options || ClientEvalIsNotFinished(options)) {\n return;\n }\n const group = getEmptyGroup();\n setEmptyGroup(group);\n initialValue(group);\n }, [options, dataTypes]);\n\n // We use this hack to prevent the editor from re-rendering all the time, even if the options are the same.\n const returnDataSourceOptionsAsJSON = () =>\n JSON.stringify({ dataSourceIdentifier, dataSourceUri, dataSourceAdditionalData });\n const [dataSourceOptionsAsJSON, setDataSourceOptionsAsJSON] = useState(null);\n useEffect(() => {\n if (!hasDataSource) {\n return;\n }\n const dataAsJSON = returnDataSourceOptionsAsJSON();\n if (dataSourceOptionsAsJSON === dataAsJSON) {\n return;\n }\n setLoading(true);\n setDataSourceOptionsAsJSON(dataAsJSON);\n\n dataSourcesDataLoader.resolveValue(getDataLoaderOptionsForProps(props), currentValue).then((values) => {\n setOptions(deepMerge(props.options, values));\n setLoading(false);\n });\n }, [dataSourceIdentifier, dataSourceUri, dataSourceAdditionalData]);\n\n // Fetch resolved reference data for preview - stored separately, never modifies currentValue\n useEffect(() => {\n if (!options?.properties || !currentValue?.length) {\n return;\n }\n\n // Find properties that are reference types\n const referenceProperties = Object.entries(options.properties)\n .filter(([, config]) => config?.type === \"reference\")\n .map(([name]) => name);\n\n if (referenceProperties.length === 0) {\n return;\n }\n\n // Collect all unique node identifiers from reference properties\n const identifiers = new Set();\n currentValue.forEach((item) => {\n referenceProperties.forEach((propName) => {\n const value = item[propName];\n if (typeof value === \"string\" && value) {\n identifiers.add(value);\n }\n });\n });\n\n if (identifiers.size === 0) {\n return;\n }\n\n // Fetch resolved reference data from the DataSource\n backend\n .get()\n .endpoints.dataSource(\"resolve-references\", null, {\n identifiers: Array.from(identifiers),\n })\n .then((resolved) => {\n if (resolved && typeof resolved === \"object\") {\n setResolvedReferences(resolved);\n }\n })\n .catch((error) => {\n console.warn(\"Failed to resolve references for preview:\", error);\n });\n }, [currentValue, options?.properties]);\n\n function getEmptyGroup() {\n let group = {};\n const properties = options.properties;\n if (properties) {\n // Create array to enable sorting\n const array = [];\n for (const key in properties) {\n const item = properties[key];\n array.push({ key, position: item?.position ?? null, item });\n }\n positionalArraySorter(array).forEach(({ key, item }) => {\n const defaultValue = item && item.defaultValue;\n group[key] = returnValueIfSet(defaultValue, \"\");\n });\n }\n return group;\n }\n\n function initialValue(group) {\n let newValue = value ? clone(value) : [];\n // add an fixed index to the value\n newValue = newValue.map((item) => {\n if (item[KEY_PROPERTY]) {\n return item;\n }\n return {\n ...item,\n [KEY_PROPERTY]: nanoid(),\n };\n });\n const { min, max } = options;\n\n if (min) {\n if (newValue.length < min) {\n for (var i = 0; i < min; ++i) {\n if (newValue[i]) {\n newValue[i] = value[i];\n } else {\n newValue[i] = group;\n }\n }\n }\n }\n if (max && newValue.length > max) {\n newValue = newValue.slice(0, max);\n }\n\n if (newValue.length) {\n for (let key = 0; key < newValue.length; key++) {\n const predefined = options.predefinedProperties?.[key]?.properties;\n const currentEntry = clone(newValue[key]);\n const availableKeys = Object.keys(currentEntry).filter((key) => key == KEY_PROPERTY || key in group);\n const cleanedUpEntry = availableKeys.reduce((cur, keyname) => {\n const isPredefined = predefined?.[keyname]?.defaultValue != undefined;\n let value = isPredefined ? predefined[keyname].defaultValue : currentEntry[keyname];\n if (isNumeric(value)) {\n value = parseFloat(value);\n }\n\n return {\n ...cur,\n [keyname]: value,\n };\n }, {});\n newValue[key] = cleanedUpEntry;\n }\n }\n setCurrentValue(newValue);\n }\n\n function handleValueChange(inputValue) {\n // Nothing changed, do nothing\n if (isSame(inputValue, currentValue)) {\n return;\n }\n\n // Remove the KEY_PROPERTY from the inputValue\n const commitValue = clone(inputValue).map((item) => {\n delete item[KEY_PROPERTY];\n return item;\n });\n\n // If the value is the same as the commitValue, don't commit\n if (!isSame(commitValue, value)) {\n commit(commitValue);\n }\n setCurrentValue(inputValue);\n }\n\n function testIfAdd(value) {\n if (options && options.max) {\n setAllowAdd(options.max > value.length);\n }\n }\n\n function testIfRemove(value) {\n if (options && options.min) {\n setAllowRemove(options.min < value.length);\n }\n }\n\n function handleAdd() {\n setCollapsed({\n ...collapsed,\n [currentValue.length]: false,\n });\n handleValueChange([...currentValue, emptyGroup]);\n }\n\n function handleRemove(idx) {\n const value = currentValue.filter((s, sidx) => idx !== sidx);\n handleValueChange(value);\n }\n\n function handleCollapse(idx, currentValue) {\n setCollapsed({\n ...collapsed,\n [idx]: !currentValue,\n });\n }\n\n function commitChange(idx, property, event) {\n handleValueChange(set(property, event, currentValue));\n }\n\n function validateElement(elementValue, elementConfiguration, idx, identifier) {\n if (!elementConfiguration || !elementConfiguration.validation) {\n return;\n }\n const validators = elementConfiguration.validation;\n const validationResults = Object.keys(validators).map((validatorName) => {\n const validatorConfiguration = validators[validatorName];\n return checkValidator(elementValue, validatorName, validatorConfiguration);\n });\n const validationResultsArray = validationResults.filter((result) => result);\n if (options.controls && options.controls.add) {\n const allowed = options?.max ? options.max > currentValue.length : true;\n setAllowAdd(allowed && validationResultsArray.length <= 0);\n }\n return validationResultsArray;\n }\n\n function checkValidator(elementValue, validatorName, validatorConfiguration) {\n const validator = validatorRegistry.get(validatorName);\n if (validator) {\n return validator(elementValue, validatorConfiguration);\n }\n console.warn(`Validator ${validatorName} not found`);\n }\n\n function createElement(idx) {\n const isPredefined = !!options.predefinedProperties && options.predefinedProperties[idx];\n const { controls, sortBy, properties, allowRemovePredefinedProperties } = options;\n\n const hasRemove = controls.remove && allowRemove ? !isPredefined || allowRemovePredefinedProperties : false;\n\n const hasMove = !isPredefined && controls.move && currentValue.length > 1;\n const hasTwoButtons = hasRemove && hasMove;\n const hasOneButton = hasRemove || hasMove;\n const propertiesCount = Object.keys(properties).length;\n if (propertiesCount === 1) {\n return (\n \n {getProperties(idx)}\n {hasOneButton && (\n
\n {hasRemove && (\n handleRemove(idx)} className={style.delete} icon=\"trash\" />\n )}\n {hasMove && }\n
\n )}\n \n );\n }\n\n const hasCollapse = !!controls.collapse;\n const isCollapsed = hasCollapse\n ? typeof collapsed[idx] === \"boolean\"\n ? collapsed[idx]\n : !!options?.collapsed\n : false;\n\n return (\n
\n {Boolean(hasOneButton || hasCollapse) && (\n
\n {getPreview(idx)}\n {hasMove && }\n {hasCollapse && (\n handleCollapse(idx, isCollapsed)}\n icon={isCollapsed ? \"chevron-down\" : \"chevron-up\"}\n />\n )}\n {hasRemove && (\n handleRemove(idx)} className={style.delete} icon=\"trash\" />\n )}\n
\n )}\n {!isCollapsed && getProperties(idx)}\n
\n );\n }\n\n function getProperties(idx) {\n const { predefinedProperties } = options;\n const groupLabel = predefinedProperties && predefinedProperties[idx] ? predefinedProperties[idx].label : null;\n let properties = [];\n Object.keys(emptyGroup).map((property) => {\n properties.push(getProperty(property, idx));\n });\n properties = properties.filter(Boolean);\n\n if (properties.length === 0) {\n return null;\n }\n\n return (\n
\n {groupLabel && }\n {properties}\n
\n );\n }\n\n function checkIfValueIsSet(value) {\n return !!(value !== null && value !== undefined);\n }\n\n function returnValueIfSet(value, fallback = \"\") {\n return checkIfValueIsSet(value) ? value : fallback;\n }\n\n function getPreview(idx) {\n let text = options?.preview?.text;\n let image = options?.preview?.image;\n if (!text && !image) {\n return null;\n }\n\n // Create a TEMPORARY enriched copy for preview evaluation ONLY\n // This does NOT modify currentValue or affect editors\n const itemForPreview = { ...currentValue[idx] };\n for (const [propName, value] of Object.entries(itemForPreview)) {\n if (typeof value === \"string\" && resolvedReferences[value]) {\n itemForPreview[propName] = resolvedReferences[value];\n }\n }\n\n if (text) {\n text = ItemEvalRecursive(text, itemForPreview, props.node, props.parentNode, props.documentNode);\n }\n if (image) {\n image = ItemEvalRecursive(image, itemForPreview, props.node, props.parentNode, props.documentNode);\n }\n return ;\n }\n\n function getProperty(property, idx) {\n const repeatableValue = clone(currentValue);\n const { properties, predefinedProperties } = options;\n let propertyDefinition = ItemEvalRecursive(\n properties[property],\n repeatableValue[idx],\n props.node,\n props.parentNode,\n props.documentNode,\n );\n if (\n predefinedProperties &&\n predefinedProperties[idx] &&\n predefinedProperties[idx].properties &&\n predefinedProperties[idx].properties[property]\n ) {\n propertyDefinition = deepMerge(propertyDefinition, predefinedProperties[idx][\"properties\"][property]);\n }\n\n const defaultDataType = propertyDefinition.type ? dataTypes[propertyDefinition.type] : {};\n if (defaultDataType) {\n propertyDefinition = deepMerge(defaultDataType, propertyDefinition);\n }\n\n let editorOptions = returnValueIfSet(propertyDefinition.editorOptions, {});\n const editor = returnValueIfSet(propertyDefinition.editor, \"Neos.Neos/Inspector/Editors/TextFieldEditor\");\n let value = returnValueIfSet(repeatableValue[idx][property]);\n\n if (!value && checkIfValueIsSet(propertyDefinition.defaultValue)) {\n value = propertyDefinition.defaultValue;\n }\n\n if (editorOptions.hasOwnProperty(\"dataSourceUri\") || editorOptions.hasOwnProperty(\"dataSourceIdentifier\")) {\n editorOptions = { ...editorOptions };\n if (!editorOptions.dataSourceAdditionalData) {\n editorOptions.dataSourceAdditionalData = {};\n } else {\n if (editorOptions.dataSourceAdditionalData.hasOwnProperty(\"repeatableIndex\")) {\n editorOptions.dataSourceAdditionalData[\"repeatableIndex\"] = idx;\n }\n if (editorOptions.dataSourceAdditionalData.hasOwnProperty(\"repeatableValue\")) {\n editorOptions.dataSourceAdditionalData[\"repeatableValue\"] = currentValue;\n }\n }\n }\n const isSimpleView = Object.keys(properties).length <= 1;\n\n return (\n \n );\n }\n\n if (isLoading || !options) {\n return (\n <>\n {Boolean(label) && (\n \n )}\n \n \n );\n }\n\n if (options.hidden) {\n return null;\n }\n\n const { buttonAddLabel = \"Mireo.RepeatableFields:Main:addRow\" } = options;\n\n return (\n <>\n {Boolean(label) && (\n \n )}\n \n {options.controls.add && allowAdd && (\n <>\n \n {Boolean(label) || renderHelpIcon()}\n \n )}\n \n );\n}\nRepeatable.propTypes = {\n identifier: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n // options: PropTypes.object,\n value: PropTypes.arrayOf(PropTypes.object),\n renderSecondaryInspector: PropTypes.func,\n editor: PropTypes.string.isRequired,\n editorRegistry: PropTypes.object.isRequired,\n i18nRegistry: PropTypes.object.isRequired,\n validationErrors: PropTypes.array,\n onEnterKey: PropTypes.func,\n helpMessage: PropTypes.string,\n helpThumbnail: PropTypes.string,\n highlight: PropTypes.bool,\n\n commit: PropTypes.func.isRequired,\n options: PropTypes.shape({\n hidden: PropTypes.bool,\n buttonAddLabel: PropTypes.string,\n dataSourceIdentifier: PropTypes.string,\n dataSourceUri: PropTypes.string,\n dataSourceDisableCaching: PropTypes.bool,\n dataSourceAdditionalData: PropTypes.objectOf(PropTypes.any),\n predefinedProperties: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.object,\n }),\n ),\n max: PropTypes.number,\n min: PropTypes.number,\n collapsed: PropTypes.bool,\n label: PropTypes.shape({\n label: PropTypes.string,\n image: PropTypes.string,\n }),\n controls: PropTypes.shape({\n move: PropTypes.bool,\n remove: PropTypes.bool,\n add: PropTypes.bool,\n collapse: PropTypes.bool,\n }),\n sortBy: PropTypes.arrayOf(\n PropTypes.shape({\n property: PropTypes.string,\n direction: PropTypes.oneOf([\"asc\", \"desc\"]),\n }),\n ),\n //\n // \tproperties: PropTypes.objectOf(\n // \t\tPropTypes.object()\n // \t),\n //\n // \tplaceholder: PropTypes.integersOnly,\n // \t// disabled: PropTypes.bool,\n // \t//\n // \t// multiple: PropTypes.bool,\n //\n // \tdataSourceIdentifier: PropTypes.string,\n // \tdataSourceUri: PropTypes.string,\n // \tdataSourceDisableCaching: PropTypes.bool,\n // \tdataSourceAdditionalData: PropTypes.objectOf(PropTypes.any),\n //\n // \t// minimumResultsForSearch: PropTypes.number,\n //\n // properties: PropTypes.objectOf(\n // \tPropTypes.shape({\n // \t\tlabel: PropTypes.string,\n // \t\ticon: PropTypes.string,\n // \t\tpreview: PropTypes.string,\n //\n // \t\t// TODO\n // \t\tgroup: PropTypes.string\n // \t})\n // )\n //\n }).isRequired,\n dataSourcesDataLoader: PropTypes.shape({\n resolveValue: PropTypes.func.isRequired,\n }).isRequired,\n focusedNodePath: PropTypes.string.isRequired,\n};\n\nconst neosifier = neos((globalRegistry) => ({\n editorRegistry: globalRegistry.get(\"inspector\").get(\"editors\"),\n i18nRegistry: globalRegistry.get(\"i18n\"),\n dataSourcesDataLoader: globalRegistry.get(\"dataLoaders\").get(\"DataSources\"),\n}));\nconst connector = connect((state) => ({\n focusedNodePath: selectors.CR.Nodes.focusedNodePathSelector(state),\n node: selectors.CR.Nodes.focusedSelector(state),\n parentNode: selectors.CR.Nodes.focusedParentSelector(state),\n documentNode: selectors.CR.Nodes.documentNodeSelector(state),\n}));\nexport default neosifier(connector(Repeatable));\n", "export const urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n", "/* @ts-self-types=\"./index.d.ts\" */\nimport { urlAlphabet as scopedUrlAlphabet } from './url-alphabet/index.js'\nexport { urlAlphabet } from './url-alphabet/index.js'\nexport let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nexport let customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << Math.log2(alphabet.length - 1)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step | 0\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length >= size) return id\n }\n }\n }\n}\nexport let customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size | 0, random)\nexport let nanoid = (size = 21) => {\n let id = ''\n let bytes = crypto.getRandomValues(new Uint8Array((size |= 0)))\n while (size--) {\n id += scopedUrlAlphabet[bytes[size] & 63]\n }\n return id\n}\n", "function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t ({\n display: \"grid\",\n gridTemplate: \"'content' 1fr / 1fr\",\n alignItems: \"center\",\n justifyItems: \"center\",\n width: \"100%\",\n minHeight: `calc(var(--spacing-GoldenUnit) * ${heightMultiplier})`,\n }),\n item: (active = false) => ({\n gridArea: \"content\",\n transition: \"opacity var(--transition-Default), transform var(--transition-Default) ease\",\n opacity: active ? 1 : 0,\n transform: `scale(${active ? 1 : 0})`,\n }),\n};\n\nfunction Loading({\n id,\n title = \"Neos.Neos:Main:loading\",\n isLoading = false,\n delayTime = 500,\n timeoutTime = 5000,\n i18nRegistry,\n heightMultiplier = 1,\n width = 60,\n}) {\n const [showLoading, setShowLoading] = useState(0);\n const translatedTitle = title ? i18nRegistry.translate(title) : null;\n\n useEffect(() => {\n if (!isLoading) {\n setShowLoading(0);\n return;\n }\n const delay = setTimeout(() => {\n setShowLoading(1);\n }, delayTime);\n const timeout = setTimeout(() => {\n setShowLoading(2);\n }, delayTime + timeoutTime);\n\n return () => {\n clearTimeout(delay);\n clearTimeout(timeout);\n };\n }, [isLoading]);\n\n if (!isLoading) {\n return null;\n }\n\n return (\n
\n \n \n
\n );\n}\n\nconst neosifier = neos((globalRegistry) => ({\n i18nRegistry: globalRegistry.get(\"i18n\"),\n}));\nexport default neosifier(Loading);\n", "import React from \"react\";\n\nexport function Circle({ style, className, size = 30 }) {\n return (\n \n \n \n {[\n {\n attribute: \"dasharray\",\n values: \"0 150;42 150;42 150;42 150\",\n },\n {\n attribute: \"dashoffset\",\n values: \"0;-16;-59;-59\",\n },\n ].map(({ attribute, values }) => (\n \n ))}\n \n \n \n \n );\n}\n\nexport function Dots({ style, className, size = 30 }) {\n return (\n \n {[1, 2, 3].map((number) => {\n const cx = number * 6;\n const beginn = Math.round((100 / 3) * (number - 1)) / 100;\n return (\n \n \n \n );\n })}\n \n );\n}\n", "import React, { useEffect, useState } from \"react\";\nimport { SortableContainer, SortableElement, SortableHandle } from \"react-sortable-hoc\";\nimport { useAutoAnimate } from \"@formkit/auto-animate/react\";\nimport { Icon } from \"@neos-project/react-ui-components\";\nimport { arrayMoveImmutable } from \"array-move\";\nimport PropTypes from \"prop-types\";\nimport style from \"./style.module.css\";\n\nexport const DragHandle = SortableHandle(() => (\n \n \n \n));\n\nconst animateOptions = { disrespectUserMotionPreferences: true };\n\nconst SortableItem = SortableElement(({ value }) => {\n return
{value}
;\n});\n\nconst SortableList = SortableContainer(({ children, automaticSorting, manualSort }) => {\n const [animationParent, enable] = useAutoAnimate(animateOptions);\n\n useEffect(() => {\n document.body.style.cursor = manualSort ? \"grabbing\" : null;\n enable(false);\n const timeout = setTimeout(() => {\n enable(!manualSort);\n }, 500);\n return () => clearTimeout(timeout);\n }, [manualSort]);\n\n return (\n
\n {children}\n
\n );\n});\n\nexport function Sortable({ onChange, value, element, items, enable, automaticSorting, KEY_PROPERTY }) {\n if (!enable) {\n const [animationParent] = useAutoAnimate(animateOptions);\n\n return (\n
\n {items.map((value, idx) => (\n
{element(idx)}
\n ))}\n
\n );\n }\n\n const [manualSort, setManualSort] = useState(false);\n\n function onSortEnd({ oldIndex, newIndex }) {\n onChange(arrayMoveImmutable(value, oldIndex, newIndex));\n setManualSort(false);\n }\n\n return (\n setManualSort(true)}\n manualSort={manualSort}\n onSortEnd={onSortEnd}\n automaticSorting={automaticSorting}\n useDragHandle\n axis=\"y\"\n lockAxis=\"y\"\n >\n {items.map((value, idx) => (\n \n ))}\n \n );\n}\n\nSortable.propTypes = {\n items: PropTypes.array.isRequired,\n onSortEndAction: PropTypes.func.isRequired,\n element: PropTypes.func.isRequired,\n};\n", "function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };", "function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };", "function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };", "function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };", "import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };", "function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };", "import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };", "function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };", "import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };", "import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };", "import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };", "import defineProperty from \"./defineProperty.js\";\nfunction _objectSpread(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? Object(arguments[r]) : {},\n o = Object.keys(t);\n \"function\" == typeof Object.getOwnPropertySymbols && o.push.apply(o, Object.getOwnPropertySymbols(t).filter(function (e) {\n return Object.getOwnPropertyDescriptor(t, e).enumerable;\n })), o.forEach(function (r) {\n defineProperty(e, r, t[r]);\n });\n }\n return e;\n}\nexport { _objectSpread as default };", "function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };", "import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };", "function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };", "import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };", "function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };", "function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };", "import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };", "import _extends from '@babel/runtime/helpers/esm/extends';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { createRef, createElement, Component, createContext } from 'react';\nimport { findDOMNode } from 'react-dom';\nimport invariant from 'invariant';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport PropTypes from 'prop-types';\n\nvar Manager = function () {\n function Manager() {\n _classCallCheck(this, Manager);\n\n _defineProperty(this, \"refs\", {});\n }\n\n _createClass(Manager, [{\n key: \"add\",\n value: function add(collection, ref) {\n if (!this.refs[collection]) {\n this.refs[collection] = [];\n }\n\n this.refs[collection].push(ref);\n }\n }, {\n key: \"remove\",\n value: function remove(collection, ref) {\n var index = this.getIndex(collection, ref);\n\n if (index !== -1) {\n this.refs[collection].splice(index, 1);\n }\n }\n }, {\n key: \"isActive\",\n value: function isActive() {\n return this.active;\n }\n }, {\n key: \"getActive\",\n value: function getActive() {\n var _this = this;\n\n return this.refs[this.active.collection].find(function (_ref) {\n var node = _ref.node;\n return node.sortableInfo.index == _this.active.index;\n });\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(collection, ref) {\n return this.refs[collection].indexOf(ref);\n }\n }, {\n key: \"getOrderedRefs\",\n value: function getOrderedRefs() {\n var collection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.active.collection;\n return this.refs[collection].sort(sortByIndex);\n }\n }]);\n\n return Manager;\n}();\n\nfunction sortByIndex(_ref2, _ref3) {\n var index1 = _ref2.node.sortableInfo.index;\n var index2 = _ref3.node.sortableInfo.index;\n return index1 - index2;\n}\n\nfunction arrayMove(array, from, to) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof console !== 'undefined') {\n console.warn(\"Deprecation warning: arrayMove will no longer be exported by 'react-sortable-hoc' in the next major release. Please install the `array-move` package locally instead. https://www.npmjs.com/package/array-move\");\n }\n }\n\n array = array.slice();\n array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);\n return array;\n}\nfunction omit(obj, keysToOmit) {\n return Object.keys(obj).reduce(function (acc, key) {\n if (keysToOmit.indexOf(key) === -1) {\n acc[key] = obj[key];\n }\n\n return acc;\n }, {});\n}\nvar events = {\n end: ['touchend', 'touchcancel', 'mouseup'],\n move: ['touchmove', 'mousemove'],\n start: ['touchstart', 'mousedown']\n};\nvar vendorPrefix = function () {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return '';\n }\n\n var styles = window.getComputedStyle(document.documentElement, '') || ['-moz-hidden-iframe'];\n var pre = (Array.prototype.slice.call(styles).join('').match(/-(moz|webkit|ms)-/) || styles.OLink === '' && ['', 'o'])[1];\n\n switch (pre) {\n case 'ms':\n return 'ms';\n\n default:\n return pre && pre.length ? pre[0].toUpperCase() + pre.substr(1) : '';\n }\n}();\nfunction setInlineStyles(node, styles) {\n Object.keys(styles).forEach(function (key) {\n node.style[key] = styles[key];\n });\n}\nfunction setTranslate3d(node, translate) {\n node.style[\"\".concat(vendorPrefix, \"Transform\")] = translate == null ? '' : \"translate3d(\".concat(translate.x, \"px,\").concat(translate.y, \"px,0)\");\n}\nfunction setTransitionDuration(node, duration) {\n node.style[\"\".concat(vendorPrefix, \"TransitionDuration\")] = duration == null ? '' : \"\".concat(duration, \"ms\");\n}\nfunction closest(el, fn) {\n while (el) {\n if (fn(el)) {\n return el;\n }\n\n el = el.parentNode;\n }\n\n return null;\n}\nfunction limit(min, max, value) {\n return Math.max(min, Math.min(value, max));\n}\n\nfunction getPixelValue(stringValue) {\n if (stringValue.substr(-2) === 'px') {\n return parseFloat(stringValue);\n }\n\n return 0;\n}\n\nfunction getElementMargin(element) {\n var style = window.getComputedStyle(element);\n return {\n bottom: getPixelValue(style.marginBottom),\n left: getPixelValue(style.marginLeft),\n right: getPixelValue(style.marginRight),\n top: getPixelValue(style.marginTop)\n };\n}\nfunction provideDisplayName(prefix, Component$$1) {\n var componentName = Component$$1.displayName || Component$$1.name;\n return componentName ? \"\".concat(prefix, \"(\").concat(componentName, \")\") : prefix;\n}\nfunction getScrollAdjustedBoundingClientRect(node, scrollDelta) {\n var boundingClientRect = node.getBoundingClientRect();\n return {\n top: boundingClientRect.top + scrollDelta.top,\n left: boundingClientRect.left + scrollDelta.left\n };\n}\nfunction getPosition(event) {\n if (event.touches && event.touches.length) {\n return {\n x: event.touches[0].pageX,\n y: event.touches[0].pageY\n };\n } else if (event.changedTouches && event.changedTouches.length) {\n return {\n x: event.changedTouches[0].pageX,\n y: event.changedTouches[0].pageY\n };\n } else {\n return {\n x: event.pageX,\n y: event.pageY\n };\n }\n}\nfunction isTouchEvent(event) {\n return event.touches && event.touches.length || event.changedTouches && event.changedTouches.length;\n}\nfunction getEdgeOffset(node, parent) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n left: 0,\n top: 0\n };\n\n if (!node) {\n return undefined;\n }\n\n var nodeOffset = {\n left: offset.left + node.offsetLeft,\n top: offset.top + node.offsetTop\n };\n\n if (node.parentNode === parent) {\n return nodeOffset;\n }\n\n return getEdgeOffset(node.parentNode, parent, nodeOffset);\n}\nfunction getTargetIndex(newIndex, prevIndex, oldIndex) {\n if (newIndex < oldIndex && newIndex > prevIndex) {\n return newIndex - 1;\n } else if (newIndex > oldIndex && newIndex < prevIndex) {\n return newIndex + 1;\n } else {\n return newIndex;\n }\n}\nfunction getLockPixelOffset(_ref) {\n var lockOffset = _ref.lockOffset,\n width = _ref.width,\n height = _ref.height;\n var offsetX = lockOffset;\n var offsetY = lockOffset;\n var unit = 'px';\n\n if (typeof lockOffset === 'string') {\n var match = /^[+-]?\\d*(?:\\.\\d*)?(px|%)$/.exec(lockOffset);\n invariant(match !== null, 'lockOffset value should be a number or a string of a ' + 'number followed by \"px\" or \"%\". Given %s', lockOffset);\n offsetX = parseFloat(lockOffset);\n offsetY = parseFloat(lockOffset);\n unit = match[1];\n }\n\n invariant(isFinite(offsetX) && isFinite(offsetY), 'lockOffset value should be a finite. Given %s', lockOffset);\n\n if (unit === '%') {\n offsetX = offsetX * width / 100;\n offsetY = offsetY * height / 100;\n }\n\n return {\n x: offsetX,\n y: offsetY\n };\n}\nfunction getLockPixelOffsets(_ref2) {\n var height = _ref2.height,\n width = _ref2.width,\n lockOffset = _ref2.lockOffset;\n var offsets = Array.isArray(lockOffset) ? lockOffset : [lockOffset, lockOffset];\n invariant(offsets.length === 2, 'lockOffset prop of SortableContainer should be a single ' + 'value or an array of exactly two values. Given %s', lockOffset);\n\n var _offsets = _slicedToArray(offsets, 2),\n minLockOffset = _offsets[0],\n maxLockOffset = _offsets[1];\n\n return [getLockPixelOffset({\n height: height,\n lockOffset: minLockOffset,\n width: width\n }), getLockPixelOffset({\n height: height,\n lockOffset: maxLockOffset,\n width: width\n })];\n}\n\nfunction isScrollable(el) {\n var computedStyle = window.getComputedStyle(el);\n var overflowRegex = /(auto|scroll)/;\n var properties = ['overflow', 'overflowX', 'overflowY'];\n return properties.find(function (property) {\n return overflowRegex.test(computedStyle[property]);\n });\n}\n\nfunction getScrollingParent(el) {\n if (!(el instanceof HTMLElement)) {\n return null;\n } else if (isScrollable(el)) {\n return el;\n } else {\n return getScrollingParent(el.parentNode);\n }\n}\nfunction getContainerGridGap(element) {\n var style = window.getComputedStyle(element);\n\n if (style.display === 'grid') {\n return {\n x: getPixelValue(style.gridColumnGap),\n y: getPixelValue(style.gridRowGap)\n };\n }\n\n return {\n x: 0,\n y: 0\n };\n}\nvar KEYCODE = {\n TAB: 9,\n ESC: 27,\n SPACE: 32,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40\n};\nvar NodeType = {\n Anchor: 'A',\n Button: 'BUTTON',\n Canvas: 'CANVAS',\n Input: 'INPUT',\n Option: 'OPTION',\n Textarea: 'TEXTAREA',\n Select: 'SELECT'\n};\nfunction cloneNode(node) {\n var selector = 'input, textarea, select, canvas, [contenteditable]';\n var fields = node.querySelectorAll(selector);\n var clonedNode = node.cloneNode(true);\n\n var clonedFields = _toConsumableArray(clonedNode.querySelectorAll(selector));\n\n clonedFields.forEach(function (field, i) {\n if (field.type !== 'file') {\n field.value = fields[i].value;\n }\n\n if (field.type === 'radio' && field.name) {\n field.name = \"__sortableClone__\".concat(field.name);\n }\n\n if (field.tagName === NodeType.Canvas && fields[i].width > 0 && fields[i].height > 0) {\n var destCtx = field.getContext('2d');\n destCtx.drawImage(fields[i], 0, 0);\n }\n });\n return clonedNode;\n}\n\nfunction sortableHandle(WrappedComponent) {\n var _class, _temp;\n\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n withRef: false\n };\n return _temp = _class = function (_React$Component) {\n _inherits(WithSortableHandle, _React$Component);\n\n function WithSortableHandle() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, WithSortableHandle);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(WithSortableHandle)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"wrappedInstance\", createRef());\n\n return _this;\n }\n\n _createClass(WithSortableHandle, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var node = findDOMNode(this);\n node.sortableHandle = true;\n }\n }, {\n key: \"getWrappedInstance\",\n value: function getWrappedInstance() {\n invariant(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableHandle() call');\n return this.wrappedInstance.current;\n }\n }, {\n key: \"render\",\n value: function render() {\n var ref = config.withRef ? this.wrappedInstance : null;\n return createElement(WrappedComponent, _extends({\n ref: ref\n }, this.props));\n }\n }]);\n\n return WithSortableHandle;\n }(Component), _defineProperty(_class, \"displayName\", provideDisplayName('sortableHandle', WrappedComponent)), _temp;\n}\nfunction isSortableHandle(node) {\n return node.sortableHandle != null;\n}\n\nvar AutoScroller = function () {\n function AutoScroller(container, onScrollCallback) {\n _classCallCheck(this, AutoScroller);\n\n this.container = container;\n this.onScrollCallback = onScrollCallback;\n }\n\n _createClass(AutoScroller, [{\n key: \"clear\",\n value: function clear() {\n if (this.interval == null) {\n return;\n }\n\n clearInterval(this.interval);\n this.interval = null;\n }\n }, {\n key: \"update\",\n value: function update(_ref) {\n var _this = this;\n\n var translate = _ref.translate,\n minTranslate = _ref.minTranslate,\n maxTranslate = _ref.maxTranslate,\n width = _ref.width,\n height = _ref.height;\n var direction = {\n x: 0,\n y: 0\n };\n var speed = {\n x: 1,\n y: 1\n };\n var acceleration = {\n x: 10,\n y: 10\n };\n var _this$container = this.container,\n scrollTop = _this$container.scrollTop,\n scrollLeft = _this$container.scrollLeft,\n scrollHeight = _this$container.scrollHeight,\n scrollWidth = _this$container.scrollWidth,\n clientHeight = _this$container.clientHeight,\n clientWidth = _this$container.clientWidth;\n var isTop = scrollTop === 0;\n var isBottom = scrollHeight - scrollTop - clientHeight === 0;\n var isLeft = scrollLeft === 0;\n var isRight = scrollWidth - scrollLeft - clientWidth === 0;\n\n if (translate.y >= maxTranslate.y - height / 2 && !isBottom) {\n direction.y = 1;\n speed.y = acceleration.y * Math.abs((maxTranslate.y - height / 2 - translate.y) / height);\n } else if (translate.x >= maxTranslate.x - width / 2 && !isRight) {\n direction.x = 1;\n speed.x = acceleration.x * Math.abs((maxTranslate.x - width / 2 - translate.x) / width);\n } else if (translate.y <= minTranslate.y + height / 2 && !isTop) {\n direction.y = -1;\n speed.y = acceleration.y * Math.abs((translate.y - height / 2 - minTranslate.y) / height);\n } else if (translate.x <= minTranslate.x + width / 2 && !isLeft) {\n direction.x = -1;\n speed.x = acceleration.x * Math.abs((translate.x - width / 2 - minTranslate.x) / width);\n }\n\n if (this.interval) {\n this.clear();\n this.isAutoScrolling = false;\n }\n\n if (direction.x !== 0 || direction.y !== 0) {\n this.interval = setInterval(function () {\n _this.isAutoScrolling = true;\n var offset = {\n left: speed.x * direction.x,\n top: speed.y * direction.y\n };\n _this.container.scrollTop += offset.top;\n _this.container.scrollLeft += offset.left;\n\n _this.onScrollCallback(offset);\n }, 5);\n }\n }\n }]);\n\n return AutoScroller;\n}();\n\nfunction defaultGetHelperDimensions(_ref) {\n var node = _ref.node;\n return {\n height: node.offsetHeight,\n width: node.offsetWidth\n };\n}\n\nfunction defaultShouldCancelStart(event) {\n var interactiveElements = [NodeType.Input, NodeType.Textarea, NodeType.Select, NodeType.Option, NodeType.Button];\n\n if (interactiveElements.indexOf(event.target.tagName) !== -1) {\n return true;\n }\n\n if (closest(event.target, function (el) {\n return el.contentEditable === 'true';\n })) {\n return true;\n }\n\n return false;\n}\n\nvar propTypes = {\n axis: PropTypes.oneOf(['x', 'y', 'xy']),\n contentWindow: PropTypes.any,\n disableAutoscroll: PropTypes.bool,\n distance: PropTypes.number,\n getContainer: PropTypes.func,\n getHelperDimensions: PropTypes.func,\n helperClass: PropTypes.string,\n helperContainer: PropTypes.oneOfType([PropTypes.func, typeof HTMLElement === 'undefined' ? PropTypes.any : PropTypes.instanceOf(HTMLElement)]),\n hideSortableGhost: PropTypes.bool,\n keyboardSortingTransitionDuration: PropTypes.number,\n lockAxis: PropTypes.string,\n lockOffset: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string]))]),\n lockToContainerEdges: PropTypes.bool,\n onSortEnd: PropTypes.func,\n onSortMove: PropTypes.func,\n onSortOver: PropTypes.func,\n onSortStart: PropTypes.func,\n pressDelay: PropTypes.number,\n pressThreshold: PropTypes.number,\n keyCodes: PropTypes.shape({\n lift: PropTypes.arrayOf(PropTypes.number),\n drop: PropTypes.arrayOf(PropTypes.number),\n cancel: PropTypes.arrayOf(PropTypes.number),\n up: PropTypes.arrayOf(PropTypes.number),\n down: PropTypes.arrayOf(PropTypes.number)\n }),\n shouldCancelStart: PropTypes.func,\n transitionDuration: PropTypes.number,\n updateBeforeSortStart: PropTypes.func,\n useDragHandle: PropTypes.bool,\n useWindowAsScrollContainer: PropTypes.bool\n};\nvar defaultKeyCodes = {\n lift: [KEYCODE.SPACE],\n drop: [KEYCODE.SPACE],\n cancel: [KEYCODE.ESC],\n up: [KEYCODE.UP, KEYCODE.LEFT],\n down: [KEYCODE.DOWN, KEYCODE.RIGHT]\n};\nvar defaultProps = {\n axis: 'y',\n disableAutoscroll: false,\n distance: 0,\n getHelperDimensions: defaultGetHelperDimensions,\n hideSortableGhost: true,\n lockOffset: '50%',\n lockToContainerEdges: false,\n pressDelay: 0,\n pressThreshold: 5,\n keyCodes: defaultKeyCodes,\n shouldCancelStart: defaultShouldCancelStart,\n transitionDuration: 300,\n useWindowAsScrollContainer: false\n};\nvar omittedProps = Object.keys(propTypes);\nfunction validateProps(props) {\n invariant(!(props.distance && props.pressDelay), 'Attempted to set both `pressDelay` and `distance` on SortableContainer, you may only use one or the other, not both at the same time.');\n}\n\nfunction _finallyRethrows(body, finalizer) {\n try {\n var result = body();\n } catch (e) {\n return finalizer(true, e);\n }\n\n if (result && result.then) {\n return result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n }\n\n return finalizer(false, value);\n}\nvar SortableContext = createContext({\n manager: {}\n});\nfunction sortableContainer(WrappedComponent) {\n var _class, _temp;\n\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n withRef: false\n };\n return _temp = _class = function (_React$Component) {\n _inherits(WithSortableContainer, _React$Component);\n\n function WithSortableContainer(props) {\n var _this;\n\n _classCallCheck(this, WithSortableContainer);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(WithSortableContainer).call(this, props));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {});\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleStart\", function (event) {\n var _this$props = _this.props,\n distance = _this$props.distance,\n shouldCancelStart = _this$props.shouldCancelStart;\n\n if (event.button === 2 || shouldCancelStart(event)) {\n return;\n }\n\n _this.touched = true;\n _this.position = getPosition(event);\n var node = closest(event.target, function (el) {\n return el.sortableInfo != null;\n });\n\n if (node && node.sortableInfo && _this.nodeIsChild(node) && !_this.state.sorting) {\n var useDragHandle = _this.props.useDragHandle;\n var _node$sortableInfo = node.sortableInfo,\n index = _node$sortableInfo.index,\n collection = _node$sortableInfo.collection,\n disabled = _node$sortableInfo.disabled;\n\n if (disabled) {\n return;\n }\n\n if (useDragHandle && !closest(event.target, isSortableHandle)) {\n return;\n }\n\n _this.manager.active = {\n collection: collection,\n index: index\n };\n\n if (!isTouchEvent(event) && event.target.tagName === NodeType.Anchor) {\n event.preventDefault();\n }\n\n if (!distance) {\n if (_this.props.pressDelay === 0) {\n _this.handlePress(event);\n } else {\n _this.pressTimer = setTimeout(function () {\n return _this.handlePress(event);\n }, _this.props.pressDelay);\n }\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"nodeIsChild\", function (node) {\n return node.sortableInfo.manager === _this.manager;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleMove\", function (event) {\n var _this$props2 = _this.props,\n distance = _this$props2.distance,\n pressThreshold = _this$props2.pressThreshold;\n\n if (!_this.state.sorting && _this.touched && !_this._awaitingUpdateBeforeSortStart) {\n var position = getPosition(event);\n var delta = {\n x: _this.position.x - position.x,\n y: _this.position.y - position.y\n };\n var combinedDelta = Math.abs(delta.x) + Math.abs(delta.y);\n _this.delta = delta;\n\n if (!distance && (!pressThreshold || combinedDelta >= pressThreshold)) {\n clearTimeout(_this.cancelTimer);\n _this.cancelTimer = setTimeout(_this.cancel, 0);\n } else if (distance && combinedDelta >= distance && _this.manager.isActive()) {\n _this.handlePress(event);\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleEnd\", function () {\n _this.touched = false;\n\n _this.cancel();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"cancel\", function () {\n var distance = _this.props.distance;\n var sorting = _this.state.sorting;\n\n if (!sorting) {\n if (!distance) {\n clearTimeout(_this.pressTimer);\n }\n\n _this.manager.active = null;\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handlePress\", function (event) {\n try {\n var active = _this.manager.getActive();\n\n var _temp6 = function () {\n if (active) {\n var _temp7 = function _temp7() {\n var index = _node.sortableInfo.index;\n var margin = getElementMargin(_node);\n var gridGap = getContainerGridGap(_this.container);\n\n var containerBoundingRect = _this.scrollContainer.getBoundingClientRect();\n\n var dimensions = _getHelperDimensions({\n index: index,\n node: _node,\n collection: _collection\n });\n\n _this.node = _node;\n _this.margin = margin;\n _this.gridGap = gridGap;\n _this.width = dimensions.width;\n _this.height = dimensions.height;\n _this.marginOffset = {\n x: _this.margin.left + _this.margin.right + _this.gridGap.x,\n y: Math.max(_this.margin.top, _this.margin.bottom, _this.gridGap.y)\n };\n _this.boundingClientRect = _node.getBoundingClientRect();\n _this.containerBoundingRect = containerBoundingRect;\n _this.index = index;\n _this.newIndex = index;\n _this.axis = {\n x: _axis.indexOf('x') >= 0,\n y: _axis.indexOf('y') >= 0\n };\n _this.offsetEdge = getEdgeOffset(_node, _this.container);\n\n if (_isKeySorting) {\n _this.initialOffset = getPosition(_objectSpread({}, event, {\n pageX: _this.boundingClientRect.left,\n pageY: _this.boundingClientRect.top\n }));\n } else {\n _this.initialOffset = getPosition(event);\n }\n\n _this.initialScroll = {\n left: _this.scrollContainer.scrollLeft,\n top: _this.scrollContainer.scrollTop\n };\n _this.initialWindowScroll = {\n left: window.pageXOffset,\n top: window.pageYOffset\n };\n _this.helper = _this.helperContainer.appendChild(cloneNode(_node));\n setInlineStyles(_this.helper, {\n boxSizing: 'border-box',\n height: \"\".concat(_this.height, \"px\"),\n left: \"\".concat(_this.boundingClientRect.left - margin.left, \"px\"),\n pointerEvents: 'none',\n position: 'fixed',\n top: \"\".concat(_this.boundingClientRect.top - margin.top, \"px\"),\n width: \"\".concat(_this.width, \"px\")\n });\n\n if (_isKeySorting) {\n _this.helper.focus();\n }\n\n if (_hideSortableGhost) {\n _this.sortableGhost = _node;\n setInlineStyles(_node, {\n opacity: 0,\n visibility: 'hidden'\n });\n }\n\n _this.minTranslate = {};\n _this.maxTranslate = {};\n\n if (_isKeySorting) {\n var _ref = _useWindowAsScrollContainer ? {\n top: 0,\n left: 0,\n width: _this.contentWindow.innerWidth,\n height: _this.contentWindow.innerHeight\n } : _this.containerBoundingRect,\n containerTop = _ref.top,\n containerLeft = _ref.left,\n containerWidth = _ref.width,\n containerHeight = _ref.height;\n\n var containerBottom = containerTop + containerHeight;\n var containerRight = containerLeft + containerWidth;\n\n if (_this.axis.x) {\n _this.minTranslate.x = containerLeft - _this.boundingClientRect.left;\n _this.maxTranslate.x = containerRight - (_this.boundingClientRect.left + _this.width);\n }\n\n if (_this.axis.y) {\n _this.minTranslate.y = containerTop - _this.boundingClientRect.top;\n _this.maxTranslate.y = containerBottom - (_this.boundingClientRect.top + _this.height);\n }\n } else {\n if (_this.axis.x) {\n _this.minTranslate.x = (_useWindowAsScrollContainer ? 0 : containerBoundingRect.left) - _this.boundingClientRect.left - _this.width / 2;\n _this.maxTranslate.x = (_useWindowAsScrollContainer ? _this.contentWindow.innerWidth : containerBoundingRect.left + containerBoundingRect.width) - _this.boundingClientRect.left - _this.width / 2;\n }\n\n if (_this.axis.y) {\n _this.minTranslate.y = (_useWindowAsScrollContainer ? 0 : containerBoundingRect.top) - _this.boundingClientRect.top - _this.height / 2;\n _this.maxTranslate.y = (_useWindowAsScrollContainer ? _this.contentWindow.innerHeight : containerBoundingRect.top + containerBoundingRect.height) - _this.boundingClientRect.top - _this.height / 2;\n }\n }\n\n if (_helperClass) {\n _helperClass.split(' ').forEach(function (className) {\n return _this.helper.classList.add(className);\n });\n }\n\n _this.listenerNode = event.touches ? event.target : _this.contentWindow;\n\n if (_isKeySorting) {\n _this.listenerNode.addEventListener('wheel', _this.handleKeyEnd, true);\n\n _this.listenerNode.addEventListener('mousedown', _this.handleKeyEnd, true);\n\n _this.listenerNode.addEventListener('keydown', _this.handleKeyDown);\n } else {\n events.move.forEach(function (eventName) {\n return _this.listenerNode.addEventListener(eventName, _this.handleSortMove, false);\n });\n events.end.forEach(function (eventName) {\n return _this.listenerNode.addEventListener(eventName, _this.handleSortEnd, false);\n });\n }\n\n _this.setState({\n sorting: true,\n sortingIndex: index\n });\n\n if (_onSortStart) {\n _onSortStart({\n node: _node,\n index: index,\n collection: _collection,\n isKeySorting: _isKeySorting,\n nodes: _this.manager.getOrderedRefs(),\n helper: _this.helper\n }, event);\n }\n\n if (_isKeySorting) {\n _this.keyMove(0);\n }\n };\n\n var _this$props3 = _this.props,\n _axis = _this$props3.axis,\n _getHelperDimensions = _this$props3.getHelperDimensions,\n _helperClass = _this$props3.helperClass,\n _hideSortableGhost = _this$props3.hideSortableGhost,\n updateBeforeSortStart = _this$props3.updateBeforeSortStart,\n _onSortStart = _this$props3.onSortStart,\n _useWindowAsScrollContainer = _this$props3.useWindowAsScrollContainer;\n var _node = active.node,\n _collection = active.collection;\n var _isKeySorting = _this.manager.isKeySorting;\n\n var _temp8 = function () {\n if (typeof updateBeforeSortStart === 'function') {\n _this._awaitingUpdateBeforeSortStart = true;\n\n var _temp9 = _finallyRethrows(function () {\n var index = _node.sortableInfo.index;\n return Promise.resolve(updateBeforeSortStart({\n collection: _collection,\n index: index,\n node: _node,\n isKeySorting: _isKeySorting\n }, event)).then(function () {});\n }, function (_wasThrown, _result) {\n _this._awaitingUpdateBeforeSortStart = false;\n if (_wasThrown) throw _result;\n return _result;\n });\n\n if (_temp9 && _temp9.then) return _temp9.then(function () {});\n }\n }();\n\n return _temp8 && _temp8.then ? _temp8.then(_temp7) : _temp7(_temp8);\n }\n }();\n\n return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);\n } catch (e) {\n return Promise.reject(e);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleSortMove\", function (event) {\n var onSortMove = _this.props.onSortMove;\n\n if (typeof event.preventDefault === 'function' && event.cancelable) {\n event.preventDefault();\n }\n\n _this.updateHelperPosition(event);\n\n _this.animateNodes();\n\n _this.autoscroll();\n\n if (onSortMove) {\n onSortMove(event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleSortEnd\", function (event) {\n var _this$props4 = _this.props,\n hideSortableGhost = _this$props4.hideSortableGhost,\n onSortEnd = _this$props4.onSortEnd;\n var _this$manager = _this.manager,\n collection = _this$manager.active.collection,\n isKeySorting = _this$manager.isKeySorting;\n\n var nodes = _this.manager.getOrderedRefs();\n\n if (_this.listenerNode) {\n if (isKeySorting) {\n _this.listenerNode.removeEventListener('wheel', _this.handleKeyEnd, true);\n\n _this.listenerNode.removeEventListener('mousedown', _this.handleKeyEnd, true);\n\n _this.listenerNode.removeEventListener('keydown', _this.handleKeyDown);\n } else {\n events.move.forEach(function (eventName) {\n return _this.listenerNode.removeEventListener(eventName, _this.handleSortMove);\n });\n events.end.forEach(function (eventName) {\n return _this.listenerNode.removeEventListener(eventName, _this.handleSortEnd);\n });\n }\n }\n\n _this.helper.parentNode.removeChild(_this.helper);\n\n if (hideSortableGhost && _this.sortableGhost) {\n setInlineStyles(_this.sortableGhost, {\n opacity: '',\n visibility: ''\n });\n }\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n var _node2 = nodes[i];\n var el = _node2.node;\n _node2.edgeOffset = null;\n _node2.boundingClientRect = null;\n setTranslate3d(el, null);\n setTransitionDuration(el, null);\n _node2.translate = null;\n }\n\n _this.autoScroller.clear();\n\n _this.manager.active = null;\n _this.manager.isKeySorting = false;\n\n _this.setState({\n sorting: false,\n sortingIndex: null\n });\n\n if (typeof onSortEnd === 'function') {\n onSortEnd({\n collection: collection,\n newIndex: _this.newIndex,\n oldIndex: _this.index,\n isKeySorting: isKeySorting,\n nodes: nodes\n }, event);\n }\n\n _this.touched = false;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"autoscroll\", function () {\n var disableAutoscroll = _this.props.disableAutoscroll;\n var isKeySorting = _this.manager.isKeySorting;\n\n if (disableAutoscroll) {\n _this.autoScroller.clear();\n\n return;\n }\n\n if (isKeySorting) {\n var translate = _objectSpread({}, _this.translate);\n\n var scrollX = 0;\n var scrollY = 0;\n\n if (_this.axis.x) {\n translate.x = Math.min(_this.maxTranslate.x, Math.max(_this.minTranslate.x, _this.translate.x));\n scrollX = _this.translate.x - translate.x;\n }\n\n if (_this.axis.y) {\n translate.y = Math.min(_this.maxTranslate.y, Math.max(_this.minTranslate.y, _this.translate.y));\n scrollY = _this.translate.y - translate.y;\n }\n\n _this.translate = translate;\n setTranslate3d(_this.helper, _this.translate);\n _this.scrollContainer.scrollLeft += scrollX;\n _this.scrollContainer.scrollTop += scrollY;\n return;\n }\n\n _this.autoScroller.update({\n height: _this.height,\n maxTranslate: _this.maxTranslate,\n minTranslate: _this.minTranslate,\n translate: _this.translate,\n width: _this.width\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onAutoScroll\", function (offset) {\n _this.translate.x += offset.left;\n _this.translate.y += offset.top;\n\n _this.animateNodes();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleKeyDown\", function (event) {\n var keyCode = event.keyCode;\n var _this$props5 = _this.props,\n shouldCancelStart = _this$props5.shouldCancelStart,\n _this$props5$keyCodes = _this$props5.keyCodes,\n customKeyCodes = _this$props5$keyCodes === void 0 ? {} : _this$props5$keyCodes;\n\n var keyCodes = _objectSpread({}, defaultKeyCodes, customKeyCodes);\n\n if (_this.manager.active && !_this.manager.isKeySorting || !_this.manager.active && (!keyCodes.lift.includes(keyCode) || shouldCancelStart(event) || !_this.isValidSortingTarget(event))) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n if (keyCodes.lift.includes(keyCode) && !_this.manager.active) {\n _this.keyLift(event);\n } else if (keyCodes.drop.includes(keyCode) && _this.manager.active) {\n _this.keyDrop(event);\n } else if (keyCodes.cancel.includes(keyCode)) {\n _this.newIndex = _this.manager.active.index;\n\n _this.keyDrop(event);\n } else if (keyCodes.up.includes(keyCode)) {\n _this.keyMove(-1);\n } else if (keyCodes.down.includes(keyCode)) {\n _this.keyMove(1);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"keyLift\", function (event) {\n var target = event.target;\n var node = closest(target, function (el) {\n return el.sortableInfo != null;\n });\n var _node$sortableInfo2 = node.sortableInfo,\n index = _node$sortableInfo2.index,\n collection = _node$sortableInfo2.collection;\n _this.initialFocusedNode = target;\n _this.manager.isKeySorting = true;\n _this.manager.active = {\n index: index,\n collection: collection\n };\n\n _this.handlePress(event);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"keyMove\", function (shift) {\n var nodes = _this.manager.getOrderedRefs();\n\n var lastIndex = nodes[nodes.length - 1].node.sortableInfo.index;\n var newIndex = _this.newIndex + shift;\n var prevIndex = _this.newIndex;\n\n if (newIndex < 0 || newIndex > lastIndex) {\n return;\n }\n\n _this.prevIndex = prevIndex;\n _this.newIndex = newIndex;\n var targetIndex = getTargetIndex(_this.newIndex, _this.prevIndex, _this.index);\n var target = nodes.find(function (_ref2) {\n var node = _ref2.node;\n return node.sortableInfo.index === targetIndex;\n });\n var targetNode = target.node;\n var scrollDelta = _this.containerScrollDelta;\n var targetBoundingClientRect = target.boundingClientRect || getScrollAdjustedBoundingClientRect(targetNode, scrollDelta);\n var targetTranslate = target.translate || {\n x: 0,\n y: 0\n };\n var targetPosition = {\n top: targetBoundingClientRect.top + targetTranslate.y - scrollDelta.top,\n left: targetBoundingClientRect.left + targetTranslate.x - scrollDelta.left\n };\n var shouldAdjustForSize = prevIndex < newIndex;\n var sizeAdjustment = {\n x: shouldAdjustForSize && _this.axis.x ? targetNode.offsetWidth - _this.width : 0,\n y: shouldAdjustForSize && _this.axis.y ? targetNode.offsetHeight - _this.height : 0\n };\n\n _this.handleSortMove({\n pageX: targetPosition.left + sizeAdjustment.x,\n pageY: targetPosition.top + sizeAdjustment.y,\n ignoreTransition: shift === 0\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"keyDrop\", function (event) {\n _this.handleSortEnd(event);\n\n if (_this.initialFocusedNode) {\n _this.initialFocusedNode.focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleKeyEnd\", function (event) {\n if (_this.manager.active) {\n _this.keyDrop(event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"isValidSortingTarget\", function (event) {\n var useDragHandle = _this.props.useDragHandle;\n var target = event.target;\n var node = closest(target, function (el) {\n return el.sortableInfo != null;\n });\n return node && node.sortableInfo && !node.sortableInfo.disabled && (useDragHandle ? isSortableHandle(target) : target.sortableInfo);\n });\n\n var manager = new Manager();\n validateProps(props);\n _this.manager = manager;\n _this.wrappedInstance = createRef();\n _this.sortableContextValue = {\n manager: manager\n };\n _this.events = {\n end: _this.handleEnd,\n move: _this.handleMove,\n start: _this.handleStart\n };\n return _this;\n }\n\n _createClass(WithSortableContainer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n var useWindowAsScrollContainer = this.props.useWindowAsScrollContainer;\n var container = this.getContainer();\n Promise.resolve(container).then(function (containerNode) {\n _this2.container = containerNode;\n _this2.document = _this2.container.ownerDocument || document;\n var contentWindow = _this2.props.contentWindow || _this2.document.defaultView || window;\n _this2.contentWindow = typeof contentWindow === 'function' ? contentWindow() : contentWindow;\n _this2.scrollContainer = useWindowAsScrollContainer ? _this2.document.scrollingElement || _this2.document.documentElement : getScrollingParent(_this2.container) || _this2.container;\n _this2.autoScroller = new AutoScroller(_this2.scrollContainer, _this2.onAutoScroll);\n Object.keys(_this2.events).forEach(function (key) {\n return events[key].forEach(function (eventName) {\n return _this2.container.addEventListener(eventName, _this2.events[key], false);\n });\n });\n\n _this2.container.addEventListener('keydown', _this2.handleKeyDown);\n });\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var _this3 = this;\n\n if (this.helper && this.helper.parentNode) {\n this.helper.parentNode.removeChild(this.helper);\n }\n\n if (!this.container) {\n return;\n }\n\n Object.keys(this.events).forEach(function (key) {\n return events[key].forEach(function (eventName) {\n return _this3.container.removeEventListener(eventName, _this3.events[key]);\n });\n });\n this.container.removeEventListener('keydown', this.handleKeyDown);\n }\n }, {\n key: \"updateHelperPosition\",\n value: function updateHelperPosition(event) {\n var _this$props6 = this.props,\n lockAxis = _this$props6.lockAxis,\n lockOffset = _this$props6.lockOffset,\n lockToContainerEdges = _this$props6.lockToContainerEdges,\n transitionDuration = _this$props6.transitionDuration,\n _this$props6$keyboard = _this$props6.keyboardSortingTransitionDuration,\n keyboardSortingTransitionDuration = _this$props6$keyboard === void 0 ? transitionDuration : _this$props6$keyboard;\n var isKeySorting = this.manager.isKeySorting;\n var ignoreTransition = event.ignoreTransition;\n var offset = getPosition(event);\n var translate = {\n x: offset.x - this.initialOffset.x,\n y: offset.y - this.initialOffset.y\n };\n translate.y -= window.pageYOffset - this.initialWindowScroll.top;\n translate.x -= window.pageXOffset - this.initialWindowScroll.left;\n this.translate = translate;\n\n if (lockToContainerEdges) {\n var _getLockPixelOffsets = getLockPixelOffsets({\n height: this.height,\n lockOffset: lockOffset,\n width: this.width\n }),\n _getLockPixelOffsets2 = _slicedToArray(_getLockPixelOffsets, 2),\n minLockOffset = _getLockPixelOffsets2[0],\n maxLockOffset = _getLockPixelOffsets2[1];\n\n var minOffset = {\n x: this.width / 2 - minLockOffset.x,\n y: this.height / 2 - minLockOffset.y\n };\n var maxOffset = {\n x: this.width / 2 - maxLockOffset.x,\n y: this.height / 2 - maxLockOffset.y\n };\n translate.x = limit(this.minTranslate.x + minOffset.x, this.maxTranslate.x - maxOffset.x, translate.x);\n translate.y = limit(this.minTranslate.y + minOffset.y, this.maxTranslate.y - maxOffset.y, translate.y);\n }\n\n if (lockAxis === 'x') {\n translate.y = 0;\n } else if (lockAxis === 'y') {\n translate.x = 0;\n }\n\n if (isKeySorting && keyboardSortingTransitionDuration && !ignoreTransition) {\n setTransitionDuration(this.helper, keyboardSortingTransitionDuration);\n }\n\n setTranslate3d(this.helper, translate);\n }\n }, {\n key: \"animateNodes\",\n value: function animateNodes() {\n var _this$props7 = this.props,\n transitionDuration = _this$props7.transitionDuration,\n hideSortableGhost = _this$props7.hideSortableGhost,\n onSortOver = _this$props7.onSortOver;\n var containerScrollDelta = this.containerScrollDelta,\n windowScrollDelta = this.windowScrollDelta;\n var nodes = this.manager.getOrderedRefs();\n var sortingOffset = {\n left: this.offsetEdge.left + this.translate.x + containerScrollDelta.left,\n top: this.offsetEdge.top + this.translate.y + containerScrollDelta.top\n };\n var isKeySorting = this.manager.isKeySorting;\n var prevIndex = this.newIndex;\n this.newIndex = null;\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n var _node3 = nodes[i].node;\n var index = _node3.sortableInfo.index;\n var width = _node3.offsetWidth;\n var height = _node3.offsetHeight;\n var offset = {\n height: this.height > height ? height / 2 : this.height / 2,\n width: this.width > width ? width / 2 : this.width / 2\n };\n var mustShiftBackward = isKeySorting && index > this.index && index <= prevIndex;\n var mustShiftForward = isKeySorting && index < this.index && index >= prevIndex;\n var translate = {\n x: 0,\n y: 0\n };\n var edgeOffset = nodes[i].edgeOffset;\n\n if (!edgeOffset) {\n edgeOffset = getEdgeOffset(_node3, this.container);\n nodes[i].edgeOffset = edgeOffset;\n\n if (isKeySorting) {\n nodes[i].boundingClientRect = getScrollAdjustedBoundingClientRect(_node3, containerScrollDelta);\n }\n }\n\n var nextNode = i < nodes.length - 1 && nodes[i + 1];\n var prevNode = i > 0 && nodes[i - 1];\n\n if (nextNode && !nextNode.edgeOffset) {\n nextNode.edgeOffset = getEdgeOffset(nextNode.node, this.container);\n\n if (isKeySorting) {\n nextNode.boundingClientRect = getScrollAdjustedBoundingClientRect(nextNode.node, containerScrollDelta);\n }\n }\n\n if (index === this.index) {\n if (hideSortableGhost) {\n this.sortableGhost = _node3;\n setInlineStyles(_node3, {\n opacity: 0,\n visibility: 'hidden'\n });\n }\n\n continue;\n }\n\n if (transitionDuration) {\n setTransitionDuration(_node3, transitionDuration);\n }\n\n if (this.axis.x) {\n if (this.axis.y) {\n if (mustShiftForward || index < this.index && (sortingOffset.left + windowScrollDelta.left - offset.width <= edgeOffset.left && sortingOffset.top + windowScrollDelta.top <= edgeOffset.top + offset.height || sortingOffset.top + windowScrollDelta.top + offset.height <= edgeOffset.top)) {\n translate.x = this.width + this.marginOffset.x;\n\n if (edgeOffset.left + translate.x > this.containerBoundingRect.width - offset.width) {\n if (nextNode) {\n translate.x = nextNode.edgeOffset.left - edgeOffset.left;\n translate.y = nextNode.edgeOffset.top - edgeOffset.top;\n }\n }\n\n if (this.newIndex === null) {\n this.newIndex = index;\n }\n } else if (mustShiftBackward || index > this.index && (sortingOffset.left + windowScrollDelta.left + offset.width >= edgeOffset.left && sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top || sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top + height)) {\n translate.x = -(this.width + this.marginOffset.x);\n\n if (edgeOffset.left + translate.x < this.containerBoundingRect.left + offset.width) {\n if (prevNode) {\n translate.x = prevNode.edgeOffset.left - edgeOffset.left;\n translate.y = prevNode.edgeOffset.top - edgeOffset.top;\n }\n }\n\n this.newIndex = index;\n }\n } else {\n if (mustShiftBackward || index > this.index && sortingOffset.left + windowScrollDelta.left + offset.width >= edgeOffset.left) {\n translate.x = -(this.width + this.marginOffset.x);\n this.newIndex = index;\n } else if (mustShiftForward || index < this.index && sortingOffset.left + windowScrollDelta.left <= edgeOffset.left + offset.width) {\n translate.x = this.width + this.marginOffset.x;\n\n if (this.newIndex == null) {\n this.newIndex = index;\n }\n }\n }\n } else if (this.axis.y) {\n if (mustShiftBackward || index > this.index && sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top) {\n translate.y = -(this.height + this.marginOffset.y);\n this.newIndex = index;\n } else if (mustShiftForward || index < this.index && sortingOffset.top + windowScrollDelta.top <= edgeOffset.top + offset.height) {\n translate.y = this.height + this.marginOffset.y;\n\n if (this.newIndex == null) {\n this.newIndex = index;\n }\n }\n }\n\n setTranslate3d(_node3, translate);\n nodes[i].translate = translate;\n }\n\n if (this.newIndex == null) {\n this.newIndex = this.index;\n }\n\n if (isKeySorting) {\n this.newIndex = prevIndex;\n }\n\n var oldIndex = isKeySorting ? this.prevIndex : prevIndex;\n\n if (onSortOver && this.newIndex !== oldIndex) {\n onSortOver({\n collection: this.manager.active.collection,\n index: this.index,\n newIndex: this.newIndex,\n oldIndex: oldIndex,\n isKeySorting: isKeySorting,\n nodes: nodes,\n helper: this.helper\n });\n }\n }\n }, {\n key: \"getWrappedInstance\",\n value: function getWrappedInstance() {\n invariant(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableContainer() call');\n return this.wrappedInstance.current;\n }\n }, {\n key: \"getContainer\",\n value: function getContainer() {\n var getContainer = this.props.getContainer;\n\n if (typeof getContainer !== 'function') {\n return findDOMNode(this);\n }\n\n return getContainer(config.withRef ? this.getWrappedInstance() : undefined);\n }\n }, {\n key: \"render\",\n value: function render() {\n var ref = config.withRef ? this.wrappedInstance : null;\n return createElement(SortableContext.Provider, {\n value: this.sortableContextValue\n }, createElement(WrappedComponent, _extends({\n ref: ref\n }, omit(this.props, omittedProps))));\n }\n }, {\n key: \"helperContainer\",\n get: function get() {\n var helperContainer = this.props.helperContainer;\n\n if (typeof helperContainer === 'function') {\n return helperContainer();\n }\n\n return this.props.helperContainer || this.document.body;\n }\n }, {\n key: \"containerScrollDelta\",\n get: function get() {\n var useWindowAsScrollContainer = this.props.useWindowAsScrollContainer;\n\n if (useWindowAsScrollContainer) {\n return {\n left: 0,\n top: 0\n };\n }\n\n return {\n left: this.scrollContainer.scrollLeft - this.initialScroll.left,\n top: this.scrollContainer.scrollTop - this.initialScroll.top\n };\n }\n }, {\n key: \"windowScrollDelta\",\n get: function get() {\n return {\n left: this.contentWindow.pageXOffset - this.initialWindowScroll.left,\n top: this.contentWindow.pageYOffset - this.initialWindowScroll.top\n };\n }\n }]);\n\n return WithSortableContainer;\n }(Component), _defineProperty(_class, \"displayName\", provideDisplayName('sortableList', WrappedComponent)), _defineProperty(_class, \"defaultProps\", defaultProps), _defineProperty(_class, \"propTypes\", propTypes), _temp;\n}\n\nvar propTypes$1 = {\n index: PropTypes.number.isRequired,\n collection: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n disabled: PropTypes.bool\n};\nvar omittedProps$1 = Object.keys(propTypes$1);\nfunction sortableElement(WrappedComponent) {\n var _class, _temp;\n\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n withRef: false\n };\n return _temp = _class = function (_React$Component) {\n _inherits(WithSortableElement, _React$Component);\n\n function WithSortableElement() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, WithSortableElement);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(WithSortableElement)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"wrappedInstance\", createRef());\n\n return _this;\n }\n\n _createClass(WithSortableElement, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.register();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.node) {\n if (prevProps.index !== this.props.index) {\n this.node.sortableInfo.index = this.props.index;\n }\n\n if (prevProps.disabled !== this.props.disabled) {\n this.node.sortableInfo.disabled = this.props.disabled;\n }\n }\n\n if (prevProps.collection !== this.props.collection) {\n this.unregister(prevProps.collection);\n this.register();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unregister();\n }\n }, {\n key: \"register\",\n value: function register() {\n var _this$props = this.props,\n collection = _this$props.collection,\n disabled = _this$props.disabled,\n index = _this$props.index;\n var node = findDOMNode(this);\n node.sortableInfo = {\n collection: collection,\n disabled: disabled,\n index: index,\n manager: this.context.manager\n };\n this.node = node;\n this.ref = {\n node: node\n };\n this.context.manager.add(collection, this.ref);\n }\n }, {\n key: \"unregister\",\n value: function unregister() {\n var collection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.collection;\n this.context.manager.remove(collection, this.ref);\n }\n }, {\n key: \"getWrappedInstance\",\n value: function getWrappedInstance() {\n invariant(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableElement() call');\n return this.wrappedInstance.current;\n }\n }, {\n key: \"render\",\n value: function render() {\n var ref = config.withRef ? this.wrappedInstance : null;\n return createElement(WrappedComponent, _extends({\n ref: ref\n }, omit(this.props, omittedProps$1)));\n }\n }]);\n\n return WithSortableElement;\n }(Component), _defineProperty(_class, \"displayName\", provideDisplayName('sortableElement', WrappedComponent)), _defineProperty(_class, \"contextType\", SortableContext), _defineProperty(_class, \"propTypes\", propTypes$1), _defineProperty(_class, \"defaultProps\", {\n collection: 0\n }), _temp;\n}\n\nexport { sortableContainer as SortableContainer, sortableContainer, sortableElement as SortableElement, sortableElement, sortableHandle as SortableHandle, sortableHandle, arrayMove };\n", "import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };", "function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };", "function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };", "import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };", "import { useState, useMemo, useCallback, useEffect } from 'react';\nimport autoAnimate from '../index.mjs';\n\n/**\n * AutoAnimate hook for adding dead-simple transitions and animations to react.\n * @param options - Auto animate options or a plugin\n * @returns\n */\nfunction useAutoAnimate(options) {\n const [controller, setController] = useState();\n const memoizedOptions = useMemo(() => options, []);\n const element = useCallback((node) => {\n if (node instanceof HTMLElement) {\n setController(autoAnimate(node, memoizedOptions));\n }\n else {\n setController(undefined);\n }\n }, [memoizedOptions]);\n const setEnabled = useCallback((enabled) => {\n if (controller) {\n enabled ? controller.enable() : controller.disable();\n }\n }, [controller]);\n useEffect(() => {\n return () => {\n var _a;\n (_a = controller === null || controller === void 0 ? void 0 : controller.destroy) === null || _a === void 0 ? void 0 : _a.call(controller);\n };\n }, [controller]);\n return [element, setEnabled];\n}\n\nexport { useAutoAnimate };\n", "/**\n * A set of all the parents currently being observe. This is the only non weak\n * registry.\n */\nconst parents = new Set();\n/**\n * Element coordinates that is constantly kept up to date.\n */\nconst coords = new WeakMap();\n/**\n * Siblings of elements that have been removed from the dom.\n */\nconst siblings = new WeakMap();\n/**\n * Animations that are currently running.\n */\nconst animations = new WeakMap();\n/**\n * A map of existing intersection observers used to track element movements.\n */\nconst intersections = new WeakMap();\n/**\n * A map of existing mutation observers used to track element movements.\n */\nconst mutationObservers = new WeakMap();\n/**\n * Intervals for automatically checking the position of elements occasionally.\n */\nconst intervals = new WeakMap();\n/**\n * The configuration options for each group of elements.\n */\nconst options = new WeakMap();\n/**\n * Debounce counters by id, used to debounce calls to update positions.\n */\nconst debounces = new WeakMap();\n/**\n * All parents that are currently enabled are tracked here.\n */\nconst enabled = new WeakSet();\n/**\n * The document used to calculate transitions.\n */\nlet root;\n/**\n * The root\u2019s XY scroll positions.\n */\nlet scrollX = 0;\nlet scrollY = 0;\n/**\n * Used to sign an element as the target.\n */\nconst TGT = \"__aa_tgt\";\n/**\n * Used to sign an element as being part of a removal.\n */\nconst DEL = \"__aa_del\";\n/**\n * Used to sign an element as being \"new\". When an element is removed from the\n * dom, but may cycle back in we can sign it with new to ensure the next time\n * it is recognized we consider it new.\n */\nconst NEW = \"__aa_new\";\n/**\n * Callback for handling all mutations.\n * @param mutations - A mutation list\n */\nconst handleMutations = (mutations) => {\n const elements = getElements(mutations);\n // If elements is \"false\" that means this mutation that should be ignored.\n if (elements) {\n elements.forEach((el) => animate(el));\n }\n};\n/**\n *\n * @param entries - Elements that have been resized.\n */\nconst handleResizes = (entries) => {\n entries.forEach((entry) => {\n if (entry.target === root)\n updateAllPos();\n if (coords.has(entry.target))\n updatePos(entry.target);\n });\n};\n/**\n * Determine if an element is fully outside of the current viewport.\n * @param el - Element to test\n */\nfunction isOffscreen(el) {\n const rect = el.getBoundingClientRect();\n const vw = (root === null || root === void 0 ? void 0 : root.clientWidth) || 0;\n const vh = (root === null || root === void 0 ? void 0 : root.clientHeight) || 0;\n return rect.bottom < 0 || rect.top > vh || rect.right < 0 || rect.left > vw;\n}\n/**\n * Observe this elements position.\n * @param el - The element to observe the position of.\n */\nfunction observePosition(el) {\n const oldObserver = intersections.get(el);\n oldObserver === null || oldObserver === void 0 ? void 0 : oldObserver.disconnect();\n let rect = coords.get(el);\n let invocations = 0;\n const buffer = 5;\n if (!rect) {\n rect = getCoords(el);\n coords.set(el, rect);\n }\n const { offsetWidth, offsetHeight } = root;\n const rootMargins = [\n rect.top - buffer,\n offsetWidth - (rect.left + buffer + rect.width),\n offsetHeight - (rect.top + buffer + rect.height),\n rect.left - buffer,\n ];\n const rootMargin = rootMargins\n .map((px) => `${ -1 * Math.floor(px)}px`)\n .join(\" \");\n const observer = new IntersectionObserver(() => {\n ++invocations > 1 && updatePos(el);\n }, {\n root,\n threshold: 1,\n rootMargin,\n });\n observer.observe(el);\n intersections.set(el, observer);\n}\n/**\n * Update the exact position of a given element.\n * @param el - An element to update the position of.\n * @param debounce - Whether or not to debounce the update. After an animation is finished, it should update as soon as possible to prevent flickering on quick toggles.\n */\nfunction updatePos(el, debounce = true) {\n clearTimeout(debounces.get(el));\n const optionsOrPlugin = getOptions(el);\n const delay = debounce\n ? isPlugin(optionsOrPlugin)\n ? 500\n : optionsOrPlugin.duration\n : 0;\n debounces.set(el, setTimeout(async () => {\n const currentAnimation = animations.get(el);\n try {\n await (currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.finished);\n coords.set(el, getCoords(el));\n observePosition(el);\n }\n catch {\n // ignore errors as the `.finished` promise is rejected when animations were cancelled\n }\n }, delay));\n}\n/**\n * Updates all positions that are currently being tracked.\n */\nfunction updateAllPos() {\n clearTimeout(debounces.get(root));\n debounces.set(root, setTimeout(() => {\n parents.forEach((parent) => forEach(parent, (el) => lowPriority(() => updatePos(el))));\n }, 100));\n}\n/**\n * Its possible for a quick scroll or other fast events to get past the\n * intersection observer, so occasionally we need want \"cold-poll\" for the\n * latests and greatest position. We try to do this in the most non-disruptive\n * fashion possible. First we only do this ever couple seconds, staggard by a\n * random offset.\n * @param el - Element\n */\nfunction poll(el) {\n setTimeout(() => {\n intervals.set(el, setInterval(() => lowPriority(updatePos.bind(null, el)), 2000));\n }, Math.round(2000 * Math.random()));\n}\n/**\n * Perform some operation that is non critical at some point.\n * @param callback\n */\nfunction lowPriority(callback) {\n if (typeof requestIdleCallback === \"function\") {\n requestIdleCallback(() => callback());\n }\n else {\n requestAnimationFrame(() => callback());\n }\n}\n/**\n * A resize observer, responsible for recalculating elements on resize.\n */\nlet resize;\n/**\n * Ensure the browser is supported.\n */\nconst supportedBrowser = typeof window !== \"undefined\" && \"ResizeObserver\" in window;\n/**\n * If this is in a browser, initialize our Web APIs\n */\nif (supportedBrowser) {\n root = document.documentElement;\n new MutationObserver(handleMutations);\n resize = new ResizeObserver(handleResizes);\n window.addEventListener(\"scroll\", () => {\n scrollY = window.scrollY;\n scrollX = window.scrollX;\n });\n resize.observe(root);\n}\n/**\n * Retrieves all the elements that may have been affected by the last mutation\n * including ones that have been removed and are no longer in the DOM.\n * @param mutations - A mutation list.\n * @returns\n */\nfunction getElements(mutations) {\n const observedNodes = mutations.reduce((nodes, mutation) => {\n return [\n ...nodes,\n ...Array.from(mutation.addedNodes),\n ...Array.from(mutation.removedNodes),\n ];\n }, []);\n // Short circuit if _only_ comment nodes are observed\n const onlyCommentNodesObserved = observedNodes.every((node) => node.nodeName === \"#comment\");\n if (onlyCommentNodesObserved)\n return false;\n return mutations.reduce((elements, mutation) => {\n // Short circuit if we find a purposefully deleted node.\n if (elements === false)\n return false;\n if (mutation.target instanceof Element) {\n target(mutation.target);\n if (!elements.has(mutation.target)) {\n elements.add(mutation.target);\n for (let i = 0; i < mutation.target.children.length; i++) {\n const child = mutation.target.children.item(i);\n if (!child)\n continue;\n if (DEL in child) {\n return false;\n }\n target(mutation.target, child);\n elements.add(child);\n }\n }\n if (mutation.removedNodes.length) {\n for (let i = 0; i < mutation.removedNodes.length; i++) {\n const child = mutation.removedNodes[i];\n if (DEL in child) {\n return false;\n }\n if (child instanceof Element) {\n elements.add(child);\n target(mutation.target, child);\n siblings.set(child, [\n mutation.previousSibling,\n mutation.nextSibling,\n ]);\n }\n }\n }\n }\n return elements;\n }, new Set());\n}\n/**\n * Assign the target to an element.\n * @param el - The root element\n * @param child\n */\nfunction target(el, child) {\n if (!child && !(TGT in el))\n Object.defineProperty(el, TGT, { value: el });\n else if (child && !(TGT in child))\n Object.defineProperty(child, TGT, { value: el });\n}\n/**\n * Determines what kind of change took place on the given element and then\n * performs the proper animation based on that.\n * @param el - The specific element to animate.\n */\nfunction animate(el) {\n var _a, _b;\n const isMounted = el.isConnected;\n const preExisting = coords.has(el);\n if (isMounted && siblings.has(el))\n siblings.delete(el);\n if (((_a = animations.get(el)) === null || _a === void 0 ? void 0 : _a.playState) !== \"finished\") {\n (_b = animations.get(el)) === null || _b === void 0 ? void 0 : _b.cancel();\n }\n if (NEW in el) {\n add(el);\n }\n else if (preExisting && isMounted) {\n remain(el);\n }\n else if (preExisting && !isMounted) {\n remove(el);\n }\n else {\n add(el);\n }\n}\n/**\n * Removes all non-digits from a string and casts to a number.\n * @param str - A string containing a pixel value.\n * @returns\n */\nfunction raw(str) {\n return Number(str.replace(/[^0-9.\\-]/g, \"\"));\n}\n/**\n * Get the scroll offset of elements\n * @param el - Element\n * @returns\n */\nfunction getScrollOffset(el) {\n let p = el.parentElement;\n while (p) {\n if (p.scrollLeft || p.scrollTop) {\n return { x: p.scrollLeft, y: p.scrollTop };\n }\n p = p.parentElement;\n }\n return { x: 0, y: 0 };\n}\n/**\n * Get the coordinates of elements adjusted for scroll position.\n * @param el - Element\n * @returns\n */\nfunction getCoords(el) {\n const rect = el.getBoundingClientRect();\n const { x, y } = getScrollOffset(el);\n return {\n top: rect.top + y,\n left: rect.left + x,\n width: rect.width,\n height: rect.height,\n };\n}\n/**\n * Returns the width/height that the element should be transitioned between.\n * This takes into account box-sizing.\n * @param el - Element being animated\n * @param oldCoords - Old set of Coordinates coordinates\n * @param newCoords - New set of Coordinates coordinates\n * @returns\n */\nfunction getTransitionSizes(el, oldCoords, newCoords) {\n let widthFrom = oldCoords.width;\n let heightFrom = oldCoords.height;\n let widthTo = newCoords.width;\n let heightTo = newCoords.height;\n const styles = getComputedStyle(el);\n const sizing = styles.getPropertyValue(\"box-sizing\");\n if (sizing === \"content-box\") {\n const paddingY = raw(styles.paddingTop) +\n raw(styles.paddingBottom) +\n raw(styles.borderTopWidth) +\n raw(styles.borderBottomWidth);\n const paddingX = raw(styles.paddingLeft) +\n raw(styles.paddingRight) +\n raw(styles.borderRightWidth) +\n raw(styles.borderLeftWidth);\n widthFrom -= paddingX;\n widthTo -= paddingX;\n heightFrom -= paddingY;\n heightTo -= paddingY;\n }\n return [widthFrom, widthTo, heightFrom, heightTo].map(Math.round);\n}\n/**\n * Retrieves animation options for the current element.\n * @param el - Element to retrieve options for.\n * @returns\n */\nfunction getOptions(el) {\n return TGT in el && options.has(el[TGT])\n ? options.get(el[TGT])\n : { duration: 250, easing: \"ease-in-out\" };\n}\n/**\n * Returns the target of a given animation (generally the parent).\n * @param el - An element to check for a target\n * @returns\n */\nfunction getTarget(el) {\n if (TGT in el)\n return el[TGT];\n return undefined;\n}\n/**\n * Checks if animations are enabled or disabled for a given element.\n * @param el - Any element\n * @returns\n */\nfunction isEnabled(el) {\n const target = getTarget(el);\n return target ? enabled.has(target) : false;\n}\n/**\n * Iterate over the children of a given parent.\n * @param parent - A parent element\n * @param callback - A callback\n */\nfunction forEach(parent, ...callbacks) {\n callbacks.forEach((callback) => callback(parent, options.has(parent)));\n for (let i = 0; i < parent.children.length; i++) {\n const child = parent.children.item(i);\n if (child) {\n callbacks.forEach((callback) => callback(child, options.has(child)));\n }\n }\n}\n/**\n * Always return tuple to provide consistent interface\n */\nfunction getPluginTuple(pluginReturn) {\n if (Array.isArray(pluginReturn))\n return pluginReturn;\n return [pluginReturn];\n}\n/**\n * Determine if config is plugin\n */\nfunction isPlugin(config) {\n return typeof config === \"function\";\n}\n/**\n * The element in question is remaining in the DOM.\n * @param el - Element to flip\n * @returns\n */\nfunction remain(el) {\n const oldCoords = coords.get(el);\n const newCoords = getCoords(el);\n if (!isEnabled(el))\n return coords.set(el, newCoords);\n if (isOffscreen(el)) {\n // When element is offscreen, skip FLIP to avoid broken transforms\n coords.set(el, newCoords);\n observePosition(el);\n return;\n }\n let animation;\n if (!oldCoords)\n return;\n const pluginOrOptions = getOptions(el);\n if (typeof pluginOrOptions !== \"function\") {\n let deltaLeft = oldCoords.left - newCoords.left;\n let deltaTop = oldCoords.top - newCoords.top;\n const deltaRight = oldCoords.left + oldCoords.width - (newCoords.left + newCoords.width);\n const deltaBottom = oldCoords.top + oldCoords.height - (newCoords.top + newCoords.height);\n // element is probably anchored and doesn't need to be offset\n if (deltaBottom == 0)\n deltaTop = 0;\n if (deltaRight == 0)\n deltaLeft = 0;\n const [widthFrom, widthTo, heightFrom, heightTo] = getTransitionSizes(el, oldCoords, newCoords);\n const start = {\n transform: `translate(${deltaLeft}px, ${deltaTop}px)`,\n };\n const end = {\n transform: `translate(0, 0)`,\n };\n if (widthFrom !== widthTo) {\n start.width = `${widthFrom}px`;\n end.width = `${widthTo}px`;\n }\n if (heightFrom !== heightTo) {\n start.height = `${heightFrom}px`;\n end.height = `${heightTo}px`;\n }\n animation = el.animate([start, end], {\n duration: pluginOrOptions.duration,\n easing: pluginOrOptions.easing,\n });\n }\n else {\n const [keyframes] = getPluginTuple(pluginOrOptions(el, \"remain\", oldCoords, newCoords));\n animation = new Animation(keyframes);\n animation.play();\n }\n animations.set(el, animation);\n coords.set(el, newCoords);\n animation.addEventListener(\"finish\", updatePos.bind(null, el, false), {\n once: true,\n });\n}\n/**\n * Adds the element with a transition.\n * @param el - Animates the element being added.\n */\nfunction add(el) {\n if (NEW in el)\n delete el[NEW];\n const newCoords = getCoords(el);\n coords.set(el, newCoords);\n const pluginOrOptions = getOptions(el);\n if (!isEnabled(el))\n return;\n if (isOffscreen(el)) {\n // Skip entry animation if element is not visible in viewport\n observePosition(el);\n return;\n }\n let animation;\n if (typeof pluginOrOptions !== \"function\") {\n animation = el.animate([\n { transform: \"scale(.98)\", opacity: 0 },\n { transform: \"scale(0.98)\", opacity: 0, offset: 0.5 },\n { transform: \"scale(1)\", opacity: 1 },\n ], {\n duration: pluginOrOptions.duration * 1.5,\n easing: \"ease-in\",\n });\n }\n else {\n const [keyframes] = getPluginTuple(pluginOrOptions(el, \"add\", newCoords));\n animation = new Animation(keyframes);\n animation.play();\n }\n animations.set(el, animation);\n animation.addEventListener(\"finish\", updatePos.bind(null, el, false), {\n once: true,\n });\n}\n/**\n * Clean up after removing an element from the dom.\n * @param el - Element being removed\n * @param styles - Optional styles that should be removed from the element.\n */\nfunction cleanUp(el, styles) {\n var _a;\n el.remove();\n coords.delete(el);\n siblings.delete(el);\n animations.delete(el);\n (_a = intersections.get(el)) === null || _a === void 0 ? void 0 : _a.disconnect();\n setTimeout(() => {\n if (DEL in el)\n delete el[DEL];\n Object.defineProperty(el, NEW, { value: true, configurable: true });\n if (styles && el instanceof HTMLElement) {\n for (const style in styles) {\n el.style[style] = \"\";\n }\n }\n }, 0);\n}\n/**\n * Animates the removal of an element.\n * @param el - Element to remove\n */\nfunction remove(el) {\n var _a;\n if (!siblings.has(el) || !coords.has(el))\n return;\n const [prev, next] = siblings.get(el);\n Object.defineProperty(el, DEL, { value: true, configurable: true });\n const finalX = window.scrollX;\n const finalY = window.scrollY;\n if (next &&\n next.parentNode &&\n next.parentNode instanceof Element) {\n next.parentNode.insertBefore(el, next);\n }\n else if (prev && prev.parentNode) {\n prev.parentNode.appendChild(el);\n }\n else {\n (_a = getTarget(el)) === null || _a === void 0 ? void 0 : _a.appendChild(el);\n }\n if (!isEnabled(el))\n return cleanUp(el);\n const [top, left, width, height] = deletePosition(el);\n const optionsOrPlugin = getOptions(el);\n const oldCoords = coords.get(el);\n if (finalX !== scrollX || finalY !== scrollY) {\n adjustScroll(el, finalX, finalY, optionsOrPlugin);\n }\n let animation;\n let styleReset = {\n position: \"absolute\",\n top: `${top}px`,\n left: `${left}px`,\n width: `${width}px`,\n height: `${height}px`,\n margin: \"0\",\n pointerEvents: \"none\",\n transformOrigin: \"center\",\n zIndex: \"100\",\n };\n if (!isPlugin(optionsOrPlugin)) {\n Object.assign(el.style, styleReset);\n animation = el.animate([\n {\n transform: \"scale(1)\",\n opacity: 1,\n },\n {\n transform: \"scale(.98)\",\n opacity: 0,\n },\n ], {\n duration: optionsOrPlugin.duration,\n easing: \"ease-out\",\n });\n }\n else {\n const [keyframes, options] = getPluginTuple(optionsOrPlugin(el, \"remove\", oldCoords));\n if ((options === null || options === void 0 ? void 0 : options.styleReset) !== false) {\n styleReset =\n (options === null || options === void 0 ? void 0 : options.styleReset) ||\n styleReset;\n Object.assign(el.style, styleReset);\n }\n animation = new Animation(keyframes);\n animation.play();\n }\n animations.set(el, animation);\n animation.addEventListener(\"finish\", () => cleanUp(el, styleReset), {\n once: true,\n });\n}\n/**\n * If the element being removed is at the very bottom of the page, and the\n * the page was scrolled into a space being \"made available\" by the element\n * that was removed, the page scroll will have jumped up some amount. We need\n * to offset the jump by the amount that the page was \"automatically\" scrolled\n * up. We can do this by comparing the scroll position before and after the\n * element was removed, and then offsetting by that amount.\n *\n * @param el - The element being deleted\n * @param finalX - The final X scroll position\n * @param finalY - The final Y scroll position\n * @param optionsOrPlugin - The options or plugin\n * @returns\n */\nfunction adjustScroll(el, finalX, finalY, optionsOrPlugin) {\n const scrollDeltaX = scrollX - finalX;\n const scrollDeltaY = scrollY - finalY;\n const scrollBefore = document.documentElement.style.scrollBehavior;\n const scrollBehavior = getComputedStyle(root).scrollBehavior;\n if (scrollBehavior === \"smooth\") {\n document.documentElement.style.scrollBehavior = \"auto\";\n }\n window.scrollTo(window.scrollX + scrollDeltaX, window.scrollY + scrollDeltaY);\n if (!el.parentElement)\n return;\n const parent = el.parentElement;\n let lastHeight = parent.clientHeight;\n let lastWidth = parent.clientWidth;\n const startScroll = performance.now();\n // Here we use a manual scroll animation to keep the element using the same\n // easing and timing as the parent\u2019s scroll animation.\n function smoothScroll() {\n requestAnimationFrame(() => {\n if (!isPlugin(optionsOrPlugin)) {\n const deltaY = lastHeight - parent.clientHeight;\n const deltaX = lastWidth - parent.clientWidth;\n if (startScroll + optionsOrPlugin.duration >\n performance.now()) {\n window.scrollTo({\n left: window.scrollX - deltaX,\n top: window.scrollY - deltaY,\n });\n lastHeight = parent.clientHeight;\n lastWidth = parent.clientWidth;\n smoothScroll();\n }\n else {\n document.documentElement.style.scrollBehavior = scrollBefore;\n }\n }\n });\n }\n smoothScroll();\n}\n/**\n * Determines the position of the element being removed.\n * @param el - The element being deleted\n * @returns\n */\nfunction deletePosition(el) {\n var _a;\n const oldCoords = coords.get(el);\n const [width, , height] = getTransitionSizes(el, oldCoords, getCoords(el));\n let offsetParent = el.parentElement;\n while (offsetParent &&\n (getComputedStyle(offsetParent).position === \"static\" ||\n offsetParent instanceof HTMLBodyElement)) {\n offsetParent = offsetParent.parentElement;\n }\n if (!offsetParent)\n offsetParent = document.body;\n const parentStyles = getComputedStyle(offsetParent);\n const parentCoords = !animations.has(el) || ((_a = animations.get(el)) === null || _a === void 0 ? void 0 : _a.playState) === \"finished\"\n ? getCoords(offsetParent)\n : coords.get(offsetParent);\n const top = Math.round(oldCoords.top - parentCoords.top) -\n raw(parentStyles.borderTopWidth);\n const left = Math.round(oldCoords.left - parentCoords.left) -\n raw(parentStyles.borderLeftWidth);\n return [top, left, width, height];\n}\n/**\n * A function that automatically adds animation effects to itself and its\n * immediate children. Specifically it adds effects for adding, moving, and\n * removing DOM elements.\n * @param el - A parent element to add animations to.\n * @param options - An optional object of options.\n */\nfunction autoAnimate(el, config = {}) {\n if (supportedBrowser && resize) {\n const mediaQuery = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n const isDisabledDueToReduceMotion = mediaQuery.matches &&\n !isPlugin(config) &&\n !config.disrespectUserMotionPreference;\n if (!isDisabledDueToReduceMotion) {\n enabled.add(el);\n if (getComputedStyle(el).position === \"static\") {\n Object.assign(el.style, { position: \"relative\" });\n }\n forEach(el, updatePos, poll, (element) => resize === null || resize === void 0 ? void 0 : resize.observe(element));\n if (isPlugin(config)) {\n options.set(el, config);\n }\n else {\n options.set(el, {\n duration: 250,\n easing: \"ease-in-out\",\n ...config,\n });\n }\n const mo = new MutationObserver(handleMutations);\n mo.observe(el, { childList: true });\n mutationObservers.set(el, mo);\n parents.add(el);\n }\n }\n const controller = Object.freeze({\n parent: el,\n enable: () => {\n enabled.add(el);\n },\n disable: () => {\n enabled.delete(el);\n // Cancel any in-flight animations and pending timers for immediate effect\n forEach(el, (node) => {\n const a = animations.get(node);\n try {\n a === null || a === void 0 ? void 0 : a.cancel();\n }\n catch { }\n animations.delete(node);\n const d = debounces.get(node);\n if (d)\n clearTimeout(d);\n debounces.delete(node);\n const i = intervals.get(node);\n if (i)\n clearInterval(i);\n intervals.delete(node);\n });\n },\n isEnabled: () => enabled.has(el),\n destroy: () => {\n enabled.delete(el);\n parents.delete(el);\n options.delete(el);\n const mo = mutationObservers.get(el);\n mo === null || mo === void 0 ? void 0 : mo.disconnect();\n mutationObservers.delete(el);\n forEach(el, (node) => {\n // unobserve resize\n resize === null || resize === void 0 ? void 0 : resize.unobserve(node);\n // cancel animations\n const a = animations.get(node);\n try {\n a === null || a === void 0 ? void 0 : a.cancel();\n }\n catch { }\n animations.delete(node);\n // disconnect observers\n const io = intersections.get(node);\n io === null || io === void 0 ? void 0 : io.disconnect();\n intersections.delete(node);\n // clear intervals and debounces\n const i = intervals.get(node);\n if (i)\n clearInterval(i);\n intervals.delete(node);\n const d = debounces.get(node);\n if (d)\n clearTimeout(d);\n debounces.delete(node);\n // clear state\n coords.delete(node);\n siblings.delete(node);\n });\n },\n });\n return controller;\n}\n/**\n * The vue directive.\n */\nconst vAutoAnimate = {\n mounted: (el, binding) => {\n const ctl = autoAnimate(el, binding.value || {});\n Object.defineProperty(el, \"__aa_ctl\", { value: ctl, configurable: true });\n },\n unmounted: (el) => {\n var _a;\n const ctl = el[\"__aa_ctl\"];\n (_a = ctl === null || ctl === void 0 ? void 0 : ctl.destroy) === null || _a === void 0 ? void 0 : _a.call(ctl);\n try {\n delete el[\"__aa_ctl\"];\n }\n catch { }\n },\n getSSRProps: () => ({}),\n};\n\nexport { autoAnimate, autoAnimate as default, getTransitionSizes, vAutoAnimate };\n", "export function arrayMoveMutable(array, fromIndex, toIndex) {\n\tconst startIndex = fromIndex < 0 ? array.length + fromIndex : fromIndex;\n\n\tif (startIndex >= 0 && startIndex < array.length) {\n\t\tconst endIndex = toIndex < 0 ? array.length + toIndex : toIndex;\n\n\t\tconst [item] = array.splice(fromIndex, 1);\n\t\tarray.splice(endIndex, 0, item);\n\t}\n}\n\nexport function arrayMoveImmutable(array, fromIndex, toIndex) {\n\tarray = [...array];\n\tarrayMoveMutable(array, fromIndex, toIndex);\n\treturn array;\n}\n", "import \"css-modules://KsrciNntCtsQpGsIyKc8BfIO1ojsb-RwaVnyn7e_MXY.css\"\nexport default {\"noSelect\":\"mireo91-repeatablefields-xY17aG-noSelect\",\"delete\":\"mireo91-repeatablefields-xY17aG-delete\",\"preview\":\"mireo91-repeatablefields-xY17aG-preview\",\"wrapper\":\"mireo91-repeatablefields-xY17aG-wrapper\",\"property\":\"mireo91-repeatablefields-xY17aG-property\",\"simpleWrapperTwoButtons\":\"mireo91-repeatablefields-xY17aG-simpleWrapperTwoButtons\",\"move\":\"mireo91-repeatablefields-xY17aG-move\",\"group\":\"mireo91-repeatablefields-xY17aG-group\",\"simpleButtons\":\"mireo91-repeatablefields-xY17aG-simpleButtons\",\"label\":\"mireo91-repeatablefields-xY17aG-label\",\"buttons\":\"mireo91-repeatablefields-xY17aG-buttons\",\"simpleWrapperOneButton\":\"mireo91-repeatablefields-xY17aG-simpleWrapperOneButton\",\"simpleWrapper\":\"mireo91-repeatablefields-xY17aG-simpleWrapper\",}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIiJdLCJtYXBwaW5ncyI6IkEifQ==", "import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { neos } from \"@neos-project/neos-ui-decorators\";\n\nconst EditorEnvelope = window[\"@Neos:HostPluginAPI\"][\"@NeosProjectPackages\"]().NeosUiEditors.EditorEnvelope;\n\nfunction Envelope({ commit, editorId, editorOptions, id, ...props }) {\n function commitEnvelope(event, hook) {\n const { property, hooksRegistry } = props;\n if (hook) {\n Object.keys(hook).map((h) => {\n const hookPromise = hooksRegistry.get(h);\n hookPromise(event, hook[h]).then((json) => {\n const value = (({ __type, ...rest }) => rest)(json);\n commit(id, property, value);\n });\n });\n return;\n }\n commit(id, property, event);\n }\n return ;\n}\n\nEnvelope.propTypes = {\n identifier: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n options: PropTypes.object,\n value: PropTypes.any,\n renderSecondaryInspector: PropTypes.func,\n editor: PropTypes.string.isRequired,\n editorRegistry: PropTypes.object.isRequired,\n i18nRegistry: PropTypes.object.isRequired,\n validationErrors: PropTypes.array,\n onEnterKey: PropTypes.func,\n helpMessage: PropTypes.string,\n helpThumbnail: PropTypes.string,\n highlight: PropTypes.bool,\n property: PropTypes.string.isRequired,\n id: PropTypes.number.isRequired,\n\n commit: PropTypes.func.isRequired,\n};\n\nconst neosifier = neos((globalRegistry) => ({\n hooksRegistry: globalRegistry.get(\"inspector\").get(\"saveHooks\"),\n}));\nexport default neosifier(Envelope);\n", "import React, { useEffect, useState } from \"react\";\nimport backend from \"@neos-project/neos-ui-backend-connector\";\nimport style from \"./style.module.css\";\n\nlet loadImageMetadata = null;\n\nexport default function Preview({ text, image }) {\n const [src, setSrc] = useState();\n const [thumbnailStyles, setThumbnailStyles] = useState({});\n const [cropAreaStyles, setCropAreaStyles] = useState({});\n\n useEffect(() => {\n if (!image) {\n return;\n }\n\n if (typeof image === \"string\") {\n setSrc(image);\n return;\n }\n\n if (!image?.__identity) {\n return;\n }\n\n const fn = async () => {\n if (!loadImageMetadata) {\n loadImageMetadata = await backend.get().endpoints.loadImageMetadata;\n }\n const metadata = await loadImageMetadata(image?.__identity);\n\n if (metadata?.previewImageResourceUri) {\n const adjustments =\n metadata?.object?.adjustments?.[\"Neos\\\\Media\\\\Domain\\\\Model\\\\Adjustment\\\\CropImageAdjustment\"] ||\n null;\n const { thumbnail, cropArea } = getStyles(\n metadata?.previewDimensions,\n metadata?.originalDimensions,\n adjustments,\n );\n setThumbnailStyles(thumbnail);\n setCropAreaStyles(cropArea);\n setSrc(metadata.previewImageResourceUri);\n }\n };\n fn();\n }, [image]);\n\n const cleanText = cleanHtml(text || \"\");\n\n if (src) {\n return (\n
\n
\n \n
\n
\n );\n }\n\n if (cleanText) {\n return {cleanText};\n }\n\n return null;\n}\n\nfunction cleanHtml(html) {\n const div = document.createElement(\"div\");\n div.innerHTML = html;\n return div.textContent || div.innerText || \"\";\n}\n\nfunction getStyles(previewDimensions, originalDimensions, adjustments) {\n const max = {\n height: 40,\n width: 129,\n };\n\n const previewAdjustments = (() => {\n if (!adjustments?.height) {\n return null;\n }\n const factor = originalDimensions.height / previewDimensions.height;\n return {\n height: adjustments.height / factor,\n width: adjustments?.width / factor,\n x: adjustments?.x / factor,\n y: adjustments?.y / factor,\n };\n })();\n\n const scalingFactor = (() => {\n const byHeight = max.height / (previewAdjustments?.height || previewDimensions.height);\n const byWidth = max.width / (previewAdjustments?.width || previewDimensions.width);\n return Math.min(byHeight, byWidth);\n })();\n\n const dimensions = {\n width: previewDimensions.width * scalingFactor,\n height: previewDimensions.height * scalingFactor,\n };\n\n const cropDimensions = {\n width: (previewAdjustments?.width || previewDimensions.width) * scalingFactor,\n height: (previewAdjustments?.height || previewDimensions.height) * scalingFactor,\n };\n\n const x = previewAdjustments?.x || 0;\n const y = previewAdjustments?.y || 0;\n\n return {\n thumbnail: {\n width: `${dimensions.width}px`,\n height: `${dimensions.height}px`,\n left: `-${x * scalingFactor}px`,\n top: `-${y * scalingFactor}px`,\n },\n cropArea: {\n width: `${cropDimensions.width}px`,\n height: `${cropDimensions.height}px`,\n },\n };\n}\n", "export function set(path, value, object) {\n path = getPath(path);\n return recursivelySetValueInObject(object, value, path);\n}\n\nexport const clone = (input) => JSON.parse(JSON.stringify(input));\n\nexport const isSame = (a, b) => JSON.stringify(a) == JSON.stringify(b);\n\nexport function isNumeric(str) {\n if (typeof str == \"number\") {\n return true;\n }\n if (typeof str != \"string\") {\n return false;\n }\n // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this) and ensure strings of whitespace fail\n return !isNaN(str) && !isNaN(parseFloat(str));\n}\n\nexport function ClientEvalIsNotFinished(input) {\n if (!input) {\n return false;\n }\n if (typeof input == \"string\") {\n return input.includes(\"ClientEval:\");\n }\n\n if (Array.isArray(input)) {\n return input.some((value) => ClientEvalIsNotFinished(value));\n }\n if (isObject(input)) {\n return ClientEvalIsNotFinished(Object.values(input));\n }\n return false;\n}\n\nexport function ItemEvalRecursive(input, item, node, parentNode, documentNode) {\n if (typeof input === \"string\") {\n return ItemEval(input, item, node, parentNode, documentNode);\n }\n\n if (Array.isArray(input)) {\n return input.map((value) => ItemEvalRecursive(value, item, node, parentNode, documentNode));\n }\n\n if (isObject(input)) {\n return Object.fromEntries(\n Object.entries(input).map(([key, value]) => [\n key,\n ItemEvalRecursive(value, item, node, parentNode, documentNode),\n ]),\n );\n }\n\n return input;\n}\n\nfunction ItemEval(propertyValue, item, node, parentNode, documentNode) {\n if (typeof propertyValue === \"string\" && propertyValue.startsWith(\"ItemEval:\")) {\n try {\n // eslint-disable-next-line no-new-func\n const evaluateFn = new Function(\n \"item,node,parentNode,documentNode\",\n \"return \" + propertyValue.replace(\"ItemEval:\", \"\"),\n );\n return evaluateFn(item, node, parentNode, documentNode);\n } catch (e) {\n console.warn('An error occurred while trying to evaluate \"' + propertyValue + '\"\\n', e);\n return propertyValue; // Return the original value if evaluation fails\n }\n }\n return propertyValue;\n}\n\nfunction isObject(input) {\n return input != null && (input.constructor === Object || (!input.constructor && typeof input === \"object\"));\n}\n\nexport function dynamicSort(arrayToSort, sortBy) {\n const array = clone(arrayToSort);\n if (!Array.isArray(array) || !array.length || !Array.isArray(sortBy) || !sortBy.length) {\n return array;\n }\n return array.sort((a, b) => {\n return sortBy.reduce((result, current) => {\n if (result !== 0) {\n return result;\n }\n\n const { property, order = \"asc\" } = current;\n const propA = a[property];\n const propB = b[property];\n\n let comparison = 0;\n\n if (isNumeric(propA) && isNumeric(propB)) {\n if (propA > propB) {\n comparison = 1;\n } else if (propA < propB) {\n comparison = -1;\n }\n } else {\n comparison = propA.localeCompare(propB);\n }\n\n if (order === \"desc\") {\n comparison *= -1;\n }\n\n return comparison;\n }, 0);\n });\n}\n\nexport function deepMerge(obj1, obj2) {\n const copy = clone(obj1);\n for (let key in obj2) {\n if (key in obj2) {\n if (obj2[key] instanceof Object && copy[key] instanceof Object) {\n copy[key] = deepMerge(copy[key], obj2[key]);\n } else {\n copy[key] = obj2[key];\n }\n }\n }\n return copy;\n}\n\nfunction getPath(path) {\n if (Array.isArray(path)) {\n return path;\n }\n\n if (typeof path === \"number\") {\n return [path];\n }\n\n return path.split(\".\").map((part) => {\n const partAsInteger = parseInt(part);\n\n if (!isNaN(partAsInteger) && String(partAsInteger) === part) {\n return partAsInteger;\n }\n\n return part;\n });\n}\n\nfunction recursivelySetValueInObject(object, value, path) {\n if (path.length === 0) {\n return value;\n }\n\n //\n // Create missing path targets\n //\n if (typeof object === \"undefined\") {\n if (typeof path[0] === \"number\") {\n object = [];\n } else {\n object = {};\n }\n }\n\n if (Array.isArray(object)) {\n //\n // Make sure, that array elements are always inserted at the last position, if the path exceeds the length\n // of the array\n //\n if (typeof path[0] === \"number\" && object.length < path[0]) {\n path[0] = object.length;\n }\n\n const result = [...object];\n result[path[0]] = recursivelySetValueInObject(object[path[0]], value, path.slice(1));\n\n return result;\n }\n\n return Object.assign({}, object, { [path[0]]: recursivelySetValueInObject(object[path[0]], value, path.slice(1)) });\n}\n", "import manifest from \"@neos-project/neos-ui-extensibility\";\nimport Repeatable from \"./Repeatable\";\n\nmanifest(\"Mireo.RepeatableFields:RepeatableField\", {}, (globalRegistry) => {\n const editorsRegistry = globalRegistry.get(\"inspector\").get(\"editors\");\n\n editorsRegistry.set(\"Mireo.RepeatableFields/Inspector/Editors/RepeatableFieldEditor\", {\n component: Repeatable,\n hasOwnLabel: true,\n });\n});\n"], + "mappings": "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", + "names": ["readFromConsumerApi", "key", "args", "init_readFromConsumerApi", "__esmMin", "require_react", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_react_redux", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_prop_types", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_neos_ui_redux_store", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_neos_ui_decorators", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_react_ui_components", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_react_dom", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_browser", "__commonJSMin", "exports", "module", "invariant", "condition", "format", "a", "b", "c", "d", "e", "f", "error", "args", "argIndex", "init_readFromConsumerApi", "positionalArraySorter", "subject", "position", "idKey", "positionAccessor", "value", "indexMapping", "middleKeys", "startKeys", "endKeys", "beforeKeys", "afterKeys", "item", "index", "key", "positionValue", "invalid", "weightMatch", "weight", "match", "reference", "numberPosition", "resultStart", "resultMiddle", "resultEnd", "processedKeys", "sortedWeights", "dict", "asc", "weights", "x", "a", "b", "addToResults", "keys", "result", "beforeWeights", "i", "afterWeights", "positionalArraySorter_default", "dist_default", "readFromConsumerApi", "import_react", "import_react_redux", "import_prop_types", "urlAlphabet", "nanoid", "size", "id", "bytes", "urlAlphabet", "r", "t", "f", "n", "o", "clsx", "clsx_default", "import_neos_ui_redux_store", "import_neos_ui_decorators", "import_react_ui_components", "init_readFromConsumerApi", "neos_ui_backend_connector_default", "readFromConsumerApi", "fetchWithErrorHandling", "import_react", "import_react", "Circle", "style", "className", "size", "React", "attribute", "values", "Dots", "number", "cx", "beginn", "import_neos_ui_decorators", "style", "heightMultiplier", "active", "Loading", "id", "title", "isLoading", "delayTime", "timeoutTime", "i18nRegistry", "width", "showLoading", "setShowLoading", "translatedTitle", "delay", "timeout", "React", "Circle", "Dots", "neosifier", "globalRegistry", "LoadingWithStyles_default", "import_react", "_extends", "n", "e", "t", "r", "_arrayWithHoles", "r", "_iterableToArrayLimit", "r", "l", "t", "e", "n", "i", "u", "a", "f", "o", "_arrayLikeToArray", "r", "a", "e", "n", "_unsupportedIterableToArray", "r", "a", "_arrayLikeToArray", "t", "_nonIterableRest", "_slicedToArray", "r", "e", "_arrayWithHoles", "_iterableToArrayLimit", "_unsupportedIterableToArray", "_nonIterableRest", "_typeof", "o", "toPrimitive", "t", "r", "_typeof", "e", "i", "toPropertyKey", "t", "i", "toPrimitive", "_typeof", "_defineProperty", "r", "t", "toPropertyKey", "_objectSpread", "r", "t", "e", "_defineProperty", "_classCallCheck", "a", "_defineProperties", "r", "t", "toPropertyKey", "_createClass", "_assertThisInitialized", "_possibleConstructorReturn", "t", "e", "_typeof", "_assertThisInitialized", "_getPrototypeOf", "t", "_setPrototypeOf", "t", "e", "_inherits", "t", "e", "_setPrototypeOf", "import_react", "import_react_dom", "import_invariant", "_arrayWithoutHoles", "r", "_arrayLikeToArray", "_iterableToArray", "r", "_nonIterableSpread", "_toConsumableArray", "r", "_arrayWithoutHoles", "_iterableToArray", "_unsupportedIterableToArray", "_nonIterableSpread", "import_prop_types", "Manager", "_classCallCheck", "_defineProperty", "_createClass", "collection", "ref", "index", "_this", "_ref", "node", "sortByIndex", "_ref2", "_ref3", "index1", "index2", "omit", "obj", "keysToOmit", "acc", "key", "events", "vendorPrefix", "styles", "pre", "setInlineStyles", "node", "setTranslate3d", "translate", "setTransitionDuration", "duration", "closest", "el", "fn", "limit", "min", "max", "value", "getPixelValue", "stringValue", "getElementMargin", "element", "style", "provideDisplayName", "prefix", "Component$$1", "componentName", "getScrollAdjustedBoundingClientRect", "scrollDelta", "boundingClientRect", "getPosition", "event", "isTouchEvent", "getEdgeOffset", "parent", "offset", "nodeOffset", "getTargetIndex", "newIndex", "prevIndex", "oldIndex", "getLockPixelOffset", "_ref", "lockOffset", "width", "height", "offsetX", "offsetY", "unit", "match", "invariant", "getLockPixelOffsets", "_ref2", "offsets", "_offsets", "_slicedToArray", "minLockOffset", "maxLockOffset", "isScrollable", "computedStyle", "overflowRegex", "properties", "property", "getScrollingParent", "getContainerGridGap", "KEYCODE", "NodeType", "cloneNode", "selector", "fields", "clonedNode", "clonedFields", "_toConsumableArray", "field", "i", "destCtx", "sortableHandle", "WrappedComponent", "_class", "_temp", "config", "_React$Component", "_inherits", "WithSortableHandle", "_getPrototypeOf2", "_this", "_classCallCheck", "_len", "args", "_key", "_possibleConstructorReturn", "_getPrototypeOf", "_defineProperty", "_assertThisInitialized", "_createClass", "ref", "_extends", "isSortableHandle", "AutoScroller", "container", "onScrollCallback", "minTranslate", "maxTranslate", "direction", "speed", "acceleration", "_this$container", "scrollTop", "scrollLeft", "scrollHeight", "scrollWidth", "clientHeight", "clientWidth", "isTop", "isBottom", "isLeft", "isRight", "defaultGetHelperDimensions", "defaultShouldCancelStart", "interactiveElements", "propTypes", "PropTypes", "defaultKeyCodes", "defaultProps", "omittedProps", "validateProps", "props", "_finallyRethrows", "body", "finalizer", "result", "e", "SortableContext", "sortableContainer", "WithSortableContainer", "_this$props", "distance", "shouldCancelStart", "useDragHandle", "_node$sortableInfo", "index", "collection", "disabled", "_this$props2", "pressThreshold", "position", "delta", "combinedDelta", "sorting", "active", "_temp6", "_temp7", "_node", "margin", "gridGap", "containerBoundingRect", "dimensions", "_getHelperDimensions", "_collection", "_axis", "_isKeySorting", "_objectSpread", "_hideSortableGhost", "_useWindowAsScrollContainer", "containerTop", "containerLeft", "containerWidth", "containerHeight", "containerBottom", "containerRight", "_helperClass", "className", "eventName", "_onSortStart", "_this$props3", "updateBeforeSortStart", "_temp8", "_temp9", "_wasThrown", "_result", "onSortMove", "_this$props4", "hideSortableGhost", "onSortEnd", "_this$manager", "isKeySorting", "nodes", "len", "_node2", "disableAutoscroll", "scrollX", "scrollY", "keyCode", "_this$props5", "_this$props5$keyCodes", "customKeyCodes", "keyCodes", "target", "_node$sortableInfo2", "shift", "lastIndex", "targetIndex", "targetNode", "targetBoundingClientRect", "targetTranslate", "targetPosition", "shouldAdjustForSize", "sizeAdjustment", "manager", "Manager", "_this2", "useWindowAsScrollContainer", "containerNode", "contentWindow", "_this3", "_this$props6", "lockAxis", "lockToContainerEdges", "transitionDuration", "_this$props6$keyboard", "keyboardSortingTransitionDuration", "ignoreTransition", "_getLockPixelOffsets", "_getLockPixelOffsets2", "minOffset", "maxOffset", "_this$props7", "onSortOver", "containerScrollDelta", "windowScrollDelta", "sortingOffset", "_node3", "mustShiftBackward", "mustShiftForward", "edgeOffset", "nextNode", "prevNode", "getContainer", "helperContainer", "propTypes$1", "omittedProps$1", "sortableElement", "WithSortableElement", "prevProps", "import_react", "parents", "coords", "siblings", "animations", "intersections", "mutationObservers", "intervals", "options", "debounces", "enabled", "root", "scrollX", "scrollY", "TGT", "DEL", "NEW", "handleMutations", "mutations", "elements", "getElements", "el", "animate", "handleResizes", "entries", "entry", "updateAllPos", "updatePos", "isOffscreen", "rect", "vw", "vh", "observePosition", "oldObserver", "invocations", "buffer", "getCoords", "offsetWidth", "offsetHeight", "rootMargin", "px", "observer", "debounce", "optionsOrPlugin", "getOptions", "delay", "isPlugin", "currentAnimation", "parent", "forEach", "lowPriority", "poll", "callback", "resize", "supportedBrowser", "nodes", "mutation", "node", "target", "i", "child", "_a", "_b", "isMounted", "preExisting", "add", "remain", "remove", "raw", "str", "getScrollOffset", "p", "x", "y", "getTransitionSizes", "oldCoords", "newCoords", "widthFrom", "heightFrom", "widthTo", "heightTo", "styles", "paddingY", "paddingX", "getTarget", "isEnabled", "callbacks", "getPluginTuple", "pluginReturn", "config", "animation", "pluginOrOptions", "deltaLeft", "deltaTop", "deltaRight", "start", "end", "keyframes", "cleanUp", "style", "prev", "next", "finalX", "finalY", "top", "left", "width", "height", "deletePosition", "adjustScroll", "styleReset", "scrollDeltaX", "scrollDeltaY", "scrollBefore", "lastHeight", "lastWidth", "startScroll", "smoothScroll", "deltaY", "deltaX", "offsetParent", "parentStyles", "parentCoords", "autoAnimate", "element", "mo", "a", "d", "io", "useAutoAnimate", "options", "controller", "setController", "memoizedOptions", "element", "node", "autoAnimate", "setEnabled", "enabled", "_a", "import_react_ui_components", "arrayMoveMutable", "array", "fromIndex", "toIndex", "startIndex", "endIndex", "item", "arrayMoveImmutable", "import_prop_types", "style_default", "DragHandle", "sortableHandle", "React", "style_default", "animateOptions", "SortableItem", "sortableElement", "value", "SortableList", "sortableContainer", "children", "automaticSorting", "manualSort", "animationParent", "enable", "useAutoAnimate", "timeout", "Sortable", "onChange", "element", "items", "KEY_PROPERTY", "idx", "setManualSort", "onSortEnd", "oldIndex", "newIndex", "arrayMoveImmutable", "PropTypes", "import_react", "import_prop_types", "import_neos_ui_decorators", "EditorEnvelope", "Envelope", "commit", "editorId", "editorOptions", "id", "props", "commitEnvelope", "event", "hook", "property", "hooksRegistry", "h", "json", "value", "__type", "rest", "React", "PropTypes", "neosifier", "globalRegistry", "Envelope_default", "import_react", "loadImageMetadata", "Preview", "text", "image", "src", "setSrc", "thumbnailStyles", "setThumbnailStyles", "cropAreaStyles", "setCropAreaStyles", "neos_ui_backend_connector_default", "metadata", "adjustments", "thumbnail", "cropArea", "getStyles", "cleanText", "cleanHtml", "React", "style_default", "html", "div", "previewDimensions", "originalDimensions", "max", "previewAdjustments", "factor", "scalingFactor", "byHeight", "byWidth", "dimensions", "cropDimensions", "x", "y", "set", "path", "value", "object", "getPath", "recursivelySetValueInObject", "clone", "input", "isSame", "a", "b", "isNumeric", "str", "ClientEvalIsNotFinished", "isObject", "ItemEvalRecursive", "item", "node", "parentNode", "documentNode", "ItemEval", "key", "propertyValue", "e", "dynamicSort", "arrayToSort", "sortBy", "array", "result", "current", "property", "order", "propA", "propB", "comparison", "deepMerge", "obj1", "obj2", "copy", "part", "partAsInteger", "KEY_PROPERTY", "getDataLoaderOptionsForProps", "props", "Repeatable", "commit", "dataSourcesDataLoader", "editorRegistry", "i18nRegistry", "id", "validatorRegistry", "value", "renderHelpIcon", "identifier", "dataSourceIdentifier", "dataSourceUri", "dataSourceAdditionalData", "hasDataSource", "label", "isLoading", "setLoading", "dataTypes", "setDataTypes", "allowAdd", "setAllowAdd", "allowRemove", "setAllowRemove", "currentValue", "setCurrentValue", "options", "setOptions", "emptyGroup", "setEmptyGroup", "collapsed", "setCollapsed", "resolvedReferences", "setResolvedReferences", "returnCurrentValueAsJSON", "currentValueAsJSON", "setCurrentValueAsJSON", "neos_ui_backend_connector_default", "json", "dataAsJSON", "testIfAdd", "testIfRemove", "timeout", "sorted", "dynamicSort", "handleValueChange", "ClientEvalIsNotFinished", "group", "getEmptyGroup", "initialValue", "returnDataSourceOptionsAsJSON", "dataSourceOptionsAsJSON", "setDataSourceOptionsAsJSON", "values", "deepMerge", "referenceProperties", "config", "name", "identifiers", "item", "propName", "resolved", "error", "properties", "array", "key", "positionalArraySorter_default", "defaultValue", "returnValueIfSet", "newValue", "clone", "nanoid", "min", "max", "i", "predefined", "currentEntry", "cleanedUpEntry", "cur", "keyname", "isNumeric", "inputValue", "isSame", "commitValue", "handleAdd", "handleRemove", "idx", "s", "sidx", "handleCollapse", "commitChange", "property", "event", "set", "validateElement", "elementValue", "elementConfiguration", "validators", "validationResultsArray", "validatorName", "validatorConfiguration", "checkValidator", "result", "allowed", "validator", "createElement", "isPredefined", "controls", "sortBy", "allowRemovePredefinedProperties", "hasRemove", "hasMove", "hasTwoButtons", "hasOneButton", "React", "clsx_default", "style_default", "getProperties", "DragHandle", "hasCollapse", "isCollapsed", "getPreview", "predefinedProperties", "groupLabel", "getProperty", "checkIfValueIsSet", "fallback", "text", "image", "itemForPreview", "ItemEvalRecursive", "Preview", "repeatableValue", "propertyDefinition", "defaultDataType", "editorOptions", "editor", "isSimpleView", "Envelope_default", "LoadingWithStyles_default", "buttonAddLabel", "Sortable", "PropTypes", "neosifier", "globalRegistry", "connector", "state", "Repeatable_default", "dist_default", "globalRegistry", "Repeatable_default"] }