@fluxscape/react-runtime 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/{viewer/fluxscape.viewer.js → preview/fluxscape.preview.js} +2 -2
- package/build/{deploy/noodl.index.deploy.js.map → preview/fluxscape.preview.js.map} +1 -1
- package/build/{deploy → preview}/index.html +2 -15
- package/build/preview/index.js.liquid +1 -0
- package/{static/deploy → build/production}/index.html +2 -15
- package/build/production/index.js.liquid +1 -0
- package/build/{deploy/noodl.index.deploy.js → production/noodl.index.production.js} +2 -2
- package/build/production/noodl.index.production.js.map +1 -0
- package/dist/components/visual/Icon/Icon.d.ts +2 -2
- package/dist/components/visual/Icon/Icon.d.ts.map +1 -1
- package/dist/index.es.js +21 -11
- package/dist/index.es.js.map +1 -1
- package/dist/index.iife.js +1 -1
- package/dist/index.iife.js.map +1 -1
- package/package.json +6 -7
- package/build/deploy/index.js +0 -10
- package/build/deploy/index.json +0 -10
- package/build/deploy/noodl-app.png +0 -0
- package/build/viewer/fluxscape.viewer.js.map +0 -1
- package/build/viewer/index.html +0 -99
- package/build/viewer/noodl-app.png +0 -0
- package/index.deploy.js +0 -3
- package/index.ssr.js +0 -7
- package/index.viewer.js +0 -4
- package/static/deploy/index.js +0 -10
- package/static/deploy/index.json +0 -10
- package/static/shared/load_terminator.js +0 -1
- package/static/shared/noodl-app.png +0 -0
- package/static/shared/react-dom.production.min.js +0 -219
- package/static/shared/react.production.min.js +0 -32
- package/static/ssr/index.js +0 -194
- package/static/ssr/index.json +0 -5
- package/static/ssr/package.json +0 -25
- package/static/viewer/global.d.ts.keep +0 -721
- package/static/viewer/index.html +0 -99
- package/static/viewer/ndl_assets/OpenSans-Bold.ttf +0 -0
- package/static/viewer/ndl_assets/OpenSans-Regular.ttf +0 -0
- package/static/viewer/ndl_assets/home-icon.svg +0 -3
- package/static/viewer/ndl_assets/make-home-instructions@2x.png +0 -0
- package/static/viewer/ndl_assets/noodl-logo-black.svg +0 -3
- /package/build/{viewer → preview}/global.d.ts.keep +0 -0
- /package/build/{deploy → preview}/load_terminator.js +0 -0
- /package/build/{viewer → preview}/ndl_assets/OpenSans-Bold.ttf +0 -0
- /package/build/{viewer → preview}/ndl_assets/OpenSans-Regular.ttf +0 -0
- /package/build/{viewer → preview}/ndl_assets/home-icon.svg +0 -0
- /package/build/{viewer → preview}/ndl_assets/make-home-instructions@2x.png +0 -0
- /package/build/{viewer → preview}/ndl_assets/noodl-logo-black.svg +0 -0
- /package/build/{deploy → preview}/react-dom.production.min.js +0 -0
- /package/build/{deploy → preview}/react-runtime.css +0 -0
- /package/build/{deploy → preview}/react.production.min.js +0 -0
- /package/build/{viewer → production}/load_terminator.js +0 -0
- /package/build/{viewer → production}/react-dom.production.min.js +0 -0
- /package/build/{viewer → production}/react-runtime.css +0 -0
- /package/build/{viewer → production}/react.production.min.js +0 -0
package/dist/index.iife.js
CHANGED
|
@@ -92,7 +92,7 @@ map({
|
|
|
92
92
|
* better-scroll / slide
|
|
93
93
|
* (c) 2016-2020 ustbhuangyi
|
|
94
94
|
* Released under the MIT License.
|
|
95
|
-
*/function warn(e){console.error("[BScroll warn]: "+e)}var inBrowser=typeof window<"u",ua=inBrowser&&navigator.userAgent.toLowerCase();ua&&ua.indexOf("android")>0;function extend(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];for(var o=0;o<t.length;o++){var r=t[o];for(var s in r)e[s]=r[s]}return e}function fixInboundValue(e,t,n){return e<t?t:e>n?n:e}var elementStyle=inBrowser&&document.createElement("div").style,vendor=function(){if(!inBrowser)return!1;var e={webkit:"webkitTransform",Moz:"MozTransform",O:"OTransform",ms:"msTransform",standard:"transform"};for(var t in e)if(elementStyle[e[t]]!==void 0)return t;return!1}();function prefixStyle(e){return vendor===!1?e:vendor==="standard"?e==="transitionEnd"?"transitionend":e:vendor+e.charAt(0).toUpperCase()+e.substr(1)}vendor&&vendor!=="standard"&&""+vendor.toLowerCase(),prefixStyle("transform"),prefixStyle("transition"),inBrowser&&prefixStyle("perspective")in elementStyle,prefixStyle("transitionTimingFunction"),prefixStyle("transitionDuration"),prefixStyle("transitionDelay"),prefixStyle("transformOrigin"),prefixStyle("transitionEnd");function getRect(e){if(e instanceof window.SVGElement){var t=e.getBoundingClientRect();return{top:t.top,left:t.left,width:t.width,height:t.height}}else return{top:e.offsetTop,left:e.offsetLeft,width:e.offsetWidth,height:e.offsetHeight}}function prepend(e,t){var n=t.firstChild;n?before(e,n):t.appendChild(e)}function before(e,t){t.parentNode.insertBefore(e,t)}function removeChild(e,t){e.removeChild(t)}var ease={bounce:{style:"cubic-bezier(0.165, 0.84, 0.44, 1)",fn:function(e){return 1- --e*e*e*e}}},PagesPos=function(){function e(t,n){this.scroll=t,this.slideOpt=n,this.slideEl=null,this.init()}return e.prototype.init=function(){var t=this.scroll.scroller,n=t.scrollBehaviorX,o=t.scrollBehaviorY,r=getRect(t.wrapper),s=getRect(t.content);this.wrapperWidth=r.width,this.wrapperHeight=r.height,this.scrollerHeight=o.hasScroll?s.height:r.height,this.scrollerWidth=n.hasScroll?s.width:r.width;var a=this.slideOpt.stepX||this.wrapperWidth,l=this.slideOpt.stepY||this.wrapperHeight,u=t.content,d=this.slideOpt.el;typeof d=="string"&&(this.slideEl=u.querySelectorAll(d)),this.pages=this.slideEl?this.computePagePosInfoByEl(this.slideEl):this.computePagePosInfo(a,l),this.xLen=this.pages?this.pages.length:0,this.yLen=this.pages&&this.pages[0]?this.pages[0].length:0},e.prototype.hasInfo=function(){return!(!this.pages||!this.pages.length)},e.prototype.getPos=function(t,n){return this.pages[t]?this.pages[t][n]:null},e.prototype.getNearestPage=function(t,n){if(this.hasInfo()){for(var o=0,r=0,s=this.pages.length;o<s-1&&!(t>=this.pages[o][0].cx);o++);for(s=this.pages[o].length;r<s-1&&!(n>=this.pages[0][r].cy);r++);return{pageX:o,pageY:r}}},e.prototype.computePagePosInfo=function(t,n){var o=[],r=0,s,a,l,u=0,d,h=this.scroll.scroller.scrollBehaviorX.maxScrollPos,f=this.scroll.scroller.scrollBehaviorY.maxScrollPos;for(a=Math.round(t/2),l=Math.round(n/2);r>-this.scrollerWidth;){for(o[u]=[],d=0,s=0;s>-this.scrollerHeight;)o[u][d]={x:Math.max(r,h),y:Math.max(s,f),width:t,height:n,cx:r-a,cy:s-l},s-=n,d++;r-=t,u++}return o},e.prototype.computePagePosInfoByEl=function(t){for(var n=[],o=0,r=0,s,a,l=0,u=t.length,d=0,h=-1,f,g=this.scroll.scroller.scrollBehaviorX.maxScrollPos,b=this.scroll.scroller.scrollBehaviorY.maxScrollPos;l<u;l++)f=getRect(t[l]),(l===0||f.left<=getRect(t[l-1]).left)&&(d=0,h++),n[d]||(n[d]=[]),o=Math.max(-f.left,g),r=Math.max(-f.top,b),s=o-Math.round(f.width/2),a=r-Math.round(f.height/2),n[d][h]={x:o,y:r,width:f.width,height:f.height,cx:s,cy:a},o>g&&d++;return n},e}(),PageInfo=function(){function e(t,n){this.scroll=t,this.slideOpt=n}return e.prototype.init=function(){this.currentPage={x:0,y:0,pageX:0,pageY:0},this.pagesPos=new PagesPos(this.scroll,this.slideOpt),this.checkSlideLoop()},e.prototype.changeCurrentPage=function(t){this.currentPage=t},e.prototype.change2safePage=function(t,n){if(this.pagesPos.hasInfo()){t>=this.pagesPos.xLen?t=this.pagesPos.xLen-1:t<0&&(t=0),n>=this.pagesPos.yLen?n=this.pagesPos.yLen-1:n<0&&(n=0);var o=this.pagesPos.getPos(t,n);return{pageX:t,pageY:n,x:o?o.x:0,y:o?o.y:0}}},e.prototype.getInitPage=function(){var t=this.loopX?1:0,n=this.loopY?1:0;return{pageX:t,pageY:n}},e.prototype.getRealPage=function(t){var n=function(r,s){for(var a=[],l=0;l<s;l++)a.push(l);return a.unshift(s-1),a.push(0),a[r]},o=t?extend({},t):extend({},this.currentPage);return this.loopX&&(o.pageX=n(o.pageX,this.pagesPos.xLen-2)),this.loopY&&(o.pageY=n(o.pageY,this.pagesPos.yLen-2)),{pageX:o.pageX,pageY:o.pageY}},e.prototype.getPageSize=function(){return this.pagesPos.getPos(this.currentPage.pageX,this.currentPage.pageY)},e.prototype.realPage2Page=function(t,n){if(this.pagesPos.hasInfo()){var o=this.pagesPos.xLen-1,r=this.pagesPos.yLen-1,s=0,a=0;return this.loopX&&(t+=1,s=s+1,o=o-1),this.loopY&&(n+=1,a=a+1,r=r-1),t=fixInboundValue(t,s,o),n=fixInboundValue(n,a,r),{realX:t,realY:n}}},e.prototype.nextPage=function(){return this.changedPageNum("positive")},e.prototype.prevPage=function(){return this.changedPageNum("negative")},e.prototype.nearestPage=function(t,n,o,r){var s=this.pagesPos.getNearestPage(t,n);if(!s)return{x:0,y:0,pageX:0,pageY:0};var a=s.pageX,l=s.pageY,u,d;return a===this.currentPage.pageX&&(a+=o,a=fixInboundValue(a,0,this.pagesPos.xLen-1)),l===this.currentPage.pageY&&(l+=r,l=fixInboundValue(s.pageY,0,this.pagesPos.yLen-1)),u=this.pagesPos.getPos(a,0).x,d=this.pagesPos.getPos(0,l).y,{x:u,y:d,pageX:a,pageY:l}},e.prototype.getLoopStage=function(){if(!this.needLoop)return"middle";if(this.loopX){if(this.currentPage.pageX===0)return"head";if(this.currentPage.pageX===this.pagesPos.xLen-1)return"tail"}if(this.loopY){if(this.currentPage.pageY===0)return"head";if(this.currentPage.pageY===this.pagesPos.yLen-1)return"tail"}return"middle"},e.prototype.resetLoopPage=function(){if(this.loopX){if(this.currentPage.pageX===0)return{pageX:this.pagesPos.xLen-2,pageY:this.currentPage.pageY};if(this.currentPage.pageX===this.pagesPos.xLen-1)return{pageX:1,pageY:this.currentPage.pageY}}if(this.loopY){if(this.currentPage.pageY===0)return{pageX:this.currentPage.pageX,pageY:this.pagesPos.yLen-2};if(this.currentPage.pageY===this.pagesPos.yLen-1)return{pageX:this.currentPage.pageX,pageY:1}}},e.prototype.isSameWithCurrent=function(t){return!(t.pageX!==this.currentPage.pageX||t.pageY!==this.currentPage.pageY)},e.prototype.changedPageNum=function(t){var n=this.currentPage.pageX,o=this.currentPage.pageY;return this.slideX&&(n=t==="negative"?n-1:n+1),this.slideY&&(o=t==="negative"?o-1:o+1),{pageX:n,pageY:o}},e.prototype.checkSlideLoop=function(){this.needLoop=this.slideOpt.loop,this.pagesPos.xLen>1&&(this.slideX=!0),this.pagesPos.pages[0]&&this.pagesPos.yLen>1&&(this.slideY=!0),this.loopX=this.needLoop&&this.slideX,this.loopY=this.needLoop&&this.slideY,this.slideX&&this.slideY&&warn("slide does not support two direction at the same time.")},e}(),sourcePrefix="plugins.slide",propertiesMap=[{key:"next",name:"next"},{key:"prev",name:"prev"},{key:"goToPage",name:"goToPage"},{key:"getCurrentPage",name:"getCurrentPage"}],propertiesConfig=propertiesMap.map(function(e){return{key:e.key,sourceKey:sourcePrefix+"."+e.name}}),Slide=function(){function e(t){this.scroll=t,this.resetLooping=!1,this.isTouching=!1,this.scroll.proxy(propertiesConfig),this.scroll.registerType(["slideWillChange"]),this.slideOpt=this.scroll.options.slide,this.page=new PageInfo(t,this.slideOpt),this.hooksFn=[],this.willChangeToPage={pageX:0,pageY:0},this.init()}return e.prototype.init=function(){var t=this,n=this.slideOpt,o=this.scroll.scroller.content,r=!1;if(n.loop){var s=o.children;s.length>1?(this.cloneSlideEleForLoop(o),r=!0):n.loop=!1}var a=this.setSlideWidth(o),l=this.setSlideHeight(this.scroll.scroller.wrapper,o),u=a||l,d=this.scroll.hooks,h=this.scroll.scroller.hooks;this.registorHooks(d,"refresh",this.initSlideState),this.registorHooks(d,"destroy",this.destroy),this.registorHooks(h,"momentum",this.modifyScrollMetaHandler),this.registorHooks(this.scroll,"scrollEnd",this.amendCurrentPage),this.registorHooks(h,"beforeStart",this.setTouchFlag),this.registorHooks(h,"scroll",this.scrollMoving),this.registorHooks(h,"resize",this.resize),this.scroll.eventTypes.mousewheelMove&&this.scroll.eventTypes.mousewheelEnd&&(this.registorHooks(this.scroll,"mousewheelMove",function(){return!0}),this.registorHooks(this.scroll,"mousewheelEnd",function(f){(f.directionX===1||f.directionY===1)&&t.next(),(f.directionX===-1||f.directionY===-1)&&t.prev()})),n.listenFlick!==!1&&this.registorHooks(h,"flick",this.flickHandler),!r&&!u?this.initSlideState():this.scroll.refresh()},e.prototype.resize=function(){var t=this,n=this.scroll.scroller.content,o=this.scroll.scroller.wrapper;return clearTimeout(this.resizeTimeout),this.resizeTimeout=window.setTimeout(function(){t.clearSlideWidth(n),t.clearSlideHeight(n),t.setSlideWidth(n),t.setSlideHeight(o,n),t.scroll.refresh()},this.scroll.options.resizePolling),!0},e.prototype.next=function(t,n){var o=this.page.nextPage(),r=o.pageX,s=o.pageY;this.goTo(r,s,t,n)},e.prototype.prev=function(t,n){var o=this.page.prevPage(),r=o.pageX,s=o.pageY;this.goTo(r,s,t,n)},e.prototype.goToPage=function(t,n,o,r){var s=this.page.realPage2Page(t,n);s&&this.goTo(s.realX,s.realY,o,r)},e.prototype.getCurrentPage=function(){return this.page.getRealPage()},e.prototype.nearestPage=function(t,n){var o=this.scroll.scroller.scrollBehaviorX,r=this.scroll.scroller.scrollBehaviorY,s=!0;return Math.abs(t-o.absStartPos)<=this.thresholdX&&Math.abs(n-r.absStartPos)<=this.thresholdY&&(s=!1),s?this.page.nearestPage(fixInboundValue(t,o.maxScrollPos,o.minScrollPos),fixInboundValue(n,r.maxScrollPos,r.minScrollPos),o.direction,r.direction):this.page.currentPage},e.prototype.destroy=function(){var t=this.scroll.scroller.content;if(this.slideOpt.loop){var n=t.children;n.length>2&&(removeChild(t,n[n.length-1]),removeChild(t,n[0]))}this.hooksFn.forEach(function(o){var r=o[0],s=o[1],a=o[2];r.eventTypes[s]&&r.off(s,a)}),this.hooksFn.length=0},e.prototype.initSlideState=function(){const t=this.page.currentPage;if(this.page.init(),t)this.page.currentPage=t;else{var n=this.page.getInitPage();this.goTo(n.pageX,n.pageY,0)}this.initThreshold()},e.prototype.initThreshold=function(){var t=this.slideOpt.threshold||.1;if(t%1===0)this.thresholdX=t,this.thresholdY=t;else{var n=this.page.getPageSize();n&&(this.thresholdX=Math.round(n.width*t),this.thresholdY=Math.round(n.height*t))}},e.prototype.cloneSlideEleForLoop=function(t){var n=t.children;prepend(n[n.length-1].cloneNode(!0),t),t.appendChild(n[1].cloneNode(!0))},e.prototype.amendCurrentPage=function(){if(this.isTouching=!1,!!this.slideOpt.loop){if(this.resetLooping){this.resetLooping=!1;return}var t=!1;if(this.page.loopX&&(this.scroll.x===this.scroll.scroller.scrollBehaviorX.minScrollPos||this.scroll.x===this.scroll.scroller.scrollBehaviorX.maxScrollPos)&&(t=!0),this.page.loopY&&(this.scroll.y===this.scroll.scroller.scrollBehaviorY.minScrollPos||this.scroll.y===this.scroll.scroller.scrollBehaviorY.maxScrollPos)&&(t=!0),t){var n=this.scroll.scroller.scrollBehaviorX,o=this.scroll.scroller.scrollBehaviorY,r=this.page.nearestPage(fixInboundValue(this.scroll.x,n.maxScrollPos,n.minScrollPos),fixInboundValue(this.scroll.y,o.maxScrollPos,o.minScrollPos),0,0),s={x:r.x,y:r.y,pageX:r.pageX,pageY:r.pageY};this.page.isSameWithCurrent(s)||this.page.changeCurrentPage(s)}var a=this.page.resetLoopPage();if(a)return this.resetLooping=!0,this.goTo(a.pageX,a.pageY,0),!0;this.pageWillChangeTo(this.page.currentPage)}},e.prototype.shouldSetWidthHeight=function(t){var n={width:["scrollX","disableSetWidth"],height:["scrollY","disableSetHeight"]},o=n[t];return!(!this.scroll.options[o[0]]||this.slideOpt[o[1]])},e.prototype.clearSlideWidth=function(t){if(this.shouldSetWidthHeight("width")){for(var n=t.children,o=0;o<n.length;o++){var r=n[o];r.removeAttribute("style")}t.removeAttribute("style")}},e.prototype.setSlideWidth=function(t){if(!this.shouldSetWidthHeight("width"))return!1;for(var n=t.children,o=n[0].clientWidth,r=0;r<n.length;r++){var s=n[r];s.style.width=o+"px"}return t.style.width=o*n.length+"px",!0},e.prototype.clearSlideHeight=function(t){if(this.shouldSetWidthHeight("height")){for(var n=t.children,o=0;o<n.length;o++){var r=n[o];r.removeAttribute("style")}t.removeAttribute("style")}},e.prototype.setSlideHeight=function(t,n){if(!this.shouldSetWidthHeight("height"))return!1;for(var o=t.clientHeight,r=n.children,s=0;s<r.length;s++){var a=r[s];a.style.height=o+"px"}return n.style.height=o*r.length+"px",!0},e.prototype.goTo=function(t,n,o,r){n===void 0&&(n=0);var s=this.page.change2safePage(t,n);if(s){var a=r||this.slideOpt.easing||ease.bounce,l=s.x,u=s.y,d=l-this.scroll.scroller.scrollBehaviorX.currentPos,h=u-this.scroll.scroller.scrollBehaviorY.currentPos;!d&&!h||(o=o===void 0?this.getAnimateTime(d,h):o,this.page.changeCurrentPage({x:l,y:u,pageX:s.pageX,pageY:s.pageY}),this.pageWillChangeTo(this.page.currentPage),this.scroll.scroller.scrollTo(l,u,o,a))}},e.prototype.flickHandler=function(){var t=this.scroll.scroller.scrollBehaviorX,n=this.scroll.scroller.scrollBehaviorY,o=t.currentPos-t.startPos,r=n.currentPos-n.startPos,s=this.getAnimateTime(o,r);this.goTo(this.page.currentPage.pageX+t.direction,this.page.currentPage.pageY+n.direction,s)},e.prototype.getAnimateTime=function(t,n){return this.slideOpt.speed?this.slideOpt.speed:Math.max(Math.max(Math.min(Math.abs(t),1e3),Math.min(Math.abs(n),1e3)),300)},e.prototype.modifyScrollMetaHandler=function(t){var n=this.nearestPage(t.newX,t.newY);t.time=this.getAnimateTime(t.newX-n.x,t.newY-n.y),t.newX=n.x,t.newY=n.y,t.easing=this.slideOpt.easing||ease.bounce,this.page.changeCurrentPage({x:t.newX,y:t.newY,pageX:n.pageX,pageY:n.pageY}),this.pageWillChangeTo(this.page.currentPage)},e.prototype.scrollMoving=function(t){if(this.isTouching){var n=this.nearestPage(t.x,t.y);this.pageWillChangeTo(n)}},e.prototype.pageWillChangeTo=function(t){var n=this.page.getRealPage(t);n.pageX===this.willChangeToPage.pageX&&n.pageY===this.willChangeToPage.pageY||(this.willChangeToPage=n,this.scroll.trigger("slideWillChange",this.willChangeToPage))},e.prototype.setTouchFlag=function(){this.isTouching=!0},e.prototype.registorHooks=function(t,n,o){t.on(n,o,this),this.hooksFn.push([t,n,o])},e.pluginName="slide",e}();BScroll.use(ScrollBar),BScroll.use(NestedScroll),BScroll.use(MouseWheel),BScroll.use(Slide);let Group$1=class extends React__namespace.Component{constructor(t){super(t),this.scrollNeedsToInit=!1,this.scrollRef=React__namespace.createRef()}componentDidMount(){this.props.scrollEnabled&&this.props.nativeScroll!==!0&&this.setupIScroll(),this.scrollRef.current.noodlNode=this.props.noodlNode}componentWillUnmount(){this.iScroll&&(this.iScroll.destroy(),this.iScroll=void 0),this.props.noodlNode.context.setNodeFocused(this.props.noodlNode,!1)}componentDidUpdate(){this.scrollNeedsToInit&&(this.setupIScroll(),this.scrollNeedsToInit=!1),this.iScroll&&setTimeout(()=>{this.iScroll&&this.iScroll.refresh()},0)}scrollToIndex(t,n){if(this.iScroll){const o=this.scrollRef.current.children[0].children[t];o&&this.iScroll.scrollToElement(o,n,0,0)}else{const o=this.scrollRef.current.children[t];o&&o.scrollIntoView({behavior:"smooth"})}}scrollToElement(t,n){if(!t)return;const o=ReactDOM.findDOMNode(t.getRef());o&&o.scrollIntoView&&(this.iScroll?this.iScroll.scrollToElement(o,n,0,0):o.scrollIntoView({behavior:"smooth"}))}setupIScroll(){const{scrollSnapEnabled:t}=this.props,n=this.getScrollDirection(),o={disableSetWidth:!0,disableSetHeight:!0,loop:!1},r=this.scrollRef.current;this.iScroll=new BScroll(r,{bounceTime:500,swipeBounceTime:300,scrollbar:this.props.showScrollbar?{}:void 0,momentum:t?!this.props.scrollSnapToEveryItem:!0,bounce:this.props.scrollBounceEnabled&&!(t&&o.loop),scrollX:n==="x"||n==="both",scrollY:n==="y"||n==="both",slide:t?o:void 0,probeType:this.props.onScrollPositionChanged?3:1,click:!0,nestedScroll:!0,useTransition:!1});const s=this.iScroll.scroller;s.scrollBehaviorX&&(s.scrollBehaviorX.momentum=patchedMomentum.bind(s.scrollBehaviorX)),s.scrollBehaviorY&&(s.scrollBehaviorY.momentum=patchedMomentum.bind(s.scrollBehaviorY)),this.iScroll.on("beforeScrollStart",()=>{this.iScroll.refresh()}),this.iScroll.on("scrollStart",()=>{this.props.onScrollStart&&this.props.onScrollStart()}),this.iScroll.on("scrollEnd",()=>{this.props.onScrollEnd&&this.props.onScrollEnd()}),this.props.onScrollPositionChanged&&this.iScroll.on("scroll",()=>{this.props.onScrollPositionChanged(n==="x"?-this.iScroll.x:-this.iScroll.y)})}UNSAFE_componentWillReceiveProps(t){(this.props.scrollSnapEnabled!==t.scrollSnapEnabled||this.props.onScrollPositionChanged!==t.onScrollPositionChanged||this.props.onScrollStart!==t.onScrollStart||this.props.onScrollEnd!==t.onScrollEnd||this.props.showScrollbar!==t.showScrollbar||this.props.scrollEnabled!==t.scrollEnabled||this.props.nativeScroll!==t.nativeScroll||this.props.scrollSnapToEveryItem!==t.scrollSnapToEveryItem||this.props.layout!==t.layout||this.props.flexWrap!==t.flexWrap||this.props.scrollBounceEnabled!==t.scrollBounceEnabled)&&(this.iScroll&&(this.iScroll.destroy(),this.iScroll=void 0),this.scrollNeedsToInit=t.scrollEnabled&&!t.nativeScroll)}renderIScroll(){const{flexDirection:t,flexWrap:n}=this.props.style,o={display:"inline-flex",flexShrink:0,flexDirection:t,flexWrap:n,touchAction:"none"};return t==="row"?n==="wrap"?o.width="100%":o.height="100%":n==="wrap"?o.height="100%":o.width="100%",React__namespace.createElement("div",{className:"scroll-wrapper-internal",style:o},this.props.children)}getScrollDirection(){return this.props.flexWrap==="wrap"||this.props.flexWrap==="wrap-reverse"?this.props.layout==="row"?"y":"x":this.props.layout==="row"?"x":"y"}render(){const{as:t="div",...n}=this.props,o=n.scrollEnabled&&!n.nativeScroll?this.renderIScroll():n.children,r={...n.style};if(Layout.size(r,n),Layout.align(r,n),n.clip&&(r.overflowX="hidden",r.overflowY="hidden"),n.scrollEnabled&&n.nativeScroll){const a=this.getScrollDirection();a==="y"?r.overflowY="auto":a==="x"?r.overflowX="auto":a==="both"&&(r.overflowX="auto",r.overflowY="auto")}r.opacity===0&&(r.pointerEvents="none");const s={className:n.className,...n.attrs,...n.dom,...pointerProps(n),style:r,ref:this.scrollRef};return React__namespace.createElement(t,{...s},o)}};const GroupNode={name:"Group",docs:"https://docs.noodl.net/nodes/basic-elements/group",connectionPanel:{groupPriority:["General","Style","Events","Mounted","Hover Events","Pointer Events","Focus","Scroll"]},initialize(){this.props.attrs={},this._internal={scrollElementDuration:500,scrollIndexDuration:500,scrollIndex:0},this.props.layout="column"},getReactComponent(){return Group$1},noodlNodeAsProp:!0,visualStates:[{name:"neutral",label:"Neutral"},{name:"hover",label:"Hover"}],defaultCss:{display:"flex",position:"relative",flexDirection:"column"},inputs:{flexDirection:{index:12,displayName:"Layout",group:"Layout",type:{name:"enum",enums:[{label:"None",value:"none"},{label:"Vertical",value:"column"},{label:"Horizontal",value:"row"}]},default:"column",set(e){this.props.layout=e,e!=="none"?this.setStyle({flexDirection:e}):this.removeStyle(["flexDirection"]),this.context.editorConnection&&(e!=="none"&&!flexDirectionValues.includes(e)?this.context.editorConnection.sendWarning(this.nodeScope.componentOwner.name,this.id,"layout-warning",{message:"Invalid Layout value has to be a valid flex-direction value."}):this.context.editorConnection.clearWarning(this.nodeScope.componentOwner.name,this.id,"layout-warning")),this.forceUpdate()}},"scrollToIndex.do":{displayName:"Scroll To Index - Do",group:"Scroll To Index",type:"signal",index:505,valueChangedToTrue(){this.scheduleAfterInputsHaveUpdated(()=>{if(!this.innerReactComponentRef)return;const e=this._internal.scrollIndex,t=this._internal.scrollIndexDuration;this.innerReactComponentRef.scrollToIndex(e,t)})}},"scrollToElement.do":{displayName:"Scroll To Element - Do",group:"Scroll To Element",type:"signal",index:500,valueChangedToTrue(){this.innerReactComponentRef&&this.scheduleAfterInputsHaveUpdated(()=>{const e=this._internal.scrollElement,t=this._internal.scrollElementDuration;this.innerReactComponentRef.scrollToElement(e,t)})}},"scrollToElement.element":{displayName:"Scroll To Element - Element",group:"Scroll To Element",type:"reference",index:501,set(e){this._internal.scrollElement=e}},"scrollToElement.duration":{displayName:"Scroll To Element - Duration",group:"Scroll To Element",type:"number",default:500,index:502,set(e){this._internal.scrollElementDuration=e}},"scrollToIndex.index":{displayName:"Scroll To Index - Index",group:"Scroll To Index",type:"number",default:0,index:506,set(e){this._internal.scrollIndex=e}},"scrollToIndex.duration":{displayName:"Scroll To Index - Duration",group:"Scroll To Index",type:"number",default:500,index:507,set(e){this._internal.scrollIndexDuration=e}},focus:{displayName:"Focus",type:"signal",group:"Focus",valueChangedToTrue(){this.context.setNodeFocused(this,!0)}},testId:{index:100009,displayName:"Test ID Attribute",group:"Advanced HTML",type:"string",set(e){this.props.attrs["data-testid"]=e,this.forceUpdate()}}},inputProps:{clip:{index:19,displayName:"Clip Content",type:"boolean",group:"Layout",default:!1},scrollEnabled:{index:54,group:"Scroll",displayName:"Enable Scroll",type:"boolean",default:!1},scrollSnapEnabled:{index:55,displayName:"Snap",group:"Scroll",type:"boolean",default:!1},scrollSnapToEveryItem:{index:56,displayName:"Snap To Every Item",group:"Scroll",type:"boolean",default:!1},showScrollbar:{index:57,displayName:"Show Scrollbar",group:"Scroll",type:"boolean",default:!1},scrollBounceEnabled:{index:58,displayName:"Bounce at boundaries",group:"Scroll",type:"boolean",default:!0},nativeScroll:{index:60,group:"Scroll",displayName:"Native platform scroll",type:"boolean",default:!0},as:{index:1e5,group:"Advanced HTML",displayName:"Tag",type:{name:"enum",enums:[{label:"<div>",value:"div"},{label:"<section>",value:"section"},{label:"<article>",value:"article"},{label:"<aside>",value:"aside"},{label:"<nav>",value:"nav"},{label:"<header>",value:"header"},{label:"<footer>",value:"footer"},{label:"<main>",value:"main"},{label:"<span>",value:"span"}]},default:"div"}},inputCss:{alignItems:{index:13,group:"Align and justify content",displayName:"Align Items",type:{name:"enum",enums:[{label:"Start",value:"flex-start"},{label:"End",value:"flex-end"},{label:"Center",value:"center"}],alignComp:"align-items"},default:"flex-start"},justifyContent:{index:14,group:"Align and justify content",displayName:"Justify Content",type:{name:"enum",enums:[{label:"Start",value:"flex-start"},{label:"End",value:"flex-end"},{label:"Center",value:"center"},{label:"Space Between",value:"space-between"},{label:"Space Around",value:"space-around"},{label:"Space Evenly",value:"space-evenly"}],alignComp:"justify-content"},default:"flex-start",applyDefault:!1},flexWrap:{index:15,displayName:"Multi Line Wrap",group:"Layout",type:{name:"enum",enums:[{label:"Off",value:"nowrap"},{label:"On",value:"wrap"},{label:"On Reverse",value:"wrap-reverse"}]},default:"nowrap",onChange(e){this.props.flexWrap=e,this.forceUpdate()},applyDefault:!1},alignContent:{index:16,group:"Layout",displayName:"Align Content",type:{name:"enum",enums:[{label:"Start",value:"flex-start"},{label:"End",value:"flex-end"},{label:"Center",value:"center"},{label:"Space Between",value:"space-between"},{label:"Space Around",value:"space-around"},{label:"Space Evenly",value:"space-evenly"}],alignComp:"align-content"}},rowGap:{index:17,displayName:"Vertical Gap",group:"Layout",type:{name:"number",units:["px","%","em"],defaultUnit:"px"},default:0,applyDefault:!1},columnGap:{index:18,displayName:"Horizontal Gap",group:"Layout",type:{name:"number",units:["px","%","em"],defaultUnit:"px"},default:0,applyDefault:!1},backgroundColor:{index:201,displayName:"Background Color",group:"Style",type:"color",default:"transparent",applyDefault:!1,allowVisualStates:!0}},outputProps:{onScrollPositionChanged:{displayName:"Scroll Position",type:"number",group:"Scroll"},onScrollStart:{displayName:"Scroll Start",type:"signal",group:"Scroll"},onScrollEnd:{displayName:"Scroll End",type:"signal",group:"Scroll"}},outputs:{focused:{displayName:"Focused",type:"signal",group:"Focus"},focusLost:{displayName:"Focus Lost",type:"signal",group:"Focus"}},dynamicports:[{condition:"flexDirection != none",inputs:["scrollEnabled"]},{condition:"flexDirection != none AND scrollEnabled = true",inputs:["nativeScroll"]},{condition:"flexDirection != none AND scrollEnabled = true AND nativeScroll = false",inputs:["scrollBounceEnabled","scrollSnapEnabled","showScrollbar","scrollToElement.do","scrollToElement.element","scrollToElement.duration","scrollToIndex.do","scrollToIndex.index","scrollToIndex.duration"]},{condition:"flexDirection != none AND scrollEnabled = true AND scrollSnapEnabled = true",inputs:["scrollSnapToEveryItem"]},{condition:"flexDirection != none",inputs:["flexWrap"]},{condition:"flexWrap = wrap OR flexWrap = wrap-reverse",inputs:["alignContent"]},{condition:"flexDirection = row OR flexWrap = wrap OR flexWrap = wrap-reverse",inputs:["columnGap"]},{condition:"flexDirection = column OR flexWrap = wrap OR flexWrap = wrap-reverse",inputs:["rowGap"]}],methods:{_focus(){this.sendSignalOnOutput("focused")},_blur(){this.sendSignalOnOutput("focusLost")}}};NodeSharedPortDefinitions.addDimensions(GroupNode),NodeSharedPortDefinitions.addTransformInputs(GroupNode),NodeSharedPortDefinitions.addSharedVisualInputs(GroupNode),NodeSharedPortDefinitions.addPaddingInputs(GroupNode),NodeSharedPortDefinitions.addMarginInputs(GroupNode),NodeSharedPortDefinitions.addAlignInputs(GroupNode),NodeSharedPortDefinitions.addPointerEventOutputs(GroupNode),NodeSharedPortDefinitions.addBorderInputs(GroupNode),NodeSharedPortDefinitions.addShadowInputs(GroupNode);function defineTooltips$1(e){e.inputProps.clip.tooltip=createTooltip({title:"Clip content",body:"Controls if elements that are too big to fit will be clipped",images:[{src:"clip-enabled.svg",label:"Enabled"},{src:"clip-disabled.svg",label:"Disabled"}]}),e.inputCss.flexWrap.tooltip=createTooltip({title:"Multiline wrap",body:"Elements will wrap to the next line when there's not enough space",images:[{src:"multiline-h.svg",body:"Using a horizontal layout"},{src:"multiline-v.svg",body:"Using a vertical layout"}]})}Noodl.runDeployed||defineTooltips$1(GroupNode);const Group=createNodeFromReactComponent(GroupNode);function Icon$1(e){const t={userSelect:"none",...e.style};Layout.size(t,e),Layout.align(t,e);function n(){const r={};return e.iconSourceType==="image"&&e.iconImageSource!==void 0?(r.width=e.iconSize,r.height=e.iconSize,React__namespace.createElement("img",{alt:"",src:e.iconImageSource,style:r})):e.iconSourceType==="icon"&&e.iconIconSource!==void 0?(r.fontSize=e.iconSize,r.color=e.iconColor,r.lineHeight=1,React__namespace.createElement("div",{style:{lineHeight:0}},e.iconIconSource.codeAsClass===!0?React__namespace.createElement("span",{className:[e.iconIconSource.class,e.iconIconSource.code].join(" "),style:r}):React__namespace.createElement("span",{className:e.iconIconSource.class,style:r},e.iconIconSource.code))):null}let o="ndl-visual-icon";return e.className&&(o=o+" "+e.className),React__namespace.createElement("div",{className:o,style:t},n())}const IconNode={name:"net.noodl.visual.icon",displayName:"Icon",docs:"https://docs.noodl.net/nodes/basic-elements/icon",allowChildren:!1,noodlNodeAsProp:!0,connectionPanel:{groupPriority:["General","Style","Actions","Events","States","Mounted","Hover Events","Pointer Events","Focus Events"]},getReactComponent(){return Icon$1}};NodeSharedPortDefinitions.addAlignInputs(IconNode),NodeSharedPortDefinitions.addTransformInputs(IconNode),NodeSharedPortDefinitions.addPaddingInputs(IconNode,{defaults:{paddingTop:5,paddingRight:5,paddingBottom:5,paddingLeft:5}}),NodeSharedPortDefinitions.addMarginInputs(IconNode),NodeSharedPortDefinitions.addIconInputs(IconNode,{hideEnableIconInput:!0,defaults:{useIcon:!0}}),NodeSharedPortDefinitions.addSharedVisualInputs(IconNode);const Icon=createNodeFromReactComponent(IconNode);function Image$1(e){const t={...e.style};if(Layout.size(t,e),Layout.align(t,e),t.opacity===0&&(t.pointerEvents="none"),e.dom?.src?.startsWith("/")){const n=Noodl.Env.BaseUrl;n&&(e.dom.src=n+e.dom.src.substring(1))}return React__namespace.createElement("img",{...e.attrs,className:e.className,...e.dom,...pointerProps(e),style:t})}const ImageNode={name:"Image",docs:"https://docs.noodl.net/nodes/basic-elements/image",noodlNodeAsProp:!0,visualStates:[{name:"neutral",label:"Neutral"},{name:"hover",label:"Hover"}],connectionPanel:{groupPriority:["General","Image","Style","Actions","Events","Mounted","Pointer Events","Hover Events","Dimensions","Margin and padding"]},initialize(){this.props.attrs={},this.props.default=""},getReactComponent(){return Image$1},getInspectInfo(){if(this.props.dom.srcSet)return this.props.dom.srcSet;if(this.props.dom.src){const e=this.props.dom.src.toString();return[{type:"text",value:e},{type:"image",value:e}]}},allowChildren:!1,defaultCss:{display:"block",flexShrink:0},inputCss:{objectFit:{displayName:"Image Fit",group:"Dimensions",type:{name:"enum",enums:[{label:"Fill",value:"fill"},{label:"Contain",value:"contain"},{label:"Cover",value:"cover"},{label:"None",value:"none"},{label:"Scale Down",value:"scale-down"}]},default:"contain",allowVisualStates:!0}},dynamicports:[{condition:"sizeMode = explicit",inputs:["objectFit"]}],inputs:{src:{displayName:"Source",group:"Image",propPath:"dom",type:{name:"image"},index:30,allowVisualStates:!0,set(e){this.props.dom.src=getAbsoluteUrl(e),this.forceUpdate()}},testId:{index:100009,displayName:"Test ID Attribute",group:"Advanced HTML",type:"string",set(e){this.props.attrs["data-testid"]=e,this.forceUpdate()}}},inputProps:{srcSet:{displayName:"Source Set",group:"Image",propPath:"dom",type:{name:"string"},index:31,allowVisualStates:!0},alt:{displayName:"Alternate text",tooltip:"The alt text is used by screen readers, or if the image can't be downloaded or displayed",type:"string",propPath:"dom",index:1e3,default:""}},outputProps:{onLoad:{displayName:"On Load",propPath:"dom",type:"signal",group:"Events"},onError:{displayName:"On Error",propPath:"dom",type:"signal",group:"Events"}}};NodeSharedPortDefinitions.addDimensions(ImageNode,{defaultSizeMode:"contentSize",contentLabel:"Image"}),NodeSharedPortDefinitions.addTransformInputs(ImageNode),NodeSharedPortDefinitions.addMarginInputs(ImageNode),NodeSharedPortDefinitions.addSharedVisualInputs(ImageNode),NodeSharedPortDefinitions.addAlignInputs(ImageNode),NodeSharedPortDefinitions.addPointerEventOutputs(ImageNode),NodeSharedPortDefinitions.addBorderInputs(ImageNode),NodeSharedPortDefinitions.addShadowInputs(ImageNode);const Image=createNodeFromReactComponent(ImageNode);function Text(e){const{as:t="div"}=e,n={...e.textStyle,...e.style};return Layout.size(n,e),Layout.align(n,e),n.color=e.noodlNode.context.styles.resolveColor(n.color),e.sizeMode==="contentSize"||e.sizeMode==="contentWidth"?n.whiteSpace="pre":(n.whiteSpace="pre-wrap",n.overflowWrap="anywhere"),n.opacity===0&&(n.pointerEvents="none"),React.createElement(t,{className:["ndl-visual-text",e.className].join(" "),...e.attrs,...e.dom,...pointerProps(e),style:n},String(e.text))}const TextNode={name:"Text",docs:"https://docs.noodl.net/nodes/basic-elements/text",visualStates:[{name:"neutral",label:"Neutral"},{name:"hover",label:"Hover"}],allowChildren:!1,noodlNodeAsProp:!0,usePortAsLabel:"text",portLabelTruncationMode:"length",connectionPanel:{groupPriority:["General","Text","Text Style","Style","Events","Mounted","Hover Events","Pointer Events"]},nodeDoubleClickAction:{focusPort:"text"},initialize(){this.props.attrs={}},getReactComponent(){return Text},getInspectInfo(){return this.props.text},defaultCss:{position:"relative",display:"flex"},inputProps:{text:{index:19,group:"Text",displayName:"Text",default:"Text",type:{name:"string",multiline:!0}},as:{index:1e5,group:"Advanced HTML",displayName:"Tag",type:{name:"enum",enums:[{label:"<div>",value:"div"},{label:"<h1>",value:"h1"},{label:"<h2>",value:"h2"},{label:"<h3>",value:"h3"},{label:"<h4>",value:"h4"},{label:"<h5>",value:"h5"},{label:"<h6>",value:"h6"},{label:"<p>",value:"p"},{label:"<span>",value:"span"}]},default:"div"}},inputCss:{wordBreak:{index:27,group:"Text",displayName:"Word Break",applyDefault:!1,type:{name:"enum",enums:[{label:"Normal",value:"normal"},{label:"Break All",value:"break-all"}]},default:"normal"}},inputs:{textAlignX:{group:"Text Alignment",index:13,displayName:"Text Horizontal Align",type:{name:"enum",enums:[{label:"left",value:"left"},{label:"center",value:"center"},{label:"right",value:"right"}],alignComp:"justify"},default:"left",set(e){switch(e){case"left":this.setStyle({textAlign:"left",justifyContent:"flex-start"});break;case"center":this.setStyle({textAlign:"center",justifyContent:"center"});break;case"right":this.setStyle({textAlign:"right",justifyContent:"flex-end"});break}}},textAlignY:{group:"Text Alignment",index:14,displayName:"Text Vertical Align",type:{name:"enum",enums:[{label:"Top",value:"top"},{label:"Center",value:"center"},{label:"Bottom",value:"bottom"}],alignComp:"vertical"},default:"top",set(e){switch(e){case"top":this.setStyle({alignItems:"flex-start"});break;case"center":this.setStyle({alignItems:"center"});break;case"bottom":this.setStyle({alignItems:"flex-end"});break}}},testId:{index:100009,displayName:"Test ID Attribute",group:"Advanced HTML",type:"string",set(e){this.props.attrs["data-testid"]=e,this.forceUpdate()}}}};NodeSharedPortDefinitions.addDimensions(TextNode,{defaultSizeMode:"contentHeight",contentLabel:"Text"}),NodeSharedPortDefinitions.addTextStyleInputs(TextNode),NodeSharedPortDefinitions.addAlignInputs(TextNode),NodeSharedPortDefinitions.addTransformInputs(TextNode),NodeSharedPortDefinitions.addMarginInputs(TextNode),NodeSharedPortDefinitions.addSharedVisualInputs(TextNode),NodeSharedPortDefinitions.addPointerEventOutputs(TextNode);function defineTooltips(e){e.inputCss.wordBreak.tooltip=createTooltip({title:"Word break",body:["Control where line breaks are allowed","- Normal: Break on spaces and other whitespace characters","- Break All: Allow line breaks between any two characters, including inside words"]})}Noodl.runDeployed||defineTooltips(TextNode);const TextNode$1=createNodeFromReactComponent(TextNode);class CachedVideo extends React.PureComponent{componentDidUpdate(){this.video&&(this.video.muted=this.props.muted,this.video.loop=this.props.loop,this.video.volume=this.props.volume,this.video.autoplay=this.props.autoplay,this.video.controls=this.props.controls)}render(){let t=this.props.src?this.props.src.toString():void 0;if(t&&(t.indexOf("#t=")===-1&&(t+="#t=0.01"),t.startsWith("/"))){const n=Noodl.Env.BaseUrl;n&&(t=n+t.substring(1))}return React.createElement("video",{...this.props,playsInline:!0,src:t,...pointerProps(this.props),ref:n=>{this.video=n,this.props.innerRef(n)}})}}let Video$1=class extends React.Component{constructor(t){super(t),this.wantToPlay=!1,this.canPlay=!1}componentWillUnmount(){this.canPlay=!1}setSourceObject(t){this.video.srcObject!==t&&(this.video.srcObject=t,this.canPlay=!1)}play(){this.wantToPlay=!0,this.canPlay&&this.video.play()}restart(){this.wantToPlay=!0,this.canPlay&&(this.video.currentTime=0,this.video.play())}pause(){this.wantToPlay=!1,this.video&&this.video.pause()}reset(){this.wantToPlay=!1,this.video&&(this.video.currentTime=0,this.video.pause())}render(){const t=this.props,n={...t.style};return Layout.size(n,t),Layout.align(n,t),n.opacity===0&&(n.pointerEvents="none"),n.objectPosition=`${t.objectPositionX} ${t.objectPositionY}`,React.createElement(CachedVideo,{...t.dom,className:t.className,style:n,innerRef:o=>{this.video=o,this.props.onVideoElementCreated&&this.props.onVideoElementCreated(o)},onCanPlay:()=>{this.canPlay=!0,this.wantToPlay&&this.video.play(),this.props.onCanPlay&&this.props.onCanPlay(),this.props.videoWidth&&this.props.videoWidth(this.video.videoWidth),this.props.videoHeight&&this.props.videoHeight(this.video.videoHeight)}})}};const VideoNode={name:"Video",docs:"https://docs.noodl.net/nodes/basic-elements/video",connectionPanel:{groupPriority:["General","Video","Video Actions","Style","Actions","Events","Mounted","Playback","Pointer Events","Hover Events","Dimensions","Margin and padding"]},getReactComponent(){return Video$1},allowChildren:!1,noodlNodeAsProp:!0,defaultCss:{display:"block"},inputs:{srcObject:{displayName:"Source Object",group:"Video",type:"mediastream",default:null,set(e){this.innerReactComponentRef&&this.innerReactComponentRef.setSourceObject(e)}},play:{type:"signal",group:"Video Actions",displayName:"Play",tooltip:{standard:"Play the video"},valueChangedToTrue(){this.innerReactComponentRef&&this.innerReactComponentRef.play()}},restart:{type:"signal",group:"Video Actions",displayName:"Restart",tooltip:{standard:"Restart the video from the beginning"},valueChangedToTrue(){this.innerReactComponentRef&&this.innerReactComponentRef.restart()}},pause:{type:"boolean",group:"Video Actions",displayName:"Pause",valueChangedToTrue(){this.innerReactComponentRef&&this.innerReactComponentRef.pause()}},reset:{type:"boolean",group:"Video Actions",displayName:"Reset",valueChangedToTrue(){this.innerReactComponentRef&&this.innerReactComponentRef.reset()}},src:{displayName:"Source",group:"Video",type:"string",set(e){this.props.dom.src=getAbsoluteUrl(e),this.forceUpdate()}},poster:{displayName:"Poster",group:"Video",type:"image",set(e){this.props.dom.poster=getAbsoluteUrl(e),this.forceUpdate()}}},inputProps:{autoplay:{displayName:"Autoplay",propPath:"dom",group:"Video",type:"boolean"},controls:{displayName:"Controls",propPath:"dom",group:"Video",type:"boolean"},volume:{displayName:"Volume",propPath:"dom",group:"Video",type:"number",default:1},muted:{displayName:"Muted",propPath:"dom",group:"Video",type:"boolean"},loop:{displayName:"Loop",propPath:"dom",group:"Video",type:"boolean"},objectPositionX:{displayName:"Video Position X",group:"Video Layout",type:{name:"number",units:["%","px"],defaultUnit:"%"},default:50},objectPositionY:{displayName:"Video Position Y",group:"Video Layout",type:{name:"number",units:["%","px"],defaultUnit:"%"},default:50}},inputCss:{objectFit:{displayName:"Object Fit",group:"Video Layout",type:{name:"enum",enums:[{label:"Contain",value:"contain"},{label:"Cover",value:"cover"},{label:"Fill",value:"fill"},{label:"None",value:"none"}]},default:"contain"}},outputProps:{onCanPlay:{type:"signal",group:"Events",displayName:"On Can Play"},onTimeUpdate:{group:"Playback",displayName:"Playback Position",type:"number",propPath:"dom",getValue(e){return e.target.currentTime}},onPlay:{group:"Events",displayName:"On Play",type:"signal",propPath:"dom"},onPause:{group:"Events",displayName:"On Pause",type:"signal",propPath:"dom"},onVideoElementCreated:{type:"domelement",displayName:"DOM Element"},videoWidth:{group:"Playback",type:"number",displayName:"Video Width"},videoHeight:{group:"Playback",type:"number",displayName:"Video Height"}}};NodeSharedPortDefinitions.addDimensions(VideoNode,{defaultSizeMode:"contentSize",contentLabel:"Video"}),NodeSharedPortDefinitions.addTransformInputs(VideoNode),NodeSharedPortDefinitions.addMarginInputs(VideoNode),NodeSharedPortDefinitions.addSharedVisualInputs(VideoNode),NodeSharedPortDefinitions.addAlignInputs(VideoNode),NodeSharedPortDefinitions.addPointerEventOutputs(VideoNode),NodeSharedPortDefinitions.addBorderInputs(VideoNode);const Video=createNodeFromReactComponent(VideoNode);function _shallowCompare(e,t){for(var n in e)if(e.hasOwnProperty(n)&&e[n]!==t[n])return!1;for(var n in t)if(t.hasOwnProperty(n)&&e[n]!==t[n])return!1;return!0}const _styleSheets={};function updateStylesForClass(e,t,n){if(_styleSheets[e])_shallowCompare(t,_styleSheets[e].props)||(_styleSheets[e].style.innerHTML=n(e,t),_styleSheets[e].props=Object.assign({},t));else{var o=document.createElement("style");o.innerHTML=n(e,t),document.head.appendChild(o),_styleSheets[e]={style:o,props:Object.assign({},t)}}}function mergeAttribute(e,t,n){e[t]||(e[t]={});for(const o in n)e[t][o]=n[o]}function addInputProps(e,t){mergeAttribute(e,"inputProps",t)}function addOutputProps(e,t){mergeAttribute(e,"outputProps",t)}function addControlEventsAndStates(e){addInputProps(e,{blockTouch:{index:450,displayName:"Block Pointer Events",type:"boolean"}}),addOutputProps(e,{focusState:{displayName:"Focused",group:"States",type:"boolean",props:{onFocus(){this.outputPropValues.focusState=!0,this.flagOutputDirty("focusState"),this.hasOutput("onFocus")&&this.sendSignalOnOutput("onFocus")},onBlur(){this.outputPropValues.focusState=!1,this.flagOutputDirty("focusState"),this.hasOutput("onBlur")&&this.sendSignalOnOutput("onBlur")}}},onFocus:{displayName:"Focused",group:"Events",type:"signal",props:{onFocus(){this.outputPropValues.focusState=!0,this.flagOutputDirty("focusState"),this.sendSignalOnOutput("onFocus")}}},onBlur:{displayName:"Blurred",group:"Events",type:"signal",props:{onBlur(){this.outputPropValues.focusState=!1,this.flagOutputDirty("focusState"),this.sendSignalOnOutput("onBlur")}}},hoverState:{displayName:"Hover",group:"States",type:"boolean",props:{onMouseOver(){this.outputPropValues.hoverState=!0,this.flagOutputDirty("hoverState"),this.hasOutput("hoverStart")&&this.sendSignalOnOutput("hoverStart")},onMouseLeave(){this.outputPropValues.hoverState=!1,this.flagOutputDirty("hoverState"),this.hasOutput("hoverEnd")&&this.sendSignalOnOutput("hoverEnd")}}},hoverStart:{displayName:"Hover Start",group:"Events",type:"signal",props:{onMouseOver(){this.outputPropValues.hoverState=!0,this.flagOutputDirty("hoverState"),this.sendSignalOnOutput("hoverStart")}}},hoverEnd:{displayName:"Hover End",group:"Events",type:"signal",props:{onMouseLeave(){this.outputPropValues.hoverState=!1,this.flagOutputDirty("hoverState"),this.sendSignalOnOutput("hoverEnd")}}},pressedState:{displayName:"Pressed",group:"States",type:"boolean",props:{onMouseDown(){this.outputPropValues.pressedState=!0,this.flagOutputDirty("pressedState"),this.hasOutput("pointerDown")&&this.sendSignalOnOutput("pointerDown")},onTouchStart(){this.outputPropValues.pressedState=!0,this.flagOutputDirty("pressedState"),this.hasOutput("pointerDown")&&this.sendSignalOnOutput("pointerDown")},onMouseUp(){this.outputPropValues.pressedState=!1,this.flagOutputDirty("pressedState"),this.hasOutput("pointerUp")&&this.sendSignalOnOutput("pointerUp")},onTouchEnd(){this.outputPropValues.pressedState=!1,this.flagOutputDirty("pressedState"),this.hasOutput("pointerUp")&&this.sendSignalOnOutput("pointerUp")},onTouchCancel(){this.outputPropValues.pressedState=!1,this.flagOutputDirty("pressedState"),this.hasOutput("pointerUp")&&this.sendSignalOnOutput("pointerUp")}}},pointerDown:{displayName:"Pointer Down",group:"Events",type:"signal",props:{onMouseDown(){this.outputPropValues.pressedState=!0,this.flagOutputDirty("pressedState"),this.sendSignalOnOutput("pointerDown")},onTouchStart(){this.outputPropValues.pressedState=!0,this.flagOutputDirty("pressedState"),this.sendSignalOnOutput("pointerDown")}}},pointerUp:{displayName:"Pointer Up",group:"Events",type:"signal",props:{onMouseUp(){this.outputPropValues.pressedState=!1,this.flagOutputDirty("pressedState"),this.sendSignalOnOutput("pointerUp")},onTouchEnd(){this.outputPropValues.pressedState=!1,this.flagOutputDirty("pressedState"),this.sendSignalOnOutput("pointerUp")},onTouchCancel(){this.outputPropValues.pressedState=!1,this.flagOutputDirty("pressedState"),this.sendSignalOnOutput("pointerUp")}}}})}function controlEvents(e){return Object.assign({},{onFocus:e.onFocus,onBlur:e.onBlur},pointerProps(e))}const Utils={updateStylesForClass,addControlEventsAndStates,controlEvents};function Button(e){React.useEffect(()=>{e.focusChanged&&e.focusChanged(!1),e.hoverChanged&&e.hoverChanged(!1),e.pressedChanged&&e.pressedChanged(!1)},[]);var t={...e.style};Layout.size(t,e),Layout.align(t,e),e.textStyle!==void 0&&(t=Object.assign({},e.textStyle,t)),e.boxShadowEnabled&&(t.boxShadow=`${e.boxShadowInset?"inset ":""}${e.boxShadowOffsetX} ${e.boxShadowOffsetY} ${e.boxShadowBlurRadius} ${e.boxShadowSpreadRadius} ${e.boxShadowColor}`);let n="ndl-controls-button";return e.className&&(n=n+" "+e.className),React.createElement("button",{className:n,disabled:!e.enabled,...Utils.controlEvents(e),type:e.buttonType,style:t,onClick:e.onClick},e.label,e.children)}var ButtonNode={name:"Button",docs:"https://docs.noodl.net/nodes/visual/button",allowChildren:!0,noodlNodeAsProp:!0,initialize(){this.outputPropValues.hoverState=this.outputPropValues.focusState=this.outputPropValues.pressedState=!1,this.props.id=this._internal.controlId="input-"+guid(),this.props.enabled=this._internal.enabled=!0},getReactComponent(){return Button},inputs:{enabled:{type:"boolean",displayName:"Enabled",group:"General",default:!0,set:function(e){e=!!e;const t=e!==this._internal.enabled;this.props.enabled=this._internal.enabled=e,t&&(this.forceUpdate(),this.flagOutputDirty("enabled"))}},textStyle:{index:20,type:"textStyle",group:"Text",displayName:"Text Style",default:"None",set(e){this.props.textStyle=this.context.styles.getTextStyle(e),this.forceUpdate()}},fontFamily:{index:21,type:"font",group:"Text",displayName:"Font Family",set(e){if(e){let t=e;t.split(".").length>1&&(t=t.replace(/\.[^/.]+$/,""),t=t.split("/").pop()),this.setStyle({fontFamily:t})}else this.removeStyle(["fontFamily"]);this.props.textStyle&&this.forceUpdate()}}},outputs:{controlId:{type:"string",displayName:"Control Id",group:"General",getter:function(){return this._internal.controlId}},enabled:{type:"boolean",displayName:"Enabled",group:"States",getter:function(){return this._internal.enabled}}},inputCss:{fontSize:{index:21,group:"Text",displayName:"Font Size",type:{name:"number",units:["px"],defaultUnit:"px"},onChange(){this.props.textStyle&&this.forceUpdate()}},color:{index:24,group:"Text",displayName:"Color",type:"color",default:"#FFFFFF"},backgroundColor:{index:100,displayName:"Background Color",group:"Style",type:"color",default:"#000000"},paddingLeft:{index:64,group:"Margin and padding",default:20,applyDefault:!1,displayName:"Pad Left",type:{name:"number",units:["px"],defaultUnit:"px",marginPaddingComp:"padding-left"}},paddingRight:{index:65,group:"Margin and padding",default:20,applyDefault:!1,displayName:"Pad Right",type:{name:"number",units:["px"],defaultUnit:"px",marginPaddingComp:"padding-right"}},paddingTop:{index:66,group:"Margin and padding",displayName:"Pad Top",default:5,applyDefault:!1,type:{name:"number",units:["px"],defaultUnit:"px",marginPaddingComp:"padding-top"}},paddingBottom:{index:67,group:"Margin and padding",displayName:"Pad Bottom",default:5,applyDefault:!1,type:{name:"number",units:["px"],defaultUnit:"px",marginPaddingComp:"padding-bottom"}},borderRadius:{index:202,displayName:"Border Radius",group:"Style",type:{name:"number",units:["px"],defaultUnit:"px"},default:0,applyDefault:!1},borderStyle:{index:203,displayName:"Border Style",group:"Style",type:{name:"enum",enums:[{label:"None",value:"none"},{label:"Solid",value:"solid"},{label:"Dotted",value:"dotted"},{label:"Dashed",value:"dashed"}]},default:"none",applyDefault:!1},borderWidth:{index:204,displayName:"Border Width",group:"Style",type:{name:"number",units:["px"],defaultUnit:"px"},default:0,applyDefault:!1},borderColor:{index:205,displayName:"Border Color",group:"Style",type:"color",default:"#000000"}},inputProps:{label:{type:"string",displayName:"Label",group:"General",default:"Label"},buttonType:{type:{name:"enum",enums:[{label:"Button",value:"button"},{label:"Submit",value:"submit"}]},displayName:"Type",default:"button",group:"General"},boxShadowEnabled:{index:250,group:"Box Shadow",displayName:"Shadow Enabled",type:"boolean",default:!1},boxShadowOffsetX:{index:251,group:"Box Shadow",displayName:"Offset X",default:0,type:{name:"number",units:["px"],defaultUnit:"px"}},boxShadowOffsetY:{index:252,group:"Box Shadow",displayName:"Offset Y",default:0,type:{name:"number",units:["px"],defaultUnit:"px"}},boxShadowBlurRadius:{index:253,group:"Box Shadow",displayName:"Blur Radius",default:5,type:{name:"number",units:["px"],defaultUnit:"px"}},boxShadowSpreadRadius:{index:254,group:"Box Shadow",displayName:"Spread Radius",default:2,type:{name:"number",units:["px"],defaultUnit:"px"}},boxShadowInset:{index:255,group:"Box Shadow",displayName:"Inset",type:"boolean",default:!1},boxShadowColor:{index:256,group:"Box Shadow",displayName:"Shadow Color",type:"color",default:"rgba(0,0,0,0.2)"}},outputProps:{onClick:{displayName:"Click",group:"Events",type:"signal"}},dynamicports:[{condition:"boxShadowEnabled = true",inputs:["boxShadowOffsetX","boxShadowOffsetY","boxShadowInset","boxShadowBlurRadius","boxShadowSpreadRadius","boxShadowColor"]}],methods:{}};NodeSharedPortDefinitions.addDimensions(ButtonNode,{defaultSizeMode:"contentSize",contentLabel:"Content",useDimensionConstraints:!1}),NodeSharedPortDefinitions.addAlignInputs(ButtonNode),NodeSharedPortDefinitions.addTransformInputs(ButtonNode),NodeSharedPortDefinitions.addMarginInputs(ButtonNode),NodeSharedPortDefinitions.addSharedVisualInputs(ButtonNode),Utils.addControlEventsAndStates(ButtonNode),ButtonNode=createNodeFromReactComponent(ButtonNode),ButtonNode.setup=function(e,t){t.on("nodeAdded.Button",function(n){n.parameters.fontFamily&&n.parameters.fontFamily.split(".").length>1&&FontLoader.instance.loadFont(n.parameters.fontFamily),n.on("parameterUpdated",function(o){o.name==="fontFamily"&&o.value&&o.value.split(".").length>1&&FontLoader.instance.loadFont(o.value)})})};const ButtonOld=ButtonNode;function _styleTemplate$2(e,t){return`
|
|
95
|
+
*/function warn(e){console.error("[BScroll warn]: "+e)}var inBrowser=typeof window<"u",ua=inBrowser&&navigator.userAgent.toLowerCase();ua&&ua.indexOf("android")>0;function extend(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];for(var o=0;o<t.length;o++){var r=t[o];for(var s in r)e[s]=r[s]}return e}function fixInboundValue(e,t,n){return e<t?t:e>n?n:e}var elementStyle=inBrowser&&document.createElement("div").style,vendor=function(){if(!inBrowser)return!1;var e={webkit:"webkitTransform",Moz:"MozTransform",O:"OTransform",ms:"msTransform",standard:"transform"};for(var t in e)if(elementStyle[e[t]]!==void 0)return t;return!1}();function prefixStyle(e){return vendor===!1?e:vendor==="standard"?e==="transitionEnd"?"transitionend":e:vendor+e.charAt(0).toUpperCase()+e.substr(1)}vendor&&vendor!=="standard"&&""+vendor.toLowerCase(),prefixStyle("transform"),prefixStyle("transition"),inBrowser&&prefixStyle("perspective")in elementStyle,prefixStyle("transitionTimingFunction"),prefixStyle("transitionDuration"),prefixStyle("transitionDelay"),prefixStyle("transformOrigin"),prefixStyle("transitionEnd");function getRect(e){if(e instanceof window.SVGElement){var t=e.getBoundingClientRect();return{top:t.top,left:t.left,width:t.width,height:t.height}}else return{top:e.offsetTop,left:e.offsetLeft,width:e.offsetWidth,height:e.offsetHeight}}function prepend(e,t){var n=t.firstChild;n?before(e,n):t.appendChild(e)}function before(e,t){t.parentNode.insertBefore(e,t)}function removeChild(e,t){e.removeChild(t)}var ease={bounce:{style:"cubic-bezier(0.165, 0.84, 0.44, 1)",fn:function(e){return 1- --e*e*e*e}}},PagesPos=function(){function e(t,n){this.scroll=t,this.slideOpt=n,this.slideEl=null,this.init()}return e.prototype.init=function(){var t=this.scroll.scroller,n=t.scrollBehaviorX,o=t.scrollBehaviorY,r=getRect(t.wrapper),s=getRect(t.content);this.wrapperWidth=r.width,this.wrapperHeight=r.height,this.scrollerHeight=o.hasScroll?s.height:r.height,this.scrollerWidth=n.hasScroll?s.width:r.width;var a=this.slideOpt.stepX||this.wrapperWidth,l=this.slideOpt.stepY||this.wrapperHeight,u=t.content,d=this.slideOpt.el;typeof d=="string"&&(this.slideEl=u.querySelectorAll(d)),this.pages=this.slideEl?this.computePagePosInfoByEl(this.slideEl):this.computePagePosInfo(a,l),this.xLen=this.pages?this.pages.length:0,this.yLen=this.pages&&this.pages[0]?this.pages[0].length:0},e.prototype.hasInfo=function(){return!(!this.pages||!this.pages.length)},e.prototype.getPos=function(t,n){return this.pages[t]?this.pages[t][n]:null},e.prototype.getNearestPage=function(t,n){if(this.hasInfo()){for(var o=0,r=0,s=this.pages.length;o<s-1&&!(t>=this.pages[o][0].cx);o++);for(s=this.pages[o].length;r<s-1&&!(n>=this.pages[0][r].cy);r++);return{pageX:o,pageY:r}}},e.prototype.computePagePosInfo=function(t,n){var o=[],r=0,s,a,l,u=0,d,h=this.scroll.scroller.scrollBehaviorX.maxScrollPos,f=this.scroll.scroller.scrollBehaviorY.maxScrollPos;for(a=Math.round(t/2),l=Math.round(n/2);r>-this.scrollerWidth;){for(o[u]=[],d=0,s=0;s>-this.scrollerHeight;)o[u][d]={x:Math.max(r,h),y:Math.max(s,f),width:t,height:n,cx:r-a,cy:s-l},s-=n,d++;r-=t,u++}return o},e.prototype.computePagePosInfoByEl=function(t){for(var n=[],o=0,r=0,s,a,l=0,u=t.length,d=0,h=-1,f,g=this.scroll.scroller.scrollBehaviorX.maxScrollPos,b=this.scroll.scroller.scrollBehaviorY.maxScrollPos;l<u;l++)f=getRect(t[l]),(l===0||f.left<=getRect(t[l-1]).left)&&(d=0,h++),n[d]||(n[d]=[]),o=Math.max(-f.left,g),r=Math.max(-f.top,b),s=o-Math.round(f.width/2),a=r-Math.round(f.height/2),n[d][h]={x:o,y:r,width:f.width,height:f.height,cx:s,cy:a},o>g&&d++;return n},e}(),PageInfo=function(){function e(t,n){this.scroll=t,this.slideOpt=n}return e.prototype.init=function(){this.currentPage={x:0,y:0,pageX:0,pageY:0},this.pagesPos=new PagesPos(this.scroll,this.slideOpt),this.checkSlideLoop()},e.prototype.changeCurrentPage=function(t){this.currentPage=t},e.prototype.change2safePage=function(t,n){if(this.pagesPos.hasInfo()){t>=this.pagesPos.xLen?t=this.pagesPos.xLen-1:t<0&&(t=0),n>=this.pagesPos.yLen?n=this.pagesPos.yLen-1:n<0&&(n=0);var o=this.pagesPos.getPos(t,n);return{pageX:t,pageY:n,x:o?o.x:0,y:o?o.y:0}}},e.prototype.getInitPage=function(){var t=this.loopX?1:0,n=this.loopY?1:0;return{pageX:t,pageY:n}},e.prototype.getRealPage=function(t){var n=function(r,s){for(var a=[],l=0;l<s;l++)a.push(l);return a.unshift(s-1),a.push(0),a[r]},o=t?extend({},t):extend({},this.currentPage);return this.loopX&&(o.pageX=n(o.pageX,this.pagesPos.xLen-2)),this.loopY&&(o.pageY=n(o.pageY,this.pagesPos.yLen-2)),{pageX:o.pageX,pageY:o.pageY}},e.prototype.getPageSize=function(){return this.pagesPos.getPos(this.currentPage.pageX,this.currentPage.pageY)},e.prototype.realPage2Page=function(t,n){if(this.pagesPos.hasInfo()){var o=this.pagesPos.xLen-1,r=this.pagesPos.yLen-1,s=0,a=0;return this.loopX&&(t+=1,s=s+1,o=o-1),this.loopY&&(n+=1,a=a+1,r=r-1),t=fixInboundValue(t,s,o),n=fixInboundValue(n,a,r),{realX:t,realY:n}}},e.prototype.nextPage=function(){return this.changedPageNum("positive")},e.prototype.prevPage=function(){return this.changedPageNum("negative")},e.prototype.nearestPage=function(t,n,o,r){var s=this.pagesPos.getNearestPage(t,n);if(!s)return{x:0,y:0,pageX:0,pageY:0};var a=s.pageX,l=s.pageY,u,d;return a===this.currentPage.pageX&&(a+=o,a=fixInboundValue(a,0,this.pagesPos.xLen-1)),l===this.currentPage.pageY&&(l+=r,l=fixInboundValue(s.pageY,0,this.pagesPos.yLen-1)),u=this.pagesPos.getPos(a,0).x,d=this.pagesPos.getPos(0,l).y,{x:u,y:d,pageX:a,pageY:l}},e.prototype.getLoopStage=function(){if(!this.needLoop)return"middle";if(this.loopX){if(this.currentPage.pageX===0)return"head";if(this.currentPage.pageX===this.pagesPos.xLen-1)return"tail"}if(this.loopY){if(this.currentPage.pageY===0)return"head";if(this.currentPage.pageY===this.pagesPos.yLen-1)return"tail"}return"middle"},e.prototype.resetLoopPage=function(){if(this.loopX){if(this.currentPage.pageX===0)return{pageX:this.pagesPos.xLen-2,pageY:this.currentPage.pageY};if(this.currentPage.pageX===this.pagesPos.xLen-1)return{pageX:1,pageY:this.currentPage.pageY}}if(this.loopY){if(this.currentPage.pageY===0)return{pageX:this.currentPage.pageX,pageY:this.pagesPos.yLen-2};if(this.currentPage.pageY===this.pagesPos.yLen-1)return{pageX:this.currentPage.pageX,pageY:1}}},e.prototype.isSameWithCurrent=function(t){return!(t.pageX!==this.currentPage.pageX||t.pageY!==this.currentPage.pageY)},e.prototype.changedPageNum=function(t){var n=this.currentPage.pageX,o=this.currentPage.pageY;return this.slideX&&(n=t==="negative"?n-1:n+1),this.slideY&&(o=t==="negative"?o-1:o+1),{pageX:n,pageY:o}},e.prototype.checkSlideLoop=function(){this.needLoop=this.slideOpt.loop,this.pagesPos.xLen>1&&(this.slideX=!0),this.pagesPos.pages[0]&&this.pagesPos.yLen>1&&(this.slideY=!0),this.loopX=this.needLoop&&this.slideX,this.loopY=this.needLoop&&this.slideY,this.slideX&&this.slideY&&warn("slide does not support two direction at the same time.")},e}(),sourcePrefix="plugins.slide",propertiesMap=[{key:"next",name:"next"},{key:"prev",name:"prev"},{key:"goToPage",name:"goToPage"},{key:"getCurrentPage",name:"getCurrentPage"}],propertiesConfig=propertiesMap.map(function(e){return{key:e.key,sourceKey:sourcePrefix+"."+e.name}}),Slide=function(){function e(t){this.scroll=t,this.resetLooping=!1,this.isTouching=!1,this.scroll.proxy(propertiesConfig),this.scroll.registerType(["slideWillChange"]),this.slideOpt=this.scroll.options.slide,this.page=new PageInfo(t,this.slideOpt),this.hooksFn=[],this.willChangeToPage={pageX:0,pageY:0},this.init()}return e.prototype.init=function(){var t=this,n=this.slideOpt,o=this.scroll.scroller.content,r=!1;if(n.loop){var s=o.children;s.length>1?(this.cloneSlideEleForLoop(o),r=!0):n.loop=!1}var a=this.setSlideWidth(o),l=this.setSlideHeight(this.scroll.scroller.wrapper,o),u=a||l,d=this.scroll.hooks,h=this.scroll.scroller.hooks;this.registorHooks(d,"refresh",this.initSlideState),this.registorHooks(d,"destroy",this.destroy),this.registorHooks(h,"momentum",this.modifyScrollMetaHandler),this.registorHooks(this.scroll,"scrollEnd",this.amendCurrentPage),this.registorHooks(h,"beforeStart",this.setTouchFlag),this.registorHooks(h,"scroll",this.scrollMoving),this.registorHooks(h,"resize",this.resize),this.scroll.eventTypes.mousewheelMove&&this.scroll.eventTypes.mousewheelEnd&&(this.registorHooks(this.scroll,"mousewheelMove",function(){return!0}),this.registorHooks(this.scroll,"mousewheelEnd",function(f){(f.directionX===1||f.directionY===1)&&t.next(),(f.directionX===-1||f.directionY===-1)&&t.prev()})),n.listenFlick!==!1&&this.registorHooks(h,"flick",this.flickHandler),!r&&!u?this.initSlideState():this.scroll.refresh()},e.prototype.resize=function(){var t=this,n=this.scroll.scroller.content,o=this.scroll.scroller.wrapper;return clearTimeout(this.resizeTimeout),this.resizeTimeout=window.setTimeout(function(){t.clearSlideWidth(n),t.clearSlideHeight(n),t.setSlideWidth(n),t.setSlideHeight(o,n),t.scroll.refresh()},this.scroll.options.resizePolling),!0},e.prototype.next=function(t,n){var o=this.page.nextPage(),r=o.pageX,s=o.pageY;this.goTo(r,s,t,n)},e.prototype.prev=function(t,n){var o=this.page.prevPage(),r=o.pageX,s=o.pageY;this.goTo(r,s,t,n)},e.prototype.goToPage=function(t,n,o,r){var s=this.page.realPage2Page(t,n);s&&this.goTo(s.realX,s.realY,o,r)},e.prototype.getCurrentPage=function(){return this.page.getRealPage()},e.prototype.nearestPage=function(t,n){var o=this.scroll.scroller.scrollBehaviorX,r=this.scroll.scroller.scrollBehaviorY,s=!0;return Math.abs(t-o.absStartPos)<=this.thresholdX&&Math.abs(n-r.absStartPos)<=this.thresholdY&&(s=!1),s?this.page.nearestPage(fixInboundValue(t,o.maxScrollPos,o.minScrollPos),fixInboundValue(n,r.maxScrollPos,r.minScrollPos),o.direction,r.direction):this.page.currentPage},e.prototype.destroy=function(){var t=this.scroll.scroller.content;if(this.slideOpt.loop){var n=t.children;n.length>2&&(removeChild(t,n[n.length-1]),removeChild(t,n[0]))}this.hooksFn.forEach(function(o){var r=o[0],s=o[1],a=o[2];r.eventTypes[s]&&r.off(s,a)}),this.hooksFn.length=0},e.prototype.initSlideState=function(){const t=this.page.currentPage;if(this.page.init(),t)this.page.currentPage=t;else{var n=this.page.getInitPage();this.goTo(n.pageX,n.pageY,0)}this.initThreshold()},e.prototype.initThreshold=function(){var t=this.slideOpt.threshold||.1;if(t%1===0)this.thresholdX=t,this.thresholdY=t;else{var n=this.page.getPageSize();n&&(this.thresholdX=Math.round(n.width*t),this.thresholdY=Math.round(n.height*t))}},e.prototype.cloneSlideEleForLoop=function(t){var n=t.children;prepend(n[n.length-1].cloneNode(!0),t),t.appendChild(n[1].cloneNode(!0))},e.prototype.amendCurrentPage=function(){if(this.isTouching=!1,!!this.slideOpt.loop){if(this.resetLooping){this.resetLooping=!1;return}var t=!1;if(this.page.loopX&&(this.scroll.x===this.scroll.scroller.scrollBehaviorX.minScrollPos||this.scroll.x===this.scroll.scroller.scrollBehaviorX.maxScrollPos)&&(t=!0),this.page.loopY&&(this.scroll.y===this.scroll.scroller.scrollBehaviorY.minScrollPos||this.scroll.y===this.scroll.scroller.scrollBehaviorY.maxScrollPos)&&(t=!0),t){var n=this.scroll.scroller.scrollBehaviorX,o=this.scroll.scroller.scrollBehaviorY,r=this.page.nearestPage(fixInboundValue(this.scroll.x,n.maxScrollPos,n.minScrollPos),fixInboundValue(this.scroll.y,o.maxScrollPos,o.minScrollPos),0,0),s={x:r.x,y:r.y,pageX:r.pageX,pageY:r.pageY};this.page.isSameWithCurrent(s)||this.page.changeCurrentPage(s)}var a=this.page.resetLoopPage();if(a)return this.resetLooping=!0,this.goTo(a.pageX,a.pageY,0),!0;this.pageWillChangeTo(this.page.currentPage)}},e.prototype.shouldSetWidthHeight=function(t){var n={width:["scrollX","disableSetWidth"],height:["scrollY","disableSetHeight"]},o=n[t];return!(!this.scroll.options[o[0]]||this.slideOpt[o[1]])},e.prototype.clearSlideWidth=function(t){if(this.shouldSetWidthHeight("width")){for(var n=t.children,o=0;o<n.length;o++){var r=n[o];r.removeAttribute("style")}t.removeAttribute("style")}},e.prototype.setSlideWidth=function(t){if(!this.shouldSetWidthHeight("width"))return!1;for(var n=t.children,o=n[0].clientWidth,r=0;r<n.length;r++){var s=n[r];s.style.width=o+"px"}return t.style.width=o*n.length+"px",!0},e.prototype.clearSlideHeight=function(t){if(this.shouldSetWidthHeight("height")){for(var n=t.children,o=0;o<n.length;o++){var r=n[o];r.removeAttribute("style")}t.removeAttribute("style")}},e.prototype.setSlideHeight=function(t,n){if(!this.shouldSetWidthHeight("height"))return!1;for(var o=t.clientHeight,r=n.children,s=0;s<r.length;s++){var a=r[s];a.style.height=o+"px"}return n.style.height=o*r.length+"px",!0},e.prototype.goTo=function(t,n,o,r){n===void 0&&(n=0);var s=this.page.change2safePage(t,n);if(s){var a=r||this.slideOpt.easing||ease.bounce,l=s.x,u=s.y,d=l-this.scroll.scroller.scrollBehaviorX.currentPos,h=u-this.scroll.scroller.scrollBehaviorY.currentPos;!d&&!h||(o=o===void 0?this.getAnimateTime(d,h):o,this.page.changeCurrentPage({x:l,y:u,pageX:s.pageX,pageY:s.pageY}),this.pageWillChangeTo(this.page.currentPage),this.scroll.scroller.scrollTo(l,u,o,a))}},e.prototype.flickHandler=function(){var t=this.scroll.scroller.scrollBehaviorX,n=this.scroll.scroller.scrollBehaviorY,o=t.currentPos-t.startPos,r=n.currentPos-n.startPos,s=this.getAnimateTime(o,r);this.goTo(this.page.currentPage.pageX+t.direction,this.page.currentPage.pageY+n.direction,s)},e.prototype.getAnimateTime=function(t,n){return this.slideOpt.speed?this.slideOpt.speed:Math.max(Math.max(Math.min(Math.abs(t),1e3),Math.min(Math.abs(n),1e3)),300)},e.prototype.modifyScrollMetaHandler=function(t){var n=this.nearestPage(t.newX,t.newY);t.time=this.getAnimateTime(t.newX-n.x,t.newY-n.y),t.newX=n.x,t.newY=n.y,t.easing=this.slideOpt.easing||ease.bounce,this.page.changeCurrentPage({x:t.newX,y:t.newY,pageX:n.pageX,pageY:n.pageY}),this.pageWillChangeTo(this.page.currentPage)},e.prototype.scrollMoving=function(t){if(this.isTouching){var n=this.nearestPage(t.x,t.y);this.pageWillChangeTo(n)}},e.prototype.pageWillChangeTo=function(t){var n=this.page.getRealPage(t);n.pageX===this.willChangeToPage.pageX&&n.pageY===this.willChangeToPage.pageY||(this.willChangeToPage=n,this.scroll.trigger("slideWillChange",this.willChangeToPage))},e.prototype.setTouchFlag=function(){this.isTouching=!0},e.prototype.registorHooks=function(t,n,o){t.on(n,o,this),this.hooksFn.push([t,n,o])},e.pluginName="slide",e}();BScroll.use(ScrollBar),BScroll.use(NestedScroll),BScroll.use(MouseWheel),BScroll.use(Slide);let Group$1=class extends React__namespace.Component{constructor(t){super(t),this.scrollNeedsToInit=!1,this.scrollRef=React__namespace.createRef()}componentDidMount(){this.props.scrollEnabled&&this.props.nativeScroll!==!0&&this.setupIScroll(),this.scrollRef.current.noodlNode=this.props.noodlNode}componentWillUnmount(){this.iScroll&&(this.iScroll.destroy(),this.iScroll=void 0),this.props.noodlNode.context.setNodeFocused(this.props.noodlNode,!1)}componentDidUpdate(){this.scrollNeedsToInit&&(this.setupIScroll(),this.scrollNeedsToInit=!1),this.iScroll&&setTimeout(()=>{this.iScroll&&this.iScroll.refresh()},0)}scrollToIndex(t,n){if(this.iScroll){const o=this.scrollRef.current.children[0].children[t];o&&this.iScroll.scrollToElement(o,n,0,0)}else{const o=this.scrollRef.current.children[t];o&&o.scrollIntoView({behavior:"smooth"})}}scrollToElement(t,n){if(!t)return;const o=ReactDOM.findDOMNode(t.getRef());o&&o.scrollIntoView&&(this.iScroll?this.iScroll.scrollToElement(o,n,0,0):o.scrollIntoView({behavior:"smooth"}))}setupIScroll(){const{scrollSnapEnabled:t}=this.props,n=this.getScrollDirection(),o={disableSetWidth:!0,disableSetHeight:!0,loop:!1},r=this.scrollRef.current;this.iScroll=new BScroll(r,{bounceTime:500,swipeBounceTime:300,scrollbar:this.props.showScrollbar?{}:void 0,momentum:t?!this.props.scrollSnapToEveryItem:!0,bounce:this.props.scrollBounceEnabled&&!(t&&o.loop),scrollX:n==="x"||n==="both",scrollY:n==="y"||n==="both",slide:t?o:void 0,probeType:this.props.onScrollPositionChanged?3:1,click:!0,nestedScroll:!0,useTransition:!1});const s=this.iScroll.scroller;s.scrollBehaviorX&&(s.scrollBehaviorX.momentum=patchedMomentum.bind(s.scrollBehaviorX)),s.scrollBehaviorY&&(s.scrollBehaviorY.momentum=patchedMomentum.bind(s.scrollBehaviorY)),this.iScroll.on("beforeScrollStart",()=>{this.iScroll.refresh()}),this.iScroll.on("scrollStart",()=>{this.props.onScrollStart&&this.props.onScrollStart()}),this.iScroll.on("scrollEnd",()=>{this.props.onScrollEnd&&this.props.onScrollEnd()}),this.props.onScrollPositionChanged&&this.iScroll.on("scroll",()=>{this.props.onScrollPositionChanged(n==="x"?-this.iScroll.x:-this.iScroll.y)})}UNSAFE_componentWillReceiveProps(t){(this.props.scrollSnapEnabled!==t.scrollSnapEnabled||this.props.onScrollPositionChanged!==t.onScrollPositionChanged||this.props.onScrollStart!==t.onScrollStart||this.props.onScrollEnd!==t.onScrollEnd||this.props.showScrollbar!==t.showScrollbar||this.props.scrollEnabled!==t.scrollEnabled||this.props.nativeScroll!==t.nativeScroll||this.props.scrollSnapToEveryItem!==t.scrollSnapToEveryItem||this.props.layout!==t.layout||this.props.flexWrap!==t.flexWrap||this.props.scrollBounceEnabled!==t.scrollBounceEnabled)&&(this.iScroll&&(this.iScroll.destroy(),this.iScroll=void 0),this.scrollNeedsToInit=t.scrollEnabled&&!t.nativeScroll)}renderIScroll(){const{flexDirection:t,flexWrap:n}=this.props.style,o={display:"inline-flex",flexShrink:0,flexDirection:t,flexWrap:n,touchAction:"none"};return t==="row"?n==="wrap"?o.width="100%":o.height="100%":n==="wrap"?o.height="100%":o.width="100%",React__namespace.createElement("div",{className:"scroll-wrapper-internal",style:o},this.props.children)}getScrollDirection(){return this.props.flexWrap==="wrap"||this.props.flexWrap==="wrap-reverse"?this.props.layout==="row"?"y":"x":this.props.layout==="row"?"x":"y"}render(){const{as:t="div",...n}=this.props,o=n.scrollEnabled&&!n.nativeScroll?this.renderIScroll():n.children,r={...n.style};if(Layout.size(r,n),Layout.align(r,n),n.clip&&(r.overflowX="hidden",r.overflowY="hidden"),n.scrollEnabled&&n.nativeScroll){const a=this.getScrollDirection();a==="y"?r.overflowY="auto":a==="x"?r.overflowX="auto":a==="both"&&(r.overflowX="auto",r.overflowY="auto")}r.opacity===0&&(r.pointerEvents="none");const s={className:n.className,...n.attrs,...n.dom,...pointerProps(n),style:r,ref:this.scrollRef};return React__namespace.createElement(t,{...s},o)}};const GroupNode={name:"Group",docs:"https://docs.noodl.net/nodes/basic-elements/group",connectionPanel:{groupPriority:["General","Style","Events","Mounted","Hover Events","Pointer Events","Focus","Scroll"]},initialize(){this.props.attrs={},this._internal={scrollElementDuration:500,scrollIndexDuration:500,scrollIndex:0},this.props.layout="column"},getReactComponent(){return Group$1},noodlNodeAsProp:!0,visualStates:[{name:"neutral",label:"Neutral"},{name:"hover",label:"Hover"}],defaultCss:{display:"flex",position:"relative",flexDirection:"column"},inputs:{flexDirection:{index:12,displayName:"Layout",group:"Layout",type:{name:"enum",enums:[{label:"None",value:"none"},{label:"Vertical",value:"column"},{label:"Horizontal",value:"row"}]},default:"column",set(e){this.props.layout=e,e!=="none"?this.setStyle({flexDirection:e}):this.removeStyle(["flexDirection"]),this.context.editorConnection&&(e!=="none"&&!flexDirectionValues.includes(e)?this.context.editorConnection.sendWarning(this.nodeScope.componentOwner.name,this.id,"layout-warning",{message:"Invalid Layout value has to be a valid flex-direction value."}):this.context.editorConnection.clearWarning(this.nodeScope.componentOwner.name,this.id,"layout-warning")),this.forceUpdate()}},"scrollToIndex.do":{displayName:"Scroll To Index - Do",group:"Scroll To Index",type:"signal",index:505,valueChangedToTrue(){this.scheduleAfterInputsHaveUpdated(()=>{if(!this.innerReactComponentRef)return;const e=this._internal.scrollIndex,t=this._internal.scrollIndexDuration;this.innerReactComponentRef.scrollToIndex(e,t)})}},"scrollToElement.do":{displayName:"Scroll To Element - Do",group:"Scroll To Element",type:"signal",index:500,valueChangedToTrue(){this.innerReactComponentRef&&this.scheduleAfterInputsHaveUpdated(()=>{const e=this._internal.scrollElement,t=this._internal.scrollElementDuration;this.innerReactComponentRef.scrollToElement(e,t)})}},"scrollToElement.element":{displayName:"Scroll To Element - Element",group:"Scroll To Element",type:"reference",index:501,set(e){this._internal.scrollElement=e}},"scrollToElement.duration":{displayName:"Scroll To Element - Duration",group:"Scroll To Element",type:"number",default:500,index:502,set(e){this._internal.scrollElementDuration=e}},"scrollToIndex.index":{displayName:"Scroll To Index - Index",group:"Scroll To Index",type:"number",default:0,index:506,set(e){this._internal.scrollIndex=e}},"scrollToIndex.duration":{displayName:"Scroll To Index - Duration",group:"Scroll To Index",type:"number",default:500,index:507,set(e){this._internal.scrollIndexDuration=e}},focus:{displayName:"Focus",type:"signal",group:"Focus",valueChangedToTrue(){this.context.setNodeFocused(this,!0)}},testId:{index:100009,displayName:"Test ID Attribute",group:"Advanced HTML",type:"string",set(e){this.props.attrs["data-testid"]=e,this.forceUpdate()}}},inputProps:{clip:{index:19,displayName:"Clip Content",type:"boolean",group:"Layout",default:!1},scrollEnabled:{index:54,group:"Scroll",displayName:"Enable Scroll",type:"boolean",default:!1},scrollSnapEnabled:{index:55,displayName:"Snap",group:"Scroll",type:"boolean",default:!1},scrollSnapToEveryItem:{index:56,displayName:"Snap To Every Item",group:"Scroll",type:"boolean",default:!1},showScrollbar:{index:57,displayName:"Show Scrollbar",group:"Scroll",type:"boolean",default:!1},scrollBounceEnabled:{index:58,displayName:"Bounce at boundaries",group:"Scroll",type:"boolean",default:!0},nativeScroll:{index:60,group:"Scroll",displayName:"Native platform scroll",type:"boolean",default:!0},as:{index:1e5,group:"Advanced HTML",displayName:"Tag",type:{name:"enum",enums:[{label:"<div>",value:"div"},{label:"<section>",value:"section"},{label:"<article>",value:"article"},{label:"<aside>",value:"aside"},{label:"<nav>",value:"nav"},{label:"<header>",value:"header"},{label:"<footer>",value:"footer"},{label:"<main>",value:"main"},{label:"<span>",value:"span"}]},default:"div"}},inputCss:{alignItems:{index:13,group:"Align and justify content",displayName:"Align Items",type:{name:"enum",enums:[{label:"Start",value:"flex-start"},{label:"End",value:"flex-end"},{label:"Center",value:"center"}],alignComp:"align-items"},default:"flex-start"},justifyContent:{index:14,group:"Align and justify content",displayName:"Justify Content",type:{name:"enum",enums:[{label:"Start",value:"flex-start"},{label:"End",value:"flex-end"},{label:"Center",value:"center"},{label:"Space Between",value:"space-between"},{label:"Space Around",value:"space-around"},{label:"Space Evenly",value:"space-evenly"}],alignComp:"justify-content"},default:"flex-start",applyDefault:!1},flexWrap:{index:15,displayName:"Multi Line Wrap",group:"Layout",type:{name:"enum",enums:[{label:"Off",value:"nowrap"},{label:"On",value:"wrap"},{label:"On Reverse",value:"wrap-reverse"}]},default:"nowrap",onChange(e){this.props.flexWrap=e,this.forceUpdate()},applyDefault:!1},alignContent:{index:16,group:"Layout",displayName:"Align Content",type:{name:"enum",enums:[{label:"Start",value:"flex-start"},{label:"End",value:"flex-end"},{label:"Center",value:"center"},{label:"Space Between",value:"space-between"},{label:"Space Around",value:"space-around"},{label:"Space Evenly",value:"space-evenly"}],alignComp:"align-content"}},rowGap:{index:17,displayName:"Vertical Gap",group:"Layout",type:{name:"number",units:["px","%","em"],defaultUnit:"px"},default:0,applyDefault:!1},columnGap:{index:18,displayName:"Horizontal Gap",group:"Layout",type:{name:"number",units:["px","%","em"],defaultUnit:"px"},default:0,applyDefault:!1},backgroundColor:{index:201,displayName:"Background Color",group:"Style",type:"color",default:"transparent",applyDefault:!1,allowVisualStates:!0}},outputProps:{onScrollPositionChanged:{displayName:"Scroll Position",type:"number",group:"Scroll"},onScrollStart:{displayName:"Scroll Start",type:"signal",group:"Scroll"},onScrollEnd:{displayName:"Scroll End",type:"signal",group:"Scroll"}},outputs:{focused:{displayName:"Focused",type:"signal",group:"Focus"},focusLost:{displayName:"Focus Lost",type:"signal",group:"Focus"}},dynamicports:[{condition:"flexDirection != none",inputs:["scrollEnabled"]},{condition:"flexDirection != none AND scrollEnabled = true",inputs:["nativeScroll"]},{condition:"flexDirection != none AND scrollEnabled = true AND nativeScroll = false",inputs:["scrollBounceEnabled","scrollSnapEnabled","showScrollbar","scrollToElement.do","scrollToElement.element","scrollToElement.duration","scrollToIndex.do","scrollToIndex.index","scrollToIndex.duration"]},{condition:"flexDirection != none AND scrollEnabled = true AND scrollSnapEnabled = true",inputs:["scrollSnapToEveryItem"]},{condition:"flexDirection != none",inputs:["flexWrap"]},{condition:"flexWrap = wrap OR flexWrap = wrap-reverse",inputs:["alignContent"]},{condition:"flexDirection = row OR flexWrap = wrap OR flexWrap = wrap-reverse",inputs:["columnGap"]},{condition:"flexDirection = column OR flexWrap = wrap OR flexWrap = wrap-reverse",inputs:["rowGap"]}],methods:{_focus(){this.sendSignalOnOutput("focused")},_blur(){this.sendSignalOnOutput("focusLost")}}};NodeSharedPortDefinitions.addDimensions(GroupNode),NodeSharedPortDefinitions.addTransformInputs(GroupNode),NodeSharedPortDefinitions.addSharedVisualInputs(GroupNode),NodeSharedPortDefinitions.addPaddingInputs(GroupNode),NodeSharedPortDefinitions.addMarginInputs(GroupNode),NodeSharedPortDefinitions.addAlignInputs(GroupNode),NodeSharedPortDefinitions.addPointerEventOutputs(GroupNode),NodeSharedPortDefinitions.addBorderInputs(GroupNode),NodeSharedPortDefinitions.addShadowInputs(GroupNode);function defineTooltips$1(e){e.inputProps.clip.tooltip=createTooltip({title:"Clip content",body:"Controls if elements that are too big to fit will be clipped",images:[{src:"clip-enabled.svg",label:"Enabled"},{src:"clip-disabled.svg",label:"Disabled"}]}),e.inputCss.flexWrap.tooltip=createTooltip({title:"Multiline wrap",body:"Elements will wrap to the next line when there's not enough space",images:[{src:"multiline-h.svg",body:"Using a horizontal layout"},{src:"multiline-v.svg",body:"Using a vertical layout"}]})}Noodl.runDeployed||defineTooltips$1(GroupNode);const Group=createNodeFromReactComponent(GroupNode);function Icon$1(e){const t={userSelect:"none",...e.style};Layout.size(t,e),Layout.align(t,e);function n(){const r={};if(e.iconSourceType==="image"&&e.iconImageSource!==void 0){r.width=e.iconSize,r.height=e.iconSize;let s=e.iconImageSource;if(typeof s=="string"&&s.startsWith("/")){const a=Noodl.Env.BaseUrl;a&&(s=a+s.substring(1))}return React.createElement("img",{alt:"",src:s,style:r})}else if(e.iconSourceType==="icon"&&e.iconIconSource!==void 0)return r.fontSize=e.iconSize,r.color=e.iconColor,r.lineHeight=1,React.createElement("div",{style:{lineHeight:0}},e.iconIconSource.codeAsClass===!0?React.createElement("span",{className:[e.iconIconSource.class,e.iconIconSource.code].join(" "),style:r}):React.createElement("span",{className:e.iconIconSource.class,style:r},e.iconIconSource.code));return null}let o="ndl-visual-icon";return e.className&&(o=o+" "+e.className),React.createElement("div",{className:o,style:t},n())}const IconNode={name:"net.noodl.visual.icon",displayName:"Icon",docs:"https://docs.noodl.net/nodes/basic-elements/icon",allowChildren:!1,noodlNodeAsProp:!0,connectionPanel:{groupPriority:["General","Style","Actions","Events","States","Mounted","Hover Events","Pointer Events","Focus Events"]},getReactComponent(){return Icon$1}};NodeSharedPortDefinitions.addAlignInputs(IconNode),NodeSharedPortDefinitions.addTransformInputs(IconNode),NodeSharedPortDefinitions.addPaddingInputs(IconNode,{defaults:{paddingTop:5,paddingRight:5,paddingBottom:5,paddingLeft:5}}),NodeSharedPortDefinitions.addMarginInputs(IconNode),NodeSharedPortDefinitions.addIconInputs(IconNode,{hideEnableIconInput:!0,defaults:{useIcon:!0}}),NodeSharedPortDefinitions.addSharedVisualInputs(IconNode);const Icon=createNodeFromReactComponent(IconNode);function Image$1(e){const t={...e.style};if(Layout.size(t,e),Layout.align(t,e),t.opacity===0&&(t.pointerEvents="none"),e.dom?.src?.startsWith("/")){const n=Noodl.Env.BaseUrl;n&&(e.dom.src=n+e.dom.src.substring(1))}return React__namespace.createElement("img",{...e.attrs,className:e.className,...e.dom,...pointerProps(e),style:t})}const ImageNode={name:"Image",docs:"https://docs.noodl.net/nodes/basic-elements/image",noodlNodeAsProp:!0,visualStates:[{name:"neutral",label:"Neutral"},{name:"hover",label:"Hover"}],connectionPanel:{groupPriority:["General","Image","Style","Actions","Events","Mounted","Pointer Events","Hover Events","Dimensions","Margin and padding"]},initialize(){this.props.attrs={},this.props.default=""},getReactComponent(){return Image$1},getInspectInfo(){if(this.props.dom.srcSet)return this.props.dom.srcSet;if(this.props.dom.src){const e=this.props.dom.src.toString();return[{type:"text",value:e},{type:"image",value:e}]}},allowChildren:!1,defaultCss:{display:"block",flexShrink:0},inputCss:{objectFit:{displayName:"Image Fit",group:"Dimensions",type:{name:"enum",enums:[{label:"Fill",value:"fill"},{label:"Contain",value:"contain"},{label:"Cover",value:"cover"},{label:"None",value:"none"},{label:"Scale Down",value:"scale-down"}]},default:"contain",allowVisualStates:!0}},dynamicports:[{condition:"sizeMode = explicit",inputs:["objectFit"]}],inputs:{src:{displayName:"Source",group:"Image",propPath:"dom",type:{name:"image"},index:30,allowVisualStates:!0,set(e){this.props.dom.src=getAbsoluteUrl(e),this.forceUpdate()}},testId:{index:100009,displayName:"Test ID Attribute",group:"Advanced HTML",type:"string",set(e){this.props.attrs["data-testid"]=e,this.forceUpdate()}}},inputProps:{srcSet:{displayName:"Source Set",group:"Image",propPath:"dom",type:{name:"string"},index:31,allowVisualStates:!0},alt:{displayName:"Alternate text",tooltip:"The alt text is used by screen readers, or if the image can't be downloaded or displayed",type:"string",propPath:"dom",index:1e3,default:""}},outputProps:{onLoad:{displayName:"On Load",propPath:"dom",type:"signal",group:"Events"},onError:{displayName:"On Error",propPath:"dom",type:"signal",group:"Events"}}};NodeSharedPortDefinitions.addDimensions(ImageNode,{defaultSizeMode:"contentSize",contentLabel:"Image"}),NodeSharedPortDefinitions.addTransformInputs(ImageNode),NodeSharedPortDefinitions.addMarginInputs(ImageNode),NodeSharedPortDefinitions.addSharedVisualInputs(ImageNode),NodeSharedPortDefinitions.addAlignInputs(ImageNode),NodeSharedPortDefinitions.addPointerEventOutputs(ImageNode),NodeSharedPortDefinitions.addBorderInputs(ImageNode),NodeSharedPortDefinitions.addShadowInputs(ImageNode);const Image=createNodeFromReactComponent(ImageNode);function Text(e){const{as:t="div"}=e,n={...e.textStyle,...e.style};return Layout.size(n,e),Layout.align(n,e),n.color=e.noodlNode.context.styles.resolveColor(n.color),e.sizeMode==="contentSize"||e.sizeMode==="contentWidth"?n.whiteSpace="pre":(n.whiteSpace="pre-wrap",n.overflowWrap="anywhere"),n.opacity===0&&(n.pointerEvents="none"),React.createElement(t,{className:["ndl-visual-text",e.className].join(" "),...e.attrs,...e.dom,...pointerProps(e),style:n},String(e.text))}const TextNode={name:"Text",docs:"https://docs.noodl.net/nodes/basic-elements/text",visualStates:[{name:"neutral",label:"Neutral"},{name:"hover",label:"Hover"}],allowChildren:!1,noodlNodeAsProp:!0,usePortAsLabel:"text",portLabelTruncationMode:"length",connectionPanel:{groupPriority:["General","Text","Text Style","Style","Events","Mounted","Hover Events","Pointer Events"]},nodeDoubleClickAction:{focusPort:"text"},initialize(){this.props.attrs={}},getReactComponent(){return Text},getInspectInfo(){return this.props.text},defaultCss:{position:"relative",display:"flex"},inputProps:{text:{index:19,group:"Text",displayName:"Text",default:"Text",type:{name:"string",multiline:!0}},as:{index:1e5,group:"Advanced HTML",displayName:"Tag",type:{name:"enum",enums:[{label:"<div>",value:"div"},{label:"<h1>",value:"h1"},{label:"<h2>",value:"h2"},{label:"<h3>",value:"h3"},{label:"<h4>",value:"h4"},{label:"<h5>",value:"h5"},{label:"<h6>",value:"h6"},{label:"<p>",value:"p"},{label:"<span>",value:"span"}]},default:"div"}},inputCss:{wordBreak:{index:27,group:"Text",displayName:"Word Break",applyDefault:!1,type:{name:"enum",enums:[{label:"Normal",value:"normal"},{label:"Break All",value:"break-all"}]},default:"normal"}},inputs:{textAlignX:{group:"Text Alignment",index:13,displayName:"Text Horizontal Align",type:{name:"enum",enums:[{label:"left",value:"left"},{label:"center",value:"center"},{label:"right",value:"right"}],alignComp:"justify"},default:"left",set(e){switch(e){case"left":this.setStyle({textAlign:"left",justifyContent:"flex-start"});break;case"center":this.setStyle({textAlign:"center",justifyContent:"center"});break;case"right":this.setStyle({textAlign:"right",justifyContent:"flex-end"});break}}},textAlignY:{group:"Text Alignment",index:14,displayName:"Text Vertical Align",type:{name:"enum",enums:[{label:"Top",value:"top"},{label:"Center",value:"center"},{label:"Bottom",value:"bottom"}],alignComp:"vertical"},default:"top",set(e){switch(e){case"top":this.setStyle({alignItems:"flex-start"});break;case"center":this.setStyle({alignItems:"center"});break;case"bottom":this.setStyle({alignItems:"flex-end"});break}}},testId:{index:100009,displayName:"Test ID Attribute",group:"Advanced HTML",type:"string",set(e){this.props.attrs["data-testid"]=e,this.forceUpdate()}}}};NodeSharedPortDefinitions.addDimensions(TextNode,{defaultSizeMode:"contentHeight",contentLabel:"Text"}),NodeSharedPortDefinitions.addTextStyleInputs(TextNode),NodeSharedPortDefinitions.addAlignInputs(TextNode),NodeSharedPortDefinitions.addTransformInputs(TextNode),NodeSharedPortDefinitions.addMarginInputs(TextNode),NodeSharedPortDefinitions.addSharedVisualInputs(TextNode),NodeSharedPortDefinitions.addPointerEventOutputs(TextNode);function defineTooltips(e){e.inputCss.wordBreak.tooltip=createTooltip({title:"Word break",body:["Control where line breaks are allowed","- Normal: Break on spaces and other whitespace characters","- Break All: Allow line breaks between any two characters, including inside words"]})}Noodl.runDeployed||defineTooltips(TextNode);const TextNode$1=createNodeFromReactComponent(TextNode);class CachedVideo extends React.PureComponent{componentDidUpdate(){this.video&&(this.video.muted=this.props.muted,this.video.loop=this.props.loop,this.video.volume=this.props.volume,this.video.autoplay=this.props.autoplay,this.video.controls=this.props.controls)}render(){let t=this.props.src?this.props.src.toString():void 0;if(t&&(t.indexOf("#t=")===-1&&(t+="#t=0.01"),t.startsWith("/"))){const n=Noodl.Env.BaseUrl;n&&(t=n+t.substring(1))}return React.createElement("video",{...this.props,playsInline:!0,src:t,...pointerProps(this.props),ref:n=>{this.video=n,this.props.innerRef(n)}})}}let Video$1=class extends React.Component{constructor(t){super(t),this.wantToPlay=!1,this.canPlay=!1}componentWillUnmount(){this.canPlay=!1}setSourceObject(t){this.video.srcObject!==t&&(this.video.srcObject=t,this.canPlay=!1)}play(){this.wantToPlay=!0,this.canPlay&&this.video.play()}restart(){this.wantToPlay=!0,this.canPlay&&(this.video.currentTime=0,this.video.play())}pause(){this.wantToPlay=!1,this.video&&this.video.pause()}reset(){this.wantToPlay=!1,this.video&&(this.video.currentTime=0,this.video.pause())}render(){const t=this.props,n={...t.style};return Layout.size(n,t),Layout.align(n,t),n.opacity===0&&(n.pointerEvents="none"),n.objectPosition=`${t.objectPositionX} ${t.objectPositionY}`,React.createElement(CachedVideo,{...t.dom,className:t.className,style:n,innerRef:o=>{this.video=o,this.props.onVideoElementCreated&&this.props.onVideoElementCreated(o)},onCanPlay:()=>{this.canPlay=!0,this.wantToPlay&&this.video.play(),this.props.onCanPlay&&this.props.onCanPlay(),this.props.videoWidth&&this.props.videoWidth(this.video.videoWidth),this.props.videoHeight&&this.props.videoHeight(this.video.videoHeight)}})}};const VideoNode={name:"Video",docs:"https://docs.noodl.net/nodes/basic-elements/video",connectionPanel:{groupPriority:["General","Video","Video Actions","Style","Actions","Events","Mounted","Playback","Pointer Events","Hover Events","Dimensions","Margin and padding"]},getReactComponent(){return Video$1},allowChildren:!1,noodlNodeAsProp:!0,defaultCss:{display:"block"},inputs:{srcObject:{displayName:"Source Object",group:"Video",type:"mediastream",default:null,set(e){this.innerReactComponentRef&&this.innerReactComponentRef.setSourceObject(e)}},play:{type:"signal",group:"Video Actions",displayName:"Play",tooltip:{standard:"Play the video"},valueChangedToTrue(){this.innerReactComponentRef&&this.innerReactComponentRef.play()}},restart:{type:"signal",group:"Video Actions",displayName:"Restart",tooltip:{standard:"Restart the video from the beginning"},valueChangedToTrue(){this.innerReactComponentRef&&this.innerReactComponentRef.restart()}},pause:{type:"boolean",group:"Video Actions",displayName:"Pause",valueChangedToTrue(){this.innerReactComponentRef&&this.innerReactComponentRef.pause()}},reset:{type:"boolean",group:"Video Actions",displayName:"Reset",valueChangedToTrue(){this.innerReactComponentRef&&this.innerReactComponentRef.reset()}},src:{displayName:"Source",group:"Video",type:"string",set(e){this.props.dom.src=getAbsoluteUrl(e),this.forceUpdate()}},poster:{displayName:"Poster",group:"Video",type:"image",set(e){this.props.dom.poster=getAbsoluteUrl(e),this.forceUpdate()}}},inputProps:{autoplay:{displayName:"Autoplay",propPath:"dom",group:"Video",type:"boolean"},controls:{displayName:"Controls",propPath:"dom",group:"Video",type:"boolean"},volume:{displayName:"Volume",propPath:"dom",group:"Video",type:"number",default:1},muted:{displayName:"Muted",propPath:"dom",group:"Video",type:"boolean"},loop:{displayName:"Loop",propPath:"dom",group:"Video",type:"boolean"},objectPositionX:{displayName:"Video Position X",group:"Video Layout",type:{name:"number",units:["%","px"],defaultUnit:"%"},default:50},objectPositionY:{displayName:"Video Position Y",group:"Video Layout",type:{name:"number",units:["%","px"],defaultUnit:"%"},default:50}},inputCss:{objectFit:{displayName:"Object Fit",group:"Video Layout",type:{name:"enum",enums:[{label:"Contain",value:"contain"},{label:"Cover",value:"cover"},{label:"Fill",value:"fill"},{label:"None",value:"none"}]},default:"contain"}},outputProps:{onCanPlay:{type:"signal",group:"Events",displayName:"On Can Play"},onTimeUpdate:{group:"Playback",displayName:"Playback Position",type:"number",propPath:"dom",getValue(e){return e.target.currentTime}},onPlay:{group:"Events",displayName:"On Play",type:"signal",propPath:"dom"},onPause:{group:"Events",displayName:"On Pause",type:"signal",propPath:"dom"},onVideoElementCreated:{type:"domelement",displayName:"DOM Element"},videoWidth:{group:"Playback",type:"number",displayName:"Video Width"},videoHeight:{group:"Playback",type:"number",displayName:"Video Height"}}};NodeSharedPortDefinitions.addDimensions(VideoNode,{defaultSizeMode:"contentSize",contentLabel:"Video"}),NodeSharedPortDefinitions.addTransformInputs(VideoNode),NodeSharedPortDefinitions.addMarginInputs(VideoNode),NodeSharedPortDefinitions.addSharedVisualInputs(VideoNode),NodeSharedPortDefinitions.addAlignInputs(VideoNode),NodeSharedPortDefinitions.addPointerEventOutputs(VideoNode),NodeSharedPortDefinitions.addBorderInputs(VideoNode);const Video=createNodeFromReactComponent(VideoNode);function _shallowCompare(e,t){for(var n in e)if(e.hasOwnProperty(n)&&e[n]!==t[n])return!1;for(var n in t)if(t.hasOwnProperty(n)&&e[n]!==t[n])return!1;return!0}const _styleSheets={};function updateStylesForClass(e,t,n){if(_styleSheets[e])_shallowCompare(t,_styleSheets[e].props)||(_styleSheets[e].style.innerHTML=n(e,t),_styleSheets[e].props=Object.assign({},t));else{var o=document.createElement("style");o.innerHTML=n(e,t),document.head.appendChild(o),_styleSheets[e]={style:o,props:Object.assign({},t)}}}function mergeAttribute(e,t,n){e[t]||(e[t]={});for(const o in n)e[t][o]=n[o]}function addInputProps(e,t){mergeAttribute(e,"inputProps",t)}function addOutputProps(e,t){mergeAttribute(e,"outputProps",t)}function addControlEventsAndStates(e){addInputProps(e,{blockTouch:{index:450,displayName:"Block Pointer Events",type:"boolean"}}),addOutputProps(e,{focusState:{displayName:"Focused",group:"States",type:"boolean",props:{onFocus(){this.outputPropValues.focusState=!0,this.flagOutputDirty("focusState"),this.hasOutput("onFocus")&&this.sendSignalOnOutput("onFocus")},onBlur(){this.outputPropValues.focusState=!1,this.flagOutputDirty("focusState"),this.hasOutput("onBlur")&&this.sendSignalOnOutput("onBlur")}}},onFocus:{displayName:"Focused",group:"Events",type:"signal",props:{onFocus(){this.outputPropValues.focusState=!0,this.flagOutputDirty("focusState"),this.sendSignalOnOutput("onFocus")}}},onBlur:{displayName:"Blurred",group:"Events",type:"signal",props:{onBlur(){this.outputPropValues.focusState=!1,this.flagOutputDirty("focusState"),this.sendSignalOnOutput("onBlur")}}},hoverState:{displayName:"Hover",group:"States",type:"boolean",props:{onMouseOver(){this.outputPropValues.hoverState=!0,this.flagOutputDirty("hoverState"),this.hasOutput("hoverStart")&&this.sendSignalOnOutput("hoverStart")},onMouseLeave(){this.outputPropValues.hoverState=!1,this.flagOutputDirty("hoverState"),this.hasOutput("hoverEnd")&&this.sendSignalOnOutput("hoverEnd")}}},hoverStart:{displayName:"Hover Start",group:"Events",type:"signal",props:{onMouseOver(){this.outputPropValues.hoverState=!0,this.flagOutputDirty("hoverState"),this.sendSignalOnOutput("hoverStart")}}},hoverEnd:{displayName:"Hover End",group:"Events",type:"signal",props:{onMouseLeave(){this.outputPropValues.hoverState=!1,this.flagOutputDirty("hoverState"),this.sendSignalOnOutput("hoverEnd")}}},pressedState:{displayName:"Pressed",group:"States",type:"boolean",props:{onMouseDown(){this.outputPropValues.pressedState=!0,this.flagOutputDirty("pressedState"),this.hasOutput("pointerDown")&&this.sendSignalOnOutput("pointerDown")},onTouchStart(){this.outputPropValues.pressedState=!0,this.flagOutputDirty("pressedState"),this.hasOutput("pointerDown")&&this.sendSignalOnOutput("pointerDown")},onMouseUp(){this.outputPropValues.pressedState=!1,this.flagOutputDirty("pressedState"),this.hasOutput("pointerUp")&&this.sendSignalOnOutput("pointerUp")},onTouchEnd(){this.outputPropValues.pressedState=!1,this.flagOutputDirty("pressedState"),this.hasOutput("pointerUp")&&this.sendSignalOnOutput("pointerUp")},onTouchCancel(){this.outputPropValues.pressedState=!1,this.flagOutputDirty("pressedState"),this.hasOutput("pointerUp")&&this.sendSignalOnOutput("pointerUp")}}},pointerDown:{displayName:"Pointer Down",group:"Events",type:"signal",props:{onMouseDown(){this.outputPropValues.pressedState=!0,this.flagOutputDirty("pressedState"),this.sendSignalOnOutput("pointerDown")},onTouchStart(){this.outputPropValues.pressedState=!0,this.flagOutputDirty("pressedState"),this.sendSignalOnOutput("pointerDown")}}},pointerUp:{displayName:"Pointer Up",group:"Events",type:"signal",props:{onMouseUp(){this.outputPropValues.pressedState=!1,this.flagOutputDirty("pressedState"),this.sendSignalOnOutput("pointerUp")},onTouchEnd(){this.outputPropValues.pressedState=!1,this.flagOutputDirty("pressedState"),this.sendSignalOnOutput("pointerUp")},onTouchCancel(){this.outputPropValues.pressedState=!1,this.flagOutputDirty("pressedState"),this.sendSignalOnOutput("pointerUp")}}}})}function controlEvents(e){return Object.assign({},{onFocus:e.onFocus,onBlur:e.onBlur},pointerProps(e))}const Utils={updateStylesForClass,addControlEventsAndStates,controlEvents};function Button(e){React.useEffect(()=>{e.focusChanged&&e.focusChanged(!1),e.hoverChanged&&e.hoverChanged(!1),e.pressedChanged&&e.pressedChanged(!1)},[]);var t={...e.style};Layout.size(t,e),Layout.align(t,e),e.textStyle!==void 0&&(t=Object.assign({},e.textStyle,t)),e.boxShadowEnabled&&(t.boxShadow=`${e.boxShadowInset?"inset ":""}${e.boxShadowOffsetX} ${e.boxShadowOffsetY} ${e.boxShadowBlurRadius} ${e.boxShadowSpreadRadius} ${e.boxShadowColor}`);let n="ndl-controls-button";return e.className&&(n=n+" "+e.className),React.createElement("button",{className:n,disabled:!e.enabled,...Utils.controlEvents(e),type:e.buttonType,style:t,onClick:e.onClick},e.label,e.children)}var ButtonNode={name:"Button",docs:"https://docs.noodl.net/nodes/visual/button",allowChildren:!0,noodlNodeAsProp:!0,initialize(){this.outputPropValues.hoverState=this.outputPropValues.focusState=this.outputPropValues.pressedState=!1,this.props.id=this._internal.controlId="input-"+guid(),this.props.enabled=this._internal.enabled=!0},getReactComponent(){return Button},inputs:{enabled:{type:"boolean",displayName:"Enabled",group:"General",default:!0,set:function(e){e=!!e;const t=e!==this._internal.enabled;this.props.enabled=this._internal.enabled=e,t&&(this.forceUpdate(),this.flagOutputDirty("enabled"))}},textStyle:{index:20,type:"textStyle",group:"Text",displayName:"Text Style",default:"None",set(e){this.props.textStyle=this.context.styles.getTextStyle(e),this.forceUpdate()}},fontFamily:{index:21,type:"font",group:"Text",displayName:"Font Family",set(e){if(e){let t=e;t.split(".").length>1&&(t=t.replace(/\.[^/.]+$/,""),t=t.split("/").pop()),this.setStyle({fontFamily:t})}else this.removeStyle(["fontFamily"]);this.props.textStyle&&this.forceUpdate()}}},outputs:{controlId:{type:"string",displayName:"Control Id",group:"General",getter:function(){return this._internal.controlId}},enabled:{type:"boolean",displayName:"Enabled",group:"States",getter:function(){return this._internal.enabled}}},inputCss:{fontSize:{index:21,group:"Text",displayName:"Font Size",type:{name:"number",units:["px"],defaultUnit:"px"},onChange(){this.props.textStyle&&this.forceUpdate()}},color:{index:24,group:"Text",displayName:"Color",type:"color",default:"#FFFFFF"},backgroundColor:{index:100,displayName:"Background Color",group:"Style",type:"color",default:"#000000"},paddingLeft:{index:64,group:"Margin and padding",default:20,applyDefault:!1,displayName:"Pad Left",type:{name:"number",units:["px"],defaultUnit:"px",marginPaddingComp:"padding-left"}},paddingRight:{index:65,group:"Margin and padding",default:20,applyDefault:!1,displayName:"Pad Right",type:{name:"number",units:["px"],defaultUnit:"px",marginPaddingComp:"padding-right"}},paddingTop:{index:66,group:"Margin and padding",displayName:"Pad Top",default:5,applyDefault:!1,type:{name:"number",units:["px"],defaultUnit:"px",marginPaddingComp:"padding-top"}},paddingBottom:{index:67,group:"Margin and padding",displayName:"Pad Bottom",default:5,applyDefault:!1,type:{name:"number",units:["px"],defaultUnit:"px",marginPaddingComp:"padding-bottom"}},borderRadius:{index:202,displayName:"Border Radius",group:"Style",type:{name:"number",units:["px"],defaultUnit:"px"},default:0,applyDefault:!1},borderStyle:{index:203,displayName:"Border Style",group:"Style",type:{name:"enum",enums:[{label:"None",value:"none"},{label:"Solid",value:"solid"},{label:"Dotted",value:"dotted"},{label:"Dashed",value:"dashed"}]},default:"none",applyDefault:!1},borderWidth:{index:204,displayName:"Border Width",group:"Style",type:{name:"number",units:["px"],defaultUnit:"px"},default:0,applyDefault:!1},borderColor:{index:205,displayName:"Border Color",group:"Style",type:"color",default:"#000000"}},inputProps:{label:{type:"string",displayName:"Label",group:"General",default:"Label"},buttonType:{type:{name:"enum",enums:[{label:"Button",value:"button"},{label:"Submit",value:"submit"}]},displayName:"Type",default:"button",group:"General"},boxShadowEnabled:{index:250,group:"Box Shadow",displayName:"Shadow Enabled",type:"boolean",default:!1},boxShadowOffsetX:{index:251,group:"Box Shadow",displayName:"Offset X",default:0,type:{name:"number",units:["px"],defaultUnit:"px"}},boxShadowOffsetY:{index:252,group:"Box Shadow",displayName:"Offset Y",default:0,type:{name:"number",units:["px"],defaultUnit:"px"}},boxShadowBlurRadius:{index:253,group:"Box Shadow",displayName:"Blur Radius",default:5,type:{name:"number",units:["px"],defaultUnit:"px"}},boxShadowSpreadRadius:{index:254,group:"Box Shadow",displayName:"Spread Radius",default:2,type:{name:"number",units:["px"],defaultUnit:"px"}},boxShadowInset:{index:255,group:"Box Shadow",displayName:"Inset",type:"boolean",default:!1},boxShadowColor:{index:256,group:"Box Shadow",displayName:"Shadow Color",type:"color",default:"rgba(0,0,0,0.2)"}},outputProps:{onClick:{displayName:"Click",group:"Events",type:"signal"}},dynamicports:[{condition:"boxShadowEnabled = true",inputs:["boxShadowOffsetX","boxShadowOffsetY","boxShadowInset","boxShadowBlurRadius","boxShadowSpreadRadius","boxShadowColor"]}],methods:{}};NodeSharedPortDefinitions.addDimensions(ButtonNode,{defaultSizeMode:"contentSize",contentLabel:"Content",useDimensionConstraints:!1}),NodeSharedPortDefinitions.addAlignInputs(ButtonNode),NodeSharedPortDefinitions.addTransformInputs(ButtonNode),NodeSharedPortDefinitions.addMarginInputs(ButtonNode),NodeSharedPortDefinitions.addSharedVisualInputs(ButtonNode),Utils.addControlEventsAndStates(ButtonNode),ButtonNode=createNodeFromReactComponent(ButtonNode),ButtonNode.setup=function(e,t){t.on("nodeAdded.Button",function(n){n.parameters.fontFamily&&n.parameters.fontFamily.split(".").length>1&&FontLoader.instance.loadFont(n.parameters.fontFamily),n.on("parameterUpdated",function(o){o.name==="fontFamily"&&o.value&&o.value.split(".").length>1&&FontLoader.instance.loadFont(o.value)})})};const ButtonOld=ButtonNode;function _styleTemplate$2(e,t){return`
|
|
96
96
|
.${e}:checked {
|
|
97
97
|
background-color: ${t.checkedBackgroundColor};
|
|
98
98
|
}
|