From c88324e10bdf37eaf8f3174011b7e1c16e01daab Mon Sep 17 00:00:00 2001 From: Felix Gradinaru Date: Mon, 19 Jan 2026 11:55:00 +0100 Subject: [PATCH 1/2] feat: Resolve node references in preview.text expressions Add support for accessing properties of referenced nodes in preview.text and preview.image expressions. Previously, reference type properties only exposed the node identifier (UUID). Now they expose a resolved object with the node's properties, label, and metadata. Changes: - Add ReferenceResolverSource.php DataSource for resolving node references - Add resolvedReferences state in index.jsx (isolated from currentValue) - Modify getPreview() to create temporary enriched item for preview only Usage: preview: text: 'ItemEval: item.person?.properties?.firstName' The changes are strictly scoped to preview functionality: - currentValue is never modified - Editors continue receiving original node identifier strings - Data commits send original node identifiers --- .../DataSource/ReferenceResolverSource.php | 107 ++++++++++++++++++ Resources/Private/Editor/Repeatable/index.jsx | 62 +++++++++- Resources/Public/Plugin.js | 8 +- Resources/Public/Plugin.js.map | 6 +- 4 files changed, 174 insertions(+), 9 deletions(-) create mode 100644 Classes/DataSource/ReferenceResolverSource.php 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/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"] } From a5ca84028e0749554717885ab8b43aa2e4b64e39 Mon Sep 17 00:00:00 2001 From: Felix Gradinaru Date: Mon, 19 Jan 2026 13:50:11 +0100 Subject: [PATCH 2/2] docs: Add documentation for reference property resolution in preview --- README.md | 48 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) 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