Gallery Custom Links - Version 2.0.1

Version Description

  • Fix: There were a few issues in this new version.
  • Update: New modernized admin.
Download this release

Release Info

Developer TigrouMeow
Plugin Icon 128x128 Gallery Custom Links
Version 2.0.1
Comparing to
See all releases

Code changes from version 2.0.0 to 2.0.1

app/index.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(n){function e(e){for(var r,i,l=e[0],c=e[1],u=e[2],f=0,d=[];f<l.length;f++)i=l[f],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&d.push(o[i][0]),o[i]=0;for(r in c)Object.prototype.hasOwnProperty.call(c,r)&&(n[r]=c[r]);for(s&&s(e);d.length;)d.shift()();return a.push.apply(a,u||[]),t()}function t(){for(var n,e=0;e<a.length;e++){for(var t=a[e],r=!0,l=1;l<t.length;l++){var c=t[l];0!==o[c]&&(r=!1)}r&&(a.splice(e--,1),n=i(i.s=t[0]))}return n}var r={},o={0:0},a=[];function i(e){if(r[e])return r[e].exports;var t=r[e]={i:e,l:!1,exports:{}};return n[e].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.m=n,i.c=r,i.d=function(n,e,t){i.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:t})},i.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},i.t=function(n,e){if(1&e&&(n=i(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var r in n)i.d(t,r,function(e){return n[e]}.bind(null,r));return t},i.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return i.d(e,"a",e),e},i.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},i.p="";var l=window.wpJsonMgcl=window.wpJsonMgcl||[],c=l.push.bind(l);l.push=e,l=l.slice();for(var u=0;u<l.length;u++)e(l[u]);var s=c;a.push([79,1]),t()}({0:function(n,e){n.exports=React},19:function(n,e){n.exports=ReactDOM},79:function(n,e,t){"use strict";t.r(e);var r=t(0),o=t.n(r),a=t(19),i=t.n(a),l=t(59),c=t(1),u=t.n(c);function s(){return(s=Object.assign||function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n}).apply(this,arguments)}function f(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,r)}return t}function d(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?f(Object(t),!0).forEach((function(e){p(n,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):f(Object(t)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}))}return n}function p(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function m(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||function(n,e){if(!n)return;if("string"==typeof n)return b(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);"Object"===t&&n.constructor&&(t=n.constructor.name);if("Map"===t||"Set"===t)return Array.from(n);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return b(n,e)}(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}var g=function(n){var e=n.spinner,t=void 0===e||e,a=n.busy,i=void 0!==a&&a,l=n.overlayStyle,c=m(Object(r.useState)(!0),2),u=c[0],f=c[1];Object(r.useEffect)((function(){var n;return i?f(!0):n=setTimeout((function(){f(!1),n=null}),250),function(){n&&clearTimeout(n)}}),[i]);var p=u?o.a.createElement(o.a.Fragment,null,o.a.createElement("div",{className:"overlay "+(i?"":"overlayHidden"),style:l},Boolean(t)&&o.a.createElement("div",{className:"lds-ellipsis "+(i?"":"spinnerHidden")},o.a.createElement("div",null),o.a.createElement("div",null),o.a.createElement("div",null),o.a.createElement("div",null))),o.a.createElement("style",{jsx:!0},"\n .overlay {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n background: rgb(30 124 186 / 85%);\n transition: opacity 1s ease-out;\n z-index: 10;\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n }\n\n .overlayHidden {\n opacity: 0;\n transition: opacity 0.25s ease-out;\n }\n .spinnerHidden {\n opacity: 0;\n transition: opacity 0.25s ease-out;\n }\n .lds-ellipsis {\n position: relative;\n width: 80px;\n height: 80px;\n display: flex;\n justify-items: center;\n align-items: center;\n }\n .lds-ellipsis div {\n position: absolute;\n width: 13px;\n height: 13px;\n border-radius: 50%;\n background: white;\n animation-timing-function: cubic-bezier(0, 1, 1, 0);\n }\n .lds-ellipsis div:nth-child(1) {\n left: 8px;\n animation: lds-ellipsis1 0.6s infinite;\n }\n .lds-ellipsis div:nth-child(2) {\n left: 8px;\n animation: lds-ellipsis2 0.6s infinite;\n }\n .lds-ellipsis div:nth-child(3) {\n left: 32px;\n animation: lds-ellipsis2 0.6s infinite;\n }\n .lds-ellipsis div:nth-child(4) {\n left: 56px;\n animation: lds-ellipsis3 0.6s infinite;\n }\n @keyframes lds-ellipsis1 {\n 0% {\n transform: scale(0);\n }\n 100% {\n transform: scale(1);\n }\n }\n @keyframes lds-ellipsis3 {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0);\n }\n }\n @keyframes lds-ellipsis2 {\n 0% {\n transform: translate(0, 0);\n }\n 100% {\n transform: translate(24px, 0);\n }\n } \n ")):null,b=d(d({},n),{},{busy:void 0,spinner:void 0});return o.a.createElement("div",s({style:{position:"relative"}},b),p,n.children)};g.propTypes={busy:u.a.bool.isRequired,spinner:u.a.bool,children:u.a.oneOfType([u.a.arrayOf(u.a.node),u.a.node]).isRequired};var h=g,y=t(2),v=t(4),O={black:"black",blackRGB:"0, 0, 0",blue:"#007cba",blueRGB:"0, 124, 186",deepBlue:"#134575",finderBorder:"#DEDEDE",lightBlue:"#EBF3FF",lightGray:"#F1F1F1",gray:"#E8E8E8",green:"#0EA480",darkGray:"#A0A0A0",disabledForm:"#828282",orange:"#daa827",overlay:"rgba(16, 16, 16, 0.92)",red:"#ba4300",redHighlight:"#de5307",header:"#134675",proGray:"#7F8EA0",progress:"#8414a8",tableGray:"#FAFAFA",yellow:"#e4b42b",yellowRGB:"224, 156, 54",white:"white",fontFamily:"Lato",fontSizeH1:"24px",fontSizeH2:"18px",fontSizeText:"13px",fontSizeSmall:"12px",lightShadow:"0px 0px 10px rgba(0,0,0,0.1)"},w=t(3),k=t(29),E=t.n(k),j=t(30),S=t.n(j),P=t(31),C=t.n(P),z=t(8),N=t.n(z),A=t(9),I=t.n(A),T=t(10),R=t.n(T),_=t(6),F=t.n(_),M=t(5),B=t.n(M),D=t(7),L=t.n(D),U=t(11),G=t.n(U),q=t(12),H=t.n(q),$=t(32),J=t.n($),W=t(33),Z=t.n(W),K=t(13),X=t.n(K),Y=t(34),Q=t.n(Y),V=t(35),nn=t.n(V),en=t(36),tn=t.n(en),rn=t(37),on=t.n(rn),an=(t(62),t(38)),ln=t.n(an),cn=t(39),un=t.n(cn),sn=t(40),fn=t.n(sn),dn=t(41),pn=t.n(dn),mn=t(42),bn=t.n(mn),gn=t(43),hn=t.n(gn),yn=t(44),vn=t.n(yn),xn=t(45),On=t.n(xn),wn=t(46),kn=t.n(wn),En={lock:E.a,"lock-open":S.a,"file-undo":C.a,"chevron-double-left":N.a,"chevron-double-right":I.a,"chevron-left":R.a,"chevron-right":F.a,"chevron-down":B.a,"chevron-up":L.a,pause:G.a,play:H.a,replay:J.a,check:Z.a,stop:X.a,delete:Q.a,undo:nn.a,alert:tn.a,database:on.a,tools:ln.a,cog:un.a,close:fn.a,cat:pn.a,upload:bn.a,trash:hn.a,pencil:vn.a,dashboard:On.a,search:kn.a};function jn(){return(jn=Object.assign||function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n}).apply(this,arguments)}function Sn(n,e){if(null==n)return{};var t,r,o=function(n,e){if(null==n)return{};var t,r,o={},a=Object.keys(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}function Pn(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n display: inline-block;\n box-sizing: border-box;\n height: 30px;\n min-width: 6em;\n border: none;\n border-radius: 4px;\n text-align: center;\n font-family: ",";\n font-size: ",";\n padding: 0 15px;\n\n background-color: ",";\n color: white;\n transition: background-color .10s, opacity .25s;\n\n :not([disabled]):hover {\n cursor: pointer;\n background-color: ",";\n }\n\n :disabled {\n opacity: 0.35;\n }\n\n :focus {\n outline: none;\n }\n\n &.has-icon {\n align-items: center;\n display: inline-flex;\n padding: 2.5px 6px 2.5px 4px;\n }\n\n &.secondary {\n background-color: ",";\n border: 1px solid ",";\n color: ",";\n\n &:hover {\n background-color: ",";\n }\n }\n\n &.danger {\n background-color: ",";\n border-color: ",";\n\n\t &:hover {\n\t\t background-color: ",";\n\t }\n }\n\n &.success {\n background-color: ",";\n border-color: ",";\n\n\t &:hover {\n\t\t background-color: ",";\n\t }\n }\n\n & + button {\n margin-left: .25rem;\n }\n\n ","\n"]);return Pn=function(){return n},n}var Cn=Object(y.a)((function(n){var e=n.className,t=n.icon,r=void 0===t?null:t,a=n.onClick,i=n.disabled,l=void 0!==i&&i,c=n.color,u=void 0===c?null:c,s=n.children,f=Sn(n,["className","icon","onClick","disabled","color","children"]),d=!!r,p="nui-button ".concat(e||"").concat(d?" has-icon":""," ").concat(u?"custom-color":"");return o.a.createElement("button",jn({type:"button",className:p,onClick:a,disabled:l},f),d&&o.a.createElement(w.Icon,{icon:"string"==typeof r?En[r]||null:r,width:"24",height:"24",style:{marginRight:"4px"}}),o.a.createElement("span",null,s))}))(Pn(),O.fontFamily,O.fontSizeText,O.blue,Object(v.a)(.1,O.blue),O.lightBlue,O.blue,O.blue,Object(v.a)(.1,O.lightBlue),O.red,O.red,Object(v.a)(.1,O.red),O.green,O.green,Object(v.a)(.1,O.green),(function(n){return zn(n.color)})),zn=function(n){if(n)return"\n &.custom-color {\n background-color: ".concat(n,";\n border: 1px solid ").concat(n,";\n\n &:hover {\n background-color: ").concat(Object(v.a)(.1,n),";\n }\n }\n ")},Nn=function(n){return o.a.createElement(Cn,n)};function An(){return(An=Object.assign||function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n}).apply(this,arguments)}function In(n,e){if(null==n)return{};var t,r,o=function(n,e){if(null==n)return{};var t,r,o={},a=Object.keys(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}function Tn(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n background-color: ",";\n position: relative;\n border-radius: 10px;\n color: ",";\n font-family: ",";\n font-size: 9px;\n line-height: 10px;\n padding: 5px 8px;\n text-transform: uppercase;\n text-decoration: none;\n\n &:hover {\n color: ",";\n background-color: #f78c1f;\n }\n\n &.inline {\n display: inline;\n margin-left: 5px;\n vertical-align: middle;\n }\n"]);return Tn=function(){return n},n}Nn.propTypes={className:u.a.oneOf(["primary","secondary","danger","success"]),disabled:u.a.bool,icon:u.a.oneOfType([u.a.instanceOf(w.IconifyIcon),u.a.oneOf(["setting","edit","trash"])]),color:u.a.string,onClick:u.a.func.isRequired},Nn.defaultProps={className:"primary",disabled:!1,icon:null,color:null,onClick:function(){}};var Rn=y.a.a(Tn(),O.yellow,O.white,O.fontFamily,O.white),_n=function(n){var e=n.show,t=void 0===e||e,r=n.className,a=In(n,["show","className"]);return t?o.a.createElement(Rn,An({href:"https://store.meowapps.com",target:"_blank",className:"".concat(r||"")},a),"Pro Only"):null},Fn=function(n){return o.a.createElement(_n,n)};Fn.propTypes={show:u.a.bool,className:u.a.string},Fn.defaultProps={show:!0,className:void 0};var Mn=t(21),Bn=t.n(Mn);function Dn(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||Ln(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ln(n,e){if(n){if("string"==typeof n)return Un(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);return"Object"===t&&n.constructor&&(t=n.constructor.name),"Map"===t||"Set"===t?Array.from(n):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Un(n,e):void 0}}function Un(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}var Gn=function(){var n=Object(r.useRef)(),e=Dn(Object(r.useState)({}),2),t=e[0],o=e[1];return Object(r.useEffect)((function(){if(n&&n.current){var e=new ResizeObserver((function(n){var e=n[0];e.contentRect&&o({width:e.contentRect.left+e.contentRect.right,height:e.contentRect.top+e.contentRect.bottom})}));return e.observe(n.current),function(){e.unobserve(n.current)}}}),[]),{ref:n,width:t.width?t.width:0,height:t.height?t.height:0}},qn=function(n){var e=Object(r.useRef)(),t=function(t){n&&!e.current.contains(t.target)&&n()};return Object(r.useEffect)((function(){return document.addEventListener("mousedown",t),function(){document.removeEventListener("mousedown",t)}})),e};new Bn.a({concurrency:1,autoStart:!1});function Hn(){var n=Xn(["\n align-items: center;\n background-color: ",";\n border: none;\n box-sizing: border-box;\n color: white;\n display: flex;\n font-family: ",";\n font-size: ",";\n width: 100%;\n padding: 8px 15px 8px 15px;\n text-align: center;\n transition: background-color .10s, opacity .25s;\n\n :not([disabled]):hover {\n cursor: pointer;\n background-color: ",";\n }\n\n :disabled:not(.is-pro) {\n opacity: 0.35;\n }\n\n :focus {\n outline: none;\n }\n\n &.is-pro {\n background-color: ",";\n justify-content: space-between;\n }\n"]);return Hn=function(){return n},n}function $n(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||function(n,e){if(!n)return;if("string"==typeof n)return Jn(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);"Object"===t&&n.constructor&&(t=n.constructor.name);if("Map"===t||"Set"===t)return Array.from(n);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Jn(n,e)}(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Jn(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function Wn(){var n=Xn(["\n position: relative;\n display: block;\n margin-top: 18px;\n background-color: ",";\n position: absolute;\n z-index: 10;\n box-shadow: ",';\n\n &:before {\n content: "";\n position: absolute;\n top: -18px;\n left: 50%;\n margin-left: -8px;\n border: 8px solid transparent;\n border-bottom: 10px solid ',";\n }\n"]);return Wn=function(){return n},n}function Zn(){var n=Xn(["\n align-items: center;\n background-color: ",";\n border: none;\n border-radius: 4px;\n box-sizing: border-box;\n color: white;\n display: inline-flex;\n justify-content: space-between;\n font-family: ",";\n font-size: ",";\n height: 30px;\n min-width: 6em;\n padding: 0px 10px;\n text-align: center;\n transition: background-color .10s, opacity .25s;\n\n :not([disabled]):hover {\n cursor: pointer;\n background-color: ",";\n }\n\n :disabled {\n opacity: 0.35;\n }\n\n :focus {\n outline: none;\n }\n\n & + button {\n margin-left: .25rem;\n }\n"]);return Zn=function(){return n},n}function Kn(){var n=Xn(["\n display: inline-block;\n"]);return Kn=function(){return n},n}function Xn(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}var Yn=y.a.div(Kn()),Qn=y.a.button(Zn(),O.blue,O.fontFamily,O.fontSizeText,Object(v.a)(.1,O.blue)),Vn=y.a.div(Wn(),O.blue,O.lightShadow,O.blue),ne=function(n){var e=n.title,t=n.disabled,r=void 0!==t&&t,a=n.isPro,i=void 0!==a&&a,l=n.style,c=void 0===l?{}:l,u=$n(o.a.useState(!1),2),s=u[0],f=u[1],d=qn((function(){f(!1)})),p=Gn(),m=p.ref,b=p.width,g=function(){f(!s)},h=o.a.Children.map(n.children,(function(n){return o.a.cloneElement(n,{isPro:i,disabled:n.props.disabled||r,onClick:function(){n.props.onClick&&n.props.onClick(),g()}})}));return o.a.createElement(Yn,{ref:d},o.a.createElement(Qn,{ref:m,type:"button",disabled:r,onClick:g,style:c},o.a.createElement("span",null,e),o.a.createElement(w.Icon,{icon:B.a,width:"24",height:"24",style:{marginLeft:"4px"}})),s&&o.a.createElement(Vn,{style:{transform:"translateX(calc(-50% + ".concat(b/2,"px))")}},h))},ee=y.a.button(Hn(),O.blue,O.fontFamily,O.fontSizeText,Object(v.a)(.1,O.blue),O.proGray),te=function(n){var e=n.onClick,t=n.children,r=n.isPro,a=n.requirePro,i=void 0!==a&&a,l=n.disabled,c=i&&!r;return o.a.createElement(ee,{type:"button",className:c?"is-pro":"",onClick:e,disabled:l||c},o.a.createElement("span",null,t),c&&!r&&o.a.createElement(Fn,null))},re=function(n){return o.a.createElement(ne,n)},oe=function(n){return o.a.createElement(te,n)};function ae(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||ie(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ie(n,e){if(n){if("string"==typeof n)return le(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);return"Object"===t&&n.constructor&&(t=n.constructor.name),"Map"===t||"Set"===t?Array.from(n):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?le(n,e):void 0}}function le(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function ce(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n position: relative;\n background: #f1f1f1;\n margin-left: -20px;\n background-color: rgb(30 124 186 / 10%);\n padding-bottom: 50px;\n margin-bottom: -26px;\n\n .neko-rest-error {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: #1e232deb;\n z-index: 100;\n\n .container {\n color: white;\n padding: 5px 20px 15px 20px;\n min-width: 480px;\n max-width: 600px;\n border-radius: 20px;\n background: #883131;\n margin-left: 50%;\n transform: translateX(-50%);\n margin-top: 100px;\n\n h3 {\n color: white;\n }\n\n .neko-debug {\n padding: 5px 10px;\n background: #692426;\n border-radius: 10px;\n\n * {\n margin: 0px;\n padding: 0px;\n } \n }\n }\n }\n"]);return ce=function(){return n},n}re.propTypes={title:u.a.string,disabled:u.a.bool,isPro:u.a.bool},re.defaultProps={title:void 0,disabled:!1,isPro:!1},oe.propTypes={onClick:u.a.func.isRequired,requirePro:u.a.bool},oe.defaultProps={onClick:function(){},requirePro:!1};var ue=y.a.div(ce()),se=function(n){var e=n.className,t=n.children,a=n.nekoErrors,i=void 0===a?[]:a,l=n.style,c=void 0===l?{}:l,u=ae(Object(r.useState)(!1),2),s=u[0],f=u[1],d=ae(Object(r.useState)(!1),2),p=d[0],m=d[1];if(i&&!s){var b,g=function(n,e){var t;if("undefined"==typeof Symbol||null==n[Symbol.iterator]){if(Array.isArray(n)||(t=ie(n))||e&&n&&"number"==typeof n.length){t&&(n=t);var r=0,o=function(){};return{s:o,n:function(){return r>=n.length?{done:!0}:{done:!1,value:n[r++]}},e:function(n){throw n},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){t=n[Symbol.iterator]()},n:function(){var n=t.next();return i=n.done,n},e:function(n){l=!0,a=n},f:function(){try{i||null==t.return||t.return()}finally{if(l)throw a}}}}(i);try{for(g.s();!(b=g.n()).done;){var h=b.value;if(h){f(h);break}}}catch(n){g.e(n)}finally{g.f()}}return o.a.createElement(ue,{className:e||"",style:c},s&&o.a.createElement("div",{className:"neko-rest-error"},o.a.createElement("div",{className:"container"},!p&&o.a.createElement(o.a.Fragment,null,o.a.createElement("h3",null,"The Rest API is disabled or broken 😢"),o.a.createElement("p",null,"The Rest API is required for this plugin to work. It is enabled in WordPress by default since December 2016 and used by the Gutenberg Editor since 2019. In short, it allows more robustness and a much cleaner infrastructure. Soon, Wordpress will entirely depends on it, so it is important to keep it enabled."),o.a.createElement("p",null,o.a.createElement("i",null,"Last but not least: check your PHP Error Logs and your Debugging Console.")),o.a.createElement("p",{className:"neko-debug"},o.a.createElement("small",null,"URL: ",s.url,o.a.createElement("br",null),"CODE: ",s.code,o.a.createElement("br",null),"MESSAGE: ",s.message,o.a.createElement("br",null)))),s.body&&p&&o.a.createElement("p",{className:"neko-debug"},o.a.createElement("div",{dangerouslySetInnerHTML:{__html:s.body}})),s.body&&o.a.createElement(Nn,{color:"#a94242",onClick:function(){return m(!p)}},p?"Hide":"Display"," response from server"),o.a.createElement(Nn,{color:"#a94242",onClick:function(){window.open("https://meowapps.com/debugging-wordpress/","_blank")}},"Learn about WordPress Debugging"))),t)},fe=function(n){return o.a.createElement(se,n)};function de(n,e){if(null==n)return{};var t,r,o=function(n,e){if(null==n)return{};var t,r,o={},a=Object.keys(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}function pe(){var n=he(["\n font-family: ",";\n font-size: ",";\n line-height: normal;\n margin: 0;\n padding: 0;\n"]);return pe=function(){return n},n}function me(){var n=he(["\n font-family: ",";\n font-size: ",";\n line-height: normal;\n margin: 16px 0 24px;\n padding: 0;\n"]);return me=function(){return n},n}function be(){var n=he(["\n font-family: ",";\n font-size: ",";\n font-weight: normal;\n line-height: normal;\n margin-top: 0;\n margin-bottom: 16px;\n padding: 0;\n"]);return be=function(){return n},n}function ge(){var n=he(["\n font-family: ",";\n font-weight: normal;\n font-size: ",";\n line-height: normal;\n margin-top: 0;\n margin-bottom: 16px;\n padding: 0;\n"]);return ge=function(){return n},n}function he(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}fe.propTypes={className:u.a.string,style:u.a.object,nekoErrors:u.a.bool},fe.defaultProps={className:void 0,style:{},nekoErrors:!1};var ye=y.a.h1(ge(),O.fontFamily,O.fontSizeH1),ve=y.a.h2(be(),O.fontFamily,O.fontSizeH2),xe=y.a.p(me(),O.fontFamily,O.fontSizeText),Oe=y.a.span(pe(),O.fontFamily,O.fontSizeText),we=function(n){var e=n.children,t=de(n,["children"]);return n.h1?o.a.createElement(ye,t,e):n.h2?o.a.createElement(ve,t,e):n.p?o.a.createElement(xe,t,e):o.a.createElement(Oe,t,e)},ke=function(n){return o.a.createElement(we,n)};function Ee(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n font-size: ",";\n margin-bottom: 15px;\n \n .nui-block-title {\n color: ",";\n padding: 5px 10px;\n margin-bottom: 5px;\n }\n\n .nui-block-content {\n background-color: #f1f1f1;\n padding: 26px;\n box-shadow: 0px 2px 5px 0px #0000004a;\n border-radius: 10px;\n\n p:first-child {\n margin-top: 0;\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &.primary {\n padding: 8px;\n background-color: ",";\n\n .nui-block-title {\n color: ",";\n }\n\n .nui-block-content {\n background-color: ",";\n }\n }\n"]);return Ee=function(){return n},n}ke.propTypes={h1:u.a.any,h2:u.a.any,p:u.a.any},ke.defaultProps={h1:void 0,h2:void 0,p:void 0};var je=y.a.div(Ee(),O.fontSizeText,O.blue,O.blue,O.white,O.white),Se=function(n){var e=n.title,t=n.children,r=n.className,a=n.busy,i=void 0!==a&&a,l=n.style,c=void 0===l?{}:l;return o.a.createElement(je,{className:"nui-block "+(r||""),style:c},o.a.createElement(h,{busy:i},o.a.createElement(ke,{h2:!0,className:"nui-block-title"},e),o.a.createElement("div",{className:"nui-block-content"},t)))},Pe=function(n){return o.a.createElement(Se,n)};function Ce(){var n=Ne(["\n justify-content: flex-start;\n background-color: ",";\n display: flex;\n align-items: center;\n padding: 8px 10px;\n\n &.align-right {\n justify-content: flex-end;\n }\n"]);return Ce=function(){return n},n}function ze(){var n=Ne(["\n font-size: ",";\n font-family: ",";\n background-color: ",";\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n margin-bottom: 25px;\n\n &.primary {\n background-color: ",";\n }\n\n p:first-child {\n margin-top: 0px;\n }\n\n p:last-child {\n margin-bottom: 0px;\n }\n\n .content {\n padding: 20px 20px;\n }\n"]);return ze=function(){return n},n}function Ne(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}Pe.propTypes={title:u.a.string,className:u.a.oneOf(["","primary"]),style:u.a.object},Pe.defaultProps={title:void 0,className:"",style:{}};var Ae=y.a.div(ze(),O.fontSizeText,O.fontFamily,O.white,O.blue),Ie=y.a.div(Ce(),O.lightGray),Te=function(n){var e=n.children,t=n.header,r=n.headerAlign,a=void 0===r?"left":r,i=n.footer,l=n.footerAlign,c=void 0===l?"right":l,u=n.className,s=n.style,f=void 0===s?{}:s;return o.a.createElement(Ae,{className:u||"",style:f},t&&o.a.createElement(Ie,{className:"align-".concat(a)},t),o.a.createElement("div",{className:"content"},e),i&&o.a.createElement(Ie,{className:"align-".concat(c)},i))},Re=function(n){return o.a.createElement(Te,n)};function _e(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n display: flex;\n font-family: ",";\n\n > .nui-settings-head {\n font-family: ",";\n font-size: 14px;\n line-height: 17px;\n width: 120px;\n margin-right: 16px;\n }\n\n /* Select, Checkbox, Input need to be a bit higher to be in front of the settings title */\n\n .nui-settings-content > .nui-select:first-child {\n position: relative;\n margin-top: -5px;\n }\n \n .nui-settings-content > .nui-checkbox:first-child {\n position: relative;\n margin-top: -5px;\n }\n\n .nui-settings-content > .nui-checkbox:first-child {\n position: relative;\n margin-top: -5px;\n }\n\n .nui-settings-content > .nui-button:first-child {\n position: relative;\n margin-top: -5px;\n }\n\n .nui-settings-content > div:first-child > .neko-input {\n position: relative;\n margin-top: -5px;\n }\n\n > .nui-settings-content {\n flex: 1;\n\n &.nui-settings-content-align-right {\n flex: none;\n margin-left: auto;\n }\n\n input[type=text] {\n width: 100%;\n }\n\n\n }\n\n & + div {\n margin-top: 15px;\n }\n"]);return _e=function(){return n},n}Re.propTypes={header:u.a.element,headerAlign:u.a.oneOf(["left","right"]),footer:u.a.element,footerAlign:u.a.oneOf(["left","right"]),className:u.a.string,style:u.a.object},Re.defaultProps={header:void 0,headerAlign:"left",footer:void 0,footerAlign:"right",className:void 0,style:{}};var Fe=Object(y.a)((function(n){var e=n.title,t=void 0===e?"":e,r=n.contentAlign,a=void 0===r?"left":r;return o.a.createElement("div",{className:n.className||""},t?o.a.createElement("div",{className:"nui-settings-head"},t):null,o.a.createElement("div",{className:"nui-settings-content nui-settings-content-align-".concat(a)},n.children))}))(_e(),O.fontFamily,O.fontFamily),Me=function(n){return o.a.createElement(Fe,n)};function Be(){var n=Le(["\n background-color: ",";\n color: white;\n"]);return Be=function(){return n},n}function De(){var n=Le(["\n margin: 20px;\n padding: 14px;\n background-color: white;\n box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);\n\n > * + * {\n /* Base margin between child elements */\n margin-top: 14px;\n }\n"]);return De=function(){return n},n}function Le(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}Me.propTypes={title:u.a.string,className:u.a.string,contentAlign:u.a.string},Me.defaultProps={title:"",className:void 0,contentAlign:"left"};var Ue=y.a.div(De()),Ge=Object(y.a)((function(n){return n.children?o.a.createElement("div",{className:n.className},n.children):null}))(Be(),O.blue),qe=function(n){return o.a.createElement(Ue,{className:"window"},o.a.createElement(Ge,null,n.title),n.children)},He=function(n){return o.a.createElement(qe,n)};function $e(){return($e=Object.assign||function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n}).apply(this,arguments)}function Je(n,e){if(null==n)return{};var t,r,o=function(n,e){if(null==n)return{};var t,r,o={},a=Object.keys(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}function We(){var n=Ke(["\n flex: 1;\n padding: 32px 30px;\n\n .nui-block:not(:first-child) {\n margin-top: -20px;\n }\n\n .nui-block:last-child {\n margin-bottom: 0px;\n }\n\n &.minimal {\n padding: 0;\n }\n\n &.full {\n flex-basis: 100%;\n padding-bottom: 0;\n }\n\n & + .full {\n padding-bottom: 32px;\n padding-top: 0;\n }\n\n &:not(.full) + div:not(.full) {\n padding-left: 0;\n }\n"]);return We=function(){return n},n}function Ze(){var n=Ke(["\n display: flex;\n flex-wrap: wrap;\n"]);return Ze=function(){return n},n}function Ke(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}He.propTypes={title:u.a.string},He.defaultProps={title:void 0};var Xe=y.a.div(Ze()),Ye=y.a.div(We()),Qe=function(n){return o.a.createElement(Xe,null,n.children)},Ve=function(n){var e=n.full,t=n.minimal,r=Je(n,["full","minimal"]),a=e?"full":"";return a+=t?" minimal":"",o.a.createElement(Ye,$e({className:a},r),n.children)},nt=function(n){return o.a.createElement(Qe,n)},et=function(n){return o.a.createElement(Ve,n)};nt.propTypes={},nt.defaultProps={},et.propTypes={full:u.a.any},et.defaultProps={full:void 0};var tt=t(15),rt=t.n(tt),ot=t(16),at=t.n(ot);function it(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n font-family: ",";\n\n &.disabled {\n color: ",";\n\n label {\n cursor: default;\n }\n }\n\n input {\n display: none;\n }\n\n label {\n cursor: pointer;\n display: flex;\n }\n .nui-checkbox-check-container {\n flex-basis: 30px;\n }\n .nui-checkbox-inner-container {\n margin-top: 1.5px;\n margin-left: 4px;\n\n .label {\n display: block;\n font-size: 14px;\n line-height: 17px;\n padding-top: 4.5px;\n padding-bottom: 4px;\n }\n \n .description {\n display: block;\n font-size: 13px;\n line-height: 14px;\n color: #8a8a8a;\n\n * {\n font-size: 13px;\n line-height: inherit;\n margin: 0;\n }\n }\n }\n"]);return it=function(){return n},n}var lt=Object(y.a)((function(n){var e=n.id,t=n.name,r=n.checked,a=void 0!==r&&r,i=n.onChange,l=n.label,c=n.description,u=n.isPro,s=n.disabled,f=n.requirePro,d=void 0!==f&&f&&!u,p=s||d,m=p?"disabled":"";return o.a.createElement("div",{className:["nui-checkbox",n.className,m].join(" ")},o.a.createElement("input",{id:e,name:t,type:"checkbox",defaultChecked:!1,onClick:function(){i?i(!a,e):console.log("The onChange handler it not set for this checkbox.",n)},disabled:p}),o.a.createElement("label",{htmlFor:e},o.a.createElement("div",{className:"nui-checkbox-check-container"},o.a.createElement(w.Icon,{icon:a?at.a:rt.a,width:"30px",height:"30px",color:p?O.disabledForm:O.blue})),o.a.createElement("div",{className:"nui-checkbox-inner-container"},o.a.createElement("span",{className:"label"},l,o.a.createElement(Fn,{className:"inline",show:d})),c?o.a.createElement("small",{className:"description"},c):null)))}))(it(),O.fontFamily,O.disabledForm),ct=function(n){return o.a.createElement(lt,n)};function ut(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n"]);return ut=function(){return n},n}ct.propTypes={id:u.a.string,name:u.a.string,checked:u.a.bool,label:u.a.string,description:u.a.string,isPro:u.a.bool,requirePro:u.a.bool},ct.defaultProps={id:void 0,name:void 0,checked:!1,label:void 0,description:void 0,isPro:!1,requirePro:!1};var st=Object(y.a)((function(n){var e=n.name,t=(n.max,n.isPro),r=void 0!==t&&t;return o.a.Children.map(n.children,(function(n){return n.props.name?n:o.a.cloneElement(n,{name:e,isPro:r})}))}))(ut()),ft=function(n){return o.a.createElement(st,n)};function dt(){return(dt=Object.assign||function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n}).apply(this,arguments)}function pt(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||function(n,e){if(!n)return;if("string"==typeof n)return mt(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);"Object"===t&&n.constructor&&(t=n.constructor.name);if("Map"===t||"Set"===t)return Array.from(n);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return mt(n,e)}(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function mt(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function bt(n,e){if(null==n)return{};var t,r,o=function(n,e){if(null==n)return{};var t,r,o={},a=Object.keys(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}function gt(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n .neko-input {\n font-family: ",";\n font-size: ",";\n border: 2px solid ",";\n box-sizing: border-box;\n height: 30px;\n background: rgb(0 124 186 / 10%);\n padding: 0 10px;\n width: 100%;\n\n &.natural {\n border-color: gray;\n border-width: 1px;\n }\n\n &::placeholder {\n color: rgba(0, 0, 0, 0.25);\n }\n\n :focus {\n background-color: white;\n }\n\n :read-only {\n background-color: ",";\n }\n }\n\n .neko-input-description {\n font-family: ",";\n font-size: ",";\n line-height: 14px;\n margin-top: 8px;\n margin-bottom: 0;\n }\n"]);return gt=function(){return n},n}ft.propTypes={name:u.a.string,mas:u.a.number,isPro:u.a.bool},ft.defaultProps={name:void 0,mas:-1,isPro:!1};var ht=Object(y.a)((function(n){var e=n.id,t=n.name,a=n.value,i=void 0===a?"":a,l=n.description,c=n.placeholder,u=void 0===c?"":c,s=n.onEnter,f=void 0===s?null:s,d=n.readOnly,p=void 0!==d&&d,m=n.type,b=void 0===m?"text":m,g=n.step,h=void 0===g?1:g,y=n.min,v=void 0===y?1:y,x=n.max,O=void 0===x?999:x,w=n.maxLength,k=void 0===w?3:w,E=n.className,j=n.style,S=n.natural,P=void 0!==S&&S,C=bt(n,["id","name","value","description","placeholder","onEnter","readOnly","type","step","min","max","maxLength","className","style","natural"]),z=pt(Object(r.useState)(i),2),N=z[0],A=z[1],I=!!n.onChange;Object(r.useEffect)((function(){I||A(i)}),[i]);var T=function(t){I?n.onChange(t.target.value,e):A(t.target.value,e)},R=function(t){f&&"Enter"===event.key&&(t.preventDefault(),n.onEnter(t.target.value,e))},_=function(t){n.onBlur&&i!==t.target.value&&n.onBlur(t.target.value,e)},F="neko-input ".concat(P?" natural":"");return o.a.createElement("div",{className:[E].join(" "),style:j},"number"===b?o.a.createElement("input",dt({className:[F].join(" ")},C,{id:e,name:t,value:I?i:N,type:b,step:h,min:v,max:O,maxlength:k,placeholder:u,onChange:T,onKeyPress:R,onBlur:_,readOnly:p})):o.a.createElement("input",dt({className:[F].join(" ")},C,{id:e,name:t,value:I?i:N,type:b,spellcheck:"false",placeholder:u,onChange:T,onKeyPress:R,onBlur:_,readOnly:p})),l&&o.a.createElement("p",{className:"neko-input-description"},l))}))(gt(),O.fontFamily,O.fontSizeText,O.blue,O.gray,O.fontFamily,O.fontSizeSmall),yt=function(n){return o.a.createElement(ht,n)};function vt(){return(vt=Object.assign||function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n}).apply(this,arguments)}function xt(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||function(n,e){if(!n)return;if("string"==typeof n)return Ot(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);"Object"===t&&n.constructor&&(t=n.constructor.name);if("Map"===t||"Set"===t)return Array.from(n);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Ot(n,e)}(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ot(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function wt(n,e){if(null==n)return{};var t,r,o=function(n,e){if(null==n)return{};var t,r,o={},a=Object.keys(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}function kt(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n .neko-textarea {\n font-family: ",";\n font-size: ",";\n border: 2px solid ",";\n box-sizing: border-box;\n height: 160px;\n background: rgb(0 124 186 / 10%);\n padding: 0 10px;\n width: 100%;\n\n &::placeholder {\n color: rgba(0, 0, 0, 0.25);\n }\n\n :focus {\n background-color: white;\n }\n\n :read-only {\n background-color: ",";\n }\n }\n\n .neko-input-description {\n font-family: ",";\n font-size: ",";\n line-height: 14px;\n margin-top: 8px;\n margin-bottom: 0;\n }\n"]);return kt=function(){return n},n}yt.propTypes={id:u.a.string,type:u.a.oneOf(["number","text"]),name:u.a.string,value:u.a.string,description:u.a.string,placeholder:u.a.string,onChange:u.a.func,onEnter:u.a.func,onBlur:u.a.func,readOnly:u.a.bool,step:u.a.number,min:u.a.number,max:u.a.number,maxLength:u.a.number,natural:u.a.bool},yt.defaultProps={id:void 0,type:"text",name:void 0,value:"",description:void 0,placeholder:"",onChange:void 0,onEnter:void 0,onBlur:void 0,readOnly:!1,step:1,min:1,max:999,maxLength:3,natural:!1};var Et=Object(y.a)((function(n){var e=n.id,t=n.name,a=n.value,i=void 0===a?"":a,l=n.description,c=n.placeholder,u=void 0===c?"":c,s=n.onEnter,f=void 0===s?null:s,d=n.readOnly,p=void 0!==d&&d,m=(n.maxLength,n.className),b=n.style,g=wt(n,["id","name","value","description","placeholder","onEnter","readOnly","maxLength","className","style"]),h=xt(Object(r.useState)(i),2),y=h[0],v=h[1],x=!!n.onChange;Object(r.useEffect)((function(){x||v(i)}),[i]);return o.a.createElement("div",{className:[m].join(" "),style:b},o.a.createElement("textarea",vt({className:"neko-textarea"},g,{id:e,name:t,spellCheck:"false",placeholder:u,onChange:function(t){x?n.onChange(t.target.value,e):v(t.target.value,e)},onKeyPress:function(t){f&&"Enter"===event.key&&(t.preventDefault(),n.onEnter(t.target.value,e))},onBlur:function(t){n.onBlur&&i!==t.target.value&&n.onBlur(t.target.value,e)},readOnly:p}),x?i:y),l&&o.a.createElement("p",{className:"neko-input-description"},l))}))(kt(),O.fontFamily,O.fontSizeText,O.blue,O.gray,O.fontFamily,O.fontSizeSmall),jt=function(n){return o.a.createElement(Et,n)};jt.propTypes={id:u.a.string,name:u.a.string,value:u.a.string,description:u.a.string,placeholder:u.a.string,onChange:u.a.func,onEnter:u.a.func,onBlur:u.a.func,readOnly:u.a.bool},jt.defaultProps={id:void 0,name:void 0,value:"",description:void 0,placeholder:"",onChange:void 0,onEnter:void 0,onBlur:void 0,readOnly:!1};var St=t(50),Pt=t.n(St),Ct=t(51),zt=t.n(Ct);function Nt(){var n=Ut(["\n background-color: ",";\n cursor: pointer;\n font-family: ",";\n padding: 8px 12px;\n\n &:hover {\n filter: brightness(80%);\n }\n\n input {\n display: none;\n }\n\n .option {\n align-items: center;\n color: ",";\n display: flex;\n justify-content: space-between;\n font-family: ",";\n font-size: 14px;\n line-height: 17px;\n }\n\n &.disabled {\n background-color: rgb(224 156 54);\n pointer-events: none;\n\n .option {\n color: rgb(255 255 255 / 35%);\n }\n }\n"]);return Nt=function(){return n},n}function At(){var n=Ut(["\n font-family: ",";\n margin-bottom: 6px;\n\n input {\n display: none;\n }\n\n label {\n cursor: pointer;\n display: flex;\n }\n\n .inner-container {\n margin-left: 4px;\n\n .label {\n display: block;\n font-size: 14px;\n line-height: 17px;\n padding-top: 4.5px;\n padding-bottom: 4px;\n }\n .description {\n display: block;\n font-size: 12px;\n }\n }\n\n &.disabled {\n color: ",";\n\n label {\n cursor: default;\n }\n }\n"]);return At=function(){return n},n}function It(){return(It=Object.assign||function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n}).apply(this,arguments)}function Tt(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||function(n,e){if(!n)return;if("string"==typeof n)return Rt(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);"Object"===t&&n.constructor&&(t=n.constructor.name);if("Map"===t||"Set"===t)return Array.from(n);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Rt(n,e)}(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Rt(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function _t(n,e){if(null==n)return{};var t,r,o=function(n,e){if(null==n)return{};var t,r,o={},a=Object.keys(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}function Ft(){var n=Ut(["\n background-color: ",";\n"]);return Ft=function(){return n},n}function Mt(){var n=Ut(["\n border-radius: 8px;\n overflow: hidden;\n padding-top: 28px;\n position: absolute;\n top: 0;\n z-index: 10;\n width: 100%;\n transition: all 0.2s ease-in;\n\n &.hidden {\n opacity: 0;\n }\n"]);return Mt=function(){return n},n}function Bt(){var n=Ut(["\n display: block;\n margin-top: 5px;\n font-size: 13px;\n line-height: 14px;\n color: #8a8a8a;\n\n * {\n font-size: 13px;\n line-height: inherit;\n margin: 0;\n }\n"]);return Bt=function(){return n},n}function Dt(){var n=Ut(["\n align-items: center;\n background-color: ",";\n border: 2px solid ",";\n border-radius: 8px;\n display: flex;\n font-family: ",";\n font-size: 14px;\n padding: 0 5px 0 10px;\n box-sizing: border-box;\n height: 30px;\n\n .rightContent {\n align-items: center;\n display: flex;\n margin-left: auto;\n }\n"]);return Dt=function(){return n},n}function Lt(){var n=Ut(["\n border-radius: 8px;\n position: relative;\n user-select: none;\n cursor: pointer;\n\n &.show-options {\n background-color: ",";\n border-radius: 8px 8px 0 0;\n }\n"]);return Lt=function(){return n},n}function Ut(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}var Gt=y.a.div(Lt(),O.blue),qt=y.a.div(Dt(),O.white,O.blue,O.fontFamily),Ht=y.a.div(Bt()),$t=y.a.div(Mt()),Jt=y.a.div(Ft(),O.white),Wt=function(n){var e,t=n.id,a=n.name,i=n.value,l=n.scrolldown,c=void 0!==l&&l,u=n.isPro,s=void 0!==u&&u,f=n.onChange,d=_t(n,["id","name","value","scrolldown","isPro","onChange"]),p=null===(e=o.a.Children.toArray(n.children).find((function(n){return n.props.value===i||n.props.checked})))||void 0===e?void 0:e.props,m=(null==p?void 0:p.label)||"Select",b=(null==p?void 0:p.description)||n.description,g=(null==p?void 0:p.requirePro)||!1,h=Tt(Object(r.useState)(!1),2),y=h[0],v=h[1],x=c?qn((function(){v(!1)})):null,O=g&&!s,k=function(e){if(e!==i){if(!f)return void console.log("The onChange handler it not set for this checkbox.",n);f(e,t)}c&&v(!1)},E=o.a.Children.map(n.children,(function(n){return o.a.cloneElement(n,{name:n.props.name||a,checked:n.props.value===i||n.props.checked,onClick:k,scrolldown:c,isPro:s})}));return c?o.a.createElement(Gt,It({id:t,ref:x},d,{onClick:function(){return v(!y)},className:["nui-select",y?"show-options":""],childrenLength:E.length}),o.a.createElement(qt,null,m,o.a.createElement("div",{className:"rightContent"},O&&o.a.createElement(Fn,null),o.a.createElement(w.Icon,{icon:y?L.a:B.a,width:"24"}))),b&&o.a.createElement(Ht,null,b),y&&o.a.createElement($t,{className:y?"":"hidden"},o.a.createElement(Jt,null,[E]))):E},Zt=y.a.div(At(),O.fontFamily,O.disabledForm),Kt=y.a.div(Nt(),O.blue,O.fontFamily,O.white,O.fontFamily),Xt=function(n){var e=n.id,t=n.name,r=n.value,a=n.checked,i=n.label,l=n.description,c=n.onClick,u=n.scrolldown,s=n.isPro,f=void 0!==s&&s,d=n.requirePro,p=void 0!==d&&d&&!f,m=p?"disabled":"",b=o.a.createElement(Zt,{className:"nui-select ".concat(n.className||""," ").concat(m)},o.a.createElement("input",{id:e,name:t,type:"radio",value:r,defaultChecked:a,onClick:function(n){return c(n.target.value)},disabled:p}),o.a.createElement("label",{htmlFor:e},o.a.createElement(w.Icon,{icon:a?zt.a:Pt.a,width:"24px",color:p?O.disabledForm:O.blue}),o.a.createElement("div",{className:"inner-container"},o.a.createElement("span",{className:"label"},i,o.a.createElement(Fn,{className:"inline",style:{top:-1},show:p})),l?o.a.createElement("small",{className:"description"},l):null))),g=o.a.createElement(Kt,{className:"nui-select ".concat(n.className||""," ").concat(m)},o.a.createElement("input",{id:e,name:t,type:"radio",value:r,defaultChecked:a,disabled:p}),o.a.createElement("div",{className:"option",onClick:function(){return c(r)}},i,o.a.createElement(Fn,{show:p})));return u?g:b},Yt=function(n){return o.a.createElement(Wt,n)};Yt.propTypes={id:u.a.string,name:u.a.string,description:u.a.string,scrolldown:u.a.bool,isPro:u.a.bool,onChange:u.a.func},Yt.propTypes={id:void 0,name:void 0,description:void 0,scrolldown:!1,isPro:!1,onChange:void 0};var Qt=function(n){return o.a.createElement(Xt,n)};Qt.propTypes={id:u.a.string,name:u.a.string,value:u.a.string,checked:u.a.bool,label:u.a.string,description:u.a.string,onClick:u.a.func,scrolldown:u.a.bool,isPro:u.a.bool,requirePro:u.a.bool},Qt.defaultProps={id:void 0,name:void 0,value:void 0,checked:!1,label:void 0,description:void 0,onClick:void 0,scrolldown:!1,isPro:!1,requirePro:!1};var Vt=t(17),nr=t.n(Vt),er=t(52),tr=t.n(er),rr=t(53),or=t.n(rr),ar=t(54),ir=t.n(ar);function lr(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||function(n,e){if(!n)return;if("string"==typeof n)return cr(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);"Object"===t&&n.constructor&&(t=n.constructor.name);if("Map"===t||"Set"===t)return Array.from(n);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return cr(n,e)}(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function cr(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function ur(){var n=pr(["\n margin-left: 5px;\n"]);return ur=function(){return n},n}function sr(){var n=pr(["\n border-left: 1px solid ",";\n margin-left: 12px;\n padding-left: 6px;\n\n &.no-line {\n border-left: 0;\n padding-left: 12px;\n }\n\n &.no-chevron {\n border-left: 0;\n margin-left: 0;\n padding-left: 0;\n }\n"]);return sr=function(){return n},n}function fr(){var n=pr(["\n height: 24px;\n width: 24px;\n"]);return fr=function(){return n},n}function dr(){var n=pr(["\n align-items: center;\n display: flex;\n margin-bottom: 8px;\n\n &.can-expand {\n cursor: pointer;\n }\n\n p {\n margin: 0 0 0 8px;\n }\n"]);return dr=function(){return n},n}function pr(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}var mr=function(n){var e=n.chevron,t=void 0===e||e;return o.a.Children.map(n.children,(function(n){return o.a.cloneElement(n,{chevron:t})}))},br=y.a.div(dr()),gr=y.a.div(fr()),hr=y.a.div(sr(),O.finderBorder),yr=y.a.div(ur()),vr=function(n){var e={gallery:or.a,tag:ir.a},t=n.title,r=n.chevron,a=n.rightElement,i=void 0===a?null:a,l=n.showRightElement,c=void 0!==l&&l,u=!n.icon,s=!!n.icon,f=!!n.children,d=lr(o.a.useState(!1),2),p=d[0],m=d[1],b=lr(o.a.useState((function(){return"string"==typeof n.icon&&Object.keys(e).includes(n.icon)?e[n.icon]:n.icon?n.icon:nr.a})),2),g=b[0],h=b[1],y=o.a.Children.map(n.children,(function(n){return o.a.cloneElement(n,{chevron:r})}));return o.a.createElement("div",null,o.a.createElement(br,{onClick:function(){(u||f)&&(s||h(p?nr.a:tr.a),m(!p))},onMouseEnter:n.onMouseEnter,onMouseLeave:n.onMouseLeave,className:"".concat(u||y?"can-expand":"")},r?u||y?o.a.createElement(w.Icon,{icon:p?B.a:F.a,width:"24",height:"24"}):o.a.createElement(gr,null):null,o.a.createElement(w.Icon,{icon:g,color:O.blue,width:"24",height:"24"}),o.a.createElement("p",null,t),c&&o.a.createElement(yr,null,i)),p&&o.a.createElement(hr,{className:"".concat(u?"":"no-line"," ").concat(r?"":"no-chevron")},y))},xr=function(n){return o.a.createElement(mr,n)};xr.propTypes={chevron:u.a.bool},xr.defaultProps={chevron:!0};var Or=function(n){return o.a.createElement(vr,n)};function wr(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n display: flex;\n width: 100%;\n height: 100%;\n max-width: 128px;\n max-height: 128px;\n\n & > * {\n width: 100%;\n height: auto;\n object-fit: contain;\n }\n"]);return wr=function(){return n},n}Or.propTypes={icon:u.a.oneOfType([u.a.instanceOf(w.IconifyIcon),u.a.oneOf(["gallery"])]),title:u.a.string},Or.defaultProps={icon:nr.a,title:void 0};var kr=y.a.div(wr()),Er=function(){return o.a.createElement(kr,null,o.a.createElement("svg",{width:"54",height:"38",viewBox:"0 0 54 38",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o.a.createElement("path",{d:"M11.3663 9.40518C9.2981 -3.25522 -0.310763 2.76769 2.5163 9.40518C2.5163 9.40518 8.29338 29.9322 22.3059 26.3677C36.3184 22.8031 23.9038 19.1156 23.9038 19.1156C23.9038 19.1156 13.4345 22.0656 11.3663 9.40518Z",fill:"#724024",stroke:"black",strokeWidth:"2.1869"}),o.a.createElement("path",{d:"M10.7517 8.0531C10.0142 10.7573 6.32673 12.1093 3.99131 11.2489C1.65589 10.3885 2.63923 13.8302 5.09756 14.9364C7.55589 16.0427 11.2434 14.1989 12.1038 12.4781C12.9642 10.7573 11.4892 5.34893 10.7517 8.0531Z",fill:"#B7782E"}),o.a.createElement("path",{d:"M14.0705 17.2718C13.8246 19.2385 9.64547 19.976 7.55589 19.8531C5.46631 19.7302 9.76839 23.5406 11.3663 23.5406C12.9642 23.5406 17.3892 21.2052 17.1434 19.2385C16.8976 17.2718 14.3163 15.3052 14.0705 17.2718Z",fill:"#B7782E"}),o.a.createElement("path",{d:"M17.5121 26.2448C18.6184 25.3843 20.9538 21.8198 19.8476 19.8531C18.7413 17.8864 22.4288 20.9593 22.4288 20.9593L21.6913 26.2448C21.6913 26.2448 16.4059 27.1052 17.5121 26.2448Z",fill:"#B7782E"}),o.a.createElement("path",{d:"M10.7517 8.0531C10.0142 10.7573 6.32673 12.1093 3.99131 11.2489C1.65589 10.3885 2.63923 13.8302 5.09756 14.9364C7.55589 16.0427 11.2434 14.1989 12.1038 12.4781C12.9642 10.7573 11.4892 5.34893 10.7517 8.0531Z",stroke:"black"}),o.a.createElement("path",{d:"M14.0705 17.2718C13.8246 19.2385 9.64547 19.976 7.55589 19.8531C5.46631 19.7302 9.76839 23.5406 11.3663 23.5406C12.9642 23.5406 17.3892 21.2052 17.1434 19.2385C16.8976 17.2718 14.3163 15.3052 14.0705 17.2718Z",stroke:"black"}),o.a.createElement("path",{d:"M17.5121 26.2448C18.6184 25.3843 20.9538 21.8198 19.8476 19.8531C18.7413 17.8864 22.4288 20.9593 22.4288 20.9593L21.6913 26.2448C21.6913 26.2448 16.4059 27.1052 17.5121 26.2448Z",stroke:"black"}),o.a.createElement("path",{d:"M11.3663 9.40518C9.2981 -3.25522 -0.310763 2.76769 2.5163 9.40518C2.5163 9.40518 8.29338 29.9322 22.3059 26.3677C36.3184 22.8031 23.658 19.4843 23.658 19.4843C23.658 19.4843 13.4345 22.0656 11.3663 9.40518Z",stroke:"black",strokeWidth:"2.1869"}),o.a.createElement("path",{d:"M25.3788 9.89685C25.3788 9.89685 21.3225 35.0947 21.9371 35.7093C22.5517 36.3239 27.4684 36.3239 28.083 35.7093C28.6975 35.0947 29.6523 22.5858 30.2955 21.9427C30.9386 21.2995 35.7226 33.1281 36.81 33.1281C37.8975 33.1281 43.2303 21.3567 43.8163 21.9427C44.4023 22.5287 45.2913 35.0947 45.9059 35.7093C46.5204 36.3239 51.3142 36.3239 51.9288 35.7093C52.5434 35.0947 48.9788 9.89685 48.9788 9.89685H42.9559C42.9559 9.89685 37.7934 21.9427 36.81 21.9427C35.8267 21.9427 31.4017 9.89685 31.4017 9.89685H25.3788Z",fill:"white",stroke:"black",strokeWidth:"2.1869"})))},jr=function(n){return o.a.createElement(Er,n)};function Sr(n){return(Sr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n})(n)}function Pr(){var n=zr(["\n position: absolute;\n overflow: hidden;\n top: 0; left: 0;\n height: 100%;\n background-color: ",";\n border-radius: 12px;\n text-align: center;\n padding: 0 10px;\n vertical-align: middle;\n color: white;\n font-family: ",";\n font-size: 13px;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: min-width .2s ease-out;\n\n background-size: 30px 30px;\n background-image: linear-gradient(135deg, rgba(255, 255, 255, .15) 25%,\n transparent 25%,\n transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,\n transparent 75%, transparent);\n animation: ",";\n\n @keyframes animate-stripes {\n 0% { background-position: 0 0; }\n 100% { background-position: 60px 0; }\n }\n"]);return Pr=function(){return n},n}function Cr(){var n=zr(["\n position: relative;\n box-sizing: border-box;\n height: 30px;\n background: linear-gradient(\n 180deg,\n rgba(0, 0, 0, 0.06) 0%,\n rgba(0, 0, 0, 0.02) 50%,\n rgba(0, 0, 0, 0.10) 100%\n );\n border-radius: 12px;\n\n .nui-progress-buttons {\n position: absolute;\n height: 100%;\n right: 0px;\n display: flex;\n align-items: center;\n padding-right: 5px;\n\n .nui-progress-button {\n border: none;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-left: 2px;\n border-radius: 100%;\n color: white;\n padding: 2px;\n width: 18px;\n height: 18px;\n background-color: ",";\n\n &:hover {\n background-color: ",";\n }\n\n &.stop {\n background: ",";\n\n &:hover {\n background-color: ",";\n }\n }\n }\n }\n"]);return Cr=function(){return n},n}function zr(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}jr.propTypes={},jr.defaultProps={};var Nr=Object(y.a)((function(n){var e=n.value,t=void 0===e?0:e,r=n.max,a=void 0===r?100:r,i=n.busy,l=void 0!==i&&i,c=n.status;t=Math.min(t,a);var u=parseFloat(t)/parseFloat(a);return o.a.createElement("div",{className:n.className},o.a.createElement(Ar,{ratio:u,busy:n.busy,status:c}),o.a.createElement("div",{className:"nui-progress-buttons"},l&&n.onPauseClick&&o.a.createElement("div",{className:"nui-progress-button pause",onClick:n.onPauseClick},n.paused?o.a.createElement(w.InlineIcon,{icon:H.a}):o.a.createElement(w.InlineIcon,{icon:G.a})),l&&n.onStopClick&&o.a.createElement("div",{className:"nui-progress-button stop",onClick:n.onStopClick},o.a.createElement(w.InlineIcon,{icon:X.a}))))}))(Cr(),O.blue,Object(v.a)(.1,O.blue),O.red,Object(v.a)(.1,O.red)),Ar=Object(y.a)((function(n){var e,t,r,a=isNaN(n.ratio)?0:parseInt(Math.round(100*n.ratio)),i=Sr(n.status),l="undefined"!==i?"string"===i?n.status:n.status(a):"".concat(a,"%");return o.a.createElement("div",{className:n.className,style:(e={minWidth:28},t="minWidth",r=a+"%",t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e)},o.a.createElement("div",null,l))}))(Pr(),O.progress,O.fontFamily,(function(n){return n.busy?"animate-stripes 1.6s linear infinite":"none"})),Ir=function(n){return o.a.createElement(Nr,n)};function Tr(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||function(n,e){if(!n)return;if("string"==typeof n)return Rr(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);"Object"===t&&n.constructor&&(t=n.constructor.name);if("Map"===t||"Set"===t)return Array.from(n);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Rr(n,e)}(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Rr(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function _r(){var n=Mr(["\n\tbackground-color: rgba(",", 0.8);\n\tborder-radius: 4px;\n\tcolor: ",";\n\tfont-family: ",";\n\tfont-weight: normal;\n\tmin-width: 180px;\n\tmax-width: 280px;\n\tfont-size: ",";\n\tpadding: 8px 12px;\n\tposition: absolute;\n \tmax-width: 280px;\n\tdisplay: ",';\n\tz-index: 100;\n\n\t&:before {\n\t\tcontent: "";\n\t\tposition: absolute;\n\t\tborder: 4px solid transparent;\n\t}\n\n\t&.top {\n\t\t&:before {\n\t\t\tmargin-left: -4px;\n\t\t\ttop: 100%;\n\t\t\tleft: 50%;\n\t\t\tborder-top: 4px solid rgba(',", 0.8);\n\t\t}\n\t}\n\n\t&.left {\n\t\t&:before {\n\t\t\tmargin-top: -4px;\n\t\t\ttop: 50%;\n\t\t\tright: -8px;\n\t\t\tborder-left: 4px solid rgba(",", 0.8);\n\t\t}\n\t}\n\n\t&.right {\n\t\t&:before {\n\t\t\tmargin-top: -4px;\n\t\t\ttop: 50%;\n\t\t\tleft: -8px;\n\t\t\tborder-right: 4px solid rgba(",", 0.8);\n\t\t}\n\t}\n\n\t&.bottom {\n\t\t&:before {\n\t\t\tmargin-left: -4px;\n\t\t\ttop: -8px;\n\t\t\tleft: 50%;\n\t\t\tborder-bottom: 4px solid rgba(",", 0.8);\n\t\t}\n\t}\n\n\t","\n"]);return _r=function(){return n},n}function Fr(){var n=Mr(["\n\tdisplay: flex;\n"]);return Fr=function(){return n},n}function Mr(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}Ir.propTypes={value:u.a.number,max:u.a.number,busy:u.a.bool,paused:u.a.bool,onPauseClick:u.a.func,onStopClick:u.a.func,status:u.a.oneOf([u.a.string,u.a.func])},Ir.defaultProps={value:0,max:100,busy:!1,paused:!1,onPauseClick:void 0,onStopClick:void 0,status:void 0};var Br=y.a.div(Fr()),Dr=y.a.div(_r(),O.blackRGB,O.white,O.fontFamily,O.fontSizeText,(function(n){return n.visible?"inline-block":"none"}),O.blackRGB,O.blackRGB,O.blackRGB,O.blackRGB,(function(n){return n.style})),Lr=function(n){var e=n.text,t=void 0===e?"Hello world!":e,a=n.position,i=void 0===a?"top":a,l=Tr(Object(r.useState)(!1),2),c=l[0],u=l[1],s=Gn(),f=s.ref,d=s.width,p=s.height,m=Gn(),b=m.ref,g=m.width,h=m.height,y=Object(r.useMemo)((function(){var n=0,e=0;if("top"===i)n=-1*p-5,e=d/2*-1+g/2;else if("bottom"===i)n=h+5,e=d/2*-1+g/2;else if("left"===i){n=(p-h)/2*-1,e=-1*d-5}else if("right"===i){n=(p-h)/2*-1,e=g+5}return{transform:"translateX(".concat(e,"px) translateY(").concat(n,"px)")}}),[i,d,p,g,h]);return o.a.createElement(Br,null,o.a.createElement(Dr,{ref:f,visible:c,className:i,style:y},t),o.a.createElement("div",{ref:b,onMouseEnter:function(){return u(!0)},onMouseLeave:function(){return u(!1)}},n.children))},Ur=function(n){return o.a.createElement(Lr,n)};function Gr(){return(Gr=Object.assign||function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n}).apply(this,arguments)}function qr(n,e){if(null==n)return{};var t,r,o=function(n,e){if(null==n)return{};var t,r,o={},a=Object.keys(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}function Hr(){var n=Jr(["\n\n path {\n fill: ",";\n }\n\n ","\n\n &.nui-clickable {\n cursor: pointer;\n }\n\n &.spin {\n animation-name: spin;\n animation-duration: 700ms;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n\n @keyframes spin {\n 0% {\n transform: rotate(360deg);\n }\n 100% {\n transform: rotate(0deg);\n }\n }\n }\n"]);return Hr=function(){return n},n}function $r(){var n=Jr(["\n display: flex;\n align-items: center;\n"]);return $r=function(){return n},n}function Jr(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}Ur.propTypes={text:u.a.string,position:u.a.oneOf(["top","right","bottom","left"])},Ur.defaultProps={text:"Hello world!",position:"top"};var Wr=y.a.div($r()),Zr=Object(y.a)(w.Icon)(Hr(),(function(n){return n.color}),(function(n){return function(n){if(n)return"\n &:hover {\n path {\n fill: ".concat(Object(v.a)(.1,n),";\n }\n }\n ")}(n.color)})),Kr=function(n){var e=n.icon,t=n.spinning,r=void 0!==t&&t,a=n.className,i=void 0===a?"":a,l=n.title,c=n.tooltip,u=n.containerStyle,s=n.color,f=qr(n,["icon","spinning","className","title","tooltip","containerStyle","color"]);f.width||f.height||(f.width=f.height=30);var d=function(){return"string"==typeof e?En[e]||null:e},p="nui-icon ".concat(i).concat(f.onClick?" nui-clickable":"").concat(r?" spin":"");return c?o.a.createElement(Ur,{text:c.text,position:c.position||"top"},o.a.createElement(Wr,{style:u},o.a.createElement(Zr,Gr({icon:d(),className:p,color:s},f)))):o.a.createElement(Wr,{style:u,title:l},o.a.createElement(Zr,Gr({icon:d(),className:p,color:s},f)),c?o.a.createElement(Ur,null,c):null)},Xr=function(n){return o.a.createElement(Kr,n)};Xr.propTypes={icon:u.a.oneOfType([u.a.instanceOf(w.IconifyIcon),u.a.oneOf(["lock","lock-open","file-undo","chevron-double-left","chevron-double-right","chevron-left","chevron-right","chevron-down","chevron-up","pause","play","replay","check","stop","delete","undo","alert","database","pencil","tools","cog","close","cat","upload"])]),color:u.a.string,spinning:u.a.bool,className:u.a.string,tooltip:u.a.string},Xr.defaultProps={icon:void 0,color:void 0,spinning:!1,className:"",tooltip:void 0};var Yr=t(55),Qr=t.n(Yr);function Vr(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n position: relative;\n color: white;\n font-family: ",";\n font-size: ",";\n display: flex;\n align-items: center;\n padding: 15px 20px;\n background-color: ",";\n border-bottom: 5px #2981b5 solid;\n display: flex;\n\n .nui-header-logo-container {\n width: 55px;\n height: 55px;\n padding: 10px;\n margin-right: 20px;\n background: #3D5D8D;\n border-radius: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .nui-header-title-container {\n flex-direction: column;\n display: flex;\n\n .nui-header-title {\n color: white;\n font-family: ",";\n font-size: 23px;\n line-height: normal;\n margin: 0;\n }\n\n .nui-header-subtitle {\n color: white;\n font-family: ",";\n line-height: normal;\n font-size: ",";\n }\n }\n\n .nui-header-extra-content {\n flex: 1;\n margin: 0 20px;\n }\n"]);return Vr=function(){return n},n}var no=y.a.div(Vr(),O.fontFamily,O.fontSizeText,O.header,O.fontFamily,O.fontFamily,O.fontSizeText),eo=function(n){var e=n.title,t=void 0===e?"NekoUI":e,r=n.subtitle,a=void 0===r?"By Jordy Meow":r,i=n.children,l=n.saving,c=void 0!==l&&l;return o.a.createElement(no,null,o.a.createElement("div",{className:"nui-header-logo-container"},o.a.createElement(jr,null)),o.a.createElement("div",{className:"nui-header-title-container"},o.a.createElement("h1",{className:"nui-header-title"},t),o.a.createElement("small",{className:"nui-header-subtitle"},o.a.createElement("a",{target:"_blank",href:"https://meowapps.com",style:{color:"white",textDecoration:"none"}},a))),o.a.createElement("div",{className:"nui-header-extra-content"},i),c&&o.a.createElement(Xr,{icon:Qr.a,width:"36",height:"36"}))},to=function(n){return o.a.createElement(eo,n)};function ro(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n align-items: center;\n display: flex;\n\n .neko-paging-text {\n font-family: ",";\n font-style: normal;\n font-weight: normal;\n font-size: 15px;\n line-height: 14px;\n }\n\n .neko-paging-controller {\n box-sizing: border-box;\n height: 30px;\n align-items: center;\n background-color: rgba(",", 0.8);\n border-radius: 15px;\n display: flex;\n margin-left: 15px;\n padding: 3px 5px;\n\n .nako-paging-controller-icon {\n background-color: ",";\n border-radius: 100%;\n cursor: pointer;\n margin-right: 2px;\n height: 22px;\n width: 22px;\n box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.25);\n transition: transform 0.1s ease-in;\n box-sizing: border-box;\n\n :last-child {\n margin-right: 0;\n }\n\n &.disabled {\n color: ",";\n cursor: default;\n pointer-events: none;\n }\n\n &:hover {\n transform: scale(1.2) !important;\n z-index: 10;\n position: relative;\n }\n }\n\n .nako-paging-controller-text {\n color: ",";\n font-family: ",";\n font-style: normal;\n font-weight: normal;\n font-size: 13px;\n margin: 0 40px;\n user-select: none;\n }\n }\n"]);return ro=function(){return n},n}to.propTypes={title:u.a.string,subtitle:u.a.string,saving:u.a.bool},to.defaultProps={title:"NekoUI",subtitle:"By Jordy Meow",saving:!1};var oo=y.a.div(ro(),O.fontFamily,O.blueRGB,O.white,O.darkGray,O.white,O.fontFamily),ao=function(n){var e=n.currentPage,t=n.limit,r=n.onClick,a=n.total,i=Math.ceil(0===a?1:t>0?a/t:1),l="nako-paging-controller-icon ".concat(1===e?"disabled":""),c="nako-paging-controller-icon ".concat(e===i?"disabled":""),u=function(n){r(n)};return o.a.createElement(oo,null,o.a.createElement("span",{className:"neko-paging-text"},a," result",a>0?"s":""),o.a.createElement("div",{className:"neko-paging-controller"},o.a.createElement(w.Icon,{icon:N.a,className:l,onClick:function(){return u(1)}}),o.a.createElement(w.Icon,{icon:R.a,className:l,onClick:function(){return u(e-1)}}),o.a.createElement("p",{className:"nako-paging-controller-text"},"Page ",e," of ",i),o.a.createElement(w.Icon,{icon:F.a,className:c,onClick:function(){return u(e+1)}}),o.a.createElement(w.Icon,{icon:I.a,className:c,onClick:function(){return u(i)}})))},io=function(n){return o.a.createElement(ao,n)};function lo(){var n=uo(["\n color: ",";\n cursor: pointer;\n font-family: ",";\n font-style: normal;\n font-weight: normal;\n font-size: 14px;\n line-height: 17px;\n\n &.is-active {\n cursor: default;\n color: ",';\n font-weight: bold;\n }\n\n &::after {\n content: "|";\n color: ',";\n padding: 0 4px;\n }\n\n &:last-child::after {\n content: none;\n }\n\n span {\n color: ",";\n font-weight: normal;\n margin-left: 4px;\n }\n"]);return lo=function(){return n},n}function co(){var n=uo(["\n display: flex;\n align-items: center;\n"]);return co=function(){return n},n}function uo(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}io.propTypes={currentPage:u.a.number,limit:u.a.number,total:u.a.number,onClick:u.a.func},io.defaultProps={currentPage:void 0,limit:void 0,total:void 0,onClick:void 0};var so=y.a.div(co()),fo=y.a.span(lo(),O.blue,O.fontFamily,O.black,O.darkGray,O.darkGray),po=function(n){var e=n.id,t=n.value,r=n.onChange,a=n.busy,i=void 0!==a&&a,l=o.a.Children.map(n.children,(function(n,a){return o.a.cloneElement(n,{busy:i,isActive:n.props.value===t,onClick:function(n){n!==t&&r(n,e)}})}));return o.a.createElement(so,null,l)},mo=function(n){var e=n.title,t=n.value,r=void 0===t?0:t,a=n.count,i=n.onClick,l=n.busy,c=n.isActive;return o.a.createElement(fo,{onClick:function(){return i(r)},className:"".concat(c?"is-active":"")},e,null===a?null:o.a.createElement("span",null,"(",l?o.a.createElement(Xr,{icon:"replay",spinning:!0,width:12,containerStyle:{display:"inline"}}):a,")"))},bo=function(n){return o.a.createElement(po,n)};bo.propTypes={id:u.a.string,value:u.a.string,onChange:u.a.func},bo.defaultProps={id:void 0,value:void 0,onChange:void 0};var go=function(n){return o.a.createElement(mo,n)};function ho(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n .mask {\n position: absolute;\n overflow: hidden;\n display: block;\n width: ","px;\n height: ","px;\n }\n\n .semi-circle {\n position: relative;\n display: block;\n width: ","px;\n height: ",'px;\n background: linear-gradient(to right, #27b775 0%, #f3f32c 50%, #f71b1b 100%);\n border-radius: 50% 50% 50% 50% / 100% 100% 0% 0% ;\n\n &::before {\n content: "";\n position: absolute;\n bottom: 0;\n left: 50%;\n z-index: 2;\n display: block;\n width: 140px;\n height: 70px;\n margin-left: -70px;\n background: ',";\n border-radius: 50% 50% 50% 50% / 100% 100% 0% 0% ;\n } \n }\n\n .semi-circle--mask {\n position: absolute;\n top: 0;\n left: 0;\n width: ","px;\n height: ",'px;\n background: transparent;\n transform-origin: center center;\n backface-visibility: hidden;\n transition: all .3s ease-in-out;\n\n &::before {\n content: "";\n position: absolute;\n top: 0;\n left: 0%;\n z-index: 2;\n display: block;\n width: ',"px;\n height: ","px;\n margin-top: -1px;\n margin-left: -1px;\n background: #5396c1d6;\n border-radius: 50% 50% 50% 50% / 100% 100% 0% 0% ;\n } \n }\n\n .gauge { \n width: ","px;\n height: ","px;\n \n .semi-circle--mask {\n transform: rotate(","deg) translate3d(0,0,0);\n }\n }\n\n .child-container {\n position: absolute;\n font-size: 16px;\n display: flex;\n width: ","px;\n height: ","px;\n z-index: 10;\n\n .spacing {\n flex: auto;\n }\n\n .child {\n color: white;\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n }\n"]);return ho=function(){return n},n}go.propTypes={title:u.a.string,value:u.a.string,count:u.a.number,onClick:u.a.func,isActive:u.a.bool},go.defaultProps={title:void 0,value:"default",count:0,onClick:void 0,isActive:!1};var yo=y.a.section(ho(),(function(n){return n.width}),(function(n){return n.width/2}),(function(n){return n.width}),(function(n){return n.width/2}),(function(n){return n.backgroundColor}),(function(n){return n.width}),(function(n){return n.width}),(function(n){return n.width+2}),(function(n){return n.width/2+2}),(function(n){return n.width}),(function(n){return n.width/2}),(function(n){return n.degrees}),(function(n){return n.width+2}),(function(n){return n.width/2})),vo=function(n){var e=n.value,t=void 0===e?1e3:e,r=(n.min,n.max),a=void 0===r?2500:r,i=n.width,l=void 0===i?200:i,c=n.background,u=void 0===c?"#007cba":c,s=n.children,f=180*(t<=a?t:a)/a;return o.a.createElement(yo,{backgroundColor:u,degrees:f,width:l},o.a.createElement("div",{class:"gauge"},o.a.createElement("div",{class:"mask"},o.a.createElement("div",{class:"semi-circle"}),o.a.createElement("div",{class:"semi-circle--mask"})),o.a.createElement("div",{class:"child-container"},o.a.createElement("div",{class:"child"},o.a.createElement("div",{class:"spacing"}),s))))};function xo(){var n=wo(["\n background: #1eba96;\n padding: 20px;\n color: white;\n border-radius: 10px;\n font-size: 15px;\n text-align: center;\n\n a {\n color: white;\n font-weight: bold;\n }\n"]);return xo=function(){return n},n}function Oo(){var n=wo(["\n background: #ba341e;\n padding: 20px;\n color: white;\n border-radius: 10px;\n font-size: 15px;\n\n a {\n color: white;\n font-weight: bold;\n }\n"]);return Oo=function(){return n},n}function wo(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}vo.propTypes={value:u.a.number,min:u.a.number,max:u.a.number,width:u.a.number,background:u.a.string},vo.defaultProps={value:1e3,min:0,max:2500,width:200,background:"#007cba"};y.a.p(Oo()),y.a.p(xo());function ko(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,r)}return t}function Eo(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?ko(Object(t),!0).forEach((function(e){jo(n,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):ko(Object(t)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}))}return n}function jo(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function So(n){return function(n){if(Array.isArray(n))return No(n)}(n)||function(n){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(n))return Array.from(n)}(n)||zo(n)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Po(n,e,t,r,o,a,i){try{var l=n[a](i),c=l.value}catch(n){return void t(n)}l.done?e(c):Promise.resolve(c).then(r,o)}function Co(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||zo(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function zo(n,e){if(n){if("string"==typeof n)return No(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);return"Object"===t&&n.constructor&&(t=n.constructor.name),"Map"===t||"Set"===t?Array.from(n):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?No(n,e):void 0}}function No(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function Ao(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n box-sizing: border-box;\n background: #f1f1f1;\n border: 2px dashed rgb(0 0 0 / 30%);\n color: rgb(0 0 0 / 60%);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n transition: all 0.25s ease;\n\n div {\n transition: all 0.5s ease;\n transform: scale(1.5);\n pointer-events: none;\n }\n\n &:hover {\n cursor: pointer;\n }\n\n &.dropping {\n background: #a4d5ff;\n\n div {\n transform: scale(2);\n }\n }\n"]);return Ao=function(){return n},n}var Io=y.a.div(Ao()),To=function(n){var e=n.width,t=void 0===e?"100%":e,a=n.height,i=void 0===a?"100%":a,l=n.iconSize,c=void 0===l?48:l,u=n.onSuccess,s=void 0===u?function(){}:u,f=n.onFailure,d=void 0===f?function(){}:f,p=n.style,m=void 0===p?{}:p,b=n.apiUrl,g=n.apiConfig,y=Co(Object(r.useState)(!1),2),v=y[0],x=y[1],O=Co(Object(r.useState)(Math.floor(1e8*Math.random())),2),w=O[0],k=(O[1],Object(r.useRef)(null)),E=Co(Object(r.useState)(!1),2),j=E[0],S=E[1],P=function(){var n,e=(n=regeneratorRuntime.mark((function n(e){var t;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return S(!0),g.file=e[0],n.next=4,Ua(b,g);case 4:(t=n.sent).success?s(t):d(t),S(!1);case 7:case"end":return n.stop()}}),n)})),function(){var e=this,t=arguments;return new Promise((function(r,o){var a=n.apply(e,t);function i(n){Po(a,r,o,i,l,"next",n)}function l(n){Po(a,r,o,i,l,"throw",n)}i(void 0)}))});return function(n){return e.apply(this,arguments)}}(),C=function(n){n.preventDefault(),n.stopPropagation()},z=function(n){n.preventDefault(),n.stopPropagation(),x(!0)},N=function(n,e){e.preventDefault(),e.stopPropagation(),x(!1),console.log(n),P(n)};return o.a.createElement(h,{busy:j},o.a.createElement("input",{type:"file",id:w,accept:"image/*",ref:k,onChange:function(n){var e=[n.target.files[0]];N(e,n)},style:{display:"none"}}),o.a.createElement(Io,{onClick:function(){k.current.click()},style:Eo(Eo({},m),{},{width:t,height:i}),className:v?"dropping":"",onDragOver:C,onDragEnter:z,onDragLeave:function(n){n.preventDefault(),n.stopPropagation(),x(!1)},onDrop:function(n){var e=So(n.dataTransfer.files);N(e,n)}},o.a.createElement(Xr,{width:c,height:c,icon:"upload",spinning:j,onDragOver:C,onDragEnter:z})))};To.propTypes={width:u.a.string,height:u.a.string,onSuccess:u.a.func,onFailure:u.a.func,style:u.a.object,apiUrl:u.a.string,apiConfig:u.a.object},To.defaultProps={width:"100%",height:"100%",onSuccess:function(){},onFailure:function(){},style:{}};var Ro=t(56),_o=t.n(Ro);function Fo(){return(Fo=Object.assign||function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n}).apply(this,arguments)}function Mo(n,e){if(null==n)return{};var t,r,o=function(n,e){if(null==n)return{};var t,r,o={},a=Object.keys(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}function Bo(){var n=Lo(["\n width: 518px;\n\n p {\n margin: 0;\n }\n .title {\n font-family: ",";\n font-style: normal;\n font-weight: normal;\n font-size: 18px;\n line-height: 22px;\n }\n .content {\n font-family: ",";\n font-style: normal;\n font-weight: normal;\n font-size: 13px;\n line-height: 14px;\n margin-top: 15px;\n margin-bottom: 30px;\n }\n .button-group {\n align-items: center;\n display: flex;\n justify-content: flex-end;\n margin-top: 15px;\n }\n"]);return Bo=function(){return n},n}function Do(){var n=Lo(["\n\n .ReactModal__Overlay {\n z-index: 100;\n display: flex;\n justify-content: center;\n flex-direction: column;\n align-items: center;\n background: "," !important;\n }\n .ReactModal__Overlay {\n opacity: 0;\n transition: opacity 200ms ease-in-out;\n }\n .ReactModal__Overlay--after-open {\n opacity: 1;\n }\n .ReactModal__Overlay--before-close {\n opacity: 0;\n }\n .ReactModal__Overlay .neko-modal {\n opacity: 0;\n transform: scale(0.85);\n transition: all 200ms ease-in-out;\n }\n .ReactModal__Overlay--after-open .neko-modal {\n transform: scale(1);\n opacity: 1;\n }\n .ReactModal__Overlay--before-close .neko-modal {\n transform: scale(0.85);\n opacity: 0;\n }\n .neko-modal {\n background: ",";\n position: relative;\n box-shadow: 2px 2px 15px 2px rgba(0, 0, 0, 0.8);\n outline: none;\n padding: 15px;\n max-width: 820px;\n }\n"]);return Do=function(){return n},n}function Lo(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}var Uo=y.a.div(Do(),O.overlay,O.white),Go=y.a.div(Bo(),O.fontFamily,O.fontFamily),qo=function(n){var e=n.children,t=n.className,r=n.style,a=n.ok,i=void 0===a?"OK":a,l=n.cancel,c=void 0===l?"Cancel":l,u=n.customButtons,s=void 0===u?null:u,f=n.title,d=void 0===f?"":f,p=n.content,m=void 0===p?"":p,b=n.onOkClick,g=n.onCancelClick,h=Mo(n,["children","className","style","ok","cancel","customButtons","title","content","onOkClick","onCancelClick"]),y=r?"custom-modal":"",v=e||o.a.createElement(Go,null,d&&o.a.createElement("p",{className:"title"},d),m&&o.a.createElement("p",{className:"content"},m),o.a.createElement("div",{className:"button-group"},g&&o.a.createElement(Nn,{className:"danger",onClick:g},c),b&&o.a.createElement(Nn,{onClick:b},i),s));return o.a.createElement(o.a.Fragment,null,o.a.createElement(Uo,{id:"neko-modal-parent"}),o.a.createElement(_o.a,Fo({ariaHideApp:!1,parentSelector:function(){return document.getElementById("neko-modal-parent")},closeTimeoutMS:200,className:"neko-modal ".concat(t||""," ").concat(y)},h),v))},Ho=function(n){return o.a.createElement(qo,n)};Ho.propTypes={className:u.a.string,style:u.a.object,ok:u.a.string,cancel:u.a.string,title:u.a.string,content:u.a.string,onOkClick:u.a.func,onCancelClick:u.a.func,customButtons:u.a.object},Ho.defaultProps={className:void 0,style:void 0,ok:"OK",cancel:"Cancel",title:"",content:"",onOkClick:void 0,onCancelClick:void 0,customButtons:null};var $o=t(57),Jo=t.n($o);function Wo(n,e){if(null==n)return{};var t,r,o=function(n,e){if(null==n)return{};var t,r,o={},a=Object.keys(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}function Zo(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n background-color: ",";\n font-family: ",";\n border-spacing: 0;\n width: 100%;\n\n th, td {\n margin: 0;\n padding: 5px;\n border-bottom: 1px solid rgba(",", 0.1);\n border-right: 1px solid rgba(",", 0.1);\n\n a {\n text-decoration: none;\n }\n\n :last-child {\n border-right: 0;\n }\n }\n\n th, tfoot td {\n height: 30px;\n background-color: ",";\n color: ",";\n font-style: normal;\n font-weight: normal;\n font-size: 13px;\n line-height: 16px;\n text-align: left;\n\n div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n &.sortable {\n cursor: pointer;\n }\n }\n }\n\n tbody {\n tr {\n :nth-child(even) {\n background-color: ",";\n }\n &.selected {\n background-color: rgba(",", 0.8);\n color: ",";\n\n a {\n color: #81e8ff;\n }\n }\n }\n img {\n vertical-align: bottom;\n }\n }\n\n tfoot tr:last-child {\n td {\n border-bottom: 0;\n }\n }\n\n .table-checkbox-cell {\n width: 35px;\n text-align: center;\n\n svg {\n padding: 5px;\n cursor: pointer;\n }\n }\n"]);return Zo=function(){return n},n}var Ko=y.a.table(Zo(),O.white,O.fontFamily,O.blackRGB,O.blackRGB,O.blue,O.white,O.tableGray,O.blueRGB,O.white),Xo=function(n){var e=n.checked,t=n.intermediate,r=void 0!==t&&t,a=n.onSelect,i=void 0===a?function(){}:a,l=n.onUnselect,c=void 0===l?function(){}:l;Wo(n,["checked","intermediate","onSelect","onUnselect"]);return o.a.createElement(w.Icon,{icon:r?Jo.a:e?at.a:rt.a,width:"24px",height:"24px",onClick:function(){e?c():i()}})},Yo=function(n){var e=n.columns,t=n.data,r=n.busy,a=void 0!==r&&r,i=n.onSelect,l=n.onUnselect,c=n.selectedItems,u=n.sort,s=n.onSortChange,f=e.length+(i?1:0),d=t.map((function(n){var t=e.map((function(e){return{value:n[e.accessor],style:e.style||{}}}));return{id:n.id,cells:t}})),p=d.map((function(n){return n.id})),m=p.filter((function(n){return c.includes(n)})).length===p.length,b=!m&&c.length>0,g=e.reduce((function(n,e,t){return!1===e.visible&&n.push(t),n}),[]),y=o.a.createElement("tr",null,i&&o.a.createElement("th",{className:"table-checkbox-cell"},o.a.createElement(Xo,{checked:m,intermediate:b,onSelect:function(){return i(p)},onUnselect:function(){l(b?c:p)}})),e.filter((function(n,e){return!g.includes(e)})).map((function(n){var e=u&&u.accessor===n.accessor,t=u&&"asc"===u.by,r=n.style||{};return o.a.createElement("th",{style:r,key:n.accessor},o.a.createElement("div",{className:n.sortable?"sortable":"",onClick:n.sortable?function(){s(n.accessor,e&&t?"desc":"asc")}:void 0},o.a.createElement("div",null,n.title),o.a.createElement("div",null,n.sortable&&o.a.createElement(w.Icon,{icon:e?t?B.a:L.a:B.a,color:e?O.white:"rgba(".concat(O.blackRGB,", 0.1)"),width:"1.6rem",height:"1.6rem"}))))})));return o.a.createElement(h,{busy:a,overlayStyle:{top:"36px",height:"calc(100% - 76px)"}},o.a.createElement(Ko,null,o.a.createElement("thead",null,y),o.a.createElement("tbody",null,!d.length&&o.a.createElement("tr",null,o.a.createElement("td",{colspan:f,style:{textAlign:"center",height:40,color:"gray"}},"Empty.")),d.map((function(n){return o.a.createElement("tr",{className:c.includes(n.id)?"selected":""},i&&o.a.createElement("td",{className:"table-checkbox-cell"},o.a.createElement(Xo,{checked:c.includes(n.id),onSelect:function(){return i([n.id])},onUnselect:function(){return l([n.id])}})),n.cells.filter((function(n,e){return!g.includes(e)})).map((function(n){return o.a.createElement("td",{style:n.style},n.value)})))}))),o.a.createElement("tfoot",null,y)))},Qo=function(n){return o.a.createElement(Yo,n)};function Vo(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||function(n,e){if(!n)return;if("string"==typeof n)return na(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);"Object"===t&&n.constructor&&(t=n.constructor.name);if("Map"===t||"Set"===t)return Array.from(n);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return na(n,e)}(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function na(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function ea(){var n=aa(["\n background-color: ",";\n display: none;\n padding: 10px;\n\n &.active {\n display: block;\n }\n"]);return ea=function(){return n},n}function ta(){var n=aa(["\n font-family: ",";\n font-size: ",";\n border-radius: 8px 8px 0px 0px;\n border: 0;\n background-color: #459ad2;\n color: rgb(255 255 255 / 35%);\n\n cursor: pointer;\n line-height: 17px;\n margin-right: 5px;\n text-align: left;\n padding: 10px 15px 10px 15px;\n\n &:focus {\n outline: none;\n }\n\n &.active {\n background-color: ",";\n color: ",";\n }\n\n &.disabled {\n background-color: rgb(224 156 54);\n cursor: default;\n display: inline-flex;\n padding-bottom: 7px;\n }\n"]);return ta=function(){return n},n}function ra(){var n=aa(["\n"]);return ra=function(){return n},n}function oa(){var n=aa(["\n"]);return oa=function(){return n},n}function aa(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}Qo.propTypes={columns:u.a.arrayOf(u.a.any),data:u.a.arrayOf(u.a.any),busy:u.a.arrayOf(u.a.bool),onSelect:u.a.func,onUnselect:u.a.func,selectedItems:u.a.arrayOf(u.a.object),onSortChange:u.a.func},Qo.defaultProps={columns:void 0,data:void 0,busy:!1,onSelect:void 0,onUnselect:void 0,selectedItems:void 0,onSortChange:void 0};var ia=y.a.div(oa()),la=y.a.div(ra()),ca=y.a.button(ta(),O.fontFamily,O.fontSizeText,O.blue,O.white),ua=y.a.div(ea(),O.blue),sa=function(n){var e=Vo(o.a.useState(0),2),t=e[0],r=e[1],a=o.a.Children.map(n.children,(function(e,t){var r=e.props.title||"Untitled Tab "+(t+1);return{key:e.props.key||"neko-tab-"+r.toLowerCase(),title:r,onClick:e.props.onClick?e.props.onClick:null,requirePro:!n.isPro&&(e.props.requirePro||!1)}})),i=o.a.Children.map(n.children,(function(n,e){return o.a.cloneElement(n,{isActive:e===t})}));return o.a.createElement(ia,null,o.a.createElement(la,null,a.map((function(e,a){return o.a.createElement(ca,{key:e.key,className:"neko-tab-title ".concat(a===t?"active":""," ").concat(e.requirePro?"disabled":""),onClick:function(t){!function(e,t,o){t.requirePro||(r(e),n.onChange&&n.onChange(e,t,o))}(a,e,t)}},e.title,o.a.createElement(Fn,{className:"inline",style:{marginLeft:10,marginRight:-5,top:-1},show:e.requirePro}))}))),i)},fa=function(n){var e=n.children,t=n.isActive;return o.a.createElement(ua,{className:"".concat(t?"active":"")},e)},da=function(n){return o.a.createElement(sa,n)};da.propTypes={isPro:u.a.bool,onChange:u.a.func},da.defaultProps={isPro:!1,onChange:void 0};var pa=function(n){return o.a.createElement(fa,n)};function ma(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||function(n,e){if(!n)return;if("string"==typeof n)return ba(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);"Object"===t&&n.constructor&&(t=n.constructor.name);if("Map"===t||"Set"===t)return Array.from(n);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return ba(n,e)}(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ba(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function ga(){var n=va(["\n background-color: ",";\n display: none;\n\n &.active {\n display: block;\n }\n"]);return ga=function(){return n},n}function ha(){var n=va(["\n align-items: center;\n background-color: ",";\n border: 0;\n cursor: pointer;\n display: flex;\n padding: 2px 3px 2px 19px;\n\n &.disabled {\n background-color: rgba(",", 0.25);\n cursor: default;\n }\n\n p {\n color: ",";\n font-family: ",";\n font-size: 14px;\n line-height: 17px;\n margin: 0;\n }\n\n .neko-side-tab-icon {\n color: ",";\n margin-left: auto;\n height: 36px;\n width: 36px;\n }\n"]);return ha=function(){return n},n}function ya(){var n=va(["\n"]);return ya=function(){return n},n}function va(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}pa.propTypes={isActive:u.a.bool,requirePro:u.a.bool,title:u.a.string},pa.defaultProps={isActive:!1,requirePro:!1,title:void 0};var xa=y.a.div(ya()),Oa=y.a.div(ha(),O.blue,O.yellowRGB,O.white,O.fontFamily,O.white),wa=y.a.div(ga(),O.white),ka=function(n){var e=ma(o.a.useState(),2),t=e[0],r=e[1],a=o.a.Children.map(n.children,(function(e,t){var r=e.props.title||"Untitled Tab "+(t+1);return{key:e.props.key||"neko-tab-"+r.toLowerCase(),title:r,onClick:e.props.onClick?e.props.onClick:null,requirePro:!n.isPro&&(e.props.requirePro||!1)}})),i=o.a.Children.map(n.children,(function(n,e){return o.a.cloneElement(n,{isActive:e===t})}));return o.a.createElement(xa,null,a.map((function(e,a){return o.a.createElement(o.a.Fragment,null,o.a.createElement(Oa,{key:e.key,className:"".concat(a===t?"active":""," ").concat(e.requirePro?"disabled":""),onClick:function(o){!function(e,o,a){if(!o.requirePro){var i=e===t?null:e;r(i),n.onChange&&n.onChange(i,o,a)}}(a,e,o)}},o.a.createElement("p",null,e.title,o.a.createElement(Fn,{className:"inline",show:e.requirePro})),o.a.createElement(w.Icon,{icon:a===t?B.a:F.a,className:"neko-side-tab-icon"})),i[a])})))},Ea=function(n){var e=n.children,t=n.isActive;return o.a.createElement(wa,{className:"".concat(t?"active":"")},e)},ja=function(n){return o.a.createElement(ka,n)};ja.propTypes={isPro:u.a.bool,onChange:u.a.func},ja.defaultProps={isPro:!1,onChange:void 0};var Sa=function(n){return o.a.createElement(Ea,n)};function Pa(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n box-sizing: border-box;\n display: flex;\n width: 100%;\n padding: 10px 10px;\n background: ",";\n border-radius: 10px;\n box-shadow: 0px 0px 10px rgba(",", 0.1);\n\n &.neko-align-left {\n justify-content: flex-start;\n }\n\n &.neko-align-right {\n justify-content: flex-end;\n }\n\n > *:not(:last-child) {\n margin-right: 5px;\n }\n"]);return Pa=function(){return n},n}Sa.propTypes={isActive:u.a.bool,requirePro:u.a.bool,title:u.a.string},Sa.defaultProps={isActive:!1,requirePro:!1,title:void 0};var Ca=y.a.div(Pa(),O.white,O.blackRGB),za=function(n){var e=n.align,t=void 0===e?"left":e;return o.a.createElement(Ca,{className:"neko-align-".concat(t)},n.children)},Na=function(n){return o.a.createElement(za,n)};Na.propTypes={align:u.a.oneOf(["left","right"])},Na.defaultProps={align:"left"};t(22);function Aa(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}var Ia=function n(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};Aa(this,n),this.url=r,this.message=e,this.code=t,this.body=o,this.debug=a};function Ta(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||Ma(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ra(n,e,t,r,o,a,i){try{var l=n[a](i),c=l.value}catch(n){return void t(n)}l.done?e(c):Promise.resolve(c).then(r,o)}function _a(n){return function(){var e=this,t=arguments;return new Promise((function(r,o){var a=n.apply(e,t);function i(n){Ra(a,r,o,i,l,"next",n)}function l(n){Ra(a,r,o,i,l,"throw",n)}i(void 0)}))}}function Fa(n,e){var t;if("undefined"==typeof Symbol||null==n[Symbol.iterator]){if(Array.isArray(n)||(t=Ma(n))||e&&n&&"number"==typeof n.length){t&&(n=t);var r=0,o=function(){};return{s:o,n:function(){return r>=n.length?{done:!0}:{done:!1,value:n[r++]}},e:function(n){throw n},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){t=n[Symbol.iterator]()},n:function(){var n=t.next();return i=n.done,n},e:function(n){l=!0,a=n},f:function(){try{i||null==t.return||t.return()}finally{if(l)throw a}}}}function Ma(n,e){if(n){if("string"==typeof n)return Ba(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);return"Object"===t&&n.constructor&&(t=n.constructor.name),"Map"===t||"Set"===t?Array.from(n):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Ba(n,e):void 0}}function Ba(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}var Da=function(n){if(!n.data)return n;if(n.data.length>0&&n.data[0].meta){var e,t=Fa(n.data);try{for(t.s();!(e=t.n()).done;){var r=e.value;try{r.meta=JSON.parse(r.meta)}catch(n){console.error("[JsonFetcher]","Could not decode meta.",r.meta)}}}catch(n){t.e(n)}finally{t.f()}}else if(n.data.meta)try{n.data.meta=JSON.parse(n.data.meta)}catch(n){console.error("[JsonFetcher]","Could not decode meta.",x.meta)}return n},La=function(){var n=_a(regeneratorRuntime.mark((function n(e){var t,r,o,a,i,l,c,u,s,f=arguments;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return t=f.length>1&&void 0!==f[1]?f[1]:{},r=null,o={},a=null,i=null,n.prev=5,(t=t||{}).headers=t.headers?t.headers:{},t.headers.Pragma="no-cache",t.headers["Cache-Control"]="no-cache",n.next=12,fetch("".concat(e),t);case 12:return i=n.sent,n.next=15,i.text();case 15:r=n.sent,(o=JSON.parse(r)).success||(l=!1===o.success?"NOT-SUCCESS":"N/A",c=o.message?o.message:"Unknown error. Check your Console Logs.","rest_no_route"===o.code?(c="The API can't be accessed. Is Rest API enabled?",l="NO-ROUTE"):"internal_server_error"===o.code&&(c="Server error. Please check your PHP Error Logs.",l="SERVER-ERROR"),a=new Ia(c,l,e,r||i)),n.next=26;break;case 20:n.prev=20,n.t0=n.catch(5),u="BROKEN-REPLY",s="The reply sent by the server is broken.",i&&i.status&&408===i.status&&(u="REQUEST-TIMEOUT",s="The request generated a timeout."),a=new Ia(s,u,e,r||i,n.t0);case 26:return a&&(console.error("[NekoError] JsonFetcher",a.url,{code:a.code,error:a.error,body:a.body}),o.success=!1,o.error=a),n.abrupt("return",Da(o));case 28:case"end":return n.stop()}}),n,null,[[5,20]])})));return function(e){return n.apply(this,arguments)}}(),Ua=function(){var n=_a(regeneratorRuntime.mark((function n(e){var t,r,o,a,i,l,c,u,s,f,d,p,m,b=arguments;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(t=b.length>1&&void 0!==b[1]?b[1]:{},r=t.json,o=void 0===r?{}:r,a=t.signal,i=t.file,l=t.nonce,c=i?new FormData:null,i)for(c.append("file",i),u=0,s=Object.entries(o);u<s.length;u++)f=Ta(s[u],2),d=f[0],p=f[1],c.append(d,p);return m=l?{"X-WP-Nonce":l}:{},c||(m["Content-Type"]="application/json"),n.abrupt("return",La(e,{method:"POST",headers:m,body:c||JSON.stringify(o),signal:a}));case 7:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}(),Ga=(mgcl_gallery_custom_links.prefix,mgcl_gallery_custom_links.domain,mgcl_gallery_custom_links.rest_url.replace(/\/+$/,""),mgcl_gallery_custom_links.api_url.replace(/\/+$/,""));mgcl_gallery_custom_links.plugin_url.replace(/\/+$/,""),"1"===mgcl_gallery_custom_links.is_pro&&mgcl_gallery_custom_links.is_registered,mgcl_gallery_custom_links.rest_nonce;function qa(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,r)}return t}function Ha(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?qa(Object(t),!0).forEach((function(e){$a(n,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):qa(Object(t)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}))}return n}function $a(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Ja(n,e,t,r,o,a,i){try{var l=n[a](i),c=l.value}catch(n){return void t(n)}l.done?e(c):Promise.resolve(c).then(r,o)}function Wa(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||function(n,e){if(!n)return;if("string"==typeof n)return Za(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);"Object"===t&&n.constructor&&(t=n.constructor.name);if("Map"===t||"Set"===t)return Array.from(n);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Za(n,e)}(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Za(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}var Ka=wp.element.useState,Xa=function(){var n=Object(l.a)("".concat(Ga,"/all_settings/"),La),e=n.data,t=n.mutate,o=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,t=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=Object(r.useState)(e),a=Dn(o,2),i=a[0],l=a[1],c=Object(r.useState)(null),u=Dn(c,2),s=u[0],f=u[1],d=Object(r.useState)(t),p=Dn(d,2),m=p[0],b=p[1],g=Object(r.useState)(0),h=Dn(g,2),y=h[0],v=h[1];return Object(r.useEffect)((function(){void 0!==n&&(n.success?(f(null),l(n.data),v(n.total?n.total:0)):f(n.error)),b(void 0===n)}),[n]),{busy:m,data:i,total:y,error:s}}(e,{},!0),a=o.busy,i=o.data,c=o.error,u=Wa(Ka(!1),2),s=u[0],f=u[1],d=a||s,p=null==i?void 0:i.mgcl_obmode,m=null==i?void 0:i.mgcl_parsing_engine,b=null==i?void 0:i.mgcl_log,g=null==i?void 0:i.mgcl_button_enabled,h=null==i?void 0:i.mgcl_button_label,y=function(){var n,r=(n=regeneratorRuntime.mark((function n(r,o){var a;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return(a=Ha({},e.data))[o]=r,t(Ha(Ha({},e),{},{data:a}),!1),f(!0),n.prev=4,n.next=7,Ua("".concat(Ga,"/update_option"),{json:{name:o,value:r}});case 7:n.next=12;break;case 9:n.prev=9,n.t0=n.catch(4),alert(n.t0.message);case 12:return n.prev=12,f(!1),t(),n.finish(12);case 16:case"end":return n.stop()}}),n,null,[[4,9,12,16]])})),function(){var e=this,t=arguments;return new Promise((function(r,o){var a=n.apply(e,t);function i(n){Ja(a,r,o,i,l,"next",n)}function l(n){Ja(a,r,o,i,l,"throw",n)}i(void 0)}))});return function(n,e){return r.apply(this,arguments)}}(),v=React.createElement(Me,{title:"OB Mode"},React.createElement(ft,{max:"1"},React.createElement(ct,{id:"mgcl_obmode",label:"Check",value:"1",checked:p,onChange:y}))),x=React.createElement(Me,{title:"Parsing Engine"},React.createElement(Yt,{id:"mgcl_parsing_engine",onChange:y},[{id:"none",value:"None",label:"None (Not Supported Yet)"},{id:"htmldomparser",value:"HtmlDomParser",label:"HtmlDomParser"},{id:"didom",value:"DiDom",label:"DiDom"}].map((function(n){return React.createElement(Qt,{id:"mgcl_parsing_engine_".concat(n.id),value:n.value,label:n.label,checked:m===n.value})})))),O=React.createElement(Me,{title:"Logs"},React.createElement(ft,{max:"1"},React.createElement(ct,{id:"mgcl_log",label:"Logs",value:"1",checked:b,onChange:y}))),w=React.createElement(Me,{title:"Use Buttons"},React.createElement(ft,{max:"1"},React.createElement(ct,{id:"mgcl_button_enabled",label:"Enabled",value:"1",description:"A call-to-action button will be used of a clickable image.",checked:g,onChange:y}))),k=React.createElement(Me,{title:"Label"},React.createElement(yt,{id:"mgcl_button_label",name:"mgcl_button_label",value:h,description:"A call-to-action button will be used of a clickable image.",onBlur:y}));return React.createElement(fe,{nekoErrors:[c]},React.createElement(to,{title:"Gallery Custom Links | Settings",subtitle:"By Jordy Meow"}),React.createElement(nt,null,React.createElement(et,{full:!0},React.createElement(Re,null,React.createElement(ke,{p:!0},"This plugin works out of the box, the default settings are the best for most installs. If your photos are only in the content, then you should switch the OB Mode off, that will make the process much faster. Don't hesitate to take a look at the ",React.createElement("a",{href:"https://meowapps.com/plugin/gallery-custom-links/"},"official page"),".")),React.createElement(da,null,React.createElement(pa,{title:"Settings"},React.createElement(nt,null,React.createElement(et,{minimal:!0},React.createElement(Pe,{busy:d,title:"Settings",className:"primary"},v,x,O)),React.createElement(et,{minimal:!0},React.createElement(Pe,{busy:d,title:"CTA Buttons",className:"primary"},React.createElement(ke,{p:!0},React.createElement("b",null,"Currently works with the ",React.createElement("a",{href:"https://wordpress.org/plugins/meow-gallery/"},"Meow Gallery")," and Gutenberg Galleries.")," In a future Pro version, support for additional galleries might be added (please contact ",React.createElement("a",{href:"https://meowapps.com/contact/"},"Meow Apps")," for this)."),w,g?k:null))))))))};document.addEventListener("DOMContentLoaded",(function(n){var e=document.getElementById("mgcl-admin-settings");e&&i.a.render(o.a.createElement(Xa,null),e)}))}});
2
  //# sourceMappingURL=index.js.map
1
+ !function(n){function e(e){for(var r,i,l=e[0],c=e[1],u=e[2],f=0,d=[];f<l.length;f++)i=l[f],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&d.push(o[i][0]),o[i]=0;for(r in c)Object.prototype.hasOwnProperty.call(c,r)&&(n[r]=c[r]);for(s&&s(e);d.length;)d.shift()();return a.push.apply(a,u||[]),t()}function t(){for(var n,e=0;e<a.length;e++){for(var t=a[e],r=!0,l=1;l<t.length;l++){var c=t[l];0!==o[c]&&(r=!1)}r&&(a.splice(e--,1),n=i(i.s=t[0]))}return n}var r={},o={0:0},a=[];function i(e){if(r[e])return r[e].exports;var t=r[e]={i:e,l:!1,exports:{}};return n[e].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.m=n,i.c=r,i.d=function(n,e,t){i.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:t})},i.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},i.t=function(n,e){if(1&e&&(n=i(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var r in n)i.d(t,r,function(e){return n[e]}.bind(null,r));return t},i.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return i.d(e,"a",e),e},i.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},i.p="";var l=window.wpJsonMgcl=window.wpJsonMgcl||[],c=l.push.bind(l);l.push=e,l=l.slice();for(var u=0;u<l.length;u++)e(l[u]);var s=c;a.push([79,1]),t()}({0:function(n,e){n.exports=React},19:function(n,e){n.exports=ReactDOM},79:function(n,e,t){"use strict";t.r(e);var r=t(0),o=t.n(r),a=t(19),i=t.n(a),l=t(59),c=t(1),u=t.n(c);function s(){return(s=Object.assign||function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n}).apply(this,arguments)}function f(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,r)}return t}function d(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?f(Object(t),!0).forEach((function(e){p(n,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):f(Object(t)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}))}return n}function p(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function m(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||function(n,e){if(!n)return;if("string"==typeof n)return b(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);"Object"===t&&n.constructor&&(t=n.constructor.name);if("Map"===t||"Set"===t)return Array.from(n);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return b(n,e)}(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}var g=function(n){var e=n.spinner,t=void 0===e||e,a=n.busy,i=void 0!==a&&a,l=n.overlayStyle,c=m(Object(r.useState)(!0),2),u=c[0],f=c[1];Object(r.useEffect)((function(){var n;return i?f(!0):n=setTimeout((function(){f(!1),n=null}),250),function(){n&&clearTimeout(n)}}),[i]);var p=u?o.a.createElement(o.a.Fragment,null,o.a.createElement("div",{className:"overlay "+(i?"":"overlayHidden"),style:l},Boolean(t)&&o.a.createElement("div",{className:"lds-ellipsis "+(i?"":"spinnerHidden")},o.a.createElement("div",null),o.a.createElement("div",null),o.a.createElement("div",null),o.a.createElement("div",null))),o.a.createElement("style",{jsx:!0},"\n .overlay {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n background: rgb(30 124 186 / 85%);\n transition: opacity 1s ease-out;\n z-index: 10;\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n }\n\n .overlayHidden {\n opacity: 0;\n transition: opacity 0.25s ease-out;\n }\n .spinnerHidden {\n opacity: 0;\n transition: opacity 0.25s ease-out;\n }\n .lds-ellipsis {\n position: relative;\n width: 80px;\n height: 80px;\n display: flex;\n justify-items: center;\n align-items: center;\n }\n .lds-ellipsis div {\n position: absolute;\n width: 13px;\n height: 13px;\n border-radius: 50%;\n background: white;\n animation-timing-function: cubic-bezier(0, 1, 1, 0);\n }\n .lds-ellipsis div:nth-child(1) {\n left: 8px;\n animation: lds-ellipsis1 0.6s infinite;\n }\n .lds-ellipsis div:nth-child(2) {\n left: 8px;\n animation: lds-ellipsis2 0.6s infinite;\n }\n .lds-ellipsis div:nth-child(3) {\n left: 32px;\n animation: lds-ellipsis2 0.6s infinite;\n }\n .lds-ellipsis div:nth-child(4) {\n left: 56px;\n animation: lds-ellipsis3 0.6s infinite;\n }\n @keyframes lds-ellipsis1 {\n 0% {\n transform: scale(0);\n }\n 100% {\n transform: scale(1);\n }\n }\n @keyframes lds-ellipsis3 {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0);\n }\n }\n @keyframes lds-ellipsis2 {\n 0% {\n transform: translate(0, 0);\n }\n 100% {\n transform: translate(24px, 0);\n }\n } \n ")):null,b=d(d({},n),{},{busy:void 0,spinner:void 0});return o.a.createElement("div",s({style:{position:"relative"}},b),p,n.children)};g.propTypes={busy:u.a.bool.isRequired,spinner:u.a.bool,children:u.a.oneOfType([u.a.arrayOf(u.a.node),u.a.node]).isRequired};var h=g,v=t(2),y=t(4),O={black:"black",blackRGB:"0, 0, 0",blue:"#007cba",blueRGB:"0, 124, 186",deepBlue:"#134575",finderBorder:"#DEDEDE",lightBlue:"#EBF3FF",lightGray:"#F1F1F1",gray:"#E8E8E8",green:"#0EA480",darkGray:"#A0A0A0",disabledForm:"#828282",orange:"#daa827",overlay:"rgba(16, 16, 16, 0.92)",red:"#ba4300",redHighlight:"#de5307",header:"#134675",proGray:"#7F8EA0",progress:"#8414a8",tableGray:"#FAFAFA",yellow:"#e4b42b",yellowRGB:"224, 156, 54",white:"white",fontFamily:"Lato",fontSizeH1:"24px",fontSizeH2:"18px",fontSizeText:"13px",fontSizeSmall:"12px",lightShadow:"0px 0px 10px rgba(0,0,0,0.1)"},w=t(3),E=t(29),k=t.n(E),j=t(30),S=t.n(j),P=t(31),C=t.n(P),z=t(8),N=t.n(z),A=t(9),I=t.n(A),T=t(10),R=t.n(T),_=t(6),F=t.n(_),M=t(5),B=t.n(M),D=t(7),L=t.n(D),U=t(11),G=t.n(U),q=t(12),H=t.n(q),$=t(32),J=t.n($),W=t(33),Z=t.n(W),K=t(13),X=t.n(K),Y=t(34),Q=t.n(Y),V=t(35),nn=t.n(V),en=t(36),tn=t.n(en),rn=t(37),on=t.n(rn),an=(t(62),t(38)),ln=t.n(an),cn=t(39),un=t.n(cn),sn=t(40),fn=t.n(sn),dn=t(41),pn=t.n(dn),mn=t(42),bn=t.n(mn),gn=t(43),hn=t.n(gn),vn=t(44),yn=t.n(vn),xn=t(45),On=t.n(xn),wn=t(46),En=t.n(wn),kn={lock:k.a,"lock-open":S.a,"file-undo":C.a,"chevron-double-left":N.a,"chevron-double-right":I.a,"chevron-left":R.a,"chevron-right":F.a,"chevron-down":B.a,"chevron-up":L.a,pause:G.a,play:H.a,replay:J.a,check:Z.a,stop:X.a,delete:Q.a,undo:nn.a,alert:tn.a,database:on.a,tools:ln.a,cog:un.a,close:fn.a,cat:pn.a,upload:bn.a,trash:hn.a,pencil:yn.a,dashboard:On.a,search:En.a};function jn(){return(jn=Object.assign||function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n}).apply(this,arguments)}function Sn(n,e){if(null==n)return{};var t,r,o=function(n,e){if(null==n)return{};var t,r,o={},a=Object.keys(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}function Pn(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n display: inline-block;\n box-sizing: border-box;\n height: 30px;\n min-width: 6em;\n border: none;\n border-radius: 4px;\n text-align: center;\n font-family: ",";\n font-size: ",";\n padding: 0 15px;\n\n background-color: ",";\n color: white;\n transition: background-color .10s, opacity .25s;\n\n :not([disabled]):hover {\n cursor: pointer;\n background-color: ",";\n }\n\n :disabled {\n opacity: 0.35;\n }\n\n :focus {\n outline: none;\n }\n\n &.has-icon {\n align-items: center;\n display: inline-flex;\n padding: 2.5px 6px 2.5px 4px;\n }\n\n &.secondary {\n background-color: ",";\n border: 1px solid ",";\n color: ",";\n\n &:hover {\n background-color: ",";\n }\n }\n\n &.danger {\n background-color: ",";\n border-color: ",";\n\n\t &:hover {\n\t\t background-color: ",";\n\t }\n }\n\n &.success {\n background-color: ",";\n border-color: ",";\n\n\t &:hover {\n\t\t background-color: ",";\n\t }\n }\n\n & + button {\n margin-left: .25rem;\n }\n\n ","\n"]);return Pn=function(){return n},n}var Cn=Object(v.a)((function(n){var e=n.className,t=n.icon,r=void 0===t?null:t,a=n.onClick,i=n.disabled,l=void 0!==i&&i,c=n.color,u=void 0===c?null:c,s=n.children,f=Sn(n,["className","icon","onClick","disabled","color","children"]),d=!!r,p="nui-button ".concat(e||"").concat(d?" has-icon":""," ").concat(u?"custom-color":"");return o.a.createElement("button",jn({type:"button",className:p,onClick:a,disabled:l},f),d&&o.a.createElement(w.Icon,{icon:"string"==typeof r?kn[r]||null:r,width:"24",height:"24",style:{marginRight:"4px"}}),o.a.createElement("span",null,s))}))(Pn(),O.fontFamily,O.fontSizeText,O.blue,Object(y.a)(.1,O.blue),O.lightBlue,O.blue,O.blue,Object(y.a)(.1,O.lightBlue),O.red,O.red,Object(y.a)(.1,O.red),O.green,O.green,Object(y.a)(.1,O.green),(function(n){return zn(n.color)})),zn=function(n){if(n)return"\n &.custom-color {\n background-color: ".concat(n,";\n border: 1px solid ").concat(n,";\n\n &:hover {\n background-color: ").concat(Object(y.a)(.1,n),";\n }\n }\n ")},Nn=function(n){return o.a.createElement(Cn,n)};function An(){return(An=Object.assign||function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n}).apply(this,arguments)}function In(n,e){if(null==n)return{};var t,r,o=function(n,e){if(null==n)return{};var t,r,o={},a=Object.keys(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}function Tn(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n background-color: ",";\n position: relative;\n border-radius: 10px;\n color: ",";\n font-family: ",";\n font-size: 9px;\n line-height: 10px;\n padding: 5px 8px;\n text-transform: uppercase;\n text-decoration: none;\n\n &:hover {\n color: ",";\n background-color: #f78c1f;\n }\n\n &.inline {\n display: inline;\n margin-left: 5px;\n vertical-align: middle;\n }\n"]);return Tn=function(){return n},n}Nn.propTypes={className:u.a.oneOf(["primary","secondary","danger","success"]),disabled:u.a.bool,icon:u.a.oneOfType([u.a.instanceOf(w.IconifyIcon),u.a.oneOf(["setting","edit","trash"])]),color:u.a.string,onClick:u.a.func.isRequired},Nn.defaultProps={className:"primary",disabled:!1,icon:null,color:null,onClick:function(){}};var Rn=v.a.a(Tn(),O.yellow,O.white,O.fontFamily,O.white),_n=function(n){var e=n.show,t=void 0===e||e,r=n.className,a=In(n,["show","className"]);return t?o.a.createElement(Rn,An({href:"https://store.meowapps.com",target:"_blank",className:"".concat(r||"")},a),"Pro Only"):null},Fn=function(n){return o.a.createElement(_n,n)};Fn.propTypes={show:u.a.bool,className:u.a.string},Fn.defaultProps={show:!0,className:void 0};var Mn=t(21),Bn=t.n(Mn);function Dn(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||Ln(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ln(n,e){if(n){if("string"==typeof n)return Un(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);return"Object"===t&&n.constructor&&(t=n.constructor.name),"Map"===t||"Set"===t?Array.from(n):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Un(n,e):void 0}}function Un(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}var Gn=function(){var n=Object(r.useRef)(),e=Dn(Object(r.useState)({}),2),t=e[0],o=e[1];return Object(r.useEffect)((function(){if(n&&n.current){var e=new ResizeObserver((function(n){var e=n[0];e.contentRect&&o({width:e.contentRect.left+e.contentRect.right,height:e.contentRect.top+e.contentRect.bottom})}));return e.observe(n.current),function(){e.unobserve(n.current)}}}),[]),{ref:n,width:t.width?t.width:0,height:t.height?t.height:0}},qn=function(n){var e=Object(r.useRef)(),t=function(t){n&&!e.current.contains(t.target)&&n()};return Object(r.useEffect)((function(){return document.addEventListener("mousedown",t),function(){document.removeEventListener("mousedown",t)}})),e};new Bn.a({concurrency:1,autoStart:!1});function Hn(){var n=Xn(["\n align-items: center;\n background-color: ",";\n border: none;\n box-sizing: border-box;\n color: white;\n display: flex;\n font-family: ",";\n font-size: ",";\n width: 100%;\n padding: 8px 15px 8px 15px;\n text-align: center;\n transition: background-color .10s, opacity .25s;\n\n :not([disabled]):hover {\n cursor: pointer;\n background-color: ",";\n }\n\n :disabled:not(.is-pro) {\n opacity: 0.35;\n }\n\n :focus {\n outline: none;\n }\n\n &.is-pro {\n background-color: ",";\n justify-content: space-between;\n }\n"]);return Hn=function(){return n},n}function $n(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||function(n,e){if(!n)return;if("string"==typeof n)return Jn(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);"Object"===t&&n.constructor&&(t=n.constructor.name);if("Map"===t||"Set"===t)return Array.from(n);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Jn(n,e)}(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Jn(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function Wn(){var n=Xn(["\n position: relative;\n display: block;\n margin-top: 18px;\n background-color: ",";\n position: absolute;\n z-index: 10;\n box-shadow: ",';\n\n &:before {\n content: "";\n position: absolute;\n top: -18px;\n left: 50%;\n margin-left: -8px;\n border: 8px solid transparent;\n border-bottom: 10px solid ',";\n }\n"]);return Wn=function(){return n},n}function Zn(){var n=Xn(["\n align-items: center;\n background-color: ",";\n border: none;\n border-radius: 4px;\n box-sizing: border-box;\n color: white;\n display: inline-flex;\n justify-content: space-between;\n font-family: ",";\n font-size: ",";\n height: 30px;\n min-width: 6em;\n padding: 0px 10px;\n text-align: center;\n transition: background-color .10s, opacity .25s;\n\n :not([disabled]):hover {\n cursor: pointer;\n background-color: ",";\n }\n\n :disabled {\n opacity: 0.35;\n }\n\n :focus {\n outline: none;\n }\n\n & + button {\n margin-left: .25rem;\n }\n"]);return Zn=function(){return n},n}function Kn(){var n=Xn(["\n display: inline-block;\n"]);return Kn=function(){return n},n}function Xn(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}var Yn=v.a.div(Kn()),Qn=v.a.button(Zn(),O.blue,O.fontFamily,O.fontSizeText,Object(y.a)(.1,O.blue)),Vn=v.a.div(Wn(),O.blue,O.lightShadow,O.blue),ne=function(n){var e=n.title,t=n.disabled,r=void 0!==t&&t,a=n.isPro,i=void 0!==a&&a,l=n.style,c=void 0===l?{}:l,u=$n(o.a.useState(!1),2),s=u[0],f=u[1],d=qn((function(){f(!1)})),p=Gn(),m=p.ref,b=p.width,g=function(){f(!s)},h=o.a.Children.map(n.children,(function(n){return o.a.cloneElement(n,{isPro:i,disabled:n.props.disabled||r,onClick:function(){n.props.onClick&&n.props.onClick(),g()}})}));return o.a.createElement(Yn,{ref:d},o.a.createElement(Qn,{ref:m,type:"button",disabled:r,onClick:g,style:c},o.a.createElement("span",null,e),o.a.createElement(w.Icon,{icon:B.a,width:"24",height:"24",style:{marginLeft:"4px"}})),s&&o.a.createElement(Vn,{style:{transform:"translateX(calc(-50% + ".concat(b/2,"px))")}},h))},ee=v.a.button(Hn(),O.blue,O.fontFamily,O.fontSizeText,Object(y.a)(.1,O.blue),O.proGray),te=function(n){var e=n.onClick,t=n.children,r=n.isPro,a=n.requirePro,i=void 0!==a&&a,l=n.disabled,c=i&&!r;return o.a.createElement(ee,{type:"button",className:c?"is-pro":"",onClick:e,disabled:l||c},o.a.createElement("span",null,t),c&&!r&&o.a.createElement(Fn,null))},re=function(n){return o.a.createElement(ne,n)},oe=function(n){return o.a.createElement(te,n)};function ae(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||ie(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ie(n,e){if(n){if("string"==typeof n)return le(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);return"Object"===t&&n.constructor&&(t=n.constructor.name),"Map"===t||"Set"===t?Array.from(n):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?le(n,e):void 0}}function le(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function ce(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n position: relative;\n background: #f1f1f1;\n margin-left: -20px;\n background-color: rgb(30 124 186 / 10%);\n padding-bottom: 50px;\n margin-bottom: -26px;\n\n .neko-rest-error {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: #1e232deb;\n z-index: 100;\n\n .container {\n color: white;\n padding: 5px 20px 15px 20px;\n min-width: 480px;\n max-width: 600px;\n border-radius: 20px;\n background: #883131;\n margin-left: 50%;\n transform: translateX(-50%);\n margin-top: 100px;\n\n h3 {\n color: white;\n }\n\n .neko-debug {\n padding: 5px 10px;\n background: #692426;\n border-radius: 10px;\n\n * {\n margin: 0px;\n padding: 0px;\n } \n }\n }\n }\n"]);return ce=function(){return n},n}re.propTypes={title:u.a.string,disabled:u.a.bool,isPro:u.a.bool},re.defaultProps={title:void 0,disabled:!1,isPro:!1},oe.propTypes={onClick:u.a.func.isRequired,requirePro:u.a.bool},oe.defaultProps={onClick:function(){},requirePro:!1};var ue=v.a.div(ce()),se=function(n){var e=n.className,t=n.children,a=n.nekoErrors,i=void 0===a?[]:a,l=n.style,c=void 0===l?{}:l,u=ae(Object(r.useState)(!1),2),s=u[0],f=u[1],d=ae(Object(r.useState)(!1),2),p=d[0],m=d[1];if(i&&!s){var b,g=function(n,e){var t;if("undefined"==typeof Symbol||null==n[Symbol.iterator]){if(Array.isArray(n)||(t=ie(n))||e&&n&&"number"==typeof n.length){t&&(n=t);var r=0,o=function(){};return{s:o,n:function(){return r>=n.length?{done:!0}:{done:!1,value:n[r++]}},e:function(n){throw n},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){t=n[Symbol.iterator]()},n:function(){var n=t.next();return i=n.done,n},e:function(n){l=!0,a=n},f:function(){try{i||null==t.return||t.return()}finally{if(l)throw a}}}}(i);try{for(g.s();!(b=g.n()).done;){var h=b.value;if(h){f(h);break}}}catch(n){g.e(n)}finally{g.f()}}return o.a.createElement(ue,{className:e||"",style:c},s&&o.a.createElement("div",{className:"neko-rest-error"},o.a.createElement("div",{className:"container"},!p&&o.a.createElement(o.a.Fragment,null,o.a.createElement("h3",null,"The Rest API is disabled or broken 😢"),o.a.createElement("p",null,"The Rest API is required for this plugin to work. It is enabled in WordPress by default since December 2016 and used by the Gutenberg Editor since 2019. In short, it allows more robustness and a much cleaner infrastructure. Soon, Wordpress will entirely depends on it, so it is important to keep it enabled."),o.a.createElement("p",null,o.a.createElement("i",null,"Last but not least: check your PHP Error Logs and your Debugging Console.")),o.a.createElement("p",{className:"neko-debug"},o.a.createElement("small",null,"URL: ",s.url,o.a.createElement("br",null),"CODE: ",s.code,o.a.createElement("br",null),"MESSAGE: ",s.message,o.a.createElement("br",null)))),s.body&&p&&o.a.createElement("p",{className:"neko-debug"},o.a.createElement("div",{dangerouslySetInnerHTML:{__html:s.body}})),s.body&&o.a.createElement(Nn,{color:"#a94242",onClick:function(){return m(!p)}},p?"Hide":"Display"," response from server"),o.a.createElement(Nn,{color:"#a94242",onClick:function(){window.open("https://meowapps.com/debugging-wordpress/","_blank")}},"Learn about WordPress Debugging"))),t)},fe=function(n){return o.a.createElement(se,n)};function de(n,e){if(null==n)return{};var t,r,o=function(n,e){if(null==n)return{};var t,r,o={},a=Object.keys(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}function pe(){var n=he(["\n font-family: ",";\n font-size: ",";\n line-height: normal;\n margin: 0;\n padding: 0;\n"]);return pe=function(){return n},n}function me(){var n=he(["\n font-family: ",";\n font-size: ",";\n line-height: normal;\n margin: 16px 0 24px;\n padding: 0;\n"]);return me=function(){return n},n}function be(){var n=he(["\n font-family: ",";\n font-size: ",";\n font-weight: normal;\n line-height: normal;\n margin-top: 0;\n margin-bottom: 16px;\n padding: 0;\n"]);return be=function(){return n},n}function ge(){var n=he(["\n font-family: ",";\n font-weight: normal;\n font-size: ",";\n line-height: normal;\n margin-top: 0;\n margin-bottom: 16px;\n padding: 0;\n"]);return ge=function(){return n},n}function he(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}fe.propTypes={className:u.a.string,style:u.a.object,nekoErrors:u.a.bool},fe.defaultProps={className:void 0,style:{},nekoErrors:!1};var ve=v.a.h1(ge(),O.fontFamily,O.fontSizeH1),ye=v.a.h2(be(),O.fontFamily,O.fontSizeH2),xe=v.a.p(me(),O.fontFamily,O.fontSizeText),Oe=v.a.span(pe(),O.fontFamily,O.fontSizeText),we=function(n){var e=n.children,t=de(n,["children"]);return n.h1?o.a.createElement(ve,t,e):n.h2?o.a.createElement(ye,t,e):n.p?o.a.createElement(xe,t,e):o.a.createElement(Oe,t,e)},Ee=function(n){return o.a.createElement(we,n)};function ke(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n font-size: ",";\n margin-bottom: 15px;\n \n .nui-block-title {\n color: ",";\n padding: 5px 10px;\n margin-bottom: 5px;\n }\n\n .nui-block-content {\n background-color: #f1f1f1;\n padding: 26px;\n box-shadow: 0px 2px 5px 0px #0000004a;\n border-radius: 10px;\n\n p:first-child {\n margin-top: 0;\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &.primary {\n padding: 8px;\n background-color: ",";\n\n .nui-block-title {\n color: ",";\n }\n\n .nui-block-content {\n background-color: ",";\n }\n }\n"]);return ke=function(){return n},n}Ee.propTypes={h1:u.a.any,h2:u.a.any,p:u.a.any},Ee.defaultProps={h1:void 0,h2:void 0,p:void 0};var je=v.a.div(ke(),O.fontSizeText,O.blue,O.blue,O.white,O.white),Se=function(n){var e=n.title,t=n.children,r=n.className,a=n.busy,i=void 0!==a&&a,l=n.style,c=void 0===l?{}:l;return o.a.createElement(je,{className:"nui-block "+(r||""),style:c},o.a.createElement(h,{busy:i},o.a.createElement(Ee,{h2:!0,className:"nui-block-title"},e),o.a.createElement("div",{className:"nui-block-content"},t)))},Pe=function(n){return o.a.createElement(Se,n)};function Ce(){var n=Ne(["\n justify-content: flex-start;\n background-color: ",";\n display: flex;\n align-items: center;\n padding: 8px 10px;\n\n &.align-right {\n justify-content: flex-end;\n }\n"]);return Ce=function(){return n},n}function ze(){var n=Ne(["\n font-size: ",";\n font-family: ",";\n background-color: ",";\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n margin-bottom: 25px;\n\n &.primary {\n background-color: ",";\n }\n\n p:first-child {\n margin-top: 0px;\n }\n\n p:last-child {\n margin-bottom: 0px;\n }\n\n .content {\n padding: 20px 20px;\n }\n"]);return ze=function(){return n},n}function Ne(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}Pe.propTypes={title:u.a.string,className:u.a.oneOf(["","primary"]),style:u.a.object},Pe.defaultProps={title:void 0,className:"",style:{}};var Ae=v.a.div(ze(),O.fontSizeText,O.fontFamily,O.white,O.blue),Ie=v.a.div(Ce(),O.lightGray),Te=function(n){var e=n.children,t=n.header,r=n.headerAlign,a=void 0===r?"left":r,i=n.footer,l=n.footerAlign,c=void 0===l?"right":l,u=n.className,s=n.style,f=void 0===s?{}:s;return o.a.createElement(Ae,{className:u||"",style:f},t&&o.a.createElement(Ie,{className:"align-".concat(a)},t),o.a.createElement("div",{className:"content"},e),i&&o.a.createElement(Ie,{className:"align-".concat(c)},i))},Re=function(n){return o.a.createElement(Te,n)};function _e(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n display: flex;\n font-family: ",";\n\n > .nui-settings-head {\n font-family: ",";\n font-size: 14px;\n line-height: 17px;\n width: 120px;\n margin-right: 16px;\n }\n\n /* Select, Checkbox, Input need to be a bit higher to be in front of the settings title */\n\n .nui-settings-content > .nui-select:first-child {\n position: relative;\n margin-top: -5px;\n }\n \n .nui-settings-content > .nui-checkbox:first-child {\n position: relative;\n margin-top: -5px;\n }\n\n .nui-settings-content > .nui-checkbox:first-child {\n position: relative;\n margin-top: -5px;\n }\n\n .nui-settings-content > .nui-button:first-child {\n position: relative;\n margin-top: -5px;\n }\n\n .nui-settings-content > div:first-child > .neko-input {\n position: relative;\n margin-top: -5px;\n }\n\n > .nui-settings-content {\n flex: 1;\n\n &.nui-settings-content-align-right {\n flex: none;\n margin-left: auto;\n }\n\n input[type=text] {\n width: 100%;\n }\n\n\n }\n\n & + div {\n margin-top: 15px;\n }\n"]);return _e=function(){return n},n}Re.propTypes={header:u.a.element,headerAlign:u.a.oneOf(["left","right"]),footer:u.a.element,footerAlign:u.a.oneOf(["left","right"]),className:u.a.string,style:u.a.object},Re.defaultProps={header:void 0,headerAlign:"left",footer:void 0,footerAlign:"right",className:void 0,style:{}};var Fe=Object(v.a)((function(n){var e=n.title,t=void 0===e?"":e,r=n.contentAlign,a=void 0===r?"left":r;return o.a.createElement("div",{className:n.className||""},t?o.a.createElement("div",{className:"nui-settings-head"},t):null,o.a.createElement("div",{className:"nui-settings-content nui-settings-content-align-".concat(a)},n.children))}))(_e(),O.fontFamily,O.fontFamily),Me=function(n){return o.a.createElement(Fe,n)};function Be(){var n=Le(["\n background-color: ",";\n color: white;\n"]);return Be=function(){return n},n}function De(){var n=Le(["\n margin: 20px;\n padding: 14px;\n background-color: white;\n box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);\n\n > * + * {\n /* Base margin between child elements */\n margin-top: 14px;\n }\n"]);return De=function(){return n},n}function Le(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}Me.propTypes={title:u.a.string,className:u.a.string,contentAlign:u.a.string},Me.defaultProps={title:"",className:void 0,contentAlign:"left"};var Ue=v.a.div(De()),Ge=Object(v.a)((function(n){return n.children?o.a.createElement("div",{className:n.className},n.children):null}))(Be(),O.blue),qe=function(n){return o.a.createElement(Ue,{className:"window"},o.a.createElement(Ge,null,n.title),n.children)},He=function(n){return o.a.createElement(qe,n)};function $e(){return($e=Object.assign||function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n}).apply(this,arguments)}function Je(n,e){if(null==n)return{};var t,r,o=function(n,e){if(null==n)return{};var t,r,o={},a=Object.keys(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}function We(){var n=Ke(["\n flex: 1;\n padding: 32px 30px;\n\n .nui-block:not(:first-child) {\n margin-top: -20px;\n }\n\n .nui-block:last-child {\n margin-bottom: 0px;\n }\n\n &.minimal {\n padding: 0;\n }\n\n &.full {\n flex-basis: 100%;\n padding-bottom: 0;\n }\n\n & + .full {\n padding-bottom: 32px;\n padding-top: 0;\n }\n\n &:not(.full) + div:not(.full) {\n padding-left: 0;\n }\n"]);return We=function(){return n},n}function Ze(){var n=Ke(["\n display: flex;\n flex-wrap: wrap;\n"]);return Ze=function(){return n},n}function Ke(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}He.propTypes={title:u.a.string},He.defaultProps={title:void 0};var Xe=v.a.div(Ze()),Ye=v.a.div(We()),Qe=function(n){return o.a.createElement(Xe,null,n.children)},Ve=function(n){var e=n.full,t=n.minimal,r=Je(n,["full","minimal"]),a=e?"full":"";return a+=t?" minimal":"",o.a.createElement(Ye,$e({className:a},r),n.children)},nt=function(n){return o.a.createElement(Qe,n)},et=function(n){return o.a.createElement(Ve,n)};nt.propTypes={},nt.defaultProps={},et.propTypes={full:u.a.any},et.defaultProps={full:void 0};var tt=t(15),rt=t.n(tt),ot=t(16),at=t.n(ot);function it(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n font-family: ",";\n\n &.disabled {\n color: ",";\n\n label {\n cursor: default;\n }\n }\n\n input {\n display: none;\n }\n\n label {\n cursor: pointer;\n display: flex;\n }\n .nui-checkbox-check-container {\n flex-basis: 30px;\n }\n .nui-checkbox-inner-container {\n margin-top: 1.5px;\n margin-left: 4px;\n\n .label {\n display: block;\n font-size: 14px;\n line-height: 17px;\n padding-top: 4.5px;\n padding-bottom: 4px;\n }\n \n .description {\n display: block;\n font-size: 13px;\n line-height: 14px;\n color: #8a8a8a;\n\n * {\n font-size: 13px;\n line-height: inherit;\n margin: 0;\n }\n }\n }\n"]);return it=function(){return n},n}var lt=Object(v.a)((function(n){var e=n.id,t=n.name,r=n.checked,a=void 0!==r&&r,i=n.onChange,l=n.label,c=n.description,u=n.isPro,s=n.disabled,f=n.requirePro,d=void 0!==f&&f&&!u,p=s||d,m=p?"disabled":"";return o.a.createElement("div",{className:["nui-checkbox",n.className,m].join(" ")},o.a.createElement("input",{id:e,name:t,type:"checkbox",defaultChecked:!1,onClick:function(){i?i(!a,e):console.log("The onChange handler it not set for this checkbox.",n)},disabled:p}),o.a.createElement("label",{htmlFor:e},o.a.createElement("div",{className:"nui-checkbox-check-container"},o.a.createElement(w.Icon,{icon:a?at.a:rt.a,width:"30px",height:"30px",color:p?O.disabledForm:O.blue})),o.a.createElement("div",{className:"nui-checkbox-inner-container"},o.a.createElement("span",{className:"label"},l,o.a.createElement(Fn,{className:"inline",show:d})),c?o.a.createElement("small",{className:"description"},c):null)))}))(it(),O.fontFamily,O.disabledForm),ct=function(n){return o.a.createElement(lt,n)};function ut(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n"]);return ut=function(){return n},n}ct.propTypes={id:u.a.string,name:u.a.string,checked:u.a.bool,label:u.a.string,description:u.a.string,isPro:u.a.bool,requirePro:u.a.bool},ct.defaultProps={id:void 0,name:void 0,checked:!1,label:void 0,description:void 0,isPro:!1,requirePro:!1};var st=Object(v.a)((function(n){var e=n.name,t=(n.max,n.isPro),r=void 0!==t&&t;return o.a.Children.map(n.children,(function(n){return n.props.name?n:o.a.cloneElement(n,{name:e,isPro:r})}))}))(ut()),ft=function(n){return o.a.createElement(st,n)};function dt(){return(dt=Object.assign||function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n}).apply(this,arguments)}function pt(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||function(n,e){if(!n)return;if("string"==typeof n)return mt(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);"Object"===t&&n.constructor&&(t=n.constructor.name);if("Map"===t||"Set"===t)return Array.from(n);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return mt(n,e)}(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function mt(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function bt(n,e){if(null==n)return{};var t,r,o=function(n,e){if(null==n)return{};var t,r,o={},a=Object.keys(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}function gt(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n .neko-input {\n font-family: ",";\n font-size: ",";\n border: 2px solid ",";\n box-sizing: border-box;\n height: 30px;\n background: rgb(0 124 186 / 10%);\n padding: 0 10px;\n width: 100%;\n\n &.natural {\n border-color: gray;\n border-width: 1px;\n }\n\n &::placeholder {\n color: rgba(0, 0, 0, 0.25);\n }\n\n :focus {\n background-color: white;\n }\n\n :read-only {\n background-color: ",";\n }\n }\n\n .neko-input-description {\n font-family: ",";\n font-size: ",";\n line-height: 14px;\n margin-top: 8px;\n margin-bottom: 0;\n }\n"]);return gt=function(){return n},n}ft.propTypes={name:u.a.string,mas:u.a.number,isPro:u.a.bool},ft.defaultProps={name:void 0,mas:-1,isPro:!1};var ht=Object(v.a)((function(n){var e=n.id,t=n.name,a=n.value,i=void 0===a?"":a,l=n.description,c=n.placeholder,u=void 0===c?"":c,s=n.onEnter,f=void 0===s?null:s,d=n.readOnly,p=void 0!==d&&d,m=n.type,b=void 0===m?"text":m,g=n.step,h=void 0===g?1:g,v=n.min,y=void 0===v?1:v,x=n.max,O=void 0===x?999:x,w=n.maxLength,E=void 0===w?3:w,k=n.className,j=n.style,S=n.natural,P=void 0!==S&&S,C=bt(n,["id","name","value","description","placeholder","onEnter","readOnly","type","step","min","max","maxLength","className","style","natural"]),z=pt(Object(r.useState)(i),2),N=z[0],A=z[1],I=!!n.onChange;Object(r.useEffect)((function(){I||A(i)}),[i]);var T=function(t){I?n.onChange(t.target.value,e):A(t.target.value,e)},R=function(t){f&&"Enter"===event.key&&(t.preventDefault(),n.onEnter(t.target.value,e))},_=function(t){n.onBlur&&i!==t.target.value&&n.onBlur(t.target.value,e)},F="neko-input ".concat(P?" natural":"");return o.a.createElement("div",{className:[k].join(" "),style:j},"number"===b?o.a.createElement("input",dt({className:[F].join(" ")},C,{id:e,name:t,value:I?i:N,type:b,step:h,min:y,max:O,maxlength:E,placeholder:u,onChange:T,onKeyPress:R,onBlur:_,readOnly:p})):o.a.createElement("input",dt({className:[F].join(" ")},C,{id:e,name:t,value:I?i:N,type:b,spellcheck:"false",placeholder:u,onChange:T,onKeyPress:R,onBlur:_,readOnly:p})),l&&o.a.createElement("p",{className:"neko-input-description"},l))}))(gt(),O.fontFamily,O.fontSizeText,O.blue,O.gray,O.fontFamily,O.fontSizeSmall),vt=function(n){return o.a.createElement(ht,n)};function yt(){return(yt=Object.assign||function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n}).apply(this,arguments)}function xt(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||function(n,e){if(!n)return;if("string"==typeof n)return Ot(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);"Object"===t&&n.constructor&&(t=n.constructor.name);if("Map"===t||"Set"===t)return Array.from(n);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Ot(n,e)}(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ot(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function wt(n,e){if(null==n)return{};var t,r,o=function(n,e){if(null==n)return{};var t,r,o={},a=Object.keys(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}function Et(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n .neko-textarea {\n font-family: ",";\n font-size: ",";\n border: 2px solid ",";\n box-sizing: border-box;\n height: 160px;\n background: rgb(0 124 186 / 10%);\n padding: 0 10px;\n width: 100%;\n\n &::placeholder {\n color: rgba(0, 0, 0, 0.25);\n }\n\n :focus {\n background-color: white;\n }\n\n :read-only {\n background-color: ",";\n }\n }\n\n .neko-input-description {\n font-family: ",";\n font-size: ",";\n line-height: 14px;\n margin-top: 8px;\n margin-bottom: 0;\n }\n"]);return Et=function(){return n},n}vt.propTypes={id:u.a.string,type:u.a.oneOf(["number","text"]),name:u.a.string,value:u.a.string,description:u.a.string,placeholder:u.a.string,onChange:u.a.func,onEnter:u.a.func,onBlur:u.a.func,readOnly:u.a.bool,step:u.a.number,min:u.a.number,max:u.a.number,maxLength:u.a.number,natural:u.a.bool},vt.defaultProps={id:void 0,type:"text",name:void 0,value:"",description:void 0,placeholder:"",onChange:void 0,onEnter:void 0,onBlur:void 0,readOnly:!1,step:1,min:1,max:999,maxLength:3,natural:!1};var kt=Object(v.a)((function(n){var e=n.id,t=n.name,a=n.value,i=void 0===a?"":a,l=n.description,c=n.placeholder,u=void 0===c?"":c,s=n.onEnter,f=void 0===s?null:s,d=n.readOnly,p=void 0!==d&&d,m=(n.maxLength,n.className),b=n.style,g=wt(n,["id","name","value","description","placeholder","onEnter","readOnly","maxLength","className","style"]),h=xt(Object(r.useState)(i),2),v=h[0],y=h[1],x=!!n.onChange;Object(r.useEffect)((function(){x||y(i)}),[i]);return o.a.createElement("div",{className:[m].join(" "),style:b},o.a.createElement("textarea",yt({className:"neko-textarea"},g,{id:e,name:t,spellCheck:"false",placeholder:u,onChange:function(t){x?n.onChange(t.target.value,e):y(t.target.value,e)},onKeyPress:function(t){f&&"Enter"===event.key&&(t.preventDefault(),n.onEnter(t.target.value,e))},onBlur:function(t){n.onBlur&&i!==t.target.value&&n.onBlur(t.target.value,e)},readOnly:p}),x?i:v),l&&o.a.createElement("p",{className:"neko-input-description"},l))}))(Et(),O.fontFamily,O.fontSizeText,O.blue,O.gray,O.fontFamily,O.fontSizeSmall),jt=function(n){return o.a.createElement(kt,n)};jt.propTypes={id:u.a.string,name:u.a.string,value:u.a.string,description:u.a.string,placeholder:u.a.string,onChange:u.a.func,onEnter:u.a.func,onBlur:u.a.func,readOnly:u.a.bool},jt.defaultProps={id:void 0,name:void 0,value:"",description:void 0,placeholder:"",onChange:void 0,onEnter:void 0,onBlur:void 0,readOnly:!1};var St=t(50),Pt=t.n(St),Ct=t(51),zt=t.n(Ct);function Nt(){var n=Ut(["\n background-color: ",";\n cursor: pointer;\n font-family: ",";\n padding: 8px 12px;\n\n &:hover {\n filter: brightness(80%);\n }\n\n input {\n display: none;\n }\n\n .option {\n align-items: center;\n color: ",";\n display: flex;\n justify-content: space-between;\n font-family: ",";\n font-size: 14px;\n line-height: 17px;\n }\n\n &.disabled {\n background-color: rgb(224 156 54);\n pointer-events: none;\n\n .option {\n color: rgb(255 255 255 / 35%);\n }\n }\n"]);return Nt=function(){return n},n}function At(){var n=Ut(["\n font-family: ",";\n margin-bottom: 6px;\n\n input {\n display: none;\n }\n\n label {\n cursor: pointer;\n display: flex;\n }\n\n .inner-container {\n margin-left: 4px;\n\n .label {\n display: block;\n font-size: 14px;\n line-height: 17px;\n padding-top: 4.5px;\n padding-bottom: 4px;\n }\n .description {\n display: block;\n font-size: 12px;\n }\n }\n\n &.disabled {\n color: ",";\n\n label {\n cursor: default;\n }\n }\n"]);return At=function(){return n},n}function It(){return(It=Object.assign||function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n}).apply(this,arguments)}function Tt(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||function(n,e){if(!n)return;if("string"==typeof n)return Rt(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);"Object"===t&&n.constructor&&(t=n.constructor.name);if("Map"===t||"Set"===t)return Array.from(n);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Rt(n,e)}(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Rt(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function _t(n,e){if(null==n)return{};var t,r,o=function(n,e){if(null==n)return{};var t,r,o={},a=Object.keys(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}function Ft(){var n=Ut(["\n background-color: ",";\n"]);return Ft=function(){return n},n}function Mt(){var n=Ut(["\n border-radius: 8px;\n overflow: hidden;\n padding-top: 28px;\n position: absolute;\n top: 0;\n z-index: 10;\n width: 100%;\n transition: all 0.2s ease-in;\n\n &.hidden {\n opacity: 0;\n }\n"]);return Mt=function(){return n},n}function Bt(){var n=Ut(["\n display: block;\n margin-top: 5px;\n font-size: 13px;\n line-height: 14px;\n color: #8a8a8a;\n\n * {\n font-size: 13px;\n line-height: inherit;\n margin: 0;\n }\n"]);return Bt=function(){return n},n}function Dt(){var n=Ut(["\n align-items: center;\n background-color: ",";\n border: 2px solid ",";\n border-radius: 8px;\n display: flex;\n font-family: ",";\n font-size: 14px;\n padding: 0 5px 0 10px;\n box-sizing: border-box;\n height: 30px;\n\n .rightContent {\n align-items: center;\n display: flex;\n margin-left: auto;\n }\n"]);return Dt=function(){return n},n}function Lt(){var n=Ut(["\n border-radius: 8px;\n position: relative;\n user-select: none;\n cursor: pointer;\n\n &.show-options {\n background-color: ",";\n border-radius: 8px 8px 0 0;\n }\n"]);return Lt=function(){return n},n}function Ut(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}var Gt=v.a.div(Lt(),O.blue),qt=v.a.div(Dt(),O.white,O.blue,O.fontFamily),Ht=v.a.div(Bt()),$t=v.a.div(Mt()),Jt=v.a.div(Ft(),O.white),Wt=function(n){var e,t=n.id,a=n.name,i=n.value,l=n.scrolldown,c=void 0!==l&&l,u=n.isPro,s=void 0!==u&&u,f=n.onChange,d=_t(n,["id","name","value","scrolldown","isPro","onChange"]),p=null===(e=o.a.Children.toArray(n.children).find((function(n){return n.props.value===i||n.props.checked})))||void 0===e?void 0:e.props,m=(null==p?void 0:p.label)||"Select",b=(null==p?void 0:p.description)||n.description,g=(null==p?void 0:p.requirePro)||!1,h=Tt(Object(r.useState)(!1),2),v=h[0],y=h[1],x=c?qn((function(){y(!1)})):null,O=g&&!s,E=function(e){if(e!==i){if(!f)return void console.log("The onChange handler it not set for this checkbox.",n);f(e,t)}c&&y(!1)},k=o.a.Children.map(n.children,(function(n){return o.a.cloneElement(n,{name:n.props.name||a,checked:n.props.value===i||n.props.checked,onClick:E,scrolldown:c,isPro:s})}));return c?o.a.createElement(Gt,It({id:t,ref:x},d,{onClick:function(){return y(!v)},className:["nui-select",v?"show-options":""],childrenLength:k.length}),o.a.createElement(qt,null,m,o.a.createElement("div",{className:"rightContent"},O&&o.a.createElement(Fn,null),o.a.createElement(w.Icon,{icon:v?L.a:B.a,width:"24"}))),b&&o.a.createElement(Ht,null,b),v&&o.a.createElement($t,{className:v?"":"hidden"},o.a.createElement(Jt,null,[k]))):k},Zt=v.a.div(At(),O.fontFamily,O.disabledForm),Kt=v.a.div(Nt(),O.blue,O.fontFamily,O.white,O.fontFamily),Xt=function(n){var e=n.id,t=n.name,r=n.value,a=n.checked,i=n.label,l=n.description,c=n.onClick,u=n.scrolldown,s=n.isPro,f=void 0!==s&&s,d=n.requirePro,p=void 0!==d&&d&&!f,m=p?"disabled":"",b=o.a.createElement(Zt,{className:"nui-select ".concat(n.className||""," ").concat(m)},o.a.createElement("input",{id:e,name:t,type:"radio",value:r,defaultChecked:a,onClick:function(n){return c(n.target.value)},disabled:p}),o.a.createElement("label",{htmlFor:e},o.a.createElement(w.Icon,{icon:a?zt.a:Pt.a,width:"24px",color:p?O.disabledForm:O.blue}),o.a.createElement("div",{className:"inner-container"},o.a.createElement("span",{className:"label"},i,o.a.createElement(Fn,{className:"inline",style:{top:-1},show:p})),l?o.a.createElement("small",{className:"description"},l):null))),g=o.a.createElement(Kt,{className:"nui-select ".concat(n.className||""," ").concat(m)},o.a.createElement("input",{id:e,name:t,type:"radio",value:r,defaultChecked:a,disabled:p}),o.a.createElement("div",{className:"option",onClick:function(){return c(r)}},i,o.a.createElement(Fn,{show:p})));return u?g:b},Yt=function(n){return o.a.createElement(Wt,n)};Yt.propTypes={id:u.a.string,name:u.a.string,description:u.a.string,scrolldown:u.a.bool,isPro:u.a.bool,onChange:u.a.func},Yt.propTypes={id:void 0,name:void 0,description:void 0,scrolldown:!1,isPro:!1,onChange:void 0};var Qt=function(n){return o.a.createElement(Xt,n)};Qt.propTypes={id:u.a.string,name:u.a.string,value:u.a.string,checked:u.a.bool,label:u.a.string,description:u.a.string,onClick:u.a.func,scrolldown:u.a.bool,isPro:u.a.bool,requirePro:u.a.bool},Qt.defaultProps={id:void 0,name:void 0,value:void 0,checked:!1,label:void 0,description:void 0,onClick:void 0,scrolldown:!1,isPro:!1,requirePro:!1};var Vt=t(17),nr=t.n(Vt),er=t(52),tr=t.n(er),rr=t(53),or=t.n(rr),ar=t(54),ir=t.n(ar);function lr(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||function(n,e){if(!n)return;if("string"==typeof n)return cr(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);"Object"===t&&n.constructor&&(t=n.constructor.name);if("Map"===t||"Set"===t)return Array.from(n);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return cr(n,e)}(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function cr(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function ur(){var n=pr(["\n margin-left: 5px;\n"]);return ur=function(){return n},n}function sr(){var n=pr(["\n border-left: 1px solid ",";\n margin-left: 12px;\n padding-left: 6px;\n\n &.no-line {\n border-left: 0;\n padding-left: 12px;\n }\n\n &.no-chevron {\n border-left: 0;\n margin-left: 0;\n padding-left: 0;\n }\n"]);return sr=function(){return n},n}function fr(){var n=pr(["\n height: 24px;\n width: 24px;\n"]);return fr=function(){return n},n}function dr(){var n=pr(["\n align-items: center;\n display: flex;\n margin-bottom: 8px;\n\n &.can-expand {\n cursor: pointer;\n }\n\n p {\n margin: 0 0 0 8px;\n }\n"]);return dr=function(){return n},n}function pr(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}var mr=function(n){var e=n.chevron,t=void 0===e||e;return o.a.Children.map(n.children,(function(n){return o.a.cloneElement(n,{chevron:t})}))},br=v.a.div(dr()),gr=v.a.div(fr()),hr=v.a.div(sr(),O.finderBorder),vr=v.a.div(ur()),yr=function(n){var e={gallery:or.a,tag:ir.a},t=n.title,r=n.chevron,a=n.rightElement,i=void 0===a?null:a,l=n.showRightElement,c=void 0!==l&&l,u=!n.icon,s=!!n.icon,f=!!n.children,d=lr(o.a.useState(!1),2),p=d[0],m=d[1],b=lr(o.a.useState((function(){return"string"==typeof n.icon&&Object.keys(e).includes(n.icon)?e[n.icon]:n.icon?n.icon:nr.a})),2),g=b[0],h=b[1],v=o.a.Children.map(n.children,(function(n){return o.a.cloneElement(n,{chevron:r})}));return o.a.createElement("div",null,o.a.createElement(br,{onClick:function(){(u||f)&&(s||h(p?nr.a:tr.a),m(!p))},onMouseEnter:n.onMouseEnter,onMouseLeave:n.onMouseLeave,className:"".concat(u||v?"can-expand":"")},r?u||v?o.a.createElement(w.Icon,{icon:p?B.a:F.a,width:"24",height:"24"}):o.a.createElement(gr,null):null,o.a.createElement(w.Icon,{icon:g,color:O.blue,width:"24",height:"24"}),o.a.createElement("p",null,t),c&&o.a.createElement(vr,null,i)),p&&o.a.createElement(hr,{className:"".concat(u?"":"no-line"," ").concat(r?"":"no-chevron")},v))},xr=function(n){return o.a.createElement(mr,n)};xr.propTypes={chevron:u.a.bool},xr.defaultProps={chevron:!0};var Or=function(n){return o.a.createElement(yr,n)};function wr(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n display: flex;\n width: 100%;\n height: 100%;\n max-width: 128px;\n max-height: 128px;\n\n & > * {\n width: 100%;\n height: auto;\n object-fit: contain;\n }\n"]);return wr=function(){return n},n}Or.propTypes={icon:u.a.oneOfType([u.a.instanceOf(w.IconifyIcon),u.a.oneOf(["gallery"])]),title:u.a.string},Or.defaultProps={icon:nr.a,title:void 0};var Er=v.a.div(wr()),kr=function(){return o.a.createElement(Er,null,o.a.createElement("svg",{width:"54",height:"38",viewBox:"0 0 54 38",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o.a.createElement("path",{d:"M11.3663 9.40518C9.2981 -3.25522 -0.310763 2.76769 2.5163 9.40518C2.5163 9.40518 8.29338 29.9322 22.3059 26.3677C36.3184 22.8031 23.9038 19.1156 23.9038 19.1156C23.9038 19.1156 13.4345 22.0656 11.3663 9.40518Z",fill:"#724024",stroke:"black",strokeWidth:"2.1869"}),o.a.createElement("path",{d:"M10.7517 8.0531C10.0142 10.7573 6.32673 12.1093 3.99131 11.2489C1.65589 10.3885 2.63923 13.8302 5.09756 14.9364C7.55589 16.0427 11.2434 14.1989 12.1038 12.4781C12.9642 10.7573 11.4892 5.34893 10.7517 8.0531Z",fill:"#B7782E"}),o.a.createElement("path",{d:"M14.0705 17.2718C13.8246 19.2385 9.64547 19.976 7.55589 19.8531C5.46631 19.7302 9.76839 23.5406 11.3663 23.5406C12.9642 23.5406 17.3892 21.2052 17.1434 19.2385C16.8976 17.2718 14.3163 15.3052 14.0705 17.2718Z",fill:"#B7782E"}),o.a.createElement("path",{d:"M17.5121 26.2448C18.6184 25.3843 20.9538 21.8198 19.8476 19.8531C18.7413 17.8864 22.4288 20.9593 22.4288 20.9593L21.6913 26.2448C21.6913 26.2448 16.4059 27.1052 17.5121 26.2448Z",fill:"#B7782E"}),o.a.createElement("path",{d:"M10.7517 8.0531C10.0142 10.7573 6.32673 12.1093 3.99131 11.2489C1.65589 10.3885 2.63923 13.8302 5.09756 14.9364C7.55589 16.0427 11.2434 14.1989 12.1038 12.4781C12.9642 10.7573 11.4892 5.34893 10.7517 8.0531Z",stroke:"black"}),o.a.createElement("path",{d:"M14.0705 17.2718C13.8246 19.2385 9.64547 19.976 7.55589 19.8531C5.46631 19.7302 9.76839 23.5406 11.3663 23.5406C12.9642 23.5406 17.3892 21.2052 17.1434 19.2385C16.8976 17.2718 14.3163 15.3052 14.0705 17.2718Z",stroke:"black"}),o.a.createElement("path",{d:"M17.5121 26.2448C18.6184 25.3843 20.9538 21.8198 19.8476 19.8531C18.7413 17.8864 22.4288 20.9593 22.4288 20.9593L21.6913 26.2448C21.6913 26.2448 16.4059 27.1052 17.5121 26.2448Z",stroke:"black"}),o.a.createElement("path",{d:"M11.3663 9.40518C9.2981 -3.25522 -0.310763 2.76769 2.5163 9.40518C2.5163 9.40518 8.29338 29.9322 22.3059 26.3677C36.3184 22.8031 23.658 19.4843 23.658 19.4843C23.658 19.4843 13.4345 22.0656 11.3663 9.40518Z",stroke:"black",strokeWidth:"2.1869"}),o.a.createElement("path",{d:"M25.3788 9.89685C25.3788 9.89685 21.3225 35.0947 21.9371 35.7093C22.5517 36.3239 27.4684 36.3239 28.083 35.7093C28.6975 35.0947 29.6523 22.5858 30.2955 21.9427C30.9386 21.2995 35.7226 33.1281 36.81 33.1281C37.8975 33.1281 43.2303 21.3567 43.8163 21.9427C44.4023 22.5287 45.2913 35.0947 45.9059 35.7093C46.5204 36.3239 51.3142 36.3239 51.9288 35.7093C52.5434 35.0947 48.9788 9.89685 48.9788 9.89685H42.9559C42.9559 9.89685 37.7934 21.9427 36.81 21.9427C35.8267 21.9427 31.4017 9.89685 31.4017 9.89685H25.3788Z",fill:"white",stroke:"black",strokeWidth:"2.1869"})))},jr=function(n){return o.a.createElement(kr,n)};function Sr(n){return(Sr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n})(n)}function Pr(){var n=zr(["\n position: absolute;\n overflow: hidden;\n top: 0; left: 0;\n height: 100%;\n background-color: ",";\n border-radius: 12px;\n text-align: center;\n padding: 0 10px;\n vertical-align: middle;\n color: white;\n font-family: ",";\n font-size: 13px;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: min-width .2s ease-out;\n\n background-size: 30px 30px;\n background-image: linear-gradient(135deg, rgba(255, 255, 255, .15) 25%,\n transparent 25%,\n transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,\n transparent 75%, transparent);\n animation: ",";\n\n @keyframes animate-stripes {\n 0% { background-position: 0 0; }\n 100% { background-position: 60px 0; }\n }\n"]);return Pr=function(){return n},n}function Cr(){var n=zr(["\n position: relative;\n box-sizing: border-box;\n height: 30px;\n background: linear-gradient(\n 180deg,\n rgba(0, 0, 0, 0.06) 0%,\n rgba(0, 0, 0, 0.02) 50%,\n rgba(0, 0, 0, 0.10) 100%\n );\n border-radius: 12px;\n\n .nui-progress-buttons {\n position: absolute;\n height: 100%;\n right: 0px;\n display: flex;\n align-items: center;\n padding-right: 5px;\n\n .nui-progress-button {\n border: none;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-left: 2px;\n border-radius: 100%;\n color: white;\n padding: 2px;\n width: 18px;\n height: 18px;\n background-color: ",";\n\n &:hover {\n background-color: ",";\n }\n\n &.stop {\n background: ",";\n\n &:hover {\n background-color: ",";\n }\n }\n }\n }\n"]);return Cr=function(){return n},n}function zr(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}jr.propTypes={},jr.defaultProps={};var Nr=Object(v.a)((function(n){var e=n.value,t=void 0===e?0:e,r=n.max,a=void 0===r?100:r,i=n.busy,l=void 0!==i&&i,c=n.status;t=Math.min(t,a);var u=parseFloat(t)/parseFloat(a);return o.a.createElement("div",{className:n.className},o.a.createElement(Ar,{ratio:u,busy:n.busy,status:c}),o.a.createElement("div",{className:"nui-progress-buttons"},l&&n.onPauseClick&&o.a.createElement("div",{className:"nui-progress-button pause",onClick:n.onPauseClick},n.paused?o.a.createElement(w.InlineIcon,{icon:H.a}):o.a.createElement(w.InlineIcon,{icon:G.a})),l&&n.onStopClick&&o.a.createElement("div",{className:"nui-progress-button stop",onClick:n.onStopClick},o.a.createElement(w.InlineIcon,{icon:X.a}))))}))(Cr(),O.blue,Object(y.a)(.1,O.blue),O.red,Object(y.a)(.1,O.red)),Ar=Object(v.a)((function(n){var e,t,r,a=isNaN(n.ratio)?0:parseInt(Math.round(100*n.ratio)),i=Sr(n.status),l="undefined"!==i?"string"===i?n.status:n.status(a):"".concat(a,"%");return o.a.createElement("div",{className:n.className,style:(e={minWidth:28},t="minWidth",r=a+"%",t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e)},o.a.createElement("div",null,l))}))(Pr(),O.progress,O.fontFamily,(function(n){return n.busy?"animate-stripes 1.6s linear infinite":"none"})),Ir=function(n){return o.a.createElement(Nr,n)};function Tr(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||function(n,e){if(!n)return;if("string"==typeof n)return Rr(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);"Object"===t&&n.constructor&&(t=n.constructor.name);if("Map"===t||"Set"===t)return Array.from(n);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Rr(n,e)}(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Rr(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function _r(){var n=Mr(["\n\tbackground-color: rgba(",", 0.8);\n\tborder-radius: 4px;\n\tcolor: ",";\n\tfont-family: ",";\n\tfont-weight: normal;\n\tmin-width: 180px;\n\tmax-width: 280px;\n\tfont-size: ",";\n\tpadding: 8px 12px;\n\tposition: absolute;\n \tmax-width: 280px;\n\tdisplay: ",';\n\tz-index: 100;\n\n\t&:before {\n\t\tcontent: "";\n\t\tposition: absolute;\n\t\tborder: 4px solid transparent;\n\t}\n\n\t&.top {\n\t\t&:before {\n\t\t\tmargin-left: -4px;\n\t\t\ttop: 100%;\n\t\t\tleft: 50%;\n\t\t\tborder-top: 4px solid rgba(',", 0.8);\n\t\t}\n\t}\n\n\t&.left {\n\t\t&:before {\n\t\t\tmargin-top: -4px;\n\t\t\ttop: 50%;\n\t\t\tright: -8px;\n\t\t\tborder-left: 4px solid rgba(",", 0.8);\n\t\t}\n\t}\n\n\t&.right {\n\t\t&:before {\n\t\t\tmargin-top: -4px;\n\t\t\ttop: 50%;\n\t\t\tleft: -8px;\n\t\t\tborder-right: 4px solid rgba(",", 0.8);\n\t\t}\n\t}\n\n\t&.bottom {\n\t\t&:before {\n\t\t\tmargin-left: -4px;\n\t\t\ttop: -8px;\n\t\t\tleft: 50%;\n\t\t\tborder-bottom: 4px solid rgba(",", 0.8);\n\t\t}\n\t}\n\n\t","\n"]);return _r=function(){return n},n}function Fr(){var n=Mr(["\n\tdisplay: flex;\n"]);return Fr=function(){return n},n}function Mr(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}Ir.propTypes={value:u.a.number,max:u.a.number,busy:u.a.bool,paused:u.a.bool,onPauseClick:u.a.func,onStopClick:u.a.func,status:u.a.oneOf([u.a.string,u.a.func])},Ir.defaultProps={value:0,max:100,busy:!1,paused:!1,onPauseClick:void 0,onStopClick:void 0,status:void 0};var Br=v.a.div(Fr()),Dr=v.a.div(_r(),O.blackRGB,O.white,O.fontFamily,O.fontSizeText,(function(n){return n.visible?"inline-block":"none"}),O.blackRGB,O.blackRGB,O.blackRGB,O.blackRGB,(function(n){return n.style})),Lr=function(n){var e=n.text,t=void 0===e?"Hello world!":e,a=n.position,i=void 0===a?"top":a,l=Tr(Object(r.useState)(!1),2),c=l[0],u=l[1],s=Gn(),f=s.ref,d=s.width,p=s.height,m=Gn(),b=m.ref,g=m.width,h=m.height,v=Object(r.useMemo)((function(){var n=0,e=0;if("top"===i)n=-1*p-5,e=d/2*-1+g/2;else if("bottom"===i)n=h+5,e=d/2*-1+g/2;else if("left"===i){n=(p-h)/2*-1,e=-1*d-5}else if("right"===i){n=(p-h)/2*-1,e=g+5}return{transform:"translateX(".concat(e,"px) translateY(").concat(n,"px)")}}),[i,d,p,g,h]);return o.a.createElement(Br,null,o.a.createElement(Dr,{ref:f,visible:c,className:i,style:v},t),o.a.createElement("div",{ref:b,onMouseEnter:function(){return u(!0)},onMouseLeave:function(){return u(!1)}},n.children))},Ur=function(n){return o.a.createElement(Lr,n)};function Gr(){return(Gr=Object.assign||function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n}).apply(this,arguments)}function qr(n,e){if(null==n)return{};var t,r,o=function(n,e){if(null==n)return{};var t,r,o={},a=Object.keys(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}function Hr(){var n=Jr(["\n\n path {\n fill: ",";\n }\n\n ","\n\n &.nui-clickable {\n cursor: pointer;\n }\n\n &.spin {\n animation-name: spin;\n animation-duration: 700ms;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n\n @keyframes spin {\n 0% {\n transform: rotate(360deg);\n }\n 100% {\n transform: rotate(0deg);\n }\n }\n }\n"]);return Hr=function(){return n},n}function $r(){var n=Jr(["\n display: flex;\n align-items: center;\n"]);return $r=function(){return n},n}function Jr(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}Ur.propTypes={text:u.a.string,position:u.a.oneOf(["top","right","bottom","left"])},Ur.defaultProps={text:"Hello world!",position:"top"};var Wr=v.a.div($r()),Zr=Object(v.a)(w.Icon)(Hr(),(function(n){return n.color}),(function(n){return function(n){if(n)return"\n &:hover {\n path {\n fill: ".concat(Object(y.a)(.1,n),";\n }\n }\n ")}(n.color)})),Kr=function(n){var e=n.icon,t=n.spinning,r=void 0!==t&&t,a=n.className,i=void 0===a?"":a,l=n.title,c=n.tooltip,u=n.containerStyle,s=n.color,f=qr(n,["icon","spinning","className","title","tooltip","containerStyle","color"]);f.width||f.height||(f.width=f.height=30);var d=function(){return"string"==typeof e?kn[e]||null:e},p="nui-icon ".concat(i).concat(f.onClick?" nui-clickable":"").concat(r?" spin":"");return c?o.a.createElement(Ur,{text:c.text,position:c.position||"top"},o.a.createElement(Wr,{style:u},o.a.createElement(Zr,Gr({icon:d(),className:p,color:s},f)))):o.a.createElement(Wr,{style:u,title:l},o.a.createElement(Zr,Gr({icon:d(),className:p,color:s},f)),c?o.a.createElement(Ur,null,c):null)},Xr=function(n){return o.a.createElement(Kr,n)};Xr.propTypes={icon:u.a.oneOfType([u.a.instanceOf(w.IconifyIcon),u.a.oneOf(["lock","lock-open","file-undo","chevron-double-left","chevron-double-right","chevron-left","chevron-right","chevron-down","chevron-up","pause","play","replay","check","stop","delete","undo","alert","database","pencil","tools","cog","close","cat","upload"])]),color:u.a.string,spinning:u.a.bool,className:u.a.string,tooltip:u.a.string},Xr.defaultProps={icon:void 0,color:void 0,spinning:!1,className:"",tooltip:void 0};var Yr=t(55),Qr=t.n(Yr);function Vr(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n position: relative;\n color: white;\n font-family: ",";\n font-size: ",";\n display: flex;\n align-items: center;\n padding: 15px 20px;\n background-color: ",";\n border-bottom: 5px #2981b5 solid;\n display: flex;\n\n .nui-header-logo-container {\n width: 55px;\n height: 55px;\n padding: 10px;\n margin-right: 20px;\n background: #3D5D8D;\n border-radius: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .nui-header-title-container {\n flex-direction: column;\n display: flex;\n\n .nui-header-title {\n color: white;\n font-family: ",";\n font-size: 23px;\n line-height: normal;\n margin: 0;\n }\n\n .nui-header-subtitle {\n color: white;\n font-family: ",";\n line-height: normal;\n font-size: ",";\n }\n }\n\n .nui-header-extra-content {\n flex: 1;\n margin: 0 20px;\n }\n"]);return Vr=function(){return n},n}var no=v.a.div(Vr(),O.fontFamily,O.fontSizeText,O.header,O.fontFamily,O.fontFamily,O.fontSizeText),eo=function(n){var e=n.title,t=void 0===e?"NekoUI":e,r=n.subtitle,a=void 0===r?"By Jordy Meow":r,i=n.children,l=n.saving,c=void 0!==l&&l;return o.a.createElement(no,null,o.a.createElement("div",{className:"nui-header-logo-container"},o.a.createElement(jr,null)),o.a.createElement("div",{className:"nui-header-title-container"},o.a.createElement("h1",{className:"nui-header-title"},t),o.a.createElement("small",{className:"nui-header-subtitle"},o.a.createElement("a",{target:"_blank",href:"https://meowapps.com",style:{color:"white",textDecoration:"none"}},a))),o.a.createElement("div",{className:"nui-header-extra-content"},i),c&&o.a.createElement(Xr,{icon:Qr.a,width:"36",height:"36"}))},to=function(n){return o.a.createElement(eo,n)};function ro(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n align-items: center;\n display: flex;\n\n .neko-paging-text {\n font-family: ",";\n font-style: normal;\n font-weight: normal;\n font-size: 15px;\n line-height: 14px;\n }\n\n .neko-paging-controller {\n box-sizing: border-box;\n height: 30px;\n align-items: center;\n background-color: rgba(",", 0.8);\n border-radius: 15px;\n display: flex;\n margin-left: 15px;\n padding: 3px 5px;\n\n .nako-paging-controller-icon {\n background-color: ",";\n border-radius: 100%;\n cursor: pointer;\n margin-right: 2px;\n height: 22px;\n width: 22px;\n box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.25);\n transition: transform 0.1s ease-in;\n box-sizing: border-box;\n\n :last-child {\n margin-right: 0;\n }\n\n &.disabled {\n color: ",";\n cursor: default;\n pointer-events: none;\n }\n\n &:hover {\n transform: scale(1.2) !important;\n z-index: 10;\n position: relative;\n }\n }\n\n .nako-paging-controller-text {\n color: ",";\n font-family: ",";\n font-style: normal;\n font-weight: normal;\n font-size: 13px;\n margin: 0 40px;\n user-select: none;\n }\n }\n"]);return ro=function(){return n},n}to.propTypes={title:u.a.string,subtitle:u.a.string,saving:u.a.bool},to.defaultProps={title:"NekoUI",subtitle:"By Jordy Meow",saving:!1};var oo=v.a.div(ro(),O.fontFamily,O.blueRGB,O.white,O.darkGray,O.white,O.fontFamily),ao=function(n){var e=n.currentPage,t=n.limit,r=n.onClick,a=n.total,i=Math.ceil(0===a?1:t>0?a/t:1),l="nako-paging-controller-icon ".concat(1===e?"disabled":""),c="nako-paging-controller-icon ".concat(e===i?"disabled":""),u=function(n){r(n)};return o.a.createElement(oo,null,o.a.createElement("span",{className:"neko-paging-text"},a," result",a>0?"s":""),o.a.createElement("div",{className:"neko-paging-controller"},o.a.createElement(w.Icon,{icon:N.a,className:l,onClick:function(){return u(1)}}),o.a.createElement(w.Icon,{icon:R.a,className:l,onClick:function(){return u(e-1)}}),o.a.createElement("p",{className:"nako-paging-controller-text"},"Page ",e," of ",i),o.a.createElement(w.Icon,{icon:F.a,className:c,onClick:function(){return u(e+1)}}),o.a.createElement(w.Icon,{icon:I.a,className:c,onClick:function(){return u(i)}})))},io=function(n){return o.a.createElement(ao,n)};function lo(){var n=uo(["\n color: ",";\n cursor: pointer;\n font-family: ",";\n font-style: normal;\n font-weight: normal;\n font-size: 14px;\n line-height: 17px;\n\n &.is-active {\n cursor: default;\n color: ",';\n font-weight: bold;\n }\n\n &::after {\n content: "|";\n color: ',";\n padding: 0 4px;\n }\n\n &:last-child::after {\n content: none;\n }\n\n span {\n color: ",";\n font-weight: normal;\n margin-left: 4px;\n }\n"]);return lo=function(){return n},n}function co(){var n=uo(["\n display: flex;\n align-items: center;\n"]);return co=function(){return n},n}function uo(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}io.propTypes={currentPage:u.a.number,limit:u.a.number,total:u.a.number,onClick:u.a.func},io.defaultProps={currentPage:void 0,limit:void 0,total:void 0,onClick:void 0};var so=v.a.div(co()),fo=v.a.span(lo(),O.blue,O.fontFamily,O.black,O.darkGray,O.darkGray),po=function(n){var e=n.id,t=n.value,r=n.onChange,a=n.busy,i=void 0!==a&&a,l=o.a.Children.map(n.children,(function(n,a){return o.a.cloneElement(n,{busy:i,isActive:n.props.value===t,onClick:function(n){n!==t&&r(n,e)}})}));return o.a.createElement(so,null,l)},mo=function(n){var e=n.title,t=n.value,r=void 0===t?0:t,a=n.count,i=n.onClick,l=n.busy,c=n.isActive;return o.a.createElement(fo,{onClick:function(){return i(r)},className:"".concat(c?"is-active":"")},e,null===a?null:o.a.createElement("span",null,"(",l?o.a.createElement(Xr,{icon:"replay",spinning:!0,width:12,containerStyle:{display:"inline"}}):a,")"))},bo=function(n){return o.a.createElement(po,n)};bo.propTypes={id:u.a.string,value:u.a.string,onChange:u.a.func},bo.defaultProps={id:void 0,value:void 0,onChange:void 0};var go=function(n){return o.a.createElement(mo,n)};function ho(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n .mask {\n position: absolute;\n overflow: hidden;\n display: block;\n width: ","px;\n height: ","px;\n }\n\n .semi-circle {\n position: relative;\n display: block;\n width: ","px;\n height: ",'px;\n background: linear-gradient(to right, #27b775 0%, #f3f32c 50%, #f71b1b 100%);\n border-radius: 50% 50% 50% 50% / 100% 100% 0% 0% ;\n\n &::before {\n content: "";\n position: absolute;\n bottom: 0;\n left: 50%;\n z-index: 2;\n display: block;\n width: 140px;\n height: 70px;\n margin-left: -70px;\n background: ',";\n border-radius: 50% 50% 50% 50% / 100% 100% 0% 0% ;\n } \n }\n\n .semi-circle--mask {\n position: absolute;\n top: 0;\n left: 0;\n width: ","px;\n height: ",'px;\n background: transparent;\n transform-origin: center center;\n backface-visibility: hidden;\n transition: all .3s ease-in-out;\n\n &::before {\n content: "";\n position: absolute;\n top: 0;\n left: 0%;\n z-index: 2;\n display: block;\n width: ',"px;\n height: ","px;\n margin-top: -1px;\n margin-left: -1px;\n background: #5396c1d6;\n border-radius: 50% 50% 50% 50% / 100% 100% 0% 0% ;\n } \n }\n\n .gauge { \n width: ","px;\n height: ","px;\n \n .semi-circle--mask {\n transform: rotate(","deg) translate3d(0,0,0);\n }\n }\n\n .child-container {\n position: absolute;\n font-size: 16px;\n display: flex;\n width: ","px;\n height: ","px;\n z-index: 10;\n\n .spacing {\n flex: auto;\n }\n\n .child {\n color: white;\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n }\n"]);return ho=function(){return n},n}go.propTypes={title:u.a.string,value:u.a.string,count:u.a.number,onClick:u.a.func,isActive:u.a.bool},go.defaultProps={title:void 0,value:"default",count:0,onClick:void 0,isActive:!1};var vo=v.a.section(ho(),(function(n){return n.width}),(function(n){return n.width/2}),(function(n){return n.width}),(function(n){return n.width/2}),(function(n){return n.backgroundColor}),(function(n){return n.width}),(function(n){return n.width}),(function(n){return n.width+2}),(function(n){return n.width/2+2}),(function(n){return n.width}),(function(n){return n.width/2}),(function(n){return n.degrees}),(function(n){return n.width+2}),(function(n){return n.width/2})),yo=function(n){var e=n.value,t=void 0===e?1e3:e,r=(n.min,n.max),a=void 0===r?2500:r,i=n.width,l=void 0===i?200:i,c=n.background,u=void 0===c?"#007cba":c,s=n.children,f=180*(t<=a?t:a)/a;return o.a.createElement(vo,{backgroundColor:u,degrees:f,width:l},o.a.createElement("div",{class:"gauge"},o.a.createElement("div",{class:"mask"},o.a.createElement("div",{class:"semi-circle"}),o.a.createElement("div",{class:"semi-circle--mask"})),o.a.createElement("div",{class:"child-container"},o.a.createElement("div",{class:"child"},o.a.createElement("div",{class:"spacing"}),s))))};function xo(){var n=wo(["\n background: #1eba96;\n padding: 20px;\n color: white;\n border-radius: 10px;\n font-size: 15px;\n text-align: center;\n\n a {\n color: white;\n font-weight: bold;\n }\n"]);return xo=function(){return n},n}function Oo(){var n=wo(["\n background: #ba341e;\n padding: 20px;\n color: white;\n border-radius: 10px;\n font-size: 15px;\n\n a {\n color: white;\n font-weight: bold;\n }\n"]);return Oo=function(){return n},n}function wo(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}yo.propTypes={value:u.a.number,min:u.a.number,max:u.a.number,width:u.a.number,background:u.a.string},yo.defaultProps={value:1e3,min:0,max:2500,width:200,background:"#007cba"};v.a.p(Oo()),v.a.p(xo());function Eo(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,r)}return t}function ko(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?Eo(Object(t),!0).forEach((function(e){jo(n,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):Eo(Object(t)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}))}return n}function jo(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function So(n){return function(n){if(Array.isArray(n))return No(n)}(n)||function(n){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(n))return Array.from(n)}(n)||zo(n)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Po(n,e,t,r,o,a,i){try{var l=n[a](i),c=l.value}catch(n){return void t(n)}l.done?e(c):Promise.resolve(c).then(r,o)}function Co(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||zo(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function zo(n,e){if(n){if("string"==typeof n)return No(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);return"Object"===t&&n.constructor&&(t=n.constructor.name),"Map"===t||"Set"===t?Array.from(n):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?No(n,e):void 0}}function No(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function Ao(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n box-sizing: border-box;\n background: #f1f1f1;\n border: 2px dashed rgb(0 0 0 / 30%);\n color: rgb(0 0 0 / 60%);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n transition: all 0.25s ease;\n\n div {\n transition: all 0.5s ease;\n transform: scale(1.5);\n pointer-events: none;\n }\n\n &:hover {\n cursor: pointer;\n }\n\n &.dropping {\n background: #a4d5ff;\n\n div {\n transform: scale(2);\n }\n }\n"]);return Ao=function(){return n},n}var Io=v.a.div(Ao()),To=function(n){var e=n.width,t=void 0===e?"100%":e,a=n.height,i=void 0===a?"100%":a,l=n.iconSize,c=void 0===l?48:l,u=n.onSuccess,s=void 0===u?function(){}:u,f=n.onFailure,d=void 0===f?function(){}:f,p=n.style,m=void 0===p?{}:p,b=n.apiUrl,g=n.apiConfig,v=Co(Object(r.useState)(!1),2),y=v[0],x=v[1],O=Co(Object(r.useState)(Math.floor(1e8*Math.random())),2),w=O[0],E=(O[1],Object(r.useRef)(null)),k=Co(Object(r.useState)(!1),2),j=k[0],S=k[1],P=function(){var n,e=(n=regeneratorRuntime.mark((function n(e){var t;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return S(!0),g.file=e[0],n.next=4,Ua(b,g);case 4:(t=n.sent).success?s(t):d(t),S(!1);case 7:case"end":return n.stop()}}),n)})),function(){var e=this,t=arguments;return new Promise((function(r,o){var a=n.apply(e,t);function i(n){Po(a,r,o,i,l,"next",n)}function l(n){Po(a,r,o,i,l,"throw",n)}i(void 0)}))});return function(n){return e.apply(this,arguments)}}(),C=function(n){n.preventDefault(),n.stopPropagation()},z=function(n){n.preventDefault(),n.stopPropagation(),x(!0)},N=function(n,e){e.preventDefault(),e.stopPropagation(),x(!1),console.log(n),P(n)};return o.a.createElement(h,{busy:j},o.a.createElement("input",{type:"file",id:w,accept:"image/*",ref:E,onChange:function(n){var e=[n.target.files[0]];N(e,n)},style:{display:"none"}}),o.a.createElement(Io,{onClick:function(){E.current.click()},style:ko(ko({},m),{},{width:t,height:i}),className:y?"dropping":"",onDragOver:C,onDragEnter:z,onDragLeave:function(n){n.preventDefault(),n.stopPropagation(),x(!1)},onDrop:function(n){var e=So(n.dataTransfer.files);N(e,n)}},o.a.createElement(Xr,{width:c,height:c,icon:"upload",spinning:j,onDragOver:C,onDragEnter:z})))};To.propTypes={width:u.a.string,height:u.a.string,onSuccess:u.a.func,onFailure:u.a.func,style:u.a.object,apiUrl:u.a.string,apiConfig:u.a.object},To.defaultProps={width:"100%",height:"100%",onSuccess:function(){},onFailure:function(){},style:{}};var Ro=t(56),_o=t.n(Ro);function Fo(){return(Fo=Object.assign||function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n}).apply(this,arguments)}function Mo(n,e){if(null==n)return{};var t,r,o=function(n,e){if(null==n)return{};var t,r,o={},a=Object.keys(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}function Bo(){var n=Lo(["\n width: 518px;\n\n p {\n margin: 0;\n }\n .title {\n font-family: ",";\n font-style: normal;\n font-weight: normal;\n font-size: 18px;\n line-height: 22px;\n }\n .content {\n font-family: ",";\n font-style: normal;\n font-weight: normal;\n font-size: 13px;\n line-height: 14px;\n margin-top: 15px;\n margin-bottom: 30px;\n }\n .button-group {\n align-items: center;\n display: flex;\n justify-content: flex-end;\n margin-top: 15px;\n }\n"]);return Bo=function(){return n},n}function Do(){var n=Lo(["\n\n .ReactModal__Overlay {\n z-index: 100;\n display: flex;\n justify-content: center;\n flex-direction: column;\n align-items: center;\n background: "," !important;\n }\n .ReactModal__Overlay {\n opacity: 0;\n transition: opacity 200ms ease-in-out;\n }\n .ReactModal__Overlay--after-open {\n opacity: 1;\n }\n .ReactModal__Overlay--before-close {\n opacity: 0;\n }\n .ReactModal__Overlay .neko-modal {\n opacity: 0;\n transform: scale(0.85);\n transition: all 200ms ease-in-out;\n }\n .ReactModal__Overlay--after-open .neko-modal {\n transform: scale(1);\n opacity: 1;\n }\n .ReactModal__Overlay--before-close .neko-modal {\n transform: scale(0.85);\n opacity: 0;\n }\n .neko-modal {\n background: ",";\n position: relative;\n box-shadow: 2px 2px 15px 2px rgba(0, 0, 0, 0.8);\n outline: none;\n padding: 15px;\n max-width: 820px;\n }\n"]);return Do=function(){return n},n}function Lo(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}var Uo=v.a.div(Do(),O.overlay,O.white),Go=v.a.div(Bo(),O.fontFamily,O.fontFamily),qo=function(n){var e=n.children,t=n.className,r=n.style,a=n.ok,i=void 0===a?"OK":a,l=n.cancel,c=void 0===l?"Cancel":l,u=n.customButtons,s=void 0===u?null:u,f=n.title,d=void 0===f?"":f,p=n.content,m=void 0===p?"":p,b=n.onOkClick,g=n.onCancelClick,h=Mo(n,["children","className","style","ok","cancel","customButtons","title","content","onOkClick","onCancelClick"]),v=r?"custom-modal":"",y=e||o.a.createElement(Go,null,d&&o.a.createElement("p",{className:"title"},d),m&&o.a.createElement("p",{className:"content"},m),o.a.createElement("div",{className:"button-group"},g&&o.a.createElement(Nn,{className:"danger",onClick:g},c),b&&o.a.createElement(Nn,{onClick:b},i),s));return o.a.createElement(o.a.Fragment,null,o.a.createElement(Uo,{id:"neko-modal-parent"}),o.a.createElement(_o.a,Fo({ariaHideApp:!1,parentSelector:function(){return document.getElementById("neko-modal-parent")},closeTimeoutMS:200,className:"neko-modal ".concat(t||""," ").concat(v)},h),y))},Ho=function(n){return o.a.createElement(qo,n)};Ho.propTypes={className:u.a.string,style:u.a.object,ok:u.a.string,cancel:u.a.string,title:u.a.string,content:u.a.string,onOkClick:u.a.func,onCancelClick:u.a.func,customButtons:u.a.object},Ho.defaultProps={className:void 0,style:void 0,ok:"OK",cancel:"Cancel",title:"",content:"",onOkClick:void 0,onCancelClick:void 0,customButtons:null};var $o=t(57),Jo=t.n($o);function Wo(n,e){if(null==n)return{};var t,r,o=function(n,e){if(null==n)return{};var t,r,o={},a=Object.keys(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(r=0;r<a.length;r++)t=a[r],e.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}function Zo(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n background-color: ",";\n font-family: ",";\n border-spacing: 0;\n width: 100%;\n\n th, td {\n margin: 0;\n padding: 5px;\n border-bottom: 1px solid rgba(",", 0.1);\n border-right: 1px solid rgba(",", 0.1);\n\n a {\n text-decoration: none;\n }\n\n :last-child {\n border-right: 0;\n }\n }\n\n th, tfoot td {\n height: 30px;\n background-color: ",";\n color: ",";\n font-style: normal;\n font-weight: normal;\n font-size: 13px;\n line-height: 16px;\n text-align: left;\n\n div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n &.sortable {\n cursor: pointer;\n }\n }\n }\n\n tbody {\n tr {\n :nth-child(even) {\n background-color: ",";\n }\n &.selected {\n background-color: rgba(",", 0.8);\n color: ",";\n\n a {\n color: #81e8ff;\n }\n }\n }\n img {\n vertical-align: bottom;\n }\n }\n\n tfoot tr:last-child {\n td {\n border-bottom: 0;\n }\n }\n\n .table-checkbox-cell {\n width: 35px;\n text-align: center;\n\n svg {\n padding: 5px;\n cursor: pointer;\n }\n }\n"]);return Zo=function(){return n},n}var Ko=v.a.table(Zo(),O.white,O.fontFamily,O.blackRGB,O.blackRGB,O.blue,O.white,O.tableGray,O.blueRGB,O.white),Xo=function(n){var e=n.checked,t=n.intermediate,r=void 0!==t&&t,a=n.onSelect,i=void 0===a?function(){}:a,l=n.onUnselect,c=void 0===l?function(){}:l;Wo(n,["checked","intermediate","onSelect","onUnselect"]);return o.a.createElement(w.Icon,{icon:r?Jo.a:e?at.a:rt.a,width:"24px",height:"24px",onClick:function(){e?c():i()}})},Yo=function(n){var e=n.columns,t=n.data,r=n.busy,a=void 0!==r&&r,i=n.onSelect,l=n.onUnselect,c=n.selectedItems,u=n.sort,s=n.onSortChange,f=e.length+(i?1:0),d=t.map((function(n){var t=e.map((function(e){return{value:n[e.accessor],style:e.style||{}}}));return{id:n.id,cells:t}})),p=d.map((function(n){return n.id})),m=p.filter((function(n){return c.includes(n)})).length===p.length,b=!m&&c.length>0,g=e.reduce((function(n,e,t){return!1===e.visible&&n.push(t),n}),[]),v=o.a.createElement("tr",null,i&&o.a.createElement("th",{className:"table-checkbox-cell"},o.a.createElement(Xo,{checked:m,intermediate:b,onSelect:function(){return i(p)},onUnselect:function(){l(b?c:p)}})),e.filter((function(n,e){return!g.includes(e)})).map((function(n){var e=u&&u.accessor===n.accessor,t=u&&"asc"===u.by,r=n.style||{};return o.a.createElement("th",{style:r,key:n.accessor},o.a.createElement("div",{className:n.sortable?"sortable":"",onClick:n.sortable?function(){s(n.accessor,e&&t?"desc":"asc")}:void 0},o.a.createElement("div",null,n.title),o.a.createElement("div",null,n.sortable&&o.a.createElement(w.Icon,{icon:e?t?B.a:L.a:B.a,color:e?O.white:"rgba(".concat(O.blackRGB,", 0.1)"),width:"1.6rem",height:"1.6rem"}))))})));return o.a.createElement(h,{busy:a,overlayStyle:{top:"36px",height:"calc(100% - 76px)"}},o.a.createElement(Ko,null,o.a.createElement("thead",null,v),o.a.createElement("tbody",null,!d.length&&o.a.createElement("tr",null,o.a.createElement("td",{colspan:f,style:{textAlign:"center",height:40,color:"gray"}},"Empty.")),d.map((function(n){return o.a.createElement("tr",{className:c.includes(n.id)?"selected":""},i&&o.a.createElement("td",{className:"table-checkbox-cell"},o.a.createElement(Xo,{checked:c.includes(n.id),onSelect:function(){return i([n.id])},onUnselect:function(){return l([n.id])}})),n.cells.filter((function(n,e){return!g.includes(e)})).map((function(n){return o.a.createElement("td",{style:n.style},n.value)})))}))),o.a.createElement("tfoot",null,v)))},Qo=function(n){return o.a.createElement(Yo,n)};function Vo(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||function(n,e){if(!n)return;if("string"==typeof n)return na(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);"Object"===t&&n.constructor&&(t=n.constructor.name);if("Map"===t||"Set"===t)return Array.from(n);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return na(n,e)}(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function na(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function ea(){var n=aa(["\n background-color: ",";\n display: none;\n padding: 10px;\n\n &.active {\n display: block;\n }\n"]);return ea=function(){return n},n}function ta(){var n=aa(["\n font-family: ",";\n font-size: ",";\n border-radius: 8px 8px 0px 0px;\n border: 0;\n background-color: #459ad2;\n color: rgb(255 255 255 / 35%);\n\n cursor: pointer;\n line-height: 17px;\n margin-right: 5px;\n text-align: left;\n padding: 10px 15px 10px 15px;\n\n &:focus {\n outline: none;\n }\n\n &.active {\n background-color: ",";\n color: ",";\n }\n\n &.disabled {\n background-color: rgb(224 156 54);\n cursor: default;\n display: inline-flex;\n padding-bottom: 7px;\n }\n"]);return ta=function(){return n},n}function ra(){var n=aa(["\n"]);return ra=function(){return n},n}function oa(){var n=aa(["\n"]);return oa=function(){return n},n}function aa(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}Qo.propTypes={columns:u.a.arrayOf(u.a.any),data:u.a.arrayOf(u.a.any),busy:u.a.arrayOf(u.a.bool),onSelect:u.a.func,onUnselect:u.a.func,selectedItems:u.a.arrayOf(u.a.object),onSortChange:u.a.func},Qo.defaultProps={columns:void 0,data:void 0,busy:!1,onSelect:void 0,onUnselect:void 0,selectedItems:void 0,onSortChange:void 0};var ia=v.a.div(oa()),la=v.a.div(ra()),ca=v.a.button(ta(),O.fontFamily,O.fontSizeText,O.blue,O.white),ua=v.a.div(ea(),O.blue),sa=function(n){var e=Vo(o.a.useState(0),2),t=e[0],r=e[1],a=o.a.Children.map(n.children,(function(e,t){var r=e.props.title||"Untitled Tab "+(t+1);return{key:e.props.key||"neko-tab-"+r.toLowerCase(),title:r,onClick:e.props.onClick?e.props.onClick:null,requirePro:!n.isPro&&(e.props.requirePro||!1)}})),i=o.a.Children.map(n.children,(function(n,e){return o.a.cloneElement(n,{isActive:e===t})}));return o.a.createElement(ia,null,o.a.createElement(la,null,a.map((function(e,a){return o.a.createElement(ca,{key:e.key,className:"neko-tab-title ".concat(a===t?"active":""," ").concat(e.requirePro?"disabled":""),onClick:function(t){!function(e,t,o){t.requirePro||(r(e),n.onChange&&n.onChange(e,t,o))}(a,e,t)}},e.title,o.a.createElement(Fn,{className:"inline",style:{marginLeft:10,marginRight:-5,top:-1},show:e.requirePro}))}))),i)},fa=function(n){var e=n.children,t=n.isActive;return o.a.createElement(ua,{className:"".concat(t?"active":"")},e)},da=function(n){return o.a.createElement(sa,n)};da.propTypes={isPro:u.a.bool,onChange:u.a.func},da.defaultProps={isPro:!1,onChange:void 0};var pa=function(n){return o.a.createElement(fa,n)};function ma(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||function(n,e){if(!n)return;if("string"==typeof n)return ba(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);"Object"===t&&n.constructor&&(t=n.constructor.name);if("Map"===t||"Set"===t)return Array.from(n);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return ba(n,e)}(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ba(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function ga(){var n=ya(["\n background-color: ",";\n display: none;\n\n &.active {\n display: block;\n }\n"]);return ga=function(){return n},n}function ha(){var n=ya(["\n align-items: center;\n background-color: ",";\n border: 0;\n cursor: pointer;\n display: flex;\n padding: 2px 3px 2px 19px;\n\n &.disabled {\n background-color: rgba(",", 0.25);\n cursor: default;\n }\n\n p {\n color: ",";\n font-family: ",";\n font-size: 14px;\n line-height: 17px;\n margin: 0;\n }\n\n .neko-side-tab-icon {\n color: ",";\n margin-left: auto;\n height: 36px;\n width: 36px;\n }\n"]);return ha=function(){return n},n}function va(){var n=ya(["\n"]);return va=function(){return n},n}function ya(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}pa.propTypes={isActive:u.a.bool,requirePro:u.a.bool,title:u.a.string},pa.defaultProps={isActive:!1,requirePro:!1,title:void 0};var xa=v.a.div(va()),Oa=v.a.div(ha(),O.blue,O.yellowRGB,O.white,O.fontFamily,O.white),wa=v.a.div(ga(),O.white),Ea=function(n){var e=ma(o.a.useState(),2),t=e[0],r=e[1],a=o.a.Children.map(n.children,(function(e,t){var r=e.props.title||"Untitled Tab "+(t+1);return{key:e.props.key||"neko-tab-"+r.toLowerCase(),title:r,onClick:e.props.onClick?e.props.onClick:null,requirePro:!n.isPro&&(e.props.requirePro||!1)}})),i=o.a.Children.map(n.children,(function(n,e){return o.a.cloneElement(n,{isActive:e===t})}));return o.a.createElement(xa,null,a.map((function(e,a){return o.a.createElement(o.a.Fragment,null,o.a.createElement(Oa,{key:e.key,className:"".concat(a===t?"active":""," ").concat(e.requirePro?"disabled":""),onClick:function(o){!function(e,o,a){if(!o.requirePro){var i=e===t?null:e;r(i),n.onChange&&n.onChange(i,o,a)}}(a,e,o)}},o.a.createElement("p",null,e.title,o.a.createElement(Fn,{className:"inline",show:e.requirePro})),o.a.createElement(w.Icon,{icon:a===t?B.a:F.a,className:"neko-side-tab-icon"})),i[a])})))},ka=function(n){var e=n.children,t=n.isActive;return o.a.createElement(wa,{className:"".concat(t?"active":"")},e)},ja=function(n){return o.a.createElement(Ea,n)};ja.propTypes={isPro:u.a.bool,onChange:u.a.func},ja.defaultProps={isPro:!1,onChange:void 0};var Sa=function(n){return o.a.createElement(ka,n)};function Pa(){var n=function(n,e){e||(e=n.slice(0));return Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}(["\n box-sizing: border-box;\n display: flex;\n width: 100%;\n padding: 10px 10px;\n background: ",";\n border-radius: 10px;\n box-shadow: 0px 0px 10px rgba(",", 0.1);\n\n &.neko-align-left {\n justify-content: flex-start;\n }\n\n &.neko-align-right {\n justify-content: flex-end;\n }\n\n > *:not(:last-child) {\n margin-right: 5px;\n }\n"]);return Pa=function(){return n},n}Sa.propTypes={isActive:u.a.bool,requirePro:u.a.bool,title:u.a.string},Sa.defaultProps={isActive:!1,requirePro:!1,title:void 0};var Ca=v.a.div(Pa(),O.white,O.blackRGB),za=function(n){var e=n.align,t=void 0===e?"left":e;return o.a.createElement(Ca,{className:"neko-align-".concat(t)},n.children)},Na=function(n){return o.a.createElement(za,n)};Na.propTypes={align:u.a.oneOf(["left","right"])},Na.defaultProps={align:"left"};t(22);function Aa(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}var Ia=function n(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};Aa(this,n),this.url=r,this.message=e,this.code=t,this.body=o,this.debug=a};function Ta(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||Ma(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ra(n,e,t,r,o,a,i){try{var l=n[a](i),c=l.value}catch(n){return void t(n)}l.done?e(c):Promise.resolve(c).then(r,o)}function _a(n){return function(){var e=this,t=arguments;return new Promise((function(r,o){var a=n.apply(e,t);function i(n){Ra(a,r,o,i,l,"next",n)}function l(n){Ra(a,r,o,i,l,"throw",n)}i(void 0)}))}}function Fa(n,e){var t;if("undefined"==typeof Symbol||null==n[Symbol.iterator]){if(Array.isArray(n)||(t=Ma(n))||e&&n&&"number"==typeof n.length){t&&(n=t);var r=0,o=function(){};return{s:o,n:function(){return r>=n.length?{done:!0}:{done:!1,value:n[r++]}},e:function(n){throw n},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){t=n[Symbol.iterator]()},n:function(){var n=t.next();return i=n.done,n},e:function(n){l=!0,a=n},f:function(){try{i||null==t.return||t.return()}finally{if(l)throw a}}}}function Ma(n,e){if(n){if("string"==typeof n)return Ba(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);return"Object"===t&&n.constructor&&(t=n.constructor.name),"Map"===t||"Set"===t?Array.from(n):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Ba(n,e):void 0}}function Ba(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}var Da=function(n){if(!n.data)return n;if(n.data.length>0&&n.data[0].meta){var e,t=Fa(n.data);try{for(t.s();!(e=t.n()).done;){var r=e.value;try{r.meta=JSON.parse(r.meta)}catch(n){console.error("[JsonFetcher]","Could not decode meta.",r.meta)}}}catch(n){t.e(n)}finally{t.f()}}else if(n.data.meta)try{n.data.meta=JSON.parse(n.data.meta)}catch(n){console.error("[JsonFetcher]","Could not decode meta.",x.meta)}return n},La=function(){var n=_a(regeneratorRuntime.mark((function n(e){var t,r,o,a,i,l,c,u,s,f=arguments;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return t=f.length>1&&void 0!==f[1]?f[1]:{},r=null,o={},a=null,i=null,n.prev=5,(t=t||{}).headers=t.headers?t.headers:{},t.headers.Pragma="no-cache",t.headers["Cache-Control"]="no-cache",n.next=12,fetch("".concat(e),t);case 12:return i=n.sent,n.next=15,i.text();case 15:r=n.sent,(o=JSON.parse(r)).success||(l=!1===o.success?"NOT-SUCCESS":"N/A",c=o.message?o.message:"Unknown error. Check your Console Logs.","rest_no_route"===o.code?(c="The API can't be accessed. Is Rest API enabled?",l="NO-ROUTE"):"internal_server_error"===o.code&&(c="Server error. Please check your PHP Error Logs.",l="SERVER-ERROR"),a=new Ia(c,l,e,r||i)),n.next=26;break;case 20:n.prev=20,n.t0=n.catch(5),u="BROKEN-REPLY",s="The reply sent by the server is broken.",i&&i.status&&408===i.status&&(u="REQUEST-TIMEOUT",s="The request generated a timeout."),a=new Ia(s,u,e,r||i,n.t0);case 26:return a&&(console.error("[NekoError] JsonFetcher",a.url,{code:a.code,error:a.error,body:a.body}),o.success=!1,o.error=a),n.abrupt("return",Da(o));case 28:case"end":return n.stop()}}),n,null,[[5,20]])})));return function(e){return n.apply(this,arguments)}}(),Ua=function(){var n=_a(regeneratorRuntime.mark((function n(e){var t,r,o,a,i,l,c,u,s,f,d,p,m,b=arguments;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(t=b.length>1&&void 0!==b[1]?b[1]:{},r=t.json,o=void 0===r?{}:r,a=t.signal,i=t.file,l=t.nonce,c=i?new FormData:null,i)for(c.append("file",i),u=0,s=Object.entries(o);u<s.length;u++)f=Ta(s[u],2),d=f[0],p=f[1],c.append(d,p);return m=l?{"X-WP-Nonce":l}:{},c||(m["Content-Type"]="application/json"),n.abrupt("return",La(e,{method:"POST",headers:m,body:c||JSON.stringify(o),signal:a}));case 7:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}(),Ga=(mgcl_gallery_custom_links.prefix,mgcl_gallery_custom_links.domain,mgcl_gallery_custom_links.rest_url.replace(/\/+$/,""),mgcl_gallery_custom_links.api_url.replace(/\/+$/,""));mgcl_gallery_custom_links.plugin_url.replace(/\/+$/,""),"1"===mgcl_gallery_custom_links.is_pro&&mgcl_gallery_custom_links.is_registered,mgcl_gallery_custom_links.rest_nonce;function qa(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,r)}return t}function Ha(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?qa(Object(t),!0).forEach((function(e){$a(n,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):qa(Object(t)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}))}return n}function $a(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Ja(n,e,t,r,o,a,i){try{var l=n[a](i),c=l.value}catch(n){return void t(n)}l.done?e(c):Promise.resolve(c).then(r,o)}function Wa(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(n)))return;var t=[],r=!0,o=!1,a=void 0;try{for(var i,l=n[Symbol.iterator]();!(r=(i=l.next()).done)&&(t.push(i.value),!e||t.length!==e);r=!0);}catch(n){o=!0,a=n}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return t}(n,e)||function(n,e){if(!n)return;if("string"==typeof n)return Za(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);"Object"===t&&n.constructor&&(t=n.constructor.name);if("Map"===t||"Set"===t)return Array.from(n);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Za(n,e)}(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Za(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}var Ka=wp.element.useState,Xa=function(){var n=Object(l.a)("".concat(Ga,"/all_settings/"),La),e=n.data,t=n.mutate,o=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,t=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=Object(r.useState)(e),a=Dn(o,2),i=a[0],l=a[1],c=Object(r.useState)(null),u=Dn(c,2),s=u[0],f=u[1],d=Object(r.useState)(t),p=Dn(d,2),m=p[0],b=p[1],g=Object(r.useState)(0),h=Dn(g,2),v=h[0],y=h[1];return Object(r.useEffect)((function(){void 0!==n&&(n.success?(f(null),l(n.data),y(n.total?n.total:0)):f(n.error)),b(void 0===n)}),[n]),{busy:m,data:i,total:v,error:s}}(e,{},!0),a=o.busy,i=o.data,c=o.error,u=Wa(Ka(!1),2),s=u[0],f=u[1],d=a||s,p=null==i?void 0:i.mgcl_obmode,m=null==i?void 0:i.mgcl_parsing_engine,b=null==i?void 0:i.mgcl_log,g=null==i?void 0:i.mgcl_button_enabled,h=null==i?void 0:i.mgcl_button_label,v=function(){var n,r=(n=regeneratorRuntime.mark((function n(r,o){var a;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return(a=Ha({},e.data))[o]=r,t(Ha(Ha({},e),{},{data:a}),!1),f(!0),n.prev=4,n.next=7,Ua("".concat(Ga,"/update_option"),{json:{name:o,value:r}});case 7:n.next=12;break;case 9:n.prev=9,n.t0=n.catch(4),alert(n.t0.message);case 12:return n.prev=12,f(!1),t(),n.finish(12);case 16:case"end":return n.stop()}}),n,null,[[4,9,12,16]])})),function(){var e=this,t=arguments;return new Promise((function(r,o){var a=n.apply(e,t);function i(n){Ja(a,r,o,i,l,"next",n)}function l(n){Ja(a,r,o,i,l,"throw",n)}i(void 0)}))});return function(n,e){return r.apply(this,arguments)}}(),y=React.createElement(Me,{title:"OB Mode"},React.createElement(ft,{max:"1"},React.createElement(ct,{id:"mgcl_obmode",label:"Enabled",value:"1",checked:p,onChange:v,description:"If the linked images are outside of the main content (header, sidebar, etc), OB Mode is needed. This slows down the processing (cache recommended)."}))),x=React.createElement(Me,{title:"Parsing Engine",description:"Hello"},React.createElement(Yt,{id:"mgcl_parsing_engine",onChange:v},[{id:"none",value:"None",label:"None (Not Supported Yet)"},{id:"htmldomparser",value:"HtmlDomParser",label:"HtmlDomParser"},{id:"didom",value:"DiDom",label:"DiDom"}].map((function(n){return React.createElement(Qt,{id:"mgcl_parsing_engine_".concat(n.id),value:n.value,label:n.label,checked:m===n.value})})))),O=React.createElement(Me,{title:"Logs"},React.createElement(ft,{max:"1"},React.createElement(ct,{id:"mgcl_log",label:"Logs",value:"1",checked:b,onChange:v,description:"Simple logging, written directly in the PHP Error Logs."}))),w=React.createElement(Me,{title:"Use Buttons"},React.createElement(ft,{max:"1"},React.createElement(ct,{id:"mgcl_button_enabled",label:"Enabled",value:"1",description:"A call-to-action button will be used of a clickable image.",checked:g,onChange:v}))),E=React.createElement(Me,{title:"Label"},React.createElement(vt,{id:"mgcl_button_label",name:"mgcl_button_label",value:h,description:"A call-to-action button will be used of a clickable image.",onBlur:v}));return React.createElement(fe,{nekoErrors:[c]},React.createElement(to,{title:"Gallery Custom Links | Settings",subtitle:"By Jordy Meow"}),React.createElement(nt,null,React.createElement(et,{full:!0},React.createElement(Re,null,React.createElement(Ee,{p:!0},"This plugin works out of the box, the default settings are the best for most installs. Don't hesitate to take a look at the ",React.createElement("a",{href:"https://meowapps.com/plugin/gallery-custom-links/"},"official page"),".")),React.createElement(da,null,React.createElement(pa,{title:"Settings"},React.createElement(nt,null,React.createElement(et,{minimal:!0},React.createElement(Pe,{busy:d,title:"Settings",className:"primary"},x,y,O)),React.createElement(et,{minimal:!0},React.createElement(Pe,{busy:d,title:"CTA Buttons",className:"primary"},React.createElement(Ee,{p:!0},React.createElement("b",null,"Currently works with the ",React.createElement("a",{href:"https://wordpress.org/plugins/meow-gallery/"},"Meow Gallery")," and Gutenberg Galleries.")," In a future Pro version, support for additional galleries might be added (please contact ",React.createElement("a",{href:"https://meowapps.com/contact/"},"Meow Apps")," for this)."),w,g?E:null))))))))};document.addEventListener("DOMContentLoaded",(function(n){var e=document.getElementById("mgcl-admin-settings");e&&i.a.render(o.a.createElement(Xa,null),e)}))}});
2
  //# sourceMappingURL=index.js.map
app/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"React\"","webpack:///external \"ReactDOM\"","webpack:///../neko-ui/src/common/NekoBusyOverlay.js","webpack:///../neko-ui/src/common/NekoTheme.js","webpack:///../neko-ui/src/common/PresetIcons.js","webpack:///../neko-ui/src/button/Button.js","webpack:///../neko-ui/src/label/ProOnly.js","webpack:///../neko-ui/src/hooks.js","webpack:///../neko-ui/src/button/MenuButton.js","webpack:///../neko-ui/src/container/Page.js","webpack:///../neko-ui/src/misc/Typography.js","webpack:///../neko-ui/src/container/Block.js","webpack:///../neko-ui/src/container/Container.js","webpack:///../neko-ui/src/container/Settings.js","webpack:///../neko-ui/src/container/Window.js","webpack:///../neko-ui/src/container/Wrapper.js","webpack:///../neko-ui/src/form/Checkbox.js","webpack:///../neko-ui/src/form/CheckboxGroup.js","webpack:///../neko-ui/src/form/Input.js","webpack:///../neko-ui/src/form/TextArea.js","webpack:///../neko-ui/src/form/Select.js","webpack:///../neko-ui/src/misc/Finder.js","webpack:///../neko-ui/src/misc/Logo.js","webpack:///../neko-ui/src/misc/Progress.js","webpack:///../neko-ui/src/misc/Tooltip.js","webpack:///../neko-ui/src/misc/Icon.js","webpack:///../neko-ui/src/misc/Header.js","webpack:///../neko-ui/src/misc/Paging.js","webpack:///../neko-ui/src/misc/Links.js","webpack:///../neko-ui/src/misc/Gauge.js","webpack:///../neko-ui/src/misc/Message.js","webpack:///../neko-ui/src/misc/Upload.js","webpack:///../neko-ui/src/modal/Modal.js","webpack:///../neko-ui/src/table/Table.js","webpack:///../neko-ui/src/tabs/Tabs.js","webpack:///../neko-ui/src/tabs/SideTabs.js","webpack:///../neko-ui/src/toolbar/Toolbar.js","webpack:///../neko-ui/src/errors.js","webpack:///../neko-ui/src/helpers.js","webpack:///./app/js/settings.js","webpack:///./app/js/components/Settings.js","webpack:///./app/js/index.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","React","ReactDOM","NekoBusyOverlay","props","spinner","busy","overlayStyle","useState","showLoader","setShowLoader","useEffect","timeout","setTimeout","clearTimeout","loader","Fragment","className","style","Boolean","jsx","propsForElement","undefined","position","children","propTypes","PropTypes","bool","isRequired","oneOfType","arrayOf","node","NekoTheme","black","blackRGB","blue","blueRGB","deepBlue","finderBorder","lightBlue","lightGray","gray","green","darkGray","disabledForm","orange","overlay","red","redHighlight","header","proGray","progress","tableGray","yellow","yellowRGB","white","fontFamily","fontSizeH1","fontSizeH2","fontSizeText","fontSizeSmall","lightShadow","presetIcons","lockCheck","lockOpenVariant","fileUndo","chevronDoubleLeft","chevronDoubleRight","chevronLeft","chevronRight","chevronDown","chevronUp","pauseIcon","playIcon","replayIcon","checkIcon","stopIcon","deleteIcon","undoIcon","alertCircle","databaseIcon","toolsIcon","cogIcon","closeIcon","catIcon","uploadIcon","trashCan","leadPencil","viewDashboard","databaseSearch","StyledButton","Styled","icon","onClick","disabled","color","rest","hasIcon","classNames","type","PresetIcons","width","height","marginRight","Theme","lighten","additionalColor","NekoButton","oneOf","instanceOf","IconifyIcon","string","func","defaultProps","Tag","a","Colors","StyledProOnly","show","href","target","ProOnly","useComponentSize","ref","useRef","size","setSize","current","observer","ResizeObserver","entries","element","contentRect","left","right","top","bottom","observe","unobserve","useOutsideClick","onOutsideClick","componentRef","handleOutsideClick","e","contains","document","addEventListener","removeEventListener","PQueue","concurrency","autoStart","MenuButtonWrapper","div","MenuButton","button","MenuItemContainer","StyledMenuButton","title","isPro","isOpen","setIsOpen","wrapperRef","buttonRef","buttonWidth","Children","map","child","cloneElement","marginLeft","transform","MenuItem","StyledNekoMenuItem","requirePro","needsProUser","NekoMenuButton","NekoMenuItem","Page","StyledNekoPage","nekoErrors","fatalError","setFatalError","showBody","setShowBody","error","url","code","message","body","dangerouslySetInnerHTML","__html","open","NekoPage","NekoH1","h1","NekoH2","h2","NekoP","NekoSpan","span","StyledNekoTypo","NekoTypo","any","Block","StyledNekoBlock","NekoBlock","Container","Bar","StyledNekoContainer","headerAlign","footer","footerAlign","NekoContainer","StyledNekoSettings","contentAlign","NekoSettings","WindowBase","TitleBar","StyledNekoWindow","NekoWindow","Wrapper","Column","StyledNekoWrapper","StyledNekoColumn","full","minimal","NekoWrapper","NekoColumn","StyledNekoCheckbox","id","checked","onChange","label","description","showUpProOnly","isDisabled","disabledClass","join","defaultChecked","console","log","htmlFor","checkboxMarked","checkboxBlankOutline","NekoCheckbox","StyledNekoCheckboxGroup","max","NekoCheckboxGroup","mas","number","StyledNekoInput","placeholder","onEnter","readOnly","step","min","maxLength","natural","newValue","setNewValue","isControlled","onKeyPress","event","preventDefault","onBlur","maxlength","spellcheck","NekoInput","StyledNekoTextArea","spellCheck","NekoTextArea","Select","SelectedOption","Description","Options","OptionsContainer","StyledNekoSelect","scrolldown","currentOption","toArray","find","showOptions","toggleOptions","onOptionClick","childrenLength","RadioOption","SelectOption","StyledNekoOption","radioOption","recordCircle","checkboxBlankCircleOutline","selectOption","NekoSelect","NekoOption","StyledNekoFinder","chevron","FinderTitle","ChevronSpace","ItemContainer","RightElementContainer","StyledNekoFinderItem","defaultIcons","gallery","imageMultipleOutline","tag","tagIcon","rightElement","showRightElement","isFolder","isCustomizedIcon","hasChild","expanded","setExpanded","keys","includes","folderIcon","setIcon","folderOpen","onMouseEnter","onMouseLeave","NekoFinder","NekoFinderItem","Logo","StyledNekoLogo","viewBox","fill","xmlns","stroke","strokeWidth","NekoLogo","StyledNekoProgress","status","Math","ratio","parseFloat","ProgressCurrent","onPauseClick","paused","onStopClick","percent","isNaN","parseInt","round","typeOfStatus","minWidth","NekoProgress","TooltipContainer","Tooltip","prop","visible","StyledNekoTooltip","text","setShow","tooltipRef","tooltipWidth","tooltipHeight","childRef","childWidth","childHeight","transformStyle","useMemo","transY","transX","NekoTooltip","StyledIconContainer","StyledIcon","Icon","hoverColor","StyledNekoIcon","spinning","tooltip","containerStyle","getIcon","iconClassName","NekoIcon","HeaderBase","StyledNekoHeader","subtitle","saving","textDecoration","contentSave","NekoHeader","PagingContainer","StyledNekoPaging","currentPage","limit","total","maxPage","ceil","prevIconClassName","nextIconClassName","onClickHandle","page","NekoPaging","LinkContainer","Link","StyledNekoQuickLinks","isActive","StyledNekoLink","count","display","NekoQuickLinks","NekoLink","StyledSection","section","backgroundColor","degrees","NekoGauge","background","class","StyledUpload","NekoUpload","iconSize","onSuccess","onFailure","apiUrl","apiConfig","inDropZone","setInDropZone","floor","random","inputId","inputEl","setBusy","uploadFile","files","file","postFetch","res","success","onDragOver","stopPropagation","onDragEnter","uploadFiles","accept","click","onDragLeave","onDrop","dataTransfer","NekoModalParent","NekoModalContent","StyledNekoModal","ok","cancel","customButtons","content","onOkClick","onCancelClick","customClassName","modalContent","ariaHideApp","parentSelector","getElementById","closeTimeoutMS","NekoModal","Table","table","TableCheckBox","intermediate","onSelect","onUnselect","checkboxMultipleMarked","StyledNekoTable","columns","selectedItems","sort","onSortChange","columnsCount","rows","v","cells","accessor","currentRowsIds","x","areAllRowsSelected","filter","isIntermediate","hiddenColumnIndexes","reduce","headersFooters","column","beingSorted","beingSortedAsc","by","thStyle","sortable","colspan","textAlign","row","cell","NekoTable","TabContainer","TabGroup","Tab","TabContent","StyledNekoTabs","isActiveTabIndex","setIsActiveTabIndex","tabAttributes","toLowerCase","attr","ev","tabIndex","tabAttr","onTabClick","StyledNekoTab","NekoTabs","NekoTab","StyledNekoSideTabs","activeTabIndex","newTabIndex","StyledNekoSideTab","NekoSideTabs","NekoSideTab","ToolbarBase","StyledNekoToolbar","align","NekoToolbar","NekoError","debug","this","consolidateJsonResult","json","meta","JSON","parse","err","jsonFetcher","options","nekoError","rawBody","headers","fetch","config","signal","nonce","formData","FormData","append","method","stringify","mgcl_gallery_custom_links","prefix","domain","rest_url","replace","api_url","plugin_url","is_pro","is_registered","rest_nonce","wp","Settings","useSWR","swrSettings","mutateSwrSettings","mutate","swrData","defaultData","defaultBusy","setData","setError","setTotal","useHandleSWR","busySettings","settings","swrError","busyAction","setBusyAction","obmode","mgcl_obmode","parsingEngine","mgcl_parsing_engine","mgcl_log","buttonEnabled","mgcl_button_enabled","buttonLabel","mgcl_button_label","updateOption","newSettingsData","alert","jsxOBMode","jsxParsingEngine","option","jsxLog","jsxUseButtons","jsxButtonLabel","container","render"],"mappings":"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","file":"index.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"wpJsonMgcl\"] = window[\"wpJsonMgcl\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([79,1]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","module.exports = React;","module.exports = ReactDOM;","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nconst NekoBusyOverlay = (props) => {\n const { spinner = true, busy = false, overlayStyle } = props;\n const [ showLoader, setShowLoader ] = useState(true);\n\n useEffect(() => {\n let timeout;\n\n // Show the loader\n if (!busy) { \n timeout = setTimeout(() => { \n setShowLoader(false); \n timeout = null; \n }, 250);\n }\n else { \n setShowLoader(true);\n }\n\n // Cleanup\n return (() => {\n if (timeout) {\n clearTimeout(timeout);\n }\n });\n }, [busy]);\n\n const loader = !showLoader ? null : (\n <React.Fragment>\n <div className={'overlay' + ' ' + (!busy ? 'overlayHidden' : '')} style={overlayStyle}>\n {Boolean(spinner) && \n <div className={'lds-ellipsis ' + (!busy ? 'spinnerHidden' : '')}>\n <div></div><div></div><div></div><div></div>\n </div>\n }\n </div>\n <style jsx>{`\n .overlay {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n background: rgb(30 124 186 / 85%);\n transition: opacity 1s ease-out;\n z-index: 10;\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n }\n\n .overlayHidden {\n opacity: 0;\n transition: opacity 0.25s ease-out;\n }\n .spinnerHidden {\n opacity: 0;\n transition: opacity 0.25s ease-out;\n }\n .lds-ellipsis {\n position: relative;\n width: 80px;\n height: 80px;\n display: flex;\n justify-items: center;\n align-items: center;\n }\n .lds-ellipsis div {\n position: absolute;\n width: 13px;\n height: 13px;\n border-radius: 50%;\n background: white;\n animation-timing-function: cubic-bezier(0, 1, 1, 0);\n }\n .lds-ellipsis div:nth-child(1) {\n left: 8px;\n animation: lds-ellipsis1 0.6s infinite;\n }\n .lds-ellipsis div:nth-child(2) {\n left: 8px;\n animation: lds-ellipsis2 0.6s infinite;\n }\n .lds-ellipsis div:nth-child(3) {\n left: 32px;\n animation: lds-ellipsis2 0.6s infinite;\n }\n .lds-ellipsis div:nth-child(4) {\n left: 56px;\n animation: lds-ellipsis3 0.6s infinite;\n }\n @keyframes lds-ellipsis1 {\n 0% {\n transform: scale(0);\n }\n 100% {\n transform: scale(1);\n }\n }\n @keyframes lds-ellipsis3 {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0);\n }\n }\n @keyframes lds-ellipsis2 {\n 0% {\n transform: translate(0, 0);\n }\n 100% {\n transform: translate(24px, 0);\n }\n } \n `}</style>\n </React.Fragment>\n );\n\n // I am removing the busy because I like it as a boolean...\n // ... but React doesn't like pure boolean value here.\n const propsForElement = { ...props, busy: undefined, spinner: undefined };\n return (\n <div style={{ position: 'relative' }} {...propsForElement}> \n {loader}\n {props.children}\n </div>\n );\n};\n\nNekoBusyOverlay.propTypes = {\n busy: PropTypes.bool.isRequired,\n spinner: PropTypes.bool,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]).isRequired\n};\n\nexport default NekoBusyOverlay;","const NekoTheme = {\n\n // COLORS\n\n black: 'black',\n blackRGB: '0, 0, 0',\n blue: '#007cba',\n blueRGB: '0, 124, 186',\n deepBlue: '#134575',\n finderBorder: '#DEDEDE',\n lightBlue: '#EBF3FF',\n lightGray: '#F1F1F1',\n gray: '#E8E8E8',\n green: '#0EA480',\n darkGray: '#A0A0A0',\n disabledForm: '#828282',\n orange: '#daa827',\n overlay: 'rgba(16, 16, 16, 0.92)',\n red: '#ba4300',\n redHighlight: '#de5307',\n header: '#134675',\n proGray: '#7F8EA0',\n progress: '#8414a8',\n tableGray: '#FAFAFA',\n yellow: '#e4b42b',\n yellowRGB: '224, 156, 54',\n white: 'white',\n\n // FONT\n\n fontFamily: 'Lato',\n fontSizeH1: '24px',\n fontSizeH2: '18px',\n fontSizeText: '13px',\n fontSizeSmall: '12px',\n\n // SHADOW\n\n lightShadow: '0px 0px 10px rgba(0,0,0,0.1)',\n};\n\nexport default NekoTheme;\n","import lockCheck from '@iconify/icons-mdi/lock-check';\nimport lockOpenVariant from '@iconify/icons-mdi/lock-open-variant';\nimport fileUndo from '@iconify/icons-mdi/file-undo';\nimport chevronDoubleLeft from '@iconify/icons-mdi/chevron-double-left';\nimport chevronDoubleRight from '@iconify/icons-mdi/chevron-double-right';\nimport chevronLeft from '@iconify/icons-mdi/chevron-left';\nimport chevronRight from '@iconify/icons-mdi/chevron-right';\nimport chevronDown from '@iconify/icons-mdi/chevron-down';\nimport chevronUp from '@iconify/icons-mdi/chevron-up';\nimport pauseIcon from '@iconify/icons-mdi/pause';\nimport playIcon from '@iconify/icons-mdi/play';\nimport replayIcon from '@iconify/icons-mdi/replay';\nimport checkIcon from '@iconify/icons-mdi/check';\nimport stopIcon from '@iconify/icons-mdi/stop';\nimport deleteIcon from '@iconify/icons-mdi/delete';\nimport undoIcon from '@iconify/icons-mdi/undo';\n//import alertIcon from '@iconify/icons-mdi/alert';\nimport alertCircle from '@iconify/icons-mdi/alert-circle';\nimport databaseIcon from '@iconify/icons-mdi/database';\nimport pencilIcon from '@iconify/icons-mdi/pencil';\nimport toolsIcon from '@iconify/icons-mdi/tools';\nimport cogIcon from '@iconify/icons-mdi/cog';\nimport closeIcon from '@iconify/icons-mdi/close';\nimport catIcon from '@iconify/icons-mdi/cat';\nimport uploadIcon from '@iconify/icons-mdi/upload';\nimport trashCan from '@iconify/icons-mdi/trash-can';\nimport leadPencil from '@iconify/icons-mdi/lead-pencil';\nimport viewDashboard from '@iconify/icons-mdi/view-dashboard';\nimport databaseSearch from '@iconify/icons-mdi/database-search';\n\nconst presetIcons = {\n 'lock': lockCheck,\n 'lock-open': lockOpenVariant,\n 'file-undo': fileUndo,\n 'chevron-double-left': chevronDoubleLeft,\n 'chevron-double-right': chevronDoubleRight,\n 'chevron-left': chevronLeft,\n 'chevron-right': chevronRight,\n 'chevron-down': chevronDown,\n 'chevron-up': chevronUp,\n 'pause': pauseIcon,\n 'play': playIcon,\n 'replay': replayIcon,\n 'check': checkIcon,\n 'stop': stopIcon,\n 'delete': deleteIcon,\n 'undo': undoIcon,\n 'alert': alertCircle,\n 'database': databaseIcon,\n 'tools': toolsIcon,\n 'cog': cogIcon,\n 'close': closeIcon,\n 'cat': catIcon,\n 'upload': uploadIcon,\n 'trash': trashCan,\n 'pencil': leadPencil,\n 'dashboard': viewDashboard,\n 'search': databaseSearch\n};\n\nexport default presetIcons;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport { lighten } from 'polished';\nimport Theme from '../common/NekoTheme';\nimport { Icon, IconifyIcon } from '@iconify/react';\nimport PresetIcons from '../common/PresetIcons';\n\nconst StyledButton = Styled(props => {\n\n const { className, icon = null, onClick, disabled = false, color = null, children, ...rest } = props;\n const hasIcon = !!icon;\n\n const getIcon = () => {\n if (typeof icon === 'string') {\n return PresetIcons[icon] || null;\n }\n return icon;\n };\n\n const classNames = `nui-button ${className || ''}${hasIcon ? ' has-icon' : ''} ${color ? 'custom-color' : ''}`;\n\n return (\n <button type=\"button\" className={classNames} onClick={onClick} disabled={disabled} {...rest}>\n {hasIcon && <Icon icon={getIcon()} width=\"24\" height=\"24\" style={{ marginRight: '4px' }} />}\n <span>{children}</span>\n </button>\n );\n})`\n display: inline-block;\n box-sizing: border-box;\n height: 30px;\n min-width: 6em;\n border: none;\n border-radius: 4px;\n text-align: center;\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeText};\n padding: 0 15px;\n\n background-color: ${Theme.blue};\n color: white;\n transition: background-color .10s, opacity .25s;\n\n :not([disabled]):hover {\n cursor: pointer;\n background-color: ${lighten(0.1, Theme.blue)};\n }\n\n :disabled {\n opacity: 0.35;\n }\n\n :focus {\n outline: none;\n }\n\n &.has-icon {\n align-items: center;\n display: inline-flex;\n padding: 2.5px 6px 2.5px 4px;\n }\n\n &.secondary {\n background-color: ${Theme.lightBlue};\n border: 1px solid ${Theme.blue};\n color: ${Theme.blue};\n\n &:hover {\n background-color: ${lighten(0.1, Theme.lightBlue)};\n }\n }\n\n &.danger {\n background-color: ${Theme.red};\n border-color: ${Theme.red};\n\n\t &:hover {\n\t\t background-color: ${lighten(0.1, Theme.red)};\n\t }\n }\n\n &.success {\n background-color: ${Theme.green};\n border-color: ${Theme.green};\n\n\t &:hover {\n\t\t background-color: ${lighten(0.1, Theme.green)};\n\t }\n }\n\n & + button {\n margin-left: .25rem;\n }\n\n ${props => additionalColor(props.color)}\n`;\n\nconst additionalColor = (color) => {\n if (color) {\n return `\n &.custom-color {\n background-color: ${color};\n border: 1px solid ${color};\n\n &:hover {\n background-color: ${lighten(0.1, color)};\n }\n }\n `;\n }\n};\n\n/**\n * The NekoButton works out of the box without specific attributes.\n */\nconst NekoButton = (props) => {\n return (<StyledButton {...props} />);\n};\n\nNekoButton.propTypes = {\n className: PropTypes.oneOf(['primary', 'secondary', 'danger', 'success']),\n disabled: PropTypes.bool,\n icon: PropTypes.oneOfType([PropTypes.instanceOf(IconifyIcon), PropTypes.oneOf(['setting', 'edit', 'trash'])]),\n color: PropTypes.string,\n onClick: PropTypes.func.isRequired\n};\n\nNekoButton.defaultProps = {\n className: 'primary',\n disabled: false,\n icon: null,\n color: null,\n onClick: () => {}\n};\n\nexport { NekoButton };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Colors from '../common/NekoTheme';\nimport Theme from '../common/NekoTheme';\n\nconst Tag = Styled.a`\n background-color: ${Colors.yellow};\n position: relative;\n border-radius: 10px;\n color: ${Colors.white};\n font-family: ${Theme.fontFamily};\n font-size: 9px;\n line-height: 10px;\n padding: 5px 8px;\n text-transform: uppercase;\n text-decoration: none;\n\n &:hover {\n color: ${Colors.white};\n background-color: #f78c1f;\n }\n\n &.inline {\n display: inline;\n margin-left: 5px;\n vertical-align: middle;\n }\n`;\n\n/**\n * @param {string} className\n * @param {string|object} icon\n * @param {bool} disabled\n * @param {function} onClick\n */\nconst StyledProOnly = (props) => {\n\n const { show = true, className, ...rest } = props;\n\n if (!show) {\n return null;\n }\n\n return (\n <Tag href='https://store.meowapps.com' target='_blank' className={`${className || ''}`} {...rest}>\n Pro Only\n </Tag>\n );\n};\n\nconst ProOnly = (props) => {\n return (<StyledProOnly {...props} />);\n}\n\nProOnly.propTypes = {\n show: PropTypes.bool,\n className: PropTypes.string\n};\n\nProOnly.defaultProps = {\n show: true,\n className: undefined\n};\n\nexport { ProOnly };\n","import React, { useState, useRef, useEffect, useCallback } from 'react';\nimport PQueue from 'p-queue';\n\nconst useHandleSWR = (swrData = undefined, defaultData = null, defaultBusy = false) => {\n const [ data, setData ] = useState(defaultData);\n const [ error, setError ] = useState(null);\n const [ busy, setBusy ] = useState(defaultBusy);\n const [ total, setTotal ] = useState(0);\n\n useEffect(() => {\n if (swrData !== undefined) { \n if (swrData.success) {\n setError(null);\n setData(swrData.data);\n setTotal(swrData.total ? swrData.total : 0);\n }\n else {\n setError(swrData.error);\n }\n }\n setBusy(swrData === undefined);\n }, [ swrData ]);\n\n return { busy, data, total, error };\n}\n\n// Sometimes, we need to align or place elements depending on other dynamic elements.\n// This hook returns a ref (which should be assign to a component), and the size of\n// this element every time it changes.\n\nconst useComponentSize = () => {\n const ref = useRef();\n const [ size, setSize ] = useState({});\n\n useEffect(() => {\n if (ref && ref.current) {\n const observer = new ResizeObserver(entries => {\n let element = entries[0];\n if (element.contentRect) {\n setSize({ \n width: element.contentRect.left + element.contentRect.right, \n height: element.contentRect.top + element.contentRect.bottom \n });\n }\n });\n observer.observe(ref.current);\n return () => { observer.unobserve(ref.current); };\n }\n }, []);\n return { ref, width: size.width ? size.width : 0, height: size.height ? size.height : 0 };\n};\n\n// If a click is made outside the component, then the function onOutsideClick is called.\n// This function returns a ref which needs to be assigned to the component.\n\nconst useOutsideClick = (onOutsideClick) => {\n const componentRef = useRef();\n const handleOutsideClick = (e) => {\n if (!onOutsideClick || componentRef.current.contains(e.target)) {\n return;\n }\n onOutsideClick();\n };\n useEffect(() => {\n document.addEventListener(\"mousedown\", handleOutsideClick);\n return () => { document.removeEventListener(\"mousedown\", handleOutsideClick); };\n });\n return componentRef;\n};\n\n\n// This hook allows calling many requests without having too many of them\n// running concurrently.\n\nlet GlobalQueue = null;\n\nconst useNekoGlobalQueue = (params = {}) => {\n\n if (!GlobalQueue) {\n let { concurrency = 2 } = params;\n GlobalQueue = new PQueue({ concurrency, autoStart: true });\n }\n\n const runTask = async (func) => {\n return await GlobalQueue.add(func);\n }\n\n return { runTask };\n};\n\n// This hook handles batch of asynchronous requests, and provide everything\n// the NekoProgress might need.\n\nconst isDebug = false;\nconst UploadQueue = new PQueue({ concurrency: 1, autoStart: false });\n\nconst useNekoTasks = () => {\n\n // We should be able to kill fetch requests using this\n // Interesting article: https://davidwalsh.name/cancel-fetch\n const [ controller, setController ] = useState(new AbortController());\n const refSkip = useRef(false);\n const refErrors = useRef(0);\n const [ busy, setBusy ] = useState(null);\n const [ paused, setPaused ] = useState(false);\n const [ max, setMax ] = useState(0);\n const [ error, setError ] = useState(false);\n const [ success, setSuccess ] = useState(false);\n const [ value, setValue ] = useState(0);\n\n const reset = async () => {\n let newController = new AbortController();\n setController(newController);\n setError(false);\n refErrors.current = 0;\n refSkip.current = false;\n setPaused(false);\n setSuccess(false);\n setValue(0);\n setMax(0);\n };\n\n const start = async (tasks) => {\n const runnerPromise = new Promise((resolve, reject) => {\n setError(false);\n refErrors.current = 0;\n refSkip.current = false;\n setPaused(false);\n setSuccess(false);\n setTasks(tasks);\n setBusy(true);\n if (isDebug) { console.log('Started process.'); }\n UploadQueue.start();\n UploadQueue.onIdle().then(() => {\n onIdle();\n resolve();\n }); \n });\n return runnerPromise;\n };\n\n const pause = async () => {\n if (isDebug) { console.log('Paused process.'); }\n UploadQueue.pause();\n setPaused(true);\n };\n\n const resume = async () => {\n if (isDebug) { console.log('Resume process.'); }\n setError(false);\n setPaused(false);\n UploadQueue.start();\n };\n\n const stop = async () => {\n if (isDebug) { console.log('Cancelled process.'); }\n UploadQueue.pause();\n controller.abort();\n setBusy(false);\n setError(false);\n setSuccess(false);\n };\n\n const onIdle = async () => {\n if (isDebug) { console.log('onIdle.'); }\n setSuccess(true);\n setBusy(false);\n };\n\n const addTask = async (task) => {\n UploadQueue.add(async () => {\n try {\n let res = await task(controller.signal);\n if (!res || !res.success) {\n console.error('[useNekoTasks] Task returned nothing.', res);\n }\n if (!res.success) {\n refErrors.current++;\n if (!refSkip.current) {\n setError(res.error);\n pause();\n }\n }\n }\n catch (err) {\n if (err.name === 'AbortError') {\n console.log('Aborted');\n return;\n }\n else {\n refErrors.current++;\n if (!refSkip.current) {\n setError(\"An error was caught (more information in the console).\");\n pause();\n }\n }\n }\n finally {\n setValue(value => value + 1);\n }\n });\n setMax(max => max + 1);\n }\n\n const setTasks = async (tasks) => {\n UploadQueue.clear();\n for (let task of tasks) {\n addTask(task);\n }\n setValue(0);\n };\n\n const setAlwaysSkip = useCallback((value = true) => {\n refSkip.current = true;\n }, []);\n\n const getErrorCount = useCallback(() => {\n return refErrors.current;\n }, []);\n\n return { start, stop, pause, resume, reset, \n addTask, setAlwaysSkip, getErrorCount,\n error, success, busy, paused, value, max };\n};\n\nexport { useHandleSWR, useOutsideClick, useNekoGlobalQueue, useNekoTasks, useComponentSize };","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport { lighten } from 'polished';\nimport Theme from '../common/NekoTheme';\nimport { ProOnly } from '../label/ProOnly';\nimport { Icon } from '@iconify/react';\nimport chevronDown from '@iconify/icons-mdi/chevron-down';\nimport { useOutsideClick, useComponentSize } from '../hooks';\n\nconst MenuButtonWrapper = Styled.div`\n display: inline-block;\n`;\n\nconst MenuButton = Styled.button`\n align-items: center;\n background-color: ${Theme.blue};\n border: none;\n border-radius: 4px;\n box-sizing: border-box;\n color: white;\n display: inline-flex;\n justify-content: space-between;\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeText};\n height: 30px;\n min-width: 6em;\n padding: 0px 10px;\n text-align: center;\n transition: background-color .10s, opacity .25s;\n\n :not([disabled]):hover {\n cursor: pointer;\n background-color: ${lighten(0.1, Theme.blue)};\n }\n\n :disabled {\n opacity: 0.35;\n }\n\n :focus {\n outline: none;\n }\n\n & + button {\n margin-left: .25rem;\n }\n`;\n\nconst MenuItemContainer = Styled.div`\n position: relative;\n display: block;\n margin-top: 18px;\n background-color: ${Theme.blue};\n position: absolute;\n z-index: 10;\n box-shadow: ${Theme.lightShadow};\n\n &:before {\n content: \"\";\n position: absolute;\n top: -18px;\n left: 50%;\n margin-left: -8px;\n border: 8px solid transparent;\n border-bottom: 10px solid ${Theme.blue};\n }\n`;\n\nconst StyledMenuButton = props => {\n\n const { title, disabled = false, isPro = false, style = {} } = props;\n const [ isOpen, setIsOpen ] = React.useState(false);\n const wrapperRef = useOutsideClick(() => { setIsOpen(false) });\n const { ref: buttonRef, width: buttonWidth } = useComponentSize();\n\n const onClick = () => {\n setIsOpen(!isOpen);\n }\n\n const children = React.Children.map(props.children, child => {\n return React.cloneElement(child, {\n isPro,\n disabled: child.props.disabled || disabled,\n onClick: () => {\n if (child.props.onClick) {\n child.props.onClick();\n }\n onClick();\n }\n });\n });\n\n return (\n <MenuButtonWrapper ref={wrapperRef}>\n <MenuButton ref={buttonRef} type=\"button\" disabled={disabled} onClick={onClick} style={style}>\n <span>{title}</span>\n <Icon icon={chevronDown} width=\"24\" height=\"24\" style={{ marginLeft: '4px' }} />\n </MenuButton>\n {isOpen &&\n <MenuItemContainer style={{ transform: `translateX(calc(-50% + ${buttonWidth / 2}px))` }}>\n {children}\n </MenuItemContainer>\n }\n </MenuButtonWrapper>\n );\n};\n\nconst MenuItem = Styled.button`\n align-items: center;\n background-color: ${Theme.blue};\n border: none;\n box-sizing: border-box;\n color: white;\n display: flex;\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeText};\n width: 100%;\n padding: 8px 15px 8px 15px;\n text-align: center;\n transition: background-color .10s, opacity .25s;\n\n :not([disabled]):hover {\n cursor: pointer;\n background-color: ${lighten(0.1, Theme.blue)};\n }\n\n :disabled:not(.is-pro) {\n opacity: 0.35;\n }\n\n :focus {\n outline: none;\n }\n\n &.is-pro {\n background-color: ${Theme.proGray};\n justify-content: space-between;\n }\n`;\n\nconst StyledNekoMenuItem = props => {\n\n const { onClick, children, isPro, requirePro = false, disabled } = props;\n const needsProUser = requirePro && !isPro;\n\n return (\n <MenuItem type=\"button\" className={needsProUser? 'is-pro' : ''} onClick={onClick} disabled={disabled || needsProUser}>\n <span>{children}</span>\n {needsProUser && !isPro && <ProOnly />}\n </MenuItem>\n );\n};\n\n/**\n * The NekoMenuButton works out of the box without specific attributes.\n */\nconst NekoMenuButton = (props) => {\n return (<StyledMenuButton {...props} />);\n}\nconst NekoMenuItem = (props) => {\n return (<StyledNekoMenuItem {...props} />);\n}\n\nNekoMenuButton.propTypes = {\n title: PropTypes.string,\n disabled: PropTypes.bool,\n isPro: PropTypes.bool\n};\n\nNekoMenuButton.defaultProps = {\n title: undefined,\n disabled: false,\n isPro: false\n};\n\nNekoMenuItem.propTypes = {\n onClick: PropTypes.func.isRequired,\n requirePro: PropTypes.bool\n};\n\nNekoMenuItem.defaultProps = {\n onClick: () => {},\n requirePro: false\n};\n\nexport { NekoMenuButton, NekoMenuItem };\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport { NekoButton } from '../button/Button';\n\nconst Page = Styled.div`\n position: relative;\n background: #f1f1f1;\n margin-left: -20px;\n background-color: rgb(30 124 186 / 10%);\n padding-bottom: 50px;\n margin-bottom: -26px;\n\n .neko-rest-error {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: #1e232deb;\n z-index: 100;\n\n .container {\n color: white;\n padding: 5px 20px 15px 20px;\n min-width: 480px;\n max-width: 600px;\n border-radius: 20px;\n background: #883131;\n margin-left: 50%;\n transform: translateX(-50%);\n margin-top: 100px;\n\n h3 {\n color: white;\n }\n\n .neko-debug {\n padding: 5px 10px;\n background: #692426;\n border-radius: 10px;\n\n * {\n margin: 0px;\n padding: 0px;\n } \n }\n }\n }\n`;\n\n/**\n * @oaram {string} className\n */\nconst StyledNekoPage = props => {\n\n const { className, children, nekoErrors = [], style = {} } = props;\n const [ fatalError, setFatalError ] = useState(false);\n const [ showBody, setShowBody ] = useState(false);\n\n if (nekoErrors && !fatalError) {\n for (let error of nekoErrors) {\n if (error) {\n setFatalError(error);\n break\n }\n }\n }\n\n return (\n <Page className={className || ''} style={style}>\n {fatalError && \n <div className='neko-rest-error'>\n <div className='container'>\n {!showBody &&\n <>\n <h3>The Rest API is disabled or broken 😢</h3>\n <p>The Rest API is required for this plugin to work. It is enabled in WordPress by default since December 2016 and used by the Gutenberg Editor since 2019. In short, it allows more robustness and a much cleaner infrastructure. Soon, Wordpress will entirely depends on it, so it is important to keep it enabled.</p>\n <p><i>Last but not least: check your PHP Error Logs and your Debugging Console.</i></p>\n <p className='neko-debug'>\n <small>\n URL: {fatalError.url}<br />\n CODE: {fatalError.code}<br />\n MESSAGE: {fatalError.message}<br />\n </small>\n </p>\n </>\n }\n {fatalError.body && showBody &&\n <p className='neko-debug'>\n <div dangerouslySetInnerHTML={{ __html: fatalError.body }}></div>\n </p>\n }\n {fatalError.body &&\n <NekoButton color=\"#a94242\" onClick={() => setShowBody(!showBody)}>\n {showBody ? 'Hide' : 'Display'} response from server\n </NekoButton>\n }\n <NekoButton color=\"#a94242\" onClick={() => { window.open('https://meowapps.com/debugging-wordpress/', '_blank') }}>\n Learn about WordPress Debugging\n </NekoButton>\n </div>\n </div>}\n {children}\n </Page>\n );\n};\n\nconst NekoPage = (props) => {\n return (<StyledNekoPage {...props} />);\n};\n\nNekoPage.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n nekoErrors: PropTypes.bool\n};\n\nNekoPage.defaultProps = {\n className: undefined,\n style: {},\n nekoErrors: false\n};\n\nexport { NekoPage };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\n\nimport Theme from '../common/NekoTheme';\n\nconst NekoH1 = Styled.h1`\n font-family: ${Theme.fontFamily};\n font-weight: normal;\n font-size: ${Theme.fontSizeH1};\n line-height: normal;\n margin-top: 0;\n margin-bottom: 16px;\n padding: 0;\n`;\n\nconst NekoH2 = Styled.h2`\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeH2};\n font-weight: normal;\n line-height: normal;\n margin-top: 0;\n margin-bottom: 16px;\n padding: 0;\n`;\n\nconst NekoP = Styled.p`\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeText};\n line-height: normal;\n margin: 16px 0 24px;\n padding: 0;\n`;\n\nconst NekoSpan = Styled.span`\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeText};\n line-height: normal;\n margin: 0;\n padding: 0;\n`;\n\n/**\n * @param {string} (variant) Tag Name\n */\nconst StyledNekoTypo = props => {\n const { children, ...rest } = props;\n return (\n props.h1 ? <NekoH1 {...rest}>{children}</NekoH1>\n : props.h2 ? <NekoH2 {...rest}>{children}</NekoH2>\n : props.p ? <NekoP {...rest}>{children}</NekoP>\n : <NekoSpan {...rest}>{children}</NekoSpan>\n );\n};\n\nconst NekoTypo = (props) => {\n return (<StyledNekoTypo {...props} />);\n}\n\nNekoTypo.propTypes = {\n h1: PropTypes.any,\n h2: PropTypes.any,\n p: PropTypes.any\n};\n\nNekoTypo.defaultProps = {\n h1: undefined,\n h2: undefined,\n p: undefined\n};\n\nexport { NekoTypo };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\nimport { NekoTypo } from '../misc/Typography';\nimport NekoBusyOverlay from '../common/NekoBusyOverlay';\n\nconst Block = Styled.div`\n font-size: ${Theme.fontSizeText};\n margin-bottom: 15px;\n \n .nui-block-title {\n color: ${Theme.blue};\n padding: 5px 10px;\n margin-bottom: 5px;\n }\n\n .nui-block-content {\n background-color: #f1f1f1;\n padding: 26px;\n box-shadow: 0px 2px 5px 0px #0000004a;\n border-radius: 10px;\n\n p:first-child {\n margin-top: 0;\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &.primary {\n padding: 8px;\n background-color: ${Theme.blue};\n\n .nui-block-title {\n color: ${Theme.white};\n }\n\n .nui-block-content {\n background-color: ${Theme.white};\n }\n }\n`;\n\n/**\n * @oaram {string} className\n */\nconst StyledNekoBlock = props => {\n\n const { title, children, className, busy = false, style = {} } = props;\n\n return (\n \n <Block className={'nui-block ' + (className || '')} style={style}>\n <NekoBusyOverlay busy={busy}>\n <NekoTypo h2 className=\"nui-block-title\">{title}</NekoTypo>\n <div className=\"nui-block-content\">\n {children}\n </div>\n </NekoBusyOverlay>\n </Block>\n \n );\n};\n\nconst NekoBlock = (props) => {\n return (<StyledNekoBlock {...props} />);\n}\n\nNekoBlock.propTypes = {\n title: PropTypes.string,\n className: PropTypes.oneOf(['', 'primary']),\n style: PropTypes.object\n};\n\nNekoBlock.defaultProps = {\n title: undefined,\n className: '',\n style: {}\n};\n\nexport { NekoBlock };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\n\nconst Container = Styled.div`\n font-size: ${Theme.fontSizeText};\n font-family: ${Theme.fontFamily};\n background-color: ${Theme.white};\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n margin-bottom: 25px;\n\n &.primary {\n background-color: ${Theme.blue};\n }\n\n p:first-child {\n margin-top: 0px;\n }\n\n p:last-child {\n margin-bottom: 0px;\n }\n\n .content {\n padding: 20px 20px;\n }\n`;\n\nconst Bar = Styled.div`\n justify-content: flex-start;\n background-color: ${Theme.lightGray};\n display: flex;\n align-items: center;\n padding: 8px 10px;\n\n &.align-right {\n justify-content: flex-end;\n }\n`;\n\n/**\n * @oaram {string} className\n */\nconst StyledNekoContainer = props => {\n\n const { children, header, headerAlign = 'left', footer, footerAlign = 'right', className, style = {} } = props;\n\n return (\n <Container className={className || ''} style={style}>\n {header && <Bar className={`align-${headerAlign}`}>{ header }</Bar>}\n <div className=\"content\">\n { children }\n </div>\n {footer && <Bar className={`align-${footerAlign}`}>{ footer }</Bar>}\n </Container>\n );\n};\n\nconst NekoContainer = (props) => {\n return (<StyledNekoContainer {...props} />);\n}\n\nNekoContainer.propTypes = {\n header: PropTypes.element,\n headerAlign: PropTypes.oneOf(['left', 'right']),\n footer: PropTypes.element,\n footerAlign: PropTypes.oneOf(['left', 'right']),\n className: PropTypes.string,\n style: PropTypes.object\n};\nNekoContainer.defaultProps = {\n header: undefined,\n headerAlign: 'left',\n footer: undefined,\n footerAlign: 'right',\n className: undefined,\n style: {}\n};\n\nexport { NekoContainer };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\n\n/**\n * @param {string} title=''\n */\nconst StyledNekoSettings = Styled(props => {\n const { title = '', contentAlign = 'left' } = props;\n return (\n <div className={props.className || ''}>\n {title ? <div className=\"nui-settings-head\">{title}</div> : null}\n <div className={`nui-settings-content nui-settings-content-align-${contentAlign}`}>\n {props.children}\n </div>\n </div>\n );\n})`\n display: flex;\n font-family: ${Theme.fontFamily};\n\n > .nui-settings-head {\n font-family: ${Theme.fontFamily};\n font-size: 14px;\n line-height: 17px;\n width: 120px;\n margin-right: 16px;\n }\n\n /* Select, Checkbox, Input need to be a bit higher to be in front of the settings title */\n\n .nui-settings-content > .nui-select:first-child {\n position: relative;\n margin-top: -5px;\n }\n \n .nui-settings-content > .nui-checkbox:first-child {\n position: relative;\n margin-top: -5px;\n }\n\n .nui-settings-content > .nui-checkbox:first-child {\n position: relative;\n margin-top: -5px;\n }\n\n .nui-settings-content > .nui-button:first-child {\n position: relative;\n margin-top: -5px;\n }\n\n .nui-settings-content > div:first-child > .neko-input {\n position: relative;\n margin-top: -5px;\n }\n\n > .nui-settings-content {\n flex: 1;\n\n &.nui-settings-content-align-right {\n flex: none;\n margin-left: auto;\n }\n\n input[type=text] {\n width: 100%;\n }\n\n\n }\n\n & + div {\n margin-top: 15px;\n }\n`;\n\nconst NekoSettings = (props) => {\n return (<StyledNekoSettings {...props} />);\n}\n\nNekoSettings.propTypes = {\n title: PropTypes.string,\n className: PropTypes.string,\n contentAlign: PropTypes.string\n};\n\nNekoSettings.defaultProps = {\n title: '',\n className: undefined,\n contentAlign: 'left'\n};\n\nexport { NekoSettings };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\n\nconst WindowBase = Styled.div`\n margin: 20px;\n padding: 14px;\n background-color: white;\n box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);\n\n > * + * {\n /* Base margin between child elements */\n margin-top: 14px;\n }\n`;\n\nconst TitleBar = Styled(props => (\n props.children ? (\n <div className={props.className}>\n {props.children}\n </div>\n ) : null\n))`\n background-color: ${Theme.blue};\n color: white;\n`;\n\nconst StyledNekoWindow = props => (\n <WindowBase className='window'>\n <TitleBar>{props.title}</TitleBar>\n {props.children}\n </WindowBase>\n);\n\nconst NekoWindow = (props) => {\n return (<StyledNekoWindow {...props} />);\n}\n\nNekoWindow.propTypes = {\n title: PropTypes.string\n};\nNekoWindow.defaultProps = {\n title: undefined\n};\n\nexport { NekoWindow };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\n\nconst Wrapper = Styled.div`\n display: flex;\n flex-wrap: wrap;\n`;\n\nconst Column = Styled.div`\n flex: 1;\n padding: 32px 30px;\n\n .nui-block:not(:first-child) {\n margin-top: -20px;\n }\n\n .nui-block:last-child {\n margin-bottom: 0px;\n }\n\n &.minimal {\n padding: 0;\n }\n\n &.full {\n flex-basis: 100%;\n padding-bottom: 0;\n }\n\n & + .full {\n padding-bottom: 32px;\n padding-top: 0;\n }\n\n &:not(.full) + div:not(.full) {\n padding-left: 0;\n }\n`;\n\n/**\n * @oaram {string} className\n */\nconst StyledNekoWrapper = props => {\n return (\n <Wrapper>\n { props.children }\n </Wrapper>\n );\n};\n\nconst StyledNekoColumn = props => {\n const { full, minimal, ...rest } = props;\n let className = full ? 'full' : '';\n className += minimal ? ' minimal' : '';\n return (\n <Column className={className} {...rest}>{props.children}</Column>\n );\n};\n\nconst NekoWrapper = (props) => {\n return (<StyledNekoWrapper {...props} />);\n};\n\nconst NekoColumn = (props) => {\n return (<StyledNekoColumn {...props} />);\n};\n\nNekoWrapper.propTypes = {\n};\nNekoWrapper.defaultProps = {\n};\n\nNekoColumn.propTypes = {\n full: PropTypes.any\n};\nNekoColumn.defaultProps = {\n full: undefined\n};\n\nexport { NekoWrapper, NekoColumn };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\nimport { ProOnly } from '../label/ProOnly';\n\nimport { Icon } from '@iconify/react';\nimport checkboxBlankOutline from '@iconify/icons-mdi/checkbox-blank-outline';\nimport checkboxMarked from '@iconify/icons-mdi/checkbox-marked';\n\n/**\n * @param {string} id\n * @param {string} name\n * @param {bool} checked\n * @param {string} label\n * @param {string} description\n */\nconst StyledNekoCheckbox = Styled(props => {\n const { id, name, checked = false, onChange, label, description, isPro, disabled, requirePro = false } = props;\n\n const showUpProOnly = requirePro && !isPro;\n const isDisabled = disabled || showUpProOnly;\n const disabledClass = isDisabled ? 'disabled' : '';\n\n const onClick = () => {\n if (!onChange) {\n console.log(`The onChange handler it not set for this checkbox.`, props);\n return;\n }\n onChange(!checked, id);\n };\n\n return (\n <div className={['nui-checkbox', props.className, disabledClass].join(' ')}>\n <input id={id} name={name} type=\"checkbox\" defaultChecked={false} onClick={onClick} disabled={isDisabled} />\n <label htmlFor={id}>\n <div className=\"nui-checkbox-check-container\">\n <Icon icon={checked ? checkboxMarked : checkboxBlankOutline} width=\"30px\" height=\"30px\" \n color={isDisabled ? Theme.disabledForm : Theme.blue} />\n </div>\n <div className=\"nui-checkbox-inner-container\">\n <span className=\"label\">{label}<ProOnly className=\"inline\" show={showUpProOnly} /></span>\n {description ? <small className=\"description\">{description}</small> : null}\n </div>\n </label>\n </div>\n );\n})`\n font-family: ${Theme.fontFamily};\n\n &.disabled {\n color: ${Theme.disabledForm};\n\n label {\n cursor: default;\n }\n }\n\n input {\n display: none;\n }\n\n label {\n cursor: pointer;\n display: flex;\n }\n .nui-checkbox-check-container {\n flex-basis: 30px;\n }\n .nui-checkbox-inner-container {\n margin-top: 1.5px;\n margin-left: 4px;\n\n .label {\n display: block;\n font-size: 14px;\n line-height: 17px;\n padding-top: 4.5px;\n padding-bottom: 4px;\n }\n \n .description {\n display: block;\n font-size: 13px;\n line-height: 14px;\n color: #8a8a8a;\n\n * {\n font-size: 13px;\n line-height: inherit;\n margin: 0;\n }\n }\n }\n`;\n\nconst NekoCheckbox = (props) => {\n return (<StyledNekoCheckbox {...props} />);\n};\n\nNekoCheckbox.propTypes = {\n id: PropTypes.string,\n name: PropTypes.string,\n checked: PropTypes.bool,\n label: PropTypes.string,\n description: PropTypes.string,\n isPro: PropTypes.bool,\n requirePro: PropTypes.bool\n};\n\nNekoCheckbox.defaultProps = {\n id: undefined,\n name: undefined,\n checked: false,\n label: undefined,\n description: undefined,\n isPro: false,\n requirePro: false\n};\n\nexport { NekoCheckbox };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\n\n/**\n * @param {string} name\n * @param {int} max=-1 Max number of checkboxes to be checked. Negative number means unlimited\n */\nconst StyledNekoCheckboxGroup = Styled(props => {\n const { name, max = -1, isPro = false } = props;\n\n // React.Children.toArray(props.children)\n\n // Modify child components (Checkboxes)\n const children = React.Children.map(props.children, child => {\n if (child.props.name) return child; // Do not modify if the child has its own name\n return React.cloneElement(child, {\n name: name, // Apply the group's name\n isPro\n });\n });\n\n return children;\n})`\n`;\n\nconst NekoCheckboxGroup = (props) => {\n return (<StyledNekoCheckboxGroup {...props} />);\n}\n\nNekoCheckboxGroup.propTypes = {\n name: PropTypes.string,\n mas: PropTypes.number,\n isPro: PropTypes.bool\n};\n\nNekoCheckboxGroup.defaultProps = {\n name: undefined,\n mas: -1,\n isPro: false\n}\n\nexport { NekoCheckboxGroup };\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\n\n/**\n * @param {string} id\n * @param {string} name\n * @param {string} value\n * @param {string} description\n * @param {string} placeholder\n */\nconst StyledNekoInput = Styled(props => {\n const { id, name, value = '', description, placeholder = '', onEnter = null,\n readOnly = false, type = 'text', step = 1, min = 1, max = 999, \n maxLength = 3, className, style, natural = false, ...rest } = props;\n\n const [ newValue, setNewValue ] = useState(value);\n const isControlled = !!props.onChange;\n\n useEffect(() => {\n if (!isControlled) {\n setNewValue(value);\n }\n }, [ value ]);\n\n const onChange = (e) => {\n if (isControlled) { \n props.onChange(e.target.value, id);\n }\n else {\n setNewValue(e.target.value, id);\n }\n };\n\n const onKeyPress = (e) => {\n if (onEnter && event.key === 'Enter') {\n e.preventDefault();\n props.onEnter(e.target.value, id);\n }\n };\n\n const onBlur = (e) => {\n if (props.onBlur && value !== e.target.value) {\n props.onBlur(e.target.value, id);\n }\n };\n\n const classNames = `neko-input ${natural ? ' natural' : ''}`;\n\n return (\n <div className={[className].join(' ')} style={style}>\n {type === 'number'\n ? <input className={[classNames].join(' ')} {...rest} id={id} name={name} value={isControlled ? value : newValue} type={type} \n step={step} min={min} max={max} maxlength={maxLength} \n placeholder={placeholder} \n onChange={onChange} onKeyPress={onKeyPress} onBlur={onBlur} readOnly={readOnly} />\n : <input className={[classNames].join(' ')} {...rest} id={id} name={name} value={isControlled ? value : newValue} type={type} \n spellcheck=\"false\" \n placeholder={placeholder} \n onChange={onChange} onKeyPress={onKeyPress} onBlur={onBlur} readOnly={readOnly} />\n }\n {description && <p className=\"neko-input-description\">{description}</p>}\n </div>\n );\n})`\n .neko-input {\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeText};\n border: 2px solid ${Theme.blue};\n box-sizing: border-box;\n height: 30px;\n background: rgb(0 124 186 / 10%);\n padding: 0 10px;\n width: 100%;\n\n &.natural {\n border-color: gray;\n border-width: 1px;\n }\n\n &::placeholder {\n color: rgba(0, 0, 0, 0.25);\n }\n\n :focus {\n background-color: white;\n }\n\n :read-only {\n background-color: ${Theme.gray};\n }\n }\n\n .neko-input-description {\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeSmall};\n line-height: 14px;\n margin-top: 8px;\n margin-bottom: 0;\n }\n`;\n\nconst NekoInput = (props) => {\n return (<StyledNekoInput {...props} />);\n};\n\nNekoInput.propTypes = {\n id: PropTypes.string,\n type: PropTypes.oneOf(['number', 'text']),\n name: PropTypes.string,\n value: PropTypes.string,\n description: PropTypes.string,\n placeholder: PropTypes.string,\n onChange: PropTypes.func,\n onEnter: PropTypes.func,\n onBlur: PropTypes.func,\n readOnly: PropTypes.bool,\n step: PropTypes.number,\n min: PropTypes.number,\n max: PropTypes.number,\n maxLength: PropTypes.number,\n natural: PropTypes.bool\n};\n\nNekoInput.defaultProps = {\n id: undefined,\n type: 'text',\n name: undefined,\n value: '',\n description: undefined,\n placeholder: '',\n onChange: undefined,\n onEnter: undefined,\n onBlur: undefined,\n readOnly: false,\n step: 1,\n min: 1,\n max: 999,\n maxLength: 3,\n natural: false\n};\n\nexport { NekoInput };\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\n\n/**\n * @param {string} id\n * @param {string} name\n * @param {string} value\n * @param {string} description\n * @param {string} placeholder\n */\nconst StyledNekoTextArea = Styled(props => {\n const { id, name, value = '', description, placeholder = '', onEnter = null, readOnly = false, \n maxLength = 3, className, style, ...rest } = props;\n\n const [ newValue, setNewValue ] = useState(value);\n const isControlled = !!props.onChange;\n\n useEffect(() => {\n if (!isControlled) {\n setNewValue(value);\n }\n }, [ value ]);\n\n const onChange = (e) => {\n if (isControlled) { \n props.onChange(e.target.value, id);\n }\n else {\n setNewValue(e.target.value, id);\n }\n };\n\n const onKeyPress = (e) => {\n if (onEnter && event.key === 'Enter') {\n e.preventDefault();\n props.onEnter(e.target.value, id);\n }\n };\n\n const onBlur = (e) => {\n if (props.onBlur && value !== e.target.value) {\n props.onBlur(e.target.value, id);\n }\n };\n\n return (\n <div className={[className].join(' ')} style={style}>\n <textarea className=\"neko-textarea\" {...rest} id={id} name={name} spellCheck=\"false\" placeholder={placeholder} \n onChange={onChange} onKeyPress={onKeyPress} onBlur={onBlur} readOnly={readOnly}>\n {isControlled ? value : newValue}\n </textarea>\n {description && <p className=\"neko-input-description\">{description}</p>}\n </div>\n );\n})`\n .neko-textarea {\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeText};\n border: 2px solid ${Theme.blue};\n box-sizing: border-box;\n height: 160px;\n background: rgb(0 124 186 / 10%);\n padding: 0 10px;\n width: 100%;\n\n &::placeholder {\n color: rgba(0, 0, 0, 0.25);\n }\n\n :focus {\n background-color: white;\n }\n\n :read-only {\n background-color: ${Theme.gray};\n }\n }\n\n .neko-input-description {\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeSmall};\n line-height: 14px;\n margin-top: 8px;\n margin-bottom: 0;\n }\n`;\n\nconst NekoTextArea = (props) => {\n return (<StyledNekoTextArea {...props} />);\n};\n\nNekoTextArea.propTypes = {\n id: PropTypes.string,\n name: PropTypes.string,\n value: PropTypes.string,\n description: PropTypes.string,\n placeholder: PropTypes.string,\n onChange: PropTypes.func,\n onEnter: PropTypes.func,\n onBlur: PropTypes.func,\n readOnly: PropTypes.bool\n};\n\nNekoTextArea.defaultProps = {\n id: undefined,\n name: undefined,\n value: '',\n description: undefined,\n placeholder: '',\n onChange: undefined,\n onEnter: undefined,\n onBlur: undefined,\n readOnly: false\n};\n\nexport { NekoTextArea };\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\nimport { ProOnly } from '../label/ProOnly';\nimport { useOutsideClick } from '../hooks';\n\nimport { Icon } from '@iconify/react';\nimport checkboxBlankCircleOutline from '@iconify/icons-mdi/checkbox-blank-circle-outline';\nimport recordCircle from '@iconify/icons-mdi/record-circle';\nimport chevronDown from '@iconify/icons-mdi/chevron-down';\nimport chevronUp from '@iconify/icons-mdi/chevron-up';\n\nconst Select = Styled.div`\n border-radius: 8px;\n position: relative;\n user-select: none;\n cursor: pointer;\n\n &.show-options {\n background-color: ${Theme.blue};\n border-radius: 8px 8px 0 0;\n }\n`;\n\nconst SelectedOption = Styled.div`\n align-items: center;\n background-color: ${Theme.white};\n border: 2px solid ${Theme.blue};\n border-radius: 8px;\n display: flex;\n font-family: ${Theme.fontFamily};\n font-size: 14px;\n padding: 0 5px 0 10px;\n box-sizing: border-box;\n height: 30px;\n\n .rightContent {\n align-items: center;\n display: flex;\n margin-left: auto;\n }\n`;\n\nconst Description = Styled.div`\n display: block;\n margin-top: 5px;\n font-size: 13px;\n line-height: 14px;\n color: #8a8a8a;\n\n * {\n font-size: 13px;\n line-height: inherit;\n margin: 0;\n }\n`;\n\nconst Options = Styled.div`\n border-radius: 8px;\n overflow: hidden;\n padding-top: 28px;\n position: absolute;\n top: 0;\n z-index: 10;\n width: 100%;\n transition: all 0.2s ease-in;\n\n &.hidden {\n opacity: 0;\n }\n`;\n\nconst OptionsContainer = Styled.div`\n background-color: ${Theme.white};\n`;\n\n/**\n * @param {string} name\n */\nconst StyledNekoSelect = props => {\n const { id, name, value, scrolldown = false, isPro = false, onChange, ...rest } = props;\n\n const currentOption = React.Children.toArray(props.children)\n .find(child => child.props.value === value || child.props.checked)?.props;\n\n\n const label = currentOption?.label || 'Select';\n const description = currentOption?.description || props.description;\n const requirePro = currentOption?.requirePro || false;\n //const id = scrolldown ? props.id : currentOption?.id;\n\n const [ showOptions, toggleOptions ] = useState(false);\n const componentRef = scrolldown ? useOutsideClick(() => { toggleOptions(false) }) : null;\n const showUpProOnly = requirePro && !isPro;\n\n const onOptionClick = (newValue) => {\n if (newValue !== value) {\n if (!onChange) {\n console.log(`The onChange handler it not set for this checkbox.`, props);\n return;\n }\n onChange(newValue, id);\n }\n if (scrolldown) {\n toggleOptions(false);\n }\n }\n\n const children = React.Children.map(props.children, child => {\n return React.cloneElement(child, {\n name: child.props.name || name,\n checked: child.props.value === value || child.props.checked,\n onClick: onOptionClick,\n scrolldown,\n isPro\n });\n });\n\n return scrolldown\n ? <Select id={id} ref={componentRef} {...rest}\n onClick={() => toggleOptions(!showOptions)}\n className={[ 'nui-select', showOptions ? 'show-options' : '']}\n childrenLength={children.length}\n >\n <SelectedOption>\n {label}\n <div className=\"rightContent\">\n {showUpProOnly && <ProOnly />}\n <Icon icon={showOptions ? chevronUp : chevronDown} width=\"24\" />\n </div>\n </SelectedOption>\n {description && <Description>{description}</Description>}\n \n {showOptions &&\n <Options className={showOptions ? '' : 'hidden'}>\n <OptionsContainer>{[children]}</OptionsContainer>\n </Options>\n }\n </Select>\n : children;\n};\n\nconst RadioOption = Styled.div`\n font-family: ${Theme.fontFamily};\n margin-bottom: 6px;\n\n input {\n display: none;\n }\n\n label {\n cursor: pointer;\n display: flex;\n }\n\n .inner-container {\n margin-left: 4px;\n\n .label {\n display: block;\n font-size: 14px;\n line-height: 17px;\n padding-top: 4.5px;\n padding-bottom: 4px;\n }\n .description {\n display: block;\n font-size: 12px;\n }\n }\n\n &.disabled {\n color: ${Theme.disabledForm};\n\n label {\n cursor: default;\n }\n }\n`;\n\nconst SelectOption = Styled.div`\n background-color: ${Theme.blue};\n cursor: pointer;\n font-family: ${Theme.fontFamily};\n padding: 8px 12px;\n\n &:hover {\n filter: brightness(80%);\n }\n\n input {\n display: none;\n }\n\n .option {\n align-items: center;\n color: ${Theme.white};\n display: flex;\n justify-content: space-between;\n font-family: ${Theme.fontFamily};\n font-size: 14px;\n line-height: 17px;\n }\n\n &.disabled {\n background-color: rgb(224 156 54);\n pointer-events: none;\n\n .option {\n color: rgb(255 255 255 / 35%);\n }\n }\n`;\n\n/**\n * @param {string} id\n * @param {string} name\n * @param {string} value\n * @param {bool} checked\n * @param {string} label\n * @param {string} description\n * @param {function} onClick\n */\nconst StyledNekoOption = props => {\n const { id, name, value, checked, label, description, onClick, scrolldown, isPro = false, requirePro = false } = props;\n\n const showUpProOnly = requirePro && !isPro;\n const disabledClass = showUpProOnly ? 'disabled' : '';\n\n const radioOption = (\n <RadioOption className={`nui-select ${props.className || ''} ${disabledClass}`}>\n <input id={id} name={name} type=\"radio\" value={value} defaultChecked={checked} onClick={(e) => onClick(e.target.value)} disabled={showUpProOnly} />\n <label htmlFor={id}>\n <Icon icon={checked ? recordCircle : checkboxBlankCircleOutline} width=\"24px\" color={showUpProOnly ? Theme.disabledForm : Theme.blue}/>\n <div className=\"inner-container\">\n <span className=\"label\">{label}<ProOnly className=\"inline\" style={{ top: -1 }} show={showUpProOnly} /></span>\n {description ? <small className=\"description\">{description}</small> : null}\n </div>\n </label>\n </RadioOption>\n );\n\n const selectOption = (\n <SelectOption className={`nui-select ${props.className || ''} ${disabledClass}`}>\n <input id={id} name={name} type=\"radio\" value={value} defaultChecked={checked} disabled={showUpProOnly} />\n <div className=\"option\" onClick={() => onClick(value)}>\n {label}\n <ProOnly show={showUpProOnly} />\n </div>\n </SelectOption>\n );\n\n return scrolldown ? selectOption : radioOption;\n};\n\n/**\n * The NekoSelect has 2 types, radio (default) or select.\n */\nconst NekoSelect = (props) => {\n return (<StyledNekoSelect {...props} />);\n}\n\nNekoSelect.propTypes = {\n id: PropTypes.string,\n name: PropTypes.string,\n description: PropTypes.string,\n scrolldown: PropTypes.bool,\n isPro: PropTypes.bool,\n onChange: PropTypes.func\n};\n\nNekoSelect.propTypes = {\n id: undefined,\n name: undefined,\n description: undefined,\n scrolldown: false,\n isPro: false,\n onChange: undefined\n};\n\nconst NekoOption = (props) => {\n return (<StyledNekoOption {...props} />);\n}\n\nNekoOption.propTypes = {\n id: PropTypes.string,\n name: PropTypes.string,\n value: PropTypes.string,\n checked: PropTypes.bool,\n label: PropTypes.string,\n description: PropTypes.string,\n onClick: PropTypes.func,\n scrolldown: PropTypes.bool,\n isPro: PropTypes.bool,\n requirePro: PropTypes.bool\n};\n\nNekoOption.defaultProps = {\n id: undefined,\n name: undefined,\n value: undefined,\n checked: false,\n label: undefined,\n description: undefined,\n onClick: undefined,\n scrolldown: false,\n isPro: false,\n requirePro: false\n};\n\nexport { NekoSelect, NekoOption };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Colors from '../common/NekoTheme';\nimport { Icon, InlineIcon, IconifyIcon } from '@iconify/react';\nimport folderIcon from '@iconify/icons-mdi/folder';\nimport folderOpen from '@iconify/icons-mdi/folder-open';\nimport imageMultipleOutline from '@iconify/icons-mdi/image-multiple-outline';\nimport chevronRight from '@iconify/icons-mdi/chevron-right';\nimport chevronDown from '@iconify/icons-mdi/chevron-down';\nimport tagIcon from '@iconify/icons-mdi/tag';\n\nconst StyledNekoFinder = props => {\n\n const { chevron = true } = props;\n\n const children = React.Children.map(props.children, child => {\n return React.cloneElement(child, {\n chevron\n });\n });\n\n return (\n children\n );\n};\n\nconst FinderTitle = Styled.div`\n align-items: center;\n display: flex;\n margin-bottom: 8px;\n\n &.can-expand {\n cursor: pointer;\n }\n\n p {\n margin: 0 0 0 8px;\n }\n`;\n\nconst ChevronSpace = Styled.div`\n height: 24px;\n width: 24px;\n`;\n\nconst ItemContainer = Styled.div`\n border-left: 1px solid ${Colors.finderBorder};\n margin-left: 12px;\n padding-left: 6px;\n\n &.no-line {\n border-left: 0;\n padding-left: 12px;\n }\n\n &.no-chevron {\n border-left: 0;\n margin-left: 0;\n padding-left: 0;\n }\n`;\n\nconst RightElementContainer = Styled.div`\n margin-left: 5px;\n`;\n\nconst StyledNekoFinderItem = props => {\n\n const defaultIcons = {\n gallery: imageMultipleOutline,\n tag: tagIcon\n }\n\n const { title, chevron, rightElement = null, showRightElement = false } = props;\n const isFolder = !!!props.icon;\n const isCustomizedIcon = !!props.icon;\n const hasChild = !!props.children;\n const [ expanded, setExpanded ] = React.useState(false);\n const [ icon, setIcon ] = React.useState(() => {\n if (typeof props.icon === 'string' && Object.keys(defaultIcons).includes(props.icon)) {\n return defaultIcons[props.icon];\n } else if (props.icon) {\n return props.icon;\n }\n return folderIcon\n });\n\n const onClick = () => {\n if (!isFolder && !hasChild) return;\n if (!isCustomizedIcon) {\n setIcon(expanded ? folderIcon : folderOpen);\n }\n setExpanded(!expanded);\n }\n\n const children = React.Children.map(props.children, child => {\n return React.cloneElement(child, {\n chevron\n });\n });\n\n return (\n <div>\n <FinderTitle onClick={onClick} onMouseEnter={props.onMouseEnter} onMouseLeave={props.onMouseLeave} className={`${isFolder || children ? 'can-expand' : ''}`}>\n {chevron\n ? isFolder || children\n ? <Icon icon={expanded ? chevronDown : chevronRight} width=\"24\" height=\"24\" />\n : <ChevronSpace></ChevronSpace>\n : null\n }\n <Icon icon={icon} color={Colors.blue} width=\"24\" height=\"24\" />\n <p>{ title }</p>\n {showRightElement &&\n <RightElementContainer>{rightElement}</RightElementContainer>\n }\n </FinderTitle>\n {expanded && <ItemContainer className={`${isFolder ? '' : 'no-line'} ${chevron ? '' : 'no-chevron'}`}>{children}</ItemContainer>}\n </div>\n )\n}\n\nconst NekoFinder = (props) => {\n return (<StyledNekoFinder {...props} />);\n}\n\nNekoFinder.propTypes = {\n chevron: PropTypes.bool\n};\n\nNekoFinder.defaultProps = {\n chevron: true\n};\n\nconst NekoFinderItem = (props) => {\n return (<StyledNekoFinderItem {...props} />);\n}\n\nNekoFinderItem.propTypes = {\n icon: PropTypes.oneOfType([PropTypes.instanceOf(IconifyIcon), PropTypes.oneOf(['gallery'])]),\n title: PropTypes.string\n};\n\nNekoFinderItem.defaultProps = {\n icon: folderIcon,\n title: undefined\n};\n\nexport { NekoFinder, NekoFinderItem };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\n\nconst Logo = Styled.div`\n display: flex;\n width: 100%;\n height: 100%;\n max-width: 128px;\n max-height: 128px;\n\n & > * {\n width: 100%;\n height: auto;\n object-fit: contain;\n }\n`;\n\nconst StyledNekoLogo = () => {\n return (\n <Logo>\n <svg width=\"54\" height=\"38\" viewBox=\"0 0 54 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M11.3663 9.40518C9.2981 -3.25522 -0.310763 2.76769 2.5163 9.40518C2.5163 9.40518 8.29338 29.9322 22.3059 26.3677C36.3184 22.8031 23.9038 19.1156 23.9038 19.1156C23.9038 19.1156 13.4345 22.0656 11.3663 9.40518Z\" fill=\"#724024\" stroke=\"black\" strokeWidth=\"2.1869\"/>\n <path d=\"M10.7517 8.0531C10.0142 10.7573 6.32673 12.1093 3.99131 11.2489C1.65589 10.3885 2.63923 13.8302 5.09756 14.9364C7.55589 16.0427 11.2434 14.1989 12.1038 12.4781C12.9642 10.7573 11.4892 5.34893 10.7517 8.0531Z\" fill=\"#B7782E\"/>\n <path d=\"M14.0705 17.2718C13.8246 19.2385 9.64547 19.976 7.55589 19.8531C5.46631 19.7302 9.76839 23.5406 11.3663 23.5406C12.9642 23.5406 17.3892 21.2052 17.1434 19.2385C16.8976 17.2718 14.3163 15.3052 14.0705 17.2718Z\" fill=\"#B7782E\"/>\n <path d=\"M17.5121 26.2448C18.6184 25.3843 20.9538 21.8198 19.8476 19.8531C18.7413 17.8864 22.4288 20.9593 22.4288 20.9593L21.6913 26.2448C21.6913 26.2448 16.4059 27.1052 17.5121 26.2448Z\" fill=\"#B7782E\"/>\n <path d=\"M10.7517 8.0531C10.0142 10.7573 6.32673 12.1093 3.99131 11.2489C1.65589 10.3885 2.63923 13.8302 5.09756 14.9364C7.55589 16.0427 11.2434 14.1989 12.1038 12.4781C12.9642 10.7573 11.4892 5.34893 10.7517 8.0531Z\" stroke=\"black\"/>\n <path d=\"M14.0705 17.2718C13.8246 19.2385 9.64547 19.976 7.55589 19.8531C5.46631 19.7302 9.76839 23.5406 11.3663 23.5406C12.9642 23.5406 17.3892 21.2052 17.1434 19.2385C16.8976 17.2718 14.3163 15.3052 14.0705 17.2718Z\" stroke=\"black\"/>\n <path d=\"M17.5121 26.2448C18.6184 25.3843 20.9538 21.8198 19.8476 19.8531C18.7413 17.8864 22.4288 20.9593 22.4288 20.9593L21.6913 26.2448C21.6913 26.2448 16.4059 27.1052 17.5121 26.2448Z\" stroke=\"black\"/>\n <path d=\"M11.3663 9.40518C9.2981 -3.25522 -0.310763 2.76769 2.5163 9.40518C2.5163 9.40518 8.29338 29.9322 22.3059 26.3677C36.3184 22.8031 23.658 19.4843 23.658 19.4843C23.658 19.4843 13.4345 22.0656 11.3663 9.40518Z\" stroke=\"black\" strokeWidth=\"2.1869\"/>\n <path d=\"M25.3788 9.89685C25.3788 9.89685 21.3225 35.0947 21.9371 35.7093C22.5517 36.3239 27.4684 36.3239 28.083 35.7093C28.6975 35.0947 29.6523 22.5858 30.2955 21.9427C30.9386 21.2995 35.7226 33.1281 36.81 33.1281C37.8975 33.1281 43.2303 21.3567 43.8163 21.9427C44.4023 22.5287 45.2913 35.0947 45.9059 35.7093C46.5204 36.3239 51.3142 36.3239 51.9288 35.7093C52.5434 35.0947 48.9788 9.89685 48.9788 9.89685H42.9559C42.9559 9.89685 37.7934 21.9427 36.81 21.9427C35.8267 21.9427 31.4017 9.89685 31.4017 9.89685H25.3788Z\" fill=\"white\" stroke=\"black\" strokeWidth=\"2.1869\"/>\n </svg>\n </Logo>\n );\n}\n\nconst NekoLogo = (props) => {\n return (<StyledNekoLogo {...props} />);\n}\n\nNekoLogo.propTypes = {\n};\n\nNekoLogo.defaultProps = {\n};\n\nexport { NekoLogo };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport { lighten } from 'polished';\nimport { Icon, InlineIcon } from '@iconify/react';\nimport pauseIcon from '@iconify/icons-mdi/pause';\nimport stopIcon from '@iconify/icons-mdi/stop';\nimport playIcon from '@iconify/icons-mdi/play';\n\nimport Theme from '../common/NekoTheme';\n\n/**\n * @param {number} value Current progress\n * @param {number} max Max progress\n */\nconst StyledNekoProgress = Styled(props => {\n let { value = 0, max = 100, busy = false, status } = props;\n value = Math.min(value, max);\n let ratio = parseFloat(value) / parseFloat(max);\n\n return (\n <div className={props.className}>\n <ProgressCurrent ratio={ratio} busy={props.busy} status={status} />\n <div className=\"nui-progress-buttons\">\n {busy && props.onPauseClick && \n <div className='nui-progress-button pause' onClick={props.onPauseClick}>\n {props.paused ? <InlineIcon icon={playIcon} /> : <InlineIcon icon={pauseIcon} />}\n </div>\n }\n {busy && props.onStopClick && \n <div className='nui-progress-button stop' onClick={props.onStopClick}>\n <InlineIcon icon={stopIcon} />\n </div>\n }\n </div>\n </div>\n );\n})`\n position: relative;\n box-sizing: border-box;\n height: 30px;\n background: linear-gradient(\n 180deg,\n rgba(0, 0, 0, 0.06) 0%,\n rgba(0, 0, 0, 0.02) 50%,\n rgba(0, 0, 0, 0.10) 100%\n );\n border-radius: 12px;\n\n .nui-progress-buttons {\n position: absolute;\n height: 100%;\n right: 0px;\n display: flex;\n align-items: center;\n padding-right: 5px;\n\n .nui-progress-button {\n border: none;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-left: 2px;\n border-radius: 100%;\n color: white;\n padding: 2px;\n width: 18px;\n height: 18px;\n background-color: ${Theme.blue};\n\n &:hover {\n background-color: ${lighten(0.1, Theme.blue)};\n }\n\n &.stop {\n background: ${Theme.red};\n\n &:hover {\n background-color: ${lighten(0.1, Theme.red)};\n }\n }\n }\n }\n`;\n\n/**\n * @param {float} ratio Progress ratio (0.0 to 1.0)\n */\nconst ProgressCurrent = Styled(props => {\n const percent = !isNaN(props.ratio) ? parseInt(Math.round(props.ratio * 100)) : 0;\n const typeOfStatus = typeof props.status;\n let status = typeOfStatus !== 'undefined'\n ? (typeOfStatus === 'string') ? props.status : props.status(percent)\n : `${percent}%`;\n\n return (\n <div className={props.className} style={{ minWidth: 28, minWidth: percent + '%' }}>\n <div>{status}</div>\n </div>\n );\n})`\n position: absolute;\n overflow: hidden;\n top: 0; left: 0;\n height: 100%;\n background-color: ${Theme.progress};\n border-radius: 12px;\n text-align: center;\n padding: 0 10px;\n vertical-align: middle;\n color: white;\n font-family: ${Theme.fontFamily};\n font-size: 13px;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: min-width .2s ease-out;\n\n background-size: 30px 30px;\n background-image: linear-gradient(135deg, rgba(255, 255, 255, .15) 25%,\n transparent 25%,\n transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,\n transparent 75%, transparent);\n animation: ${props => props.busy ? 'animate-stripes 1.6s linear infinite' : 'none'};\n\n @keyframes animate-stripes {\n 0% { background-position: 0 0; }\n 100% { background-position: 60px 0; }\n }\n`;\n\nconst NekoProgress = (props) => {\n return (<StyledNekoProgress {...props} />);\n}\n\nNekoProgress.propTypes = {\n value: PropTypes.number,\n max: PropTypes.number,\n busy: PropTypes.bool,\n paused: PropTypes.bool,\n onPauseClick: PropTypes.func,\n onStopClick: PropTypes.func,\n status: PropTypes.oneOf([PropTypes.string, PropTypes.func])\n};\n\nNekoProgress.defaultProps = {\n value: 0,\n max: 100,\n busy: false,\n paused: false,\n onPauseClick: undefined,\n onStopClick: undefined,\n status: undefined\n};\n\nexport { NekoProgress };\n","import React, { useState, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\n\nimport { useComponentSize } from '../hooks';\nimport Theme from '../common/NekoTheme';\n\nconst TooltipContainer = Styled.div`\n\tdisplay: flex;\n`;\n\nconst Tooltip = Styled.div`\n\tbackground-color: rgba(${Theme.blackRGB}, 0.8);\n\tborder-radius: 4px;\n\tcolor: ${Theme.white};\n\tfont-family: ${Theme.fontFamily};\n\tfont-weight: normal;\n\tmin-width: 180px;\n\tmax-width: 280px;\n\tfont-size: ${Theme.fontSizeText};\n\tpadding: 8px 12px;\n\tposition: absolute;\n \tmax-width: 280px;\n\tdisplay: ${prop => prop.visible ? 'inline-block' : 'none'};\n\tz-index: 100;\n\n\t&:before {\n\t\tcontent: \"\";\n\t\tposition: absolute;\n\t\tborder: 4px solid transparent;\n\t}\n\n\t&.top {\n\t\t&:before {\n\t\t\tmargin-left: -4px;\n\t\t\ttop: 100%;\n\t\t\tleft: 50%;\n\t\t\tborder-top: 4px solid rgba(${Theme.blackRGB}, 0.8);\n\t\t}\n\t}\n\n\t&.left {\n\t\t&:before {\n\t\t\tmargin-top: -4px;\n\t\t\ttop: 50%;\n\t\t\tright: -8px;\n\t\t\tborder-left: 4px solid rgba(${Theme.blackRGB}, 0.8);\n\t\t}\n\t}\n\n\t&.right {\n\t\t&:before {\n\t\t\tmargin-top: -4px;\n\t\t\ttop: 50%;\n\t\t\tleft: -8px;\n\t\t\tborder-right: 4px solid rgba(${Theme.blackRGB}, 0.8);\n\t\t}\n\t}\n\n\t&.bottom {\n\t\t&:before {\n\t\t\tmargin-left: -4px;\n\t\t\ttop: -8px;\n\t\t\tleft: 50%;\n\t\t\tborder-bottom: 4px solid rgba(${Theme.blackRGB}, 0.8);\n\t\t}\n\t}\n\n\t${prop => prop.style}\n`;\n\n/**\n * @param {string} (variant) Tag Name\n */\nconst StyledNekoTooltip = props => {\n\tconst { text = 'Hello world!', position = 'top' } = props;\n\tconst [ show, setShow ] = useState(false);\n\tconst { ref: tooltipRef, width: tooltipWidth, height: tooltipHeight } = useComponentSize();\n\tconst { ref: childRef, width: childWidth, height: childHeight } = useComponentSize();\n\n\tconst transformStyle = useMemo(() => {\n\t\tconst pointerSize = 5;\n\t\tlet transY = 0;\n\t\tlet transX = 0;\n\n\t\tif (position === 'top') {\n\t\t\ttransY = -1 * tooltipHeight - pointerSize;\n\t\t\ttransX = -1 * (tooltipWidth / 2) + (childWidth / 2);\n\t\t}\n\t\telse if (position === 'bottom') {\n\t\t\ttransY = childHeight + pointerSize;\n\t\t\ttransX = -1 * (tooltipWidth / 2) + (childWidth / 2);\n\t\t}\n\t\telse if (position === 'left') {\n\t\t\tconst diff = tooltipHeight - childHeight;\n\t\t\ttransY = -1 * (diff / 2);\n\t\t\ttransX = -1 * tooltipWidth - pointerSize;\n\t\t}\n\t\telse if (position === 'right') {\n\t\t\tconst diff = tooltipHeight - childHeight;\n\t\t\ttransY = -1 * (diff / 2);\n\t\t\ttransX = childWidth + pointerSize;\n\t\t}\n\t\t\n\t\treturn { \n\t\t\ttransform: `translateX(${transX}px) translateY(${transY}px)`\n\t\t};\n\n\t}, [position, tooltipWidth, tooltipHeight, childWidth, childHeight])\n\n\treturn (\n\t\t<TooltipContainer>\n\t\t\t<Tooltip ref={tooltipRef} visible={show} className={position} style={transformStyle}>\n\t\t\t\t{text}\n\t\t\t</Tooltip>\n\t\t\t<div ref={childRef} onMouseEnter={() => setShow(true)} onMouseLeave={() => setShow(false)}>\n\t\t\t\t{props.children}\n\t\t\t</div>\n\t\t</TooltipContainer>\n\t);\n};\n\nconst NekoTooltip = (props) => {\n return (<StyledNekoTooltip {...props} />);\n}\n\nNekoTooltip.propTypes = {\n\ttext: PropTypes.string,\n\tposition: PropTypes.oneOf(['top', 'right', 'bottom', 'left'])\n};\n\nNekoTooltip.defaultProps = {\n\ttext: 'Hello world!',\n\tposition: 'top'\n};\n\nexport { NekoTooltip };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport { lighten } from 'polished';\nimport { Icon, IconifyIcon } from '@iconify/react';\n\nimport PresetIcons from '../common/PresetIcons';\nimport { NekoTooltip } from './Tooltip';\n\nconst StyledIconContainer = Styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst hoverColor = (color) => {\n if (color) {\n return `\n &:hover {\n path {\n fill: ${lighten(0.1, color)};\n }\n }\n `;\n }\n};\n\nconst StyledIcon = Styled(Icon)`\n\n path {\n fill: ${props => props.color};\n }\n\n ${props => hoverColor(props.color)}\n\n &.nui-clickable {\n cursor: pointer;\n }\n\n &.spin {\n animation-name: spin;\n animation-duration: 700ms;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n\n @keyframes spin {\n 0% {\n transform: rotate(360deg);\n }\n 100% {\n transform: rotate(0deg);\n }\n }\n }\n`;\n\nconst StyledNekoIcon = props => {\n\n let { icon, spinning = false, className = '', title, tooltip, containerStyle, color, ...rest } = props;\n\n if (!rest.width && !rest.height) {\n rest.width = rest.height = 30;\n }\n\n const getIcon = () => {\n if (typeof icon === 'string') {\n return PresetIcons[icon] || null;\n }\n return icon;\n };\n\n const iconClassName = `nui-icon ${className}${rest.onClick ? ' nui-clickable' : ''}${spinning ? ' spin' : ''}`;\n\n if (tooltip) {\n return (\n <NekoTooltip text={tooltip.text} position={tooltip.position || 'top'}>\n <StyledIconContainer style={containerStyle}>\n <StyledIcon icon={getIcon()} className={iconClassName} color={color} {...rest}/>\n </StyledIconContainer>\n </NekoTooltip>\n );\n }\n\n return (\n <StyledIconContainer style={containerStyle} title={title}>\n <StyledIcon icon={getIcon()} className={iconClassName} color={color} {...rest} />\n {!tooltip ? null : <NekoTooltip>{tooltip}</NekoTooltip>}\n </StyledIconContainer>\n );\n};\n\nconst NekoIcon = (props) => {\n return (<StyledNekoIcon {...props} />);\n};\n\nNekoIcon.propTypes = {\n icon: PropTypes.oneOfType([PropTypes.instanceOf(IconifyIcon), PropTypes.oneOf(['lock' ,'lock-open' ,'file-undo' ,'chevron-double-left' ,'chevron-double-right' ,'chevron-left' ,'chevron-right' ,'chevron-down' ,'chevron-up' ,'pause' ,'play' ,'replay' ,'check' ,'stop' ,'delete' ,'undo' ,'alert' ,'database' ,'pencil' ,'tools' ,'cog' ,'close' ,'cat' ,'upload'])]),\n color: PropTypes.string,\n spinning: PropTypes.bool,\n className: PropTypes.string,\n tooltip: PropTypes.string\n};\n\nNekoIcon.defaultProps = {\n icon: undefined,\n color: undefined,\n spinning: false,\n className: '',\n tooltip: undefined\n};\n\nexport { NekoIcon };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport { NekoLogo } from './Logo';\nimport { NekoIcon } from './Icon';\nimport Theme from '../common/NekoTheme';\nimport contentSave from '@iconify/icons-mdi/content-save';\n\nconst HeaderBase = Styled.div`\n position: relative;\n color: white;\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeText};\n display: flex;\n align-items: center;\n padding: 15px 20px;\n background-color: ${Theme.header};\n border-bottom: 5px #2981b5 solid;\n display: flex;\n\n .nui-header-logo-container {\n width: 55px;\n height: 55px;\n padding: 10px;\n margin-right: 20px;\n background: #3D5D8D;\n border-radius: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .nui-header-title-container {\n flex-direction: column;\n display: flex;\n\n .nui-header-title {\n color: white;\n font-family: ${Theme.fontFamily};\n font-size: 23px;\n line-height: normal;\n margin: 0;\n }\n\n .nui-header-subtitle {\n color: white;\n font-family: ${Theme.fontFamily};\n line-height: normal;\n font-size: ${Theme.fontSizeText};\n }\n }\n\n .nui-header-extra-content {\n flex: 1;\n margin: 0 20px;\n }\n`;\n\nconst StyledNekoHeader = props => {\n\n const { title = 'NekoUI', subtitle = 'By Jordy Meow', children, saving = false } = props;\n\n return (\n <HeaderBase>\n <div className='nui-header-logo-container'>\n <NekoLogo />\n </div>\n <div className=\"nui-header-title-container\">\n <h1 className=\"nui-header-title\">{title}</h1>\n <small className=\"nui-header-subtitle\"><a target='_blank' href='https://meowapps.com' \n style={{ color: 'white', textDecoration: 'none' }}>{subtitle}</a></small>\n </div>\n <div className=\"nui-header-extra-content\">{children}</div>\n {saving && <NekoIcon icon={contentSave} width=\"36\" height=\"36\" />}\n </HeaderBase>\n );\n};\n\nconst NekoHeader = (props) => {\n return (<StyledNekoHeader {...props} />);\n}\n\nNekoHeader.propTypes = {\n title: PropTypes.string,\n subtitle: PropTypes.string,\n saving: PropTypes.bool\n};\n\nNekoHeader.defaultProps = {\n title: 'NekoUI',\n subtitle: 'By Jordy Meow',\n saving: false\n};\n\nexport { NekoHeader };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport { Icon } from '@iconify/react';\nimport chevronDoubleLeft from '@iconify/icons-mdi/chevron-double-left';\nimport chevronLeft from '@iconify/icons-mdi/chevron-left';\nimport chevronDoubleRight from '@iconify/icons-mdi/chevron-double-right';\nimport chevronRight from '@iconify/icons-mdi/chevron-right';\nimport Theme from '../common/NekoTheme';\n\nconst PagingContainer = Styled.div`\n align-items: center;\n display: flex;\n\n .neko-paging-text {\n font-family: ${Theme.fontFamily};\n font-style: normal;\n font-weight: normal;\n font-size: 15px;\n line-height: 14px;\n }\n\n .neko-paging-controller {\n box-sizing: border-box;\n height: 30px;\n align-items: center;\n background-color: rgba(${Theme.blueRGB}, 0.8);\n border-radius: 15px;\n display: flex;\n margin-left: 15px;\n padding: 3px 5px;\n\n .nako-paging-controller-icon {\n background-color: ${Theme.white};\n border-radius: 100%;\n cursor: pointer;\n margin-right: 2px;\n height: 22px;\n width: 22px;\n box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.25);\n transition: transform 0.1s ease-in;\n box-sizing: border-box;\n\n :last-child {\n margin-right: 0;\n }\n\n &.disabled {\n color: ${Theme.darkGray};\n cursor: default;\n pointer-events: none;\n }\n\n &:hover {\n transform: scale(1.2) !important;\n z-index: 10;\n position: relative;\n }\n }\n\n .nako-paging-controller-text {\n color: ${Theme.white};\n font-family: ${Theme.fontFamily};\n font-style: normal;\n font-weight: normal;\n font-size: 13px;\n margin: 0 40px;\n user-select: none;\n }\n }\n`;\n\n/**\n * @param {number} currentPage Current page\n * @param {number} limit Items per page\n */\nconst StyledNekoPaging = props => {\n const { currentPage, limit, onClick, total } = props;\n const maxPage = Math.ceil(total === 0 ? 1 : (limit > 0 ? (total / limit) : 1));\n const prevIconClassName = `nako-paging-controller-icon ${currentPage === 1 ? 'disabled' : ''}`;\n const nextIconClassName = `nako-paging-controller-icon ${currentPage === maxPage ? 'disabled' : ''}`;\n\n const onClickHandle = (page) => {\n onClick(page);\n };\n\n return (\n <PagingContainer>\n\n <span className=\"neko-paging-text\">{total} result{total > 0 ? 's' : ''}</span>\n\n <div className=\"neko-paging-controller\">\n <Icon icon={chevronDoubleLeft}\n className={prevIconClassName}\n onClick={() => onClickHandle(1)}\n />\n <Icon icon={chevronLeft}\n className={prevIconClassName}\n onClick={() => onClickHandle(currentPage - 1)}\n />\n <p className=\"nako-paging-controller-text\">\n Page {currentPage} of {maxPage}\n </p>\n <Icon icon={chevronRight}\n className={nextIconClassName}\n onClick={() => onClickHandle(currentPage + 1)}\n />\n <Icon icon={chevronDoubleRight}\n className={nextIconClassName}\n onClick={() => onClickHandle(maxPage)}\n />\n </div>\n </PagingContainer>\n );\n};\n\nconst NekoPaging = (props) => {\n return (<StyledNekoPaging {...props} />);\n};\n\nNekoPaging.propTypes = {\n currentPage: PropTypes.number,\n limit: PropTypes.number,\n total: PropTypes.number,\n onClick: PropTypes.func\n};\n\nNekoPaging.defaultProps = {\n currentPage: undefined,\n limit: undefined,\n total: undefined,\n onClick: undefined\n};\n\nexport { NekoPaging };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\nimport { NekoIcon } from '../misc/Icon';\n\nconst LinkContainer = Styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst Link = Styled.span`\n color: ${Theme.blue};\n cursor: pointer;\n font-family: ${Theme.fontFamily};\n font-style: normal;\n font-weight: normal;\n font-size: 14px;\n line-height: 17px;\n\n &.is-active {\n cursor: default;\n color: ${Theme.black};\n font-weight: bold;\n }\n\n &::after {\n content: \"|\";\n color: ${Theme.darkGray};\n padding: 0 4px;\n }\n\n &:last-child::after {\n content: none;\n }\n\n span {\n color: ${Theme.darkGray};\n font-weight: normal;\n margin-left: 4px;\n }\n`;\n\nconst StyledNekoQuickLinks = props => {\n const { id, value, onChange, busy = false } = props;\n\n const children = React.Children.map(props.children, (child, i) => {\n return React.cloneElement(child, {\n busy: busy,\n isActive: child.props.value === value,\n onClick: (newValue) => {\n if (newValue !== value) {\n onChange(newValue, id);\n }\n }\n });\n });\n\n return (\n <LinkContainer>{children}</LinkContainer>\n );\n};\n\nconst StyledNekoLink = props => {\n\n const { title, value = 0, count, onClick, busy, isActive } = props;\n\n return (\n <Link onClick={() => onClick(value)} className={`${isActive ? 'is-active' : ''}`}>\n {title}\n {count === null ? null :\n <span>(\n {busy ? \n <NekoIcon icon=\"replay\" spinning={true} width={12} containerStyle={{ display: 'inline' }} /> : \n count\n })\n </span>\n }\n </Link>\n );\n};\n\nconst NekoQuickLinks = (props) => {\n return (<StyledNekoQuickLinks {...props} />);\n};\n\nNekoQuickLinks.propTypes = {\n id: PropTypes.string,\n value: PropTypes.string,\n onChange: PropTypes.func\n};\n\nNekoQuickLinks.defaultProps = {\n id: undefined,\n value: undefined,\n onChange: undefined\n};\n\nconst NekoLink = (props) => {\n return (<StyledNekoLink {...props} />);\n};\n\nNekoLink.propTypes = {\n title: PropTypes.string,\n value: PropTypes.string,\n count: PropTypes.number,\n onClick: PropTypes.func,\n isActive: PropTypes.bool\n};\n\nNekoLink.defaultProps = {\n title: undefined,\n value: 'default',\n count: 0,\n onClick: undefined,\n isActive: false\n};\n\nexport { NekoQuickLinks, NekoLink };\n","import React, { useState, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\n\nconst StyledSection = Styled.section`\n .mask {\n position: absolute;\n overflow: hidden;\n display: block;\n width: ${props => props.width}px;\n height: ${props => props.width / 2}px;\n }\n\n .semi-circle {\n position: relative;\n display: block;\n width: ${props => props.width}px;\n height: ${props => props.width / 2}px;\n background: linear-gradient(to right, #27b775 0%, #f3f32c 50%, #f71b1b 100%);\n border-radius: 50% 50% 50% 50% / 100% 100% 0% 0% ;\n\n &::before {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n z-index: 2;\n display: block;\n width: 140px;\n height: 70px;\n margin-left: -70px;\n background: ${props => props.backgroundColor};\n border-radius: 50% 50% 50% 50% / 100% 100% 0% 0% ;\n } \n }\n\n .semi-circle--mask {\n position: absolute;\n top: 0;\n left: 0;\n width: ${props => props.width}px;\n height: ${props => props.width}px;\n background: transparent;\n transform-origin: center center;\n backface-visibility: hidden;\n transition: all .3s ease-in-out;\n\n &::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0%;\n z-index: 2;\n display: block;\n width: ${props => props.width + 2}px;\n height: ${props => props.width / 2 + 2}px;\n margin-top: -1px;\n margin-left: -1px;\n background: #5396c1d6;\n border-radius: 50% 50% 50% 50% / 100% 100% 0% 0% ;\n } \n }\n\n .gauge { \n width: ${props => props.width}px;\n height: ${props => props.width / 2}px;\n \n .semi-circle--mask {\n transform: rotate(${props => props.degrees}deg) translate3d(0,0,0);\n }\n }\n\n .child-container {\n position: absolute;\n font-size: 16px;\n display: flex;\n width: ${props => props.width + 2}px;\n height: ${props => props.width / 2}px;\n z-index: 10;\n\n .spacing {\n flex: auto;\n }\n\n .child {\n color: white;\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n }\n`;\n\nconst NekoGauge = ({ value = 1000, min = 0, max = 2500, width = 200, background = '#007cba', children }) => {\n const degrees = 180 * (value <= max ? value : max) / max;\n return (\n <StyledSection backgroundColor={background} degrees={degrees} width={width}>\n <div class=\"gauge\">\n <div class=\"mask\">\n <div class=\"semi-circle\"></div>\n <div class=\"semi-circle--mask\"></div>\n </div>\n <div class=\"child-container\">\n <div class=\"child\">\n <div class=\"spacing\" />\n {children}\n </div>\n </div>\n </div>\n </StyledSection>\n )\n};\n\nNekoGauge.propTypes = {\n value : PropTypes.number,\n min : PropTypes.number,\n max : PropTypes.number,\n width : PropTypes.number,\n background : PropTypes.string,\n};\n\nNekoGauge.defaultProps = {\n value : 1000,\n min : 0,\n max : 2500,\n width : 200,\n background : '#007cba',\n};\n\nexport { NekoGauge };\n","import Styled from 'styled-components';\n\nconst NekoMessageDanger = Styled.p`\n background: #ba341e;\n padding: 20px;\n color: white;\n border-radius: 10px;\n font-size: 15px;\n\n a {\n color: white;\n font-weight: bold;\n }\n`;\n\nconst NekoMessageSuccess = Styled.p`\n background: #1eba96;\n padding: 20px;\n color: white;\n border-radius: 10px;\n font-size: 15px;\n text-align: center;\n\n a {\n color: white;\n font-weight: bold;\n }\n`;\n\nexport { NekoMessageDanger, NekoMessageSuccess };","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport { NekoIcon, NekoBusyOverlay, postFetch } from '../../index';\n\nconst StyledUpload = Styled.div`\n box-sizing: border-box;\n background: #f1f1f1;\n border: 2px dashed rgb(0 0 0 / 30%);\n color: rgb(0 0 0 / 60%);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n transition: all 0.25s ease;\n\n div {\n transition: all 0.5s ease;\n transform: scale(1.5);\n pointer-events: none;\n }\n\n &:hover {\n cursor: pointer;\n }\n\n &.dropping {\n background: #a4d5ff;\n\n div {\n transform: scale(2);\n }\n }\n`;\n\nconst NekoUpload = (props) => {\n\n const { width = '100%', height = '100%', iconSize = 48, onSuccess = () => {}, \n onFailure = () => {}, style = {}, apiUrl, apiConfig } = props;\n const [ inDropZone, setInDropZone ] = useState(false);\n const [ inputId, setInputId ] = useState(Math.floor(Math.random() * 100000000));\n const inputEl = useRef(null);\n const [ busy, setBusy ] = useState(false);\n\n const uploadFile = async (files) => {\n setBusy(true);\n apiConfig.file = files[0];\n const res = await postFetch(apiUrl, apiConfig);\n if (res.success) {\n onSuccess(res);\n }\n else {\n onFailure(res);\n }\n setBusy(false);\n }\n\n const onDragOver = (e) => {\n e.preventDefault();\n e.stopPropagation();\n }\n\n const onDragEnter = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setInDropZone(true);\n }\n\n const onDragLeave = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setInDropZone(false);\n }\n\n const onDrop = (e) => {\n const files = [...e.dataTransfer.files];\n uploadFiles(files, e);\n }\n\n const onClick = () => {\n inputEl.current.click();\n }\n\n const onInputUpload = (e) => {\n const files = [e.target.files[0]]; \n uploadFiles(files, e);\n }\n\n const uploadFiles = (files, e) => {\n e.preventDefault();\n e.stopPropagation();\n setInDropZone(false);\n console.log(files);\n uploadFile(files);\n }\n\n return (\n <NekoBusyOverlay busy={busy} >\n <input type=\"file\" id={inputId} accept=\"image/*\" ref={inputEl} onChange={onInputUpload} style={{ display: 'none' }} />\n <StyledUpload onClick={onClick} style={{ ...style, width, height }} className={inDropZone ? 'dropping' : ''} \n onDragOver={onDragOver} onDragEnter={onDragEnter} onDragLeave={onDragLeave} onDrop={onDrop}>\n <NekoIcon width={iconSize} height={iconSize} icon='upload' spinning={busy} \n onDragOver={onDragOver} onDragEnter={onDragEnter} />\n </StyledUpload>\n </NekoBusyOverlay>\n );\n}\n\nNekoUpload.propTypes = {\n width : PropTypes.string,\n height : PropTypes.string,\n onSuccess : PropTypes.func,\n onFailure : PropTypes.func,\n style : PropTypes.object,\n apiUrl : PropTypes.string,\n apiConfig : PropTypes.object\n};\n\nNekoUpload.defaultProps = {\n width : '100%',\n height : '100%',\n onSuccess : () => {},\n onFailure : () => {},\n style : {}\n};\n\nexport { NekoUpload };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Modal from 'react-modal';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\nimport { NekoButton } from '../button/Button';\n\nconst NekoModalParent = Styled.div`\n\n .ReactModal__Overlay {\n z-index: 100;\n display: flex;\n justify-content: center;\n flex-direction: column;\n align-items: center;\n background: ${Theme.overlay} !important;\n }\n .ReactModal__Overlay {\n opacity: 0;\n transition: opacity 200ms ease-in-out;\n }\n .ReactModal__Overlay--after-open {\n opacity: 1;\n }\n .ReactModal__Overlay--before-close {\n opacity: 0;\n }\n .ReactModal__Overlay .neko-modal {\n opacity: 0;\n transform: scale(0.85);\n transition: all 200ms ease-in-out;\n }\n .ReactModal__Overlay--after-open .neko-modal {\n transform: scale(1);\n opacity: 1;\n }\n .ReactModal__Overlay--before-close .neko-modal {\n transform: scale(0.85);\n opacity: 0;\n }\n .neko-modal {\n background: ${Theme.white};\n position: relative;\n box-shadow: 2px 2px 15px 2px rgba(0, 0, 0, 0.8);\n outline: none;\n padding: 15px;\n max-width: 820px;\n }\n`;\n\nconst NekoModalContent = Styled.div`\n width: 518px;\n\n p {\n margin: 0;\n }\n .title {\n font-family: ${Theme.fontFamily};\n font-style: normal;\n font-weight: normal;\n font-size: 18px;\n line-height: 22px;\n }\n .content {\n font-family: ${Theme.fontFamily};\n font-style: normal;\n font-weight: normal;\n font-size: 13px;\n line-height: 14px;\n margin-top: 15px;\n margin-bottom: 30px;\n }\n .button-group {\n align-items: center;\n display: flex;\n justify-content: flex-end;\n margin-top: 15px;\n }\n`;\n\nconst StyledNekoModal = (props) => {\n\n const {\n children,\n className,\n style,\n ok = 'OK',\n cancel = 'Cancel',\n customButtons = null,\n title = '',\n content = '',\n onOkClick,\n onCancelClick,\n ...rest\n } = props;\n const customClassName = style ? 'custom-modal' : '';\n\n const modalContent = children\n ? children\n : <NekoModalContent>\n {title && <p className=\"title\">{title}</p>}\n {content && <p className=\"content\">{content}</p>}\n <div className=\"button-group\">\n {onCancelClick && <NekoButton className=\"danger\" onClick={onCancelClick}>{cancel}</NekoButton>}\n {onOkClick && <NekoButton onClick={onOkClick}>{ok}</NekoButton>}\n {customButtons}\n </div>\n </NekoModalContent>;\n\n return (\n <React.Fragment>\n <NekoModalParent id=\"neko-modal-parent\" />\n <Modal ariaHideApp={false}\n parentSelector={() => document.getElementById('neko-modal-parent')}\n closeTimeoutMS={200}\n className={`neko-modal ${className || ''} ${customClassName}`}\n {...rest}\n >\n {modalContent}\n </Modal>\n </React.Fragment>\n );\n};\n\nconst NekoModal = (props) => {\n return (<StyledNekoModal {...props} />);\n};\n\nNekoModal.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n ok: PropTypes.string,\n cancel: PropTypes.string,\n title: PropTypes.string,\n content: PropTypes.string,\n onOkClick: PropTypes.func,\n onCancelClick: PropTypes.func,\n customButtons: PropTypes.object\n};\n\nNekoModal.defaultProps = {\n className: undefined,\n style: undefined,\n ok: 'OK',\n cancel: 'Cancel',\n title: '',\n content: '',\n onOkClick: undefined,\n onCancelClick: undefined,\n customButtons: null\n};\n\nexport { NekoModal };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport { Icon } from '@iconify/react';\nimport chevronDown from '@iconify/icons-mdi/chevron-down';\nimport chevronUp from '@iconify/icons-mdi/chevron-up';\nimport checkboxBlankOutline from '@iconify/icons-mdi/checkbox-blank-outline';\nimport checkboxMarked from '@iconify/icons-mdi/checkbox-marked';\nimport checkboxMultipleMarked from '@iconify/icons-mdi/checkbox-multiple-marked';\n\nimport Theme from '../common/NekoTheme';\nimport NekoBusyOverlay from '../common/NekoBusyOverlay';\n\nconst Table = Styled.table`\n background-color: ${Theme.white};\n font-family: ${Theme.fontFamily};\n border-spacing: 0;\n width: 100%;\n\n th, td {\n margin: 0;\n padding: 5px;\n border-bottom: 1px solid rgba(${Theme.blackRGB}, 0.1);\n border-right: 1px solid rgba(${Theme.blackRGB}, 0.1);\n\n a {\n text-decoration: none;\n }\n\n :last-child {\n border-right: 0;\n }\n }\n\n th, tfoot td {\n height: 30px;\n background-color: ${Theme.blue};\n color: ${Theme.white};\n font-style: normal;\n font-weight: normal;\n font-size: 13px;\n line-height: 16px;\n text-align: left;\n\n div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n &.sortable {\n cursor: pointer;\n }\n }\n }\n\n tbody {\n tr {\n :nth-child(even) {\n background-color: ${Theme.tableGray};\n }\n &.selected {\n background-color: rgba(${Theme.blueRGB}, 0.8);\n color: ${Theme.white};\n\n a {\n color: #81e8ff;\n }\n }\n }\n img {\n vertical-align: bottom;\n }\n }\n\n tfoot tr:last-child {\n td {\n border-bottom: 0;\n }\n }\n\n .table-checkbox-cell {\n width: 35px;\n text-align: center;\n\n svg {\n padding: 5px;\n cursor: pointer;\n }\n }\n`;\n\nconst TableCheckBox = (props) => {\n const { checked, intermediate = false, onSelect = () => {}, onUnselect = () => {}, ...rest } = props;\n\n const onClick = () => { \n checked ? onUnselect() : onSelect();\n };\n\n return (\n <Icon icon={intermediate ? checkboxMultipleMarked : (checked ? checkboxMarked : checkboxBlankOutline)}\n width=\"24px\" height=\"24px\" onClick={onClick} />\n );\n};\n\n/**\n * @param {string} className\n * @param {string|object} icon\n * @param {bool} disabled\n * @param {function} onClick\n */\nconst StyledNekoTable = (props) => {\n const { columns, data, busy = false, onSelect, onUnselect, selectedItems, sort, onSortChange } = props;\n const columnsCount = columns.length + (onSelect ? 1 : 0);\n\n const rows = data.map(v => {\n const cells = columns.map(c => { return { value: v[c.accessor], style : c.style || {} }});\n return { id: v.id, cells };\n });\n\n const currentRowsIds = rows.map(x => x.id);\n const currentSelectedRows = currentRowsIds.filter(x => selectedItems.includes(x));\n const areAllRowsSelected = currentSelectedRows.length === currentRowsIds.length;\n const isIntermediate = !areAllRowsSelected && selectedItems.length > 0;\n\n const hiddenColumnIndexes = columns.reduce(function(a, e, i) {\n if (e.visible === false)\n a.push(i);\n return a;\n }, []);\n\n const headersFooters = <tr>\n {onSelect && \n <th className='table-checkbox-cell'>\n <TableCheckBox checked={areAllRowsSelected} intermediate={isIntermediate}\n onSelect={() => onSelect(currentRowsIds) } \n onUnselect={() => { \n // The unselect on selectedItems never happens, but I keep it here in case\n // we find an elegant UI solution to unselect all the invisible selected rows as well.\n isIntermediate ? onUnselect(selectedItems) : onUnselect(currentRowsIds);\n }}\n />\n </th>\n }\n {columns.filter((x, i) => !hiddenColumnIndexes.includes(i)).map(column => {\n let beingSorted = sort && sort.accessor === column.accessor;\n let beingSortedAsc = sort && sort.by === 'asc';\n const thStyle = column.style || {};\n return (<th style={thStyle} key={column.accessor}>\n <div className={column.sortable ? 'sortable' : ''} \n onClick={column.sortable ? () => { \n onSortChange(column.accessor, beingSorted && beingSortedAsc ? 'desc' : 'asc')\n } : undefined}>\n <div>{column.title}</div>\n <div>{column.sortable && \n <Icon icon={!beingSorted ? chevronDown : (beingSortedAsc ? chevronDown : chevronUp)} \n color={beingSorted ? Theme.white : `rgba(${Theme.blackRGB}, 0.1)`} \n width=\"1.6rem\" height=\"1.6rem\" />}\n </div>\n </div>\n </th>)\n })}\n </tr>;\n\n return (\n <NekoBusyOverlay busy={busy} overlayStyle={{ top: '36px', height: 'calc(100% - 76px)' }}>\n <Table>\n <thead>{headersFooters}</thead>\n <tbody>\n {!rows.length && \n <tr><td colspan={columnsCount} style={{ textAlign: 'center', height: 40, color: 'gray' }}>\n Empty.\n </td></tr>\n }\n {rows.map(row => {\n return (\n <tr className={selectedItems.includes(row.id) ? 'selected' : ''}>\n {onSelect && \n <td className='table-checkbox-cell'>\n <TableCheckBox \n checked={selectedItems.includes(row.id)}\n onSelect={() => onSelect([ row.id ])}\n onUnselect={() => onUnselect([ row.id ])} \n />\n </td>\n }\n {row.cells.filter((x, i) => !hiddenColumnIndexes.includes(i)).map(cell => {\n return <td style={cell.style}>{cell.value}</td>;\n })}\n </tr>\n );\n })}\n </tbody>\n <tfoot>{headersFooters}</tfoot>\n </Table>\n </NekoBusyOverlay>\n );\n};\n\nconst NekoTable = (props) => {\n return (<StyledNekoTable {...props} />);\n};\n\nNekoTable.propTypes = {\n columns: PropTypes.arrayOf(PropTypes.any),\n data: PropTypes.arrayOf(PropTypes.any),\n busy: PropTypes.arrayOf(PropTypes.bool),\n onSelect: PropTypes.func,\n onUnselect: PropTypes.func,\n selectedItems: PropTypes.arrayOf(PropTypes.object),\n onSortChange: PropTypes.func\n};\n\nNekoTable.defaultProps = {\n columns: undefined,\n data: undefined,\n busy: false,\n onSelect: undefined,\n onUnselect: undefined,\n selectedItems: undefined,\n onSortChange: undefined\n};\n\nexport { NekoTable };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\nimport { ProOnly } from '../label/ProOnly';\n\nconst TabContainer = Styled.div`\n`;\n\nconst TabGroup = Styled.div`\n`;\n\nconst Tab = Styled.button`\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeText};\n border-radius: 8px 8px 0px 0px;\n border: 0;\n background-color: #459ad2;\n color: rgb(255 255 255 / 35%);\n\n cursor: pointer;\n line-height: 17px;\n margin-right: 5px;\n text-align: left;\n padding: 10px 15px 10px 15px;\n\n &:focus {\n outline: none;\n }\n\n &.active {\n background-color: ${Theme.blue};\n color: ${Theme.white};\n }\n\n &.disabled {\n background-color: rgb(224 156 54);\n cursor: default;\n display: inline-flex;\n padding-bottom: 7px;\n }\n`;\n\nconst TabContent = Styled.div`\n background-color: ${Theme.blue};\n display: none;\n padding: 10px;\n\n &.active {\n display: block;\n }\n`;\n\n/**\n * Need to use with NecoTab\n */\nconst StyledNekoTabs = props => {\n\n const [isActiveTabIndex, setIsActiveTabIndex] = React.useState(0);\n\n const tabAttributes = React.Children.map(props.children, (child, i) => {\n const title = child.props.title || (\"Untitled Tab \" + (i + 1));\n const key = child.props.key || 'neko-tab-' + title.toLowerCase();\n const onClick = child.props.onClick ? child.props.onClick : null;\n const requirePro = !props.isPro && (child.props.requirePro || false);\n return { key, title, onClick, requirePro };\n });\n\n const children = React.Children.map(props.children, (child, i) => {\n return React.cloneElement(child, {\n isActive: i === isActiveTabIndex\n });\n });\n\n const onTabClick = (tabIndex, tabAttr, ev) => {\n if (tabAttr.requirePro) return;\n setIsActiveTabIndex(tabIndex);\n if (props.onChange) {\n props.onChange(tabIndex, tabAttr, ev);\n }\n };\n\n return (\n <TabContainer>\n <TabGroup>\n {tabAttributes.map((attr, i) =>\n <Tab \n key={attr.key} \n className={`neko-tab-title ${i === isActiveTabIndex ? 'active' : ''} ${attr.requirePro ? 'disabled' : ''}`} \n onClick={(ev) => { onTabClick(i, attr, ev) }} >\n {attr.title}<ProOnly className=\"inline\" style={{ marginLeft: 10, marginRight: -5, top: -1 }} show={attr.requirePro} />\n </Tab>\n )}\n </TabGroup>\n { children }\n </TabContainer>\n );\n};\n\n\n/**\n * @oaram {string} title\n * @param {bool} isActive\n */\nconst StyledNekoTab = props => {\n\n const { children, isActive } = props;\n\n return (\n <TabContent className={`${isActive ? 'active' : ''}`}>\n { children }\n </TabContent>\n );\n};\n\nconst NekoTabs = (props) => {\n return (<StyledNekoTabs {...props} />);\n};\n\nNekoTabs.propTypes = {\n isPro: PropTypes.bool,\n onChange: PropTypes.func\n};\n\nNekoTabs.defaultProps = {\n isPro: false,\n onChange: undefined\n};\n\nconst NekoTab = (props) => {\n return (<StyledNekoTab {...props} />);\n};\n\nNekoTab.propTypes = {\n isActive: PropTypes.bool,\n requirePro: PropTypes.bool,\n title: PropTypes.string\n};\n\nNekoTab.defaultProps = {\n isActive: false,\n requirePro: false,\n title: undefined\n};\n\nexport { NekoTab, NekoTabs };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\nimport { ProOnly } from '../label/ProOnly';\nimport { Icon, InlineIcon } from '@iconify/react';\nimport chevronDown from '@iconify/icons-mdi/chevron-down';\nimport chevronRight from '@iconify/icons-mdi/chevron-right';\n\nconst TabContainer = Styled.div`\n`;\n\nconst Tab = Styled.div`\n align-items: center;\n background-color: ${Theme.blue};\n border: 0;\n cursor: pointer;\n display: flex;\n padding: 2px 3px 2px 19px;\n\n &.disabled {\n background-color: rgba(${Theme.yellowRGB}, 0.25);\n cursor: default;\n }\n\n p {\n color: ${Theme.white};\n font-family: ${Theme.fontFamily};\n font-size: 14px;\n line-height: 17px;\n margin: 0;\n }\n\n .neko-side-tab-icon {\n color: ${Theme.white};\n margin-left: auto;\n height: 36px;\n width: 36px;\n }\n`;\n\nconst TabContent = Styled.div`\n background-color: ${Theme.white};\n display: none;\n\n &.active {\n display: block;\n }\n`;\n\n/**\n * Need to use with NecoTab\n */\nconst StyledNekoSideTabs = props => {\n\n const [activeTabIndex, setIsActiveTabIndex] = React.useState();\n\n const tabAttributes = React.Children.map(props.children, (child, i) => {\n const title = child.props.title || (\"Untitled Tab \" + (i + 1));\n const key = child.props.key || 'neko-tab-' + title.toLowerCase();\n const onClick = child.props.onClick ? child.props.onClick : null;\n const requirePro = !props.isPro && (child.props.requirePro || false);\n return { key, title, onClick, requirePro };\n });\n\n const children = React.Children.map(props.children, (child, i) => {\n return React.cloneElement(child, {\n isActive: i === activeTabIndex\n });\n });\n\n const onTabClick = (tabIndex, tabAttr, ev) => {\n if (tabAttr.requirePro) return;\n const newTabIndex = tabIndex === activeTabIndex ? null : tabIndex;\n setIsActiveTabIndex(newTabIndex);\n if (props.onChange) {\n props.onChange(newTabIndex, tabAttr, ev);\n }\n };\n\n return (\n <TabContainer>\n {tabAttributes.map((attr, i) =>\n <React.Fragment>\n <Tab\n key={attr.key}\n className={`${i === activeTabIndex ? 'active' : ''} ${attr.requirePro ? 'disabled' : ''}`}\n onClick={(ev) => { onTabClick(i, attr, ev); }}\n >\n <p>\n {attr.title}\n <ProOnly className=\"inline\" show={attr.requirePro} />\n </p>\n <Icon icon={i === activeTabIndex ? chevronDown : chevronRight } className=\"neko-side-tab-icon\" />\n </Tab>\n { children[i] }\n </React.Fragment>\n )}\n </TabContainer>\n );\n};\n\n\n/**\n * @oaram {string} title\n * @param {bool} isActive\n */\nconst StyledNekoSideTab = props => {\n\n const { children, isActive } = props;\n\n return (\n <TabContent className={`${isActive ? 'active' : ''}`}>\n { children }\n </TabContent>\n );\n};\n\nconst NekoSideTabs = (props) => {\n return (<StyledNekoSideTabs {...props} />);\n};\n\nNekoSideTabs.propTypes = {\n isPro: PropTypes.bool,\n onChange: PropTypes.func\n};\n\nNekoSideTabs.defaultProps = {\n isPro: false,\n onChange: undefined\n};\n\nconst NekoSideTab = (props) => {\n return (<StyledNekoSideTab {...props} />);\n};\n\nNekoSideTab.propTypes = {\n isActive: PropTypes.bool,\n requirePro: PropTypes.bool,\n title: PropTypes.string\n};\n\nNekoSideTab.defaultProps = {\n isActive: false,\n requirePro: false,\n title: undefined\n};\n\nexport { NekoSideTab, NekoSideTabs };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Colors from '../common/NekoTheme';\n\nconst ToolbarBase = Styled.div`\n box-sizing: border-box;\n display: flex;\n width: 100%;\n padding: 10px 10px;\n background: ${Colors.white};\n border-radius: 10px;\n box-shadow: 0px 0px 10px rgba(${Colors.blackRGB}, 0.1);\n\n &.neko-align-left {\n justify-content: flex-start;\n }\n\n &.neko-align-right {\n justify-content: flex-end;\n }\n\n > *:not(:last-child) {\n margin-right: 5px;\n }\n`;\n\nconst StyledNekoToolbar = (props) => {\n const { align = 'left' } = props;\n return (\n <ToolbarBase className={`neko-align-${align}`}>\n {props.children}\n </ToolbarBase>\n );\n};\n\nconst NekoToolbar = (props) => {\n return (<StyledNekoToolbar {...props} />);\n};\n\nNekoToolbar.propTypes = {\n align: PropTypes.oneOf(['left', 'right'])\n};\n\nNekoToolbar.defaultProps = {\n align: 'left'\n};\n\nexport { NekoToolbar };","class NekoError {\n\n constructor(message, code = '', url = null, body = null, debug = {}, ) {\n this.url = url;\n this.message = message;\n this.code = code;\n this.body = body;\n this.debug = debug;\n }\n}\n\nexport { NekoError };","import { cache, mutate } from 'swr';\nimport { NekoError } from './errors';\n\n// This function allows to invalidate a SWR key which might\n// have been use for paging, for example: swrInvalidateMany('/api/items')\n// will reset everything which happens around this key.\n\nfunction swrInvalidateMany(select) {\n const keys = cache.keys();\n const mutations = [];\n let regexp = new RegExp(`(.*)${select}(.*)`);\n for (let key of keys) {\n if (regexp.test(key)) {\n mutations.push(mutate(key, null, true));\n }\n }\n return Promise.all(mutations);\n}\n\nfunction chunkArrayInGroups(arr, size) {\n let result = [];\n for (let i = 0; i < arr.length; i += size)\n result.push(arr.slice(i, i + size));\n return result;\n}\n\nconst consolidateJsonResult = (json) => {\n if (!json.data) {\n return json;\n }\n if (json.data.length > 0 && json.data[0].meta) {\n for (let x of json.data) {\n try { x.meta = JSON.parse(x.meta); }\n catch (err) { console.error('[JsonFetcher]', 'Could not decode meta.', x.meta); }\n }\n }\n else if (json.data.meta) {\n try { json.data.meta = JSON.parse(json.data.meta); }\n catch (err) { console.error('[JsonFetcher]', 'Could not decode meta.', x.meta); }\n }\n return json;\n}\n\nconst jsonFetcher = async (url, options = {}) => {\n let body = null;\n let json = {};\n let nekoError = null;\n let rawBody = null;\n\n try {\n options = options ? options : {};\n options.headers = options.headers ? options.headers : {};\n options.headers['Pragma'] = 'no-cache';\n options.headers['Cache-Control'] = 'no-cache';\n rawBody = await fetch(`${url}`, options);\n body = await rawBody.text();\n json = JSON.parse(body);\n if (!json.success) {\n let code = json.success === false ? 'NOT-SUCCESS' : 'N/A';\n let message = json.message ? json.message : 'Unknown error. Check your Console Logs.';\n if (json.code === 'rest_no_route') {\n message = \"The API can't be accessed. Is Rest API enabled?\";\n code = 'NO-ROUTE';\n }\n else if (json.code === 'internal_server_error') {\n message = \"Server error. Please check your PHP Error Logs.\";\n code = 'SERVER-ERROR';\n }\n nekoError = new NekoError(message, code, url, body ? body : rawBody);\n }\n }\n catch (error) {\n let code = 'BROKEN-REPLY';\n let message = \"The reply sent by the server is broken.\";\n if (rawBody && rawBody.status) {\n if (rawBody.status === 408) {\n code = \"REQUEST-TIMEOUT\";\n message = \"The request generated a timeout.\";\n }\n }\n nekoError = new NekoError(message, code, url, body ? body : rawBody, error);\n }\n\n // Rewrite the Json if there is an error\n if (nekoError) {\n console.error('[NekoError] JsonFetcher', nekoError.url, { code: nekoError.code, \n error: nekoError.error, body: nekoError.body });\n json.success = false;\n json.error = nekoError;\n }\n return consolidateJsonResult(json);\n}\n\nconst getFetch = async (url, json, signal) => {\n return jsonFetcher(url, { \n method: 'GET', \n headers: { 'Content-Type': 'application/json' },\n signal: signal\n });\n}\n\nconst postFetch = async (url, config = {}) => {\n const { json = {}, signal, file, nonce } = config;\n let formData = file ? new FormData() : null;\n if (file) {\n formData.append('file', file);\n for (const [key, value] of Object.entries(json)) {\n formData.append(key, value);\n }\n }\n\n const headers = nonce ? { 'X-WP-Nonce': nonce } : {};\n if (!formData) {\n headers['Content-Type'] = 'application/json';\n }\n\n return jsonFetcher(url, { \n method: 'POST',\n headers: headers,\n body: formData ? formData :JSON.stringify(json) ,\n signal: signal\n });\n}\n\nconst buildUrlWithParams = (apiUrl, params) => {\n const isPlainPermalink = apiUrl.includes('index.php?rest_route');\n const urlParams = new URLSearchParams(params);\n const finalUrl = apiUrl + (isPlainPermalink ? '&' : '?') + urlParams.toString();\n return finalUrl;\n}\n\nexport { getFetch, postFetch, jsonFetcher, swrInvalidateMany, chunkArrayInGroups, buildUrlWithParams };","const prefix = mgcl_gallery_custom_links.prefix;\nconst domain = mgcl_gallery_custom_links.domain;\nconst restUrl = mgcl_gallery_custom_links.rest_url.replace(/\\/+$/, \"\");\nconst apiUrl = mgcl_gallery_custom_links.api_url.replace(/\\/+$/, \"\");\nconst pluginUrl = mgcl_gallery_custom_links.plugin_url.replace(/\\/+$/, \"\");\nconst isPro = mgcl_gallery_custom_links.is_pro === '1';\nconst isRegistered = isPro && mgcl_gallery_custom_links.is_registered === '1';\nconst restNonce = mgcl_gallery_custom_links.rest_nonce;\n\nexport { prefix, domain, apiUrl, restUrl, pluginUrl, isPro, isRegistered, restNonce };\n","// React & Vendor Libs\nconst { useState } = wp.element;\nimport useSWR from 'swr';\n\n// NekoUI\nimport { NekoInput, NekoTypo, NekoPage, NekoBlock, NekoHeader, NekoContainer, NekoSettings,\n NekoTabs, NekoTab, NekoCheckboxGroup, NekoCheckbox, NekoWrapper, NekoSelect, NekoOption,\n NekoColumn } from '@neko-ui';\nimport { jsonFetcher, postFetch, useHandleSWR } from '@neko-ui';\n\nimport { apiUrl } from '@app/settings';\n\nconst Settings = () => {\n\n const { data: swrSettings, mutate: mutateSwrSettings } = useSWR(`${apiUrl}/all_settings/`, jsonFetcher);\n const { busy: busySettings, data: settings, error: swrError } = useHandleSWR(swrSettings, {}, true);\n const [ busyAction, setBusyAction ] = useState(false);\n const busy = busySettings || busyAction;\n\n const obmode = settings?.mgcl_obmode;\n const parsingEngine = settings?.mgcl_parsing_engine;\n const log = settings?.mgcl_log;\n const buttonEnabled = settings?.mgcl_button_enabled;\n const buttonLabel = settings?.mgcl_button_label;\n\n const parsingEngineOptions = [\n { id: \"none\", value: \"None\", label: \"None (Not Supported Yet)\"},\n { id: \"htmldomparser\", value: \"HtmlDomParser\", label: \"HtmlDomParser\"},\n { id: \"didom\", value: \"DiDom\", label: \"DiDom\"}\n ]\n\n const updateOption = async (value, id) => {\n let newSettingsData = { ...swrSettings.data };\n newSettingsData[id] = value;\n mutateSwrSettings({ ...swrSettings, data: newSettingsData }, false);\n setBusyAction(true);\n try {\n await postFetch(`${apiUrl}/update_option`, { json: { name: id, value } });\n }\n catch (err) {\n alert(err.message);\n }\n finally {\n setBusyAction(false);\n mutateSwrSettings();\n }\n }\n\n /**\n * Settings\n */\n\n const jsxOBMode =\n <NekoSettings title=\"OB Mode\">\n <NekoCheckboxGroup max=\"1\">\n <NekoCheckbox id=\"mgcl_obmode\" label=\"Check\" value=\"1\" checked={obmode} onChange={updateOption} />\n </NekoCheckboxGroup>\n </NekoSettings>;\n\n const jsxParsingEngine =\n <NekoSettings title=\"Parsing Engine\">\n <NekoSelect id=\"mgcl_parsing_engine\" onChange={updateOption}>\n {parsingEngineOptions.map(option => <NekoOption id={`mgcl_parsing_engine_${option.id}`} value={option.value} label={option.label} checked={parsingEngine === option.value} /> )}\n </NekoSelect>\n </NekoSettings>;\n\n const jsxLog =\n <NekoSettings title=\"Logs\">\n <NekoCheckboxGroup max=\"1\">\n <NekoCheckbox id=\"mgcl_log\" label=\"Logs\" value=\"1\" checked={log} onChange={updateOption} />\n </NekoCheckboxGroup>\n </NekoSettings>;\n\n /**\n * CTA Buttons\n */\n const jsxUseButtons =\n <NekoSettings title=\"Use Buttons\">\n <NekoCheckboxGroup max=\"1\">\n <NekoCheckbox id=\"mgcl_button_enabled\" label=\"Enabled\" value=\"1\" description=\"A call-to-action button will be used of a clickable image.\" checked={buttonEnabled} onChange={updateOption} />\n </NekoCheckboxGroup>\n </NekoSettings>;\n\n const jsxButtonLabel =\n <NekoSettings title=\"Label\">\n <NekoInput id=\"mgcl_button_label\" name=\"mgcl_button_label\" value={buttonLabel} description=\"A call-to-action button will be used of a clickable image.\" onBlur={updateOption} />\n </NekoSettings>;\n\n return (\n <NekoPage nekoErrors={[ swrError ]}>\n\n <NekoHeader title='Gallery Custom Links | Settings' subtitle='By Jordy Meow' />\n\n <NekoWrapper>\n\n <NekoColumn full>\n <NekoContainer>\n <NekoTypo p>This plugin works out of the box, the default settings are the best for most installs. If your photos are only in the content, then you should switch the OB Mode off, that will make the process much faster. Don't hesitate to take a look at the <a href=\"https://meowapps.com/plugin/gallery-custom-links/\">official page</a>.</NekoTypo>\n </NekoContainer>\n\n <NekoTabs>\n\n <NekoTab title='Settings'>\n <NekoWrapper>\n\n <NekoColumn minimal>\n <NekoBlock busy={busy} title=\"Settings\" className=\"primary\">\n {jsxOBMode}\n {jsxParsingEngine}\n {jsxLog}\n </NekoBlock>\n </NekoColumn>\n\n <NekoColumn minimal>\n <NekoBlock busy={busy} title=\"CTA Buttons\" className=\"primary\">\n <NekoTypo p><b>Currently works with the <a href=\"https://wordpress.org/plugins/meow-gallery/\">Meow Gallery</a> and Gutenberg Galleries.</b> In a future Pro version, support for additional galleries might be added (please contact <a href=\"https://meowapps.com/contact/\">Meow Apps</a> for this).</NekoTypo>\n {jsxUseButtons}\n {!buttonEnabled ? null : jsxButtonLabel}\n </NekoBlock>\n </NekoColumn>\n\n </NekoWrapper>\n </NekoTab>\n\n </NekoTabs>\n\n </NekoColumn>\n\n </NekoWrapper>\n\n </NekoPage>\n );\n};\n\nexport default Settings;","// React & Vendor Libs\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\n// Gallery Custom Links\nimport Settings from '@app/components/Settings';\n\ndocument.addEventListener('DOMContentLoaded', function(event) {\n\n\t// Gallery Custom Links Settings\n\tconst container = document.getElementById('mgcl-admin-settings');\n\tif (container) {\n\t\tReactDOM.render((<Settings />), container);\n\t}\n\n});\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"React\"","webpack:///external \"ReactDOM\"","webpack:///../neko-ui/src/common/NekoBusyOverlay.js","webpack:///../neko-ui/src/common/NekoTheme.js","webpack:///../neko-ui/src/common/PresetIcons.js","webpack:///../neko-ui/src/button/Button.js","webpack:///../neko-ui/src/label/ProOnly.js","webpack:///../neko-ui/src/hooks.js","webpack:///../neko-ui/src/button/MenuButton.js","webpack:///../neko-ui/src/container/Page.js","webpack:///../neko-ui/src/misc/Typography.js","webpack:///../neko-ui/src/container/Block.js","webpack:///../neko-ui/src/container/Container.js","webpack:///../neko-ui/src/container/Settings.js","webpack:///../neko-ui/src/container/Window.js","webpack:///../neko-ui/src/container/Wrapper.js","webpack:///../neko-ui/src/form/Checkbox.js","webpack:///../neko-ui/src/form/CheckboxGroup.js","webpack:///../neko-ui/src/form/Input.js","webpack:///../neko-ui/src/form/TextArea.js","webpack:///../neko-ui/src/form/Select.js","webpack:///../neko-ui/src/misc/Finder.js","webpack:///../neko-ui/src/misc/Logo.js","webpack:///../neko-ui/src/misc/Progress.js","webpack:///../neko-ui/src/misc/Tooltip.js","webpack:///../neko-ui/src/misc/Icon.js","webpack:///../neko-ui/src/misc/Header.js","webpack:///../neko-ui/src/misc/Paging.js","webpack:///../neko-ui/src/misc/Links.js","webpack:///../neko-ui/src/misc/Gauge.js","webpack:///../neko-ui/src/misc/Message.js","webpack:///../neko-ui/src/misc/Upload.js","webpack:///../neko-ui/src/modal/Modal.js","webpack:///../neko-ui/src/table/Table.js","webpack:///../neko-ui/src/tabs/Tabs.js","webpack:///../neko-ui/src/tabs/SideTabs.js","webpack:///../neko-ui/src/toolbar/Toolbar.js","webpack:///../neko-ui/src/errors.js","webpack:///../neko-ui/src/helpers.js","webpack:///./app/js/settings.js","webpack:///./app/js/components/Settings.js","webpack:///./app/js/index.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","React","ReactDOM","NekoBusyOverlay","props","spinner","busy","overlayStyle","useState","showLoader","setShowLoader","useEffect","timeout","setTimeout","clearTimeout","loader","Fragment","className","style","Boolean","jsx","propsForElement","undefined","position","children","propTypes","PropTypes","bool","isRequired","oneOfType","arrayOf","node","NekoTheme","black","blackRGB","blue","blueRGB","deepBlue","finderBorder","lightBlue","lightGray","gray","green","darkGray","disabledForm","orange","overlay","red","redHighlight","header","proGray","progress","tableGray","yellow","yellowRGB","white","fontFamily","fontSizeH1","fontSizeH2","fontSizeText","fontSizeSmall","lightShadow","presetIcons","lockCheck","lockOpenVariant","fileUndo","chevronDoubleLeft","chevronDoubleRight","chevronLeft","chevronRight","chevronDown","chevronUp","pauseIcon","playIcon","replayIcon","checkIcon","stopIcon","deleteIcon","undoIcon","alertCircle","databaseIcon","toolsIcon","cogIcon","closeIcon","catIcon","uploadIcon","trashCan","leadPencil","viewDashboard","databaseSearch","StyledButton","Styled","icon","onClick","disabled","color","rest","hasIcon","classNames","type","PresetIcons","width","height","marginRight","Theme","lighten","additionalColor","NekoButton","oneOf","instanceOf","IconifyIcon","string","func","defaultProps","Tag","a","Colors","StyledProOnly","show","href","target","ProOnly","useComponentSize","ref","useRef","size","setSize","current","observer","ResizeObserver","entries","element","contentRect","left","right","top","bottom","observe","unobserve","useOutsideClick","onOutsideClick","componentRef","handleOutsideClick","e","contains","document","addEventListener","removeEventListener","PQueue","concurrency","autoStart","MenuButtonWrapper","div","MenuButton","button","MenuItemContainer","StyledMenuButton","title","isPro","isOpen","setIsOpen","wrapperRef","buttonRef","buttonWidth","Children","map","child","cloneElement","marginLeft","transform","MenuItem","StyledNekoMenuItem","requirePro","needsProUser","NekoMenuButton","NekoMenuItem","Page","StyledNekoPage","nekoErrors","fatalError","setFatalError","showBody","setShowBody","error","url","code","message","body","dangerouslySetInnerHTML","__html","open","NekoPage","NekoH1","h1","NekoH2","h2","NekoP","NekoSpan","span","StyledNekoTypo","NekoTypo","any","Block","StyledNekoBlock","NekoBlock","Container","Bar","StyledNekoContainer","headerAlign","footer","footerAlign","NekoContainer","StyledNekoSettings","contentAlign","NekoSettings","WindowBase","TitleBar","StyledNekoWindow","NekoWindow","Wrapper","Column","StyledNekoWrapper","StyledNekoColumn","full","minimal","NekoWrapper","NekoColumn","StyledNekoCheckbox","id","checked","onChange","label","description","showUpProOnly","isDisabled","disabledClass","join","defaultChecked","console","log","htmlFor","checkboxMarked","checkboxBlankOutline","NekoCheckbox","StyledNekoCheckboxGroup","max","NekoCheckboxGroup","mas","number","StyledNekoInput","placeholder","onEnter","readOnly","step","min","maxLength","natural","newValue","setNewValue","isControlled","onKeyPress","event","preventDefault","onBlur","maxlength","spellcheck","NekoInput","StyledNekoTextArea","spellCheck","NekoTextArea","Select","SelectedOption","Description","Options","OptionsContainer","StyledNekoSelect","scrolldown","currentOption","toArray","find","showOptions","toggleOptions","onOptionClick","childrenLength","RadioOption","SelectOption","StyledNekoOption","radioOption","recordCircle","checkboxBlankCircleOutline","selectOption","NekoSelect","NekoOption","StyledNekoFinder","chevron","FinderTitle","ChevronSpace","ItemContainer","RightElementContainer","StyledNekoFinderItem","defaultIcons","gallery","imageMultipleOutline","tag","tagIcon","rightElement","showRightElement","isFolder","isCustomizedIcon","hasChild","expanded","setExpanded","keys","includes","folderIcon","setIcon","folderOpen","onMouseEnter","onMouseLeave","NekoFinder","NekoFinderItem","Logo","StyledNekoLogo","viewBox","fill","xmlns","stroke","strokeWidth","NekoLogo","StyledNekoProgress","status","Math","ratio","parseFloat","ProgressCurrent","onPauseClick","paused","onStopClick","percent","isNaN","parseInt","round","typeOfStatus","minWidth","NekoProgress","TooltipContainer","Tooltip","prop","visible","StyledNekoTooltip","text","setShow","tooltipRef","tooltipWidth","tooltipHeight","childRef","childWidth","childHeight","transformStyle","useMemo","transY","transX","NekoTooltip","StyledIconContainer","StyledIcon","Icon","hoverColor","StyledNekoIcon","spinning","tooltip","containerStyle","getIcon","iconClassName","NekoIcon","HeaderBase","StyledNekoHeader","subtitle","saving","textDecoration","contentSave","NekoHeader","PagingContainer","StyledNekoPaging","currentPage","limit","total","maxPage","ceil","prevIconClassName","nextIconClassName","onClickHandle","page","NekoPaging","LinkContainer","Link","StyledNekoQuickLinks","isActive","StyledNekoLink","count","display","NekoQuickLinks","NekoLink","StyledSection","section","backgroundColor","degrees","NekoGauge","background","class","StyledUpload","NekoUpload","iconSize","onSuccess","onFailure","apiUrl","apiConfig","inDropZone","setInDropZone","floor","random","inputId","inputEl","setBusy","uploadFile","files","file","postFetch","res","success","onDragOver","stopPropagation","onDragEnter","uploadFiles","accept","click","onDragLeave","onDrop","dataTransfer","NekoModalParent","NekoModalContent","StyledNekoModal","ok","cancel","customButtons","content","onOkClick","onCancelClick","customClassName","modalContent","ariaHideApp","parentSelector","getElementById","closeTimeoutMS","NekoModal","Table","table","TableCheckBox","intermediate","onSelect","onUnselect","checkboxMultipleMarked","StyledNekoTable","columns","selectedItems","sort","onSortChange","columnsCount","rows","v","cells","accessor","currentRowsIds","x","areAllRowsSelected","filter","isIntermediate","hiddenColumnIndexes","reduce","headersFooters","column","beingSorted","beingSortedAsc","by","thStyle","sortable","colspan","textAlign","row","cell","NekoTable","TabContainer","TabGroup","Tab","TabContent","StyledNekoTabs","isActiveTabIndex","setIsActiveTabIndex","tabAttributes","toLowerCase","attr","ev","tabIndex","tabAttr","onTabClick","StyledNekoTab","NekoTabs","NekoTab","StyledNekoSideTabs","activeTabIndex","newTabIndex","StyledNekoSideTab","NekoSideTabs","NekoSideTab","ToolbarBase","StyledNekoToolbar","align","NekoToolbar","NekoError","debug","this","consolidateJsonResult","json","meta","JSON","parse","err","jsonFetcher","options","nekoError","rawBody","headers","fetch","config","signal","nonce","formData","FormData","append","method","stringify","mgcl_gallery_custom_links","prefix","domain","rest_url","replace","api_url","plugin_url","is_pro","is_registered","rest_nonce","wp","Settings","useSWR","swrSettings","mutateSwrSettings","mutate","swrData","defaultData","defaultBusy","setData","setError","setTotal","useHandleSWR","busySettings","settings","swrError","busyAction","setBusyAction","obmode","mgcl_obmode","parsingEngine","mgcl_parsing_engine","mgcl_log","buttonEnabled","mgcl_button_enabled","buttonLabel","mgcl_button_label","updateOption","newSettingsData","alert","jsxOBMode","jsxParsingEngine","option","jsxLog","jsxUseButtons","jsxButtonLabel","container","render"],"mappings":"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","file":"index.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"wpJsonMgcl\"] = window[\"wpJsonMgcl\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([79,1]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","module.exports = React;","module.exports = ReactDOM;","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nconst NekoBusyOverlay = (props) => {\n const { spinner = true, busy = false, overlayStyle } = props;\n const [ showLoader, setShowLoader ] = useState(true);\n\n useEffect(() => {\n let timeout;\n\n // Show the loader\n if (!busy) { \n timeout = setTimeout(() => { \n setShowLoader(false); \n timeout = null; \n }, 250);\n }\n else { \n setShowLoader(true);\n }\n\n // Cleanup\n return (() => {\n if (timeout) {\n clearTimeout(timeout);\n }\n });\n }, [busy]);\n\n const loader = !showLoader ? null : (\n <React.Fragment>\n <div className={'overlay' + ' ' + (!busy ? 'overlayHidden' : '')} style={overlayStyle}>\n {Boolean(spinner) && \n <div className={'lds-ellipsis ' + (!busy ? 'spinnerHidden' : '')}>\n <div></div><div></div><div></div><div></div>\n </div>\n }\n </div>\n <style jsx>{`\n .overlay {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n background: rgb(30 124 186 / 85%);\n transition: opacity 1s ease-out;\n z-index: 10;\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n }\n\n .overlayHidden {\n opacity: 0;\n transition: opacity 0.25s ease-out;\n }\n .spinnerHidden {\n opacity: 0;\n transition: opacity 0.25s ease-out;\n }\n .lds-ellipsis {\n position: relative;\n width: 80px;\n height: 80px;\n display: flex;\n justify-items: center;\n align-items: center;\n }\n .lds-ellipsis div {\n position: absolute;\n width: 13px;\n height: 13px;\n border-radius: 50%;\n background: white;\n animation-timing-function: cubic-bezier(0, 1, 1, 0);\n }\n .lds-ellipsis div:nth-child(1) {\n left: 8px;\n animation: lds-ellipsis1 0.6s infinite;\n }\n .lds-ellipsis div:nth-child(2) {\n left: 8px;\n animation: lds-ellipsis2 0.6s infinite;\n }\n .lds-ellipsis div:nth-child(3) {\n left: 32px;\n animation: lds-ellipsis2 0.6s infinite;\n }\n .lds-ellipsis div:nth-child(4) {\n left: 56px;\n animation: lds-ellipsis3 0.6s infinite;\n }\n @keyframes lds-ellipsis1 {\n 0% {\n transform: scale(0);\n }\n 100% {\n transform: scale(1);\n }\n }\n @keyframes lds-ellipsis3 {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0);\n }\n }\n @keyframes lds-ellipsis2 {\n 0% {\n transform: translate(0, 0);\n }\n 100% {\n transform: translate(24px, 0);\n }\n } \n `}</style>\n </React.Fragment>\n );\n\n // I am removing the busy because I like it as a boolean...\n // ... but React doesn't like pure boolean value here.\n const propsForElement = { ...props, busy: undefined, spinner: undefined };\n return (\n <div style={{ position: 'relative' }} {...propsForElement}> \n {loader}\n {props.children}\n </div>\n );\n};\n\nNekoBusyOverlay.propTypes = {\n busy: PropTypes.bool.isRequired,\n spinner: PropTypes.bool,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]).isRequired\n};\n\nexport default NekoBusyOverlay;","const NekoTheme = {\n\n // COLORS\n\n black: 'black',\n blackRGB: '0, 0, 0',\n blue: '#007cba',\n blueRGB: '0, 124, 186',\n deepBlue: '#134575',\n finderBorder: '#DEDEDE',\n lightBlue: '#EBF3FF',\n lightGray: '#F1F1F1',\n gray: '#E8E8E8',\n green: '#0EA480',\n darkGray: '#A0A0A0',\n disabledForm: '#828282',\n orange: '#daa827',\n overlay: 'rgba(16, 16, 16, 0.92)',\n red: '#ba4300',\n redHighlight: '#de5307',\n header: '#134675',\n proGray: '#7F8EA0',\n progress: '#8414a8',\n tableGray: '#FAFAFA',\n yellow: '#e4b42b',\n yellowRGB: '224, 156, 54',\n white: 'white',\n\n // FONT\n\n fontFamily: 'Lato',\n fontSizeH1: '24px',\n fontSizeH2: '18px',\n fontSizeText: '13px',\n fontSizeSmall: '12px',\n\n // SHADOW\n\n lightShadow: '0px 0px 10px rgba(0,0,0,0.1)',\n};\n\nexport default NekoTheme;\n","import lockCheck from '@iconify/icons-mdi/lock-check';\nimport lockOpenVariant from '@iconify/icons-mdi/lock-open-variant';\nimport fileUndo from '@iconify/icons-mdi/file-undo';\nimport chevronDoubleLeft from '@iconify/icons-mdi/chevron-double-left';\nimport chevronDoubleRight from '@iconify/icons-mdi/chevron-double-right';\nimport chevronLeft from '@iconify/icons-mdi/chevron-left';\nimport chevronRight from '@iconify/icons-mdi/chevron-right';\nimport chevronDown from '@iconify/icons-mdi/chevron-down';\nimport chevronUp from '@iconify/icons-mdi/chevron-up';\nimport pauseIcon from '@iconify/icons-mdi/pause';\nimport playIcon from '@iconify/icons-mdi/play';\nimport replayIcon from '@iconify/icons-mdi/replay';\nimport checkIcon from '@iconify/icons-mdi/check';\nimport stopIcon from '@iconify/icons-mdi/stop';\nimport deleteIcon from '@iconify/icons-mdi/delete';\nimport undoIcon from '@iconify/icons-mdi/undo';\n//import alertIcon from '@iconify/icons-mdi/alert';\nimport alertCircle from '@iconify/icons-mdi/alert-circle';\nimport databaseIcon from '@iconify/icons-mdi/database';\nimport pencilIcon from '@iconify/icons-mdi/pencil';\nimport toolsIcon from '@iconify/icons-mdi/tools';\nimport cogIcon from '@iconify/icons-mdi/cog';\nimport closeIcon from '@iconify/icons-mdi/close';\nimport catIcon from '@iconify/icons-mdi/cat';\nimport uploadIcon from '@iconify/icons-mdi/upload';\nimport trashCan from '@iconify/icons-mdi/trash-can';\nimport leadPencil from '@iconify/icons-mdi/lead-pencil';\nimport viewDashboard from '@iconify/icons-mdi/view-dashboard';\nimport databaseSearch from '@iconify/icons-mdi/database-search';\n\nconst presetIcons = {\n 'lock': lockCheck,\n 'lock-open': lockOpenVariant,\n 'file-undo': fileUndo,\n 'chevron-double-left': chevronDoubleLeft,\n 'chevron-double-right': chevronDoubleRight,\n 'chevron-left': chevronLeft,\n 'chevron-right': chevronRight,\n 'chevron-down': chevronDown,\n 'chevron-up': chevronUp,\n 'pause': pauseIcon,\n 'play': playIcon,\n 'replay': replayIcon,\n 'check': checkIcon,\n 'stop': stopIcon,\n 'delete': deleteIcon,\n 'undo': undoIcon,\n 'alert': alertCircle,\n 'database': databaseIcon,\n 'tools': toolsIcon,\n 'cog': cogIcon,\n 'close': closeIcon,\n 'cat': catIcon,\n 'upload': uploadIcon,\n 'trash': trashCan,\n 'pencil': leadPencil,\n 'dashboard': viewDashboard,\n 'search': databaseSearch\n};\n\nexport default presetIcons;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport { lighten } from 'polished';\nimport Theme from '../common/NekoTheme';\nimport { Icon, IconifyIcon } from '@iconify/react';\nimport PresetIcons from '../common/PresetIcons';\n\nconst StyledButton = Styled(props => {\n\n const { className, icon = null, onClick, disabled = false, color = null, children, ...rest } = props;\n const hasIcon = !!icon;\n\n const getIcon = () => {\n if (typeof icon === 'string') {\n return PresetIcons[icon] || null;\n }\n return icon;\n };\n\n const classNames = `nui-button ${className || ''}${hasIcon ? ' has-icon' : ''} ${color ? 'custom-color' : ''}`;\n\n return (\n <button type=\"button\" className={classNames} onClick={onClick} disabled={disabled} {...rest}>\n {hasIcon && <Icon icon={getIcon()} width=\"24\" height=\"24\" style={{ marginRight: '4px' }} />}\n <span>{children}</span>\n </button>\n );\n})`\n display: inline-block;\n box-sizing: border-box;\n height: 30px;\n min-width: 6em;\n border: none;\n border-radius: 4px;\n text-align: center;\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeText};\n padding: 0 15px;\n\n background-color: ${Theme.blue};\n color: white;\n transition: background-color .10s, opacity .25s;\n\n :not([disabled]):hover {\n cursor: pointer;\n background-color: ${lighten(0.1, Theme.blue)};\n }\n\n :disabled {\n opacity: 0.35;\n }\n\n :focus {\n outline: none;\n }\n\n &.has-icon {\n align-items: center;\n display: inline-flex;\n padding: 2.5px 6px 2.5px 4px;\n }\n\n &.secondary {\n background-color: ${Theme.lightBlue};\n border: 1px solid ${Theme.blue};\n color: ${Theme.blue};\n\n &:hover {\n background-color: ${lighten(0.1, Theme.lightBlue)};\n }\n }\n\n &.danger {\n background-color: ${Theme.red};\n border-color: ${Theme.red};\n\n\t &:hover {\n\t\t background-color: ${lighten(0.1, Theme.red)};\n\t }\n }\n\n &.success {\n background-color: ${Theme.green};\n border-color: ${Theme.green};\n\n\t &:hover {\n\t\t background-color: ${lighten(0.1, Theme.green)};\n\t }\n }\n\n & + button {\n margin-left: .25rem;\n }\n\n ${props => additionalColor(props.color)}\n`;\n\nconst additionalColor = (color) => {\n if (color) {\n return `\n &.custom-color {\n background-color: ${color};\n border: 1px solid ${color};\n\n &:hover {\n background-color: ${lighten(0.1, color)};\n }\n }\n `;\n }\n};\n\n/**\n * The NekoButton works out of the box without specific attributes.\n */\nconst NekoButton = (props) => {\n return (<StyledButton {...props} />);\n};\n\nNekoButton.propTypes = {\n className: PropTypes.oneOf(['primary', 'secondary', 'danger', 'success']),\n disabled: PropTypes.bool,\n icon: PropTypes.oneOfType([PropTypes.instanceOf(IconifyIcon), PropTypes.oneOf(['setting', 'edit', 'trash'])]),\n color: PropTypes.string,\n onClick: PropTypes.func.isRequired\n};\n\nNekoButton.defaultProps = {\n className: 'primary',\n disabled: false,\n icon: null,\n color: null,\n onClick: () => {}\n};\n\nexport { NekoButton };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Colors from '../common/NekoTheme';\nimport Theme from '../common/NekoTheme';\n\nconst Tag = Styled.a`\n background-color: ${Colors.yellow};\n position: relative;\n border-radius: 10px;\n color: ${Colors.white};\n font-family: ${Theme.fontFamily};\n font-size: 9px;\n line-height: 10px;\n padding: 5px 8px;\n text-transform: uppercase;\n text-decoration: none;\n\n &:hover {\n color: ${Colors.white};\n background-color: #f78c1f;\n }\n\n &.inline {\n display: inline;\n margin-left: 5px;\n vertical-align: middle;\n }\n`;\n\n/**\n * @param {string} className\n * @param {string|object} icon\n * @param {bool} disabled\n * @param {function} onClick\n */\nconst StyledProOnly = (props) => {\n\n const { show = true, className, ...rest } = props;\n\n if (!show) {\n return null;\n }\n\n return (\n <Tag href='https://store.meowapps.com' target='_blank' className={`${className || ''}`} {...rest}>\n Pro Only\n </Tag>\n );\n};\n\nconst ProOnly = (props) => {\n return (<StyledProOnly {...props} />);\n}\n\nProOnly.propTypes = {\n show: PropTypes.bool,\n className: PropTypes.string\n};\n\nProOnly.defaultProps = {\n show: true,\n className: undefined\n};\n\nexport { ProOnly };\n","import React, { useState, useRef, useEffect, useCallback } from 'react';\nimport PQueue from 'p-queue';\n\nconst useHandleSWR = (swrData = undefined, defaultData = null, defaultBusy = false) => {\n const [ data, setData ] = useState(defaultData);\n const [ error, setError ] = useState(null);\n const [ busy, setBusy ] = useState(defaultBusy);\n const [ total, setTotal ] = useState(0);\n\n useEffect(() => {\n if (swrData !== undefined) { \n if (swrData.success) {\n setError(null);\n setData(swrData.data);\n setTotal(swrData.total ? swrData.total : 0);\n }\n else {\n setError(swrData.error);\n }\n }\n setBusy(swrData === undefined);\n }, [ swrData ]);\n\n return { busy, data, total, error };\n}\n\n// Sometimes, we need to align or place elements depending on other dynamic elements.\n// This hook returns a ref (which should be assign to a component), and the size of\n// this element every time it changes.\n\nconst useComponentSize = () => {\n const ref = useRef();\n const [ size, setSize ] = useState({});\n\n useEffect(() => {\n if (ref && ref.current) {\n const observer = new ResizeObserver(entries => {\n let element = entries[0];\n if (element.contentRect) {\n setSize({ \n width: element.contentRect.left + element.contentRect.right, \n height: element.contentRect.top + element.contentRect.bottom \n });\n }\n });\n observer.observe(ref.current);\n return () => { observer.unobserve(ref.current); };\n }\n }, []);\n return { ref, width: size.width ? size.width : 0, height: size.height ? size.height : 0 };\n};\n\n// If a click is made outside the component, then the function onOutsideClick is called.\n// This function returns a ref which needs to be assigned to the component.\n\nconst useOutsideClick = (onOutsideClick) => {\n const componentRef = useRef();\n const handleOutsideClick = (e) => {\n if (!onOutsideClick || componentRef.current.contains(e.target)) {\n return;\n }\n onOutsideClick();\n };\n useEffect(() => {\n document.addEventListener(\"mousedown\", handleOutsideClick);\n return () => { document.removeEventListener(\"mousedown\", handleOutsideClick); };\n });\n return componentRef;\n};\n\n\n// This hook allows calling many requests without having too many of them\n// running concurrently.\n\nlet GlobalQueue = null;\n\nconst useNekoGlobalQueue = (params = {}) => {\n\n if (!GlobalQueue) {\n let { concurrency = 2 } = params;\n GlobalQueue = new PQueue({ concurrency, autoStart: true });\n }\n\n const runTask = async (func) => {\n return await GlobalQueue.add(func);\n }\n\n return { runTask };\n};\n\n// This hook handles batch of asynchronous requests, and provide everything\n// the NekoProgress might need.\n\nconst isDebug = false;\nconst UploadQueue = new PQueue({ concurrency: 1, autoStart: false });\n\nconst useNekoTasks = () => {\n\n // We should be able to kill fetch requests using this\n // Interesting article: https://davidwalsh.name/cancel-fetch\n const [ controller, setController ] = useState(new AbortController());\n const refSkip = useRef(false);\n const refErrors = useRef(0);\n const [ busy, setBusy ] = useState(null);\n const [ paused, setPaused ] = useState(false);\n const [ max, setMax ] = useState(0);\n const [ error, setError ] = useState(false);\n const [ success, setSuccess ] = useState(false);\n const [ value, setValue ] = useState(0);\n\n const reset = async () => {\n let newController = new AbortController();\n setController(newController);\n setError(false);\n refErrors.current = 0;\n refSkip.current = false;\n setPaused(false);\n setSuccess(false);\n setValue(0);\n setMax(0);\n };\n\n const start = async (tasks) => {\n const runnerPromise = new Promise((resolve, reject) => {\n setError(false);\n refErrors.current = 0;\n refSkip.current = false;\n setPaused(false);\n setSuccess(false);\n setTasks(tasks);\n setBusy(true);\n if (isDebug) { console.log('Started process.'); }\n UploadQueue.start();\n UploadQueue.onIdle().then(() => {\n onIdle();\n resolve();\n }); \n });\n return runnerPromise;\n };\n\n const pause = async () => {\n if (isDebug) { console.log('Paused process.'); }\n UploadQueue.pause();\n setPaused(true);\n };\n\n const resume = async () => {\n if (isDebug) { console.log('Resume process.'); }\n setError(false);\n setPaused(false);\n UploadQueue.start();\n };\n\n const stop = async () => {\n if (isDebug) { console.log('Cancelled process.'); }\n UploadQueue.pause();\n controller.abort();\n setBusy(false);\n setError(false);\n setSuccess(false);\n };\n\n const onIdle = async () => {\n if (isDebug) { console.log('onIdle.'); }\n setSuccess(true);\n setBusy(false);\n };\n\n const addTask = async (task) => {\n UploadQueue.add(async () => {\n try {\n let res = await task(controller.signal);\n if (!res || !res.success) {\n console.error('[useNekoTasks] Task returned nothing.', res);\n }\n if (!res.success) {\n refErrors.current++;\n if (!refSkip.current) {\n setError(res.error);\n pause();\n }\n }\n }\n catch (err) {\n if (err.name === 'AbortError') {\n console.log('Aborted');\n return;\n }\n else {\n refErrors.current++;\n if (!refSkip.current) {\n setError(\"An error was caught (more information in the console).\");\n pause();\n }\n }\n }\n finally {\n setValue(value => value + 1);\n }\n });\n setMax(max => max + 1);\n }\n\n const setTasks = async (tasks) => {\n UploadQueue.clear();\n for (let task of tasks) {\n addTask(task);\n }\n setValue(0);\n };\n\n const setAlwaysSkip = useCallback((value = true) => {\n refSkip.current = true;\n }, []);\n\n const getErrorCount = useCallback(() => {\n return refErrors.current;\n }, []);\n\n return { start, stop, pause, resume, reset, \n addTask, setAlwaysSkip, getErrorCount,\n error, success, busy, paused, value, max };\n};\n\nexport { useHandleSWR, useOutsideClick, useNekoGlobalQueue, useNekoTasks, useComponentSize };","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport { lighten } from 'polished';\nimport Theme from '../common/NekoTheme';\nimport { ProOnly } from '../label/ProOnly';\nimport { Icon } from '@iconify/react';\nimport chevronDown from '@iconify/icons-mdi/chevron-down';\nimport { useOutsideClick, useComponentSize } from '../hooks';\n\nconst MenuButtonWrapper = Styled.div`\n display: inline-block;\n`;\n\nconst MenuButton = Styled.button`\n align-items: center;\n background-color: ${Theme.blue};\n border: none;\n border-radius: 4px;\n box-sizing: border-box;\n color: white;\n display: inline-flex;\n justify-content: space-between;\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeText};\n height: 30px;\n min-width: 6em;\n padding: 0px 10px;\n text-align: center;\n transition: background-color .10s, opacity .25s;\n\n :not([disabled]):hover {\n cursor: pointer;\n background-color: ${lighten(0.1, Theme.blue)};\n }\n\n :disabled {\n opacity: 0.35;\n }\n\n :focus {\n outline: none;\n }\n\n & + button {\n margin-left: .25rem;\n }\n`;\n\nconst MenuItemContainer = Styled.div`\n position: relative;\n display: block;\n margin-top: 18px;\n background-color: ${Theme.blue};\n position: absolute;\n z-index: 10;\n box-shadow: ${Theme.lightShadow};\n\n &:before {\n content: \"\";\n position: absolute;\n top: -18px;\n left: 50%;\n margin-left: -8px;\n border: 8px solid transparent;\n border-bottom: 10px solid ${Theme.blue};\n }\n`;\n\nconst StyledMenuButton = props => {\n\n const { title, disabled = false, isPro = false, style = {} } = props;\n const [ isOpen, setIsOpen ] = React.useState(false);\n const wrapperRef = useOutsideClick(() => { setIsOpen(false) });\n const { ref: buttonRef, width: buttonWidth } = useComponentSize();\n\n const onClick = () => {\n setIsOpen(!isOpen);\n }\n\n const children = React.Children.map(props.children, child => {\n return React.cloneElement(child, {\n isPro,\n disabled: child.props.disabled || disabled,\n onClick: () => {\n if (child.props.onClick) {\n child.props.onClick();\n }\n onClick();\n }\n });\n });\n\n return (\n <MenuButtonWrapper ref={wrapperRef}>\n <MenuButton ref={buttonRef} type=\"button\" disabled={disabled} onClick={onClick} style={style}>\n <span>{title}</span>\n <Icon icon={chevronDown} width=\"24\" height=\"24\" style={{ marginLeft: '4px' }} />\n </MenuButton>\n {isOpen &&\n <MenuItemContainer style={{ transform: `translateX(calc(-50% + ${buttonWidth / 2}px))` }}>\n {children}\n </MenuItemContainer>\n }\n </MenuButtonWrapper>\n );\n};\n\nconst MenuItem = Styled.button`\n align-items: center;\n background-color: ${Theme.blue};\n border: none;\n box-sizing: border-box;\n color: white;\n display: flex;\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeText};\n width: 100%;\n padding: 8px 15px 8px 15px;\n text-align: center;\n transition: background-color .10s, opacity .25s;\n\n :not([disabled]):hover {\n cursor: pointer;\n background-color: ${lighten(0.1, Theme.blue)};\n }\n\n :disabled:not(.is-pro) {\n opacity: 0.35;\n }\n\n :focus {\n outline: none;\n }\n\n &.is-pro {\n background-color: ${Theme.proGray};\n justify-content: space-between;\n }\n`;\n\nconst StyledNekoMenuItem = props => {\n\n const { onClick, children, isPro, requirePro = false, disabled } = props;\n const needsProUser = requirePro && !isPro;\n\n return (\n <MenuItem type=\"button\" className={needsProUser? 'is-pro' : ''} onClick={onClick} disabled={disabled || needsProUser}>\n <span>{children}</span>\n {needsProUser && !isPro && <ProOnly />}\n </MenuItem>\n );\n};\n\n/**\n * The NekoMenuButton works out of the box without specific attributes.\n */\nconst NekoMenuButton = (props) => {\n return (<StyledMenuButton {...props} />);\n}\nconst NekoMenuItem = (props) => {\n return (<StyledNekoMenuItem {...props} />);\n}\n\nNekoMenuButton.propTypes = {\n title: PropTypes.string,\n disabled: PropTypes.bool,\n isPro: PropTypes.bool\n};\n\nNekoMenuButton.defaultProps = {\n title: undefined,\n disabled: false,\n isPro: false\n};\n\nNekoMenuItem.propTypes = {\n onClick: PropTypes.func.isRequired,\n requirePro: PropTypes.bool\n};\n\nNekoMenuItem.defaultProps = {\n onClick: () => {},\n requirePro: false\n};\n\nexport { NekoMenuButton, NekoMenuItem };\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport { NekoButton } from '../button/Button';\n\nconst Page = Styled.div`\n position: relative;\n background: #f1f1f1;\n margin-left: -20px;\n background-color: rgb(30 124 186 / 10%);\n padding-bottom: 50px;\n margin-bottom: -26px;\n\n .neko-rest-error {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: #1e232deb;\n z-index: 100;\n\n .container {\n color: white;\n padding: 5px 20px 15px 20px;\n min-width: 480px;\n max-width: 600px;\n border-radius: 20px;\n background: #883131;\n margin-left: 50%;\n transform: translateX(-50%);\n margin-top: 100px;\n\n h3 {\n color: white;\n }\n\n .neko-debug {\n padding: 5px 10px;\n background: #692426;\n border-radius: 10px;\n\n * {\n margin: 0px;\n padding: 0px;\n } \n }\n }\n }\n`;\n\n/**\n * @oaram {string} className\n */\nconst StyledNekoPage = props => {\n\n const { className, children, nekoErrors = [], style = {} } = props;\n const [ fatalError, setFatalError ] = useState(false);\n const [ showBody, setShowBody ] = useState(false);\n\n if (nekoErrors && !fatalError) {\n for (let error of nekoErrors) {\n if (error) {\n setFatalError(error);\n break\n }\n }\n }\n\n return (\n <Page className={className || ''} style={style}>\n {fatalError && \n <div className='neko-rest-error'>\n <div className='container'>\n {!showBody &&\n <>\n <h3>The Rest API is disabled or broken 😢</h3>\n <p>The Rest API is required for this plugin to work. It is enabled in WordPress by default since December 2016 and used by the Gutenberg Editor since 2019. In short, it allows more robustness and a much cleaner infrastructure. Soon, Wordpress will entirely depends on it, so it is important to keep it enabled.</p>\n <p><i>Last but not least: check your PHP Error Logs and your Debugging Console.</i></p>\n <p className='neko-debug'>\n <small>\n URL: {fatalError.url}<br />\n CODE: {fatalError.code}<br />\n MESSAGE: {fatalError.message}<br />\n </small>\n </p>\n </>\n }\n {fatalError.body && showBody &&\n <p className='neko-debug'>\n <div dangerouslySetInnerHTML={{ __html: fatalError.body }}></div>\n </p>\n }\n {fatalError.body &&\n <NekoButton color=\"#a94242\" onClick={() => setShowBody(!showBody)}>\n {showBody ? 'Hide' : 'Display'} response from server\n </NekoButton>\n }\n <NekoButton color=\"#a94242\" onClick={() => { window.open('https://meowapps.com/debugging-wordpress/', '_blank') }}>\n Learn about WordPress Debugging\n </NekoButton>\n </div>\n </div>}\n {children}\n </Page>\n );\n};\n\nconst NekoPage = (props) => {\n return (<StyledNekoPage {...props} />);\n};\n\nNekoPage.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n nekoErrors: PropTypes.bool\n};\n\nNekoPage.defaultProps = {\n className: undefined,\n style: {},\n nekoErrors: false\n};\n\nexport { NekoPage };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\n\nimport Theme from '../common/NekoTheme';\n\nconst NekoH1 = Styled.h1`\n font-family: ${Theme.fontFamily};\n font-weight: normal;\n font-size: ${Theme.fontSizeH1};\n line-height: normal;\n margin-top: 0;\n margin-bottom: 16px;\n padding: 0;\n`;\n\nconst NekoH2 = Styled.h2`\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeH2};\n font-weight: normal;\n line-height: normal;\n margin-top: 0;\n margin-bottom: 16px;\n padding: 0;\n`;\n\nconst NekoP = Styled.p`\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeText};\n line-height: normal;\n margin: 16px 0 24px;\n padding: 0;\n`;\n\nconst NekoSpan = Styled.span`\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeText};\n line-height: normal;\n margin: 0;\n padding: 0;\n`;\n\n/**\n * @param {string} (variant) Tag Name\n */\nconst StyledNekoTypo = props => {\n const { children, ...rest } = props;\n return (\n props.h1 ? <NekoH1 {...rest}>{children}</NekoH1>\n : props.h2 ? <NekoH2 {...rest}>{children}</NekoH2>\n : props.p ? <NekoP {...rest}>{children}</NekoP>\n : <NekoSpan {...rest}>{children}</NekoSpan>\n );\n};\n\nconst NekoTypo = (props) => {\n return (<StyledNekoTypo {...props} />);\n}\n\nNekoTypo.propTypes = {\n h1: PropTypes.any,\n h2: PropTypes.any,\n p: PropTypes.any\n};\n\nNekoTypo.defaultProps = {\n h1: undefined,\n h2: undefined,\n p: undefined\n};\n\nexport { NekoTypo };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\nimport { NekoTypo } from '../misc/Typography';\nimport NekoBusyOverlay from '../common/NekoBusyOverlay';\n\nconst Block = Styled.div`\n font-size: ${Theme.fontSizeText};\n margin-bottom: 15px;\n \n .nui-block-title {\n color: ${Theme.blue};\n padding: 5px 10px;\n margin-bottom: 5px;\n }\n\n .nui-block-content {\n background-color: #f1f1f1;\n padding: 26px;\n box-shadow: 0px 2px 5px 0px #0000004a;\n border-radius: 10px;\n\n p:first-child {\n margin-top: 0;\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &.primary {\n padding: 8px;\n background-color: ${Theme.blue};\n\n .nui-block-title {\n color: ${Theme.white};\n }\n\n .nui-block-content {\n background-color: ${Theme.white};\n }\n }\n`;\n\n/**\n * @oaram {string} className\n */\nconst StyledNekoBlock = props => {\n\n const { title, children, className, busy = false, style = {} } = props;\n\n return (\n \n <Block className={'nui-block ' + (className || '')} style={style}>\n <NekoBusyOverlay busy={busy}>\n <NekoTypo h2 className=\"nui-block-title\">{title}</NekoTypo>\n <div className=\"nui-block-content\">\n {children}\n </div>\n </NekoBusyOverlay>\n </Block>\n \n );\n};\n\nconst NekoBlock = (props) => {\n return (<StyledNekoBlock {...props} />);\n}\n\nNekoBlock.propTypes = {\n title: PropTypes.string,\n className: PropTypes.oneOf(['', 'primary']),\n style: PropTypes.object\n};\n\nNekoBlock.defaultProps = {\n title: undefined,\n className: '',\n style: {}\n};\n\nexport { NekoBlock };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\n\nconst Container = Styled.div`\n font-size: ${Theme.fontSizeText};\n font-family: ${Theme.fontFamily};\n background-color: ${Theme.white};\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n margin-bottom: 25px;\n\n &.primary {\n background-color: ${Theme.blue};\n }\n\n p:first-child {\n margin-top: 0px;\n }\n\n p:last-child {\n margin-bottom: 0px;\n }\n\n .content {\n padding: 20px 20px;\n }\n`;\n\nconst Bar = Styled.div`\n justify-content: flex-start;\n background-color: ${Theme.lightGray};\n display: flex;\n align-items: center;\n padding: 8px 10px;\n\n &.align-right {\n justify-content: flex-end;\n }\n`;\n\n/**\n * @oaram {string} className\n */\nconst StyledNekoContainer = props => {\n\n const { children, header, headerAlign = 'left', footer, footerAlign = 'right', className, style = {} } = props;\n\n return (\n <Container className={className || ''} style={style}>\n {header && <Bar className={`align-${headerAlign}`}>{ header }</Bar>}\n <div className=\"content\">\n { children }\n </div>\n {footer && <Bar className={`align-${footerAlign}`}>{ footer }</Bar>}\n </Container>\n );\n};\n\nconst NekoContainer = (props) => {\n return (<StyledNekoContainer {...props} />);\n}\n\nNekoContainer.propTypes = {\n header: PropTypes.element,\n headerAlign: PropTypes.oneOf(['left', 'right']),\n footer: PropTypes.element,\n footerAlign: PropTypes.oneOf(['left', 'right']),\n className: PropTypes.string,\n style: PropTypes.object\n};\nNekoContainer.defaultProps = {\n header: undefined,\n headerAlign: 'left',\n footer: undefined,\n footerAlign: 'right',\n className: undefined,\n style: {}\n};\n\nexport { NekoContainer };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\n\n/**\n * @param {string} title=''\n */\nconst StyledNekoSettings = Styled(props => {\n const { title = '', contentAlign = 'left' } = props;\n return (\n <div className={props.className || ''}>\n {title ? <div className=\"nui-settings-head\">{title}</div> : null}\n <div className={`nui-settings-content nui-settings-content-align-${contentAlign}`}>\n {props.children}\n </div>\n </div>\n );\n})`\n display: flex;\n font-family: ${Theme.fontFamily};\n\n > .nui-settings-head {\n font-family: ${Theme.fontFamily};\n font-size: 14px;\n line-height: 17px;\n width: 120px;\n margin-right: 16px;\n }\n\n /* Select, Checkbox, Input need to be a bit higher to be in front of the settings title */\n\n .nui-settings-content > .nui-select:first-child {\n position: relative;\n margin-top: -5px;\n }\n \n .nui-settings-content > .nui-checkbox:first-child {\n position: relative;\n margin-top: -5px;\n }\n\n .nui-settings-content > .nui-checkbox:first-child {\n position: relative;\n margin-top: -5px;\n }\n\n .nui-settings-content > .nui-button:first-child {\n position: relative;\n margin-top: -5px;\n }\n\n .nui-settings-content > div:first-child > .neko-input {\n position: relative;\n margin-top: -5px;\n }\n\n > .nui-settings-content {\n flex: 1;\n\n &.nui-settings-content-align-right {\n flex: none;\n margin-left: auto;\n }\n\n input[type=text] {\n width: 100%;\n }\n\n\n }\n\n & + div {\n margin-top: 15px;\n }\n`;\n\nconst NekoSettings = (props) => {\n return (<StyledNekoSettings {...props} />);\n}\n\nNekoSettings.propTypes = {\n title: PropTypes.string,\n className: PropTypes.string,\n contentAlign: PropTypes.string\n};\n\nNekoSettings.defaultProps = {\n title: '',\n className: undefined,\n contentAlign: 'left'\n};\n\nexport { NekoSettings };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\n\nconst WindowBase = Styled.div`\n margin: 20px;\n padding: 14px;\n background-color: white;\n box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);\n\n > * + * {\n /* Base margin between child elements */\n margin-top: 14px;\n }\n`;\n\nconst TitleBar = Styled(props => (\n props.children ? (\n <div className={props.className}>\n {props.children}\n </div>\n ) : null\n))`\n background-color: ${Theme.blue};\n color: white;\n`;\n\nconst StyledNekoWindow = props => (\n <WindowBase className='window'>\n <TitleBar>{props.title}</TitleBar>\n {props.children}\n </WindowBase>\n);\n\nconst NekoWindow = (props) => {\n return (<StyledNekoWindow {...props} />);\n}\n\nNekoWindow.propTypes = {\n title: PropTypes.string\n};\nNekoWindow.defaultProps = {\n title: undefined\n};\n\nexport { NekoWindow };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\n\nconst Wrapper = Styled.div`\n display: flex;\n flex-wrap: wrap;\n`;\n\nconst Column = Styled.div`\n flex: 1;\n padding: 32px 30px;\n\n .nui-block:not(:first-child) {\n margin-top: -20px;\n }\n\n .nui-block:last-child {\n margin-bottom: 0px;\n }\n\n &.minimal {\n padding: 0;\n }\n\n &.full {\n flex-basis: 100%;\n padding-bottom: 0;\n }\n\n & + .full {\n padding-bottom: 32px;\n padding-top: 0;\n }\n\n &:not(.full) + div:not(.full) {\n padding-left: 0;\n }\n`;\n\n/**\n * @oaram {string} className\n */\nconst StyledNekoWrapper = props => {\n return (\n <Wrapper>\n { props.children }\n </Wrapper>\n );\n};\n\nconst StyledNekoColumn = props => {\n const { full, minimal, ...rest } = props;\n let className = full ? 'full' : '';\n className += minimal ? ' minimal' : '';\n return (\n <Column className={className} {...rest}>{props.children}</Column>\n );\n};\n\nconst NekoWrapper = (props) => {\n return (<StyledNekoWrapper {...props} />);\n};\n\nconst NekoColumn = (props) => {\n return (<StyledNekoColumn {...props} />);\n};\n\nNekoWrapper.propTypes = {\n};\nNekoWrapper.defaultProps = {\n};\n\nNekoColumn.propTypes = {\n full: PropTypes.any\n};\nNekoColumn.defaultProps = {\n full: undefined\n};\n\nexport { NekoWrapper, NekoColumn };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\nimport { ProOnly } from '../label/ProOnly';\n\nimport { Icon } from '@iconify/react';\nimport checkboxBlankOutline from '@iconify/icons-mdi/checkbox-blank-outline';\nimport checkboxMarked from '@iconify/icons-mdi/checkbox-marked';\n\n/**\n * @param {string} id\n * @param {string} name\n * @param {bool} checked\n * @param {string} label\n * @param {string} description\n */\nconst StyledNekoCheckbox = Styled(props => {\n const { id, name, checked = false, onChange, label, description, isPro, disabled, requirePro = false } = props;\n\n const showUpProOnly = requirePro && !isPro;\n const isDisabled = disabled || showUpProOnly;\n const disabledClass = isDisabled ? 'disabled' : '';\n\n const onClick = () => {\n if (!onChange) {\n console.log(`The onChange handler it not set for this checkbox.`, props);\n return;\n }\n onChange(!checked, id);\n };\n\n return (\n <div className={['nui-checkbox', props.className, disabledClass].join(' ')}>\n <input id={id} name={name} type=\"checkbox\" defaultChecked={false} onClick={onClick} disabled={isDisabled} />\n <label htmlFor={id}>\n <div className=\"nui-checkbox-check-container\">\n <Icon icon={checked ? checkboxMarked : checkboxBlankOutline} width=\"30px\" height=\"30px\" \n color={isDisabled ? Theme.disabledForm : Theme.blue} />\n </div>\n <div className=\"nui-checkbox-inner-container\">\n <span className=\"label\">{label}<ProOnly className=\"inline\" show={showUpProOnly} /></span>\n {description ? <small className=\"description\">{description}</small> : null}\n </div>\n </label>\n </div>\n );\n})`\n font-family: ${Theme.fontFamily};\n\n &.disabled {\n color: ${Theme.disabledForm};\n\n label {\n cursor: default;\n }\n }\n\n input {\n display: none;\n }\n\n label {\n cursor: pointer;\n display: flex;\n }\n .nui-checkbox-check-container {\n flex-basis: 30px;\n }\n .nui-checkbox-inner-container {\n margin-top: 1.5px;\n margin-left: 4px;\n\n .label {\n display: block;\n font-size: 14px;\n line-height: 17px;\n padding-top: 4.5px;\n padding-bottom: 4px;\n }\n \n .description {\n display: block;\n font-size: 13px;\n line-height: 14px;\n color: #8a8a8a;\n\n * {\n font-size: 13px;\n line-height: inherit;\n margin: 0;\n }\n }\n }\n`;\n\nconst NekoCheckbox = (props) => {\n return (<StyledNekoCheckbox {...props} />);\n};\n\nNekoCheckbox.propTypes = {\n id: PropTypes.string,\n name: PropTypes.string,\n checked: PropTypes.bool,\n label: PropTypes.string,\n description: PropTypes.string,\n isPro: PropTypes.bool,\n requirePro: PropTypes.bool\n};\n\nNekoCheckbox.defaultProps = {\n id: undefined,\n name: undefined,\n checked: false,\n label: undefined,\n description: undefined,\n isPro: false,\n requirePro: false\n};\n\nexport { NekoCheckbox };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\n\n/**\n * @param {string} name\n * @param {int} max=-1 Max number of checkboxes to be checked. Negative number means unlimited\n */\nconst StyledNekoCheckboxGroup = Styled(props => {\n const { name, max = -1, isPro = false } = props;\n\n // React.Children.toArray(props.children)\n\n // Modify child components (Checkboxes)\n const children = React.Children.map(props.children, child => {\n if (child.props.name) return child; // Do not modify if the child has its own name\n return React.cloneElement(child, {\n name: name, // Apply the group's name\n isPro\n });\n });\n\n return children;\n})`\n`;\n\nconst NekoCheckboxGroup = (props) => {\n return (<StyledNekoCheckboxGroup {...props} />);\n}\n\nNekoCheckboxGroup.propTypes = {\n name: PropTypes.string,\n mas: PropTypes.number,\n isPro: PropTypes.bool\n};\n\nNekoCheckboxGroup.defaultProps = {\n name: undefined,\n mas: -1,\n isPro: false\n}\n\nexport { NekoCheckboxGroup };\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\n\n/**\n * @param {string} id\n * @param {string} name\n * @param {string} value\n * @param {string} description\n * @param {string} placeholder\n */\nconst StyledNekoInput = Styled(props => {\n const { id, name, value = '', description, placeholder = '', onEnter = null,\n readOnly = false, type = 'text', step = 1, min = 1, max = 999, \n maxLength = 3, className, style, natural = false, ...rest } = props;\n\n const [ newValue, setNewValue ] = useState(value);\n const isControlled = !!props.onChange;\n\n useEffect(() => {\n if (!isControlled) {\n setNewValue(value);\n }\n }, [ value ]);\n\n const onChange = (e) => {\n if (isControlled) { \n props.onChange(e.target.value, id);\n }\n else {\n setNewValue(e.target.value, id);\n }\n };\n\n const onKeyPress = (e) => {\n if (onEnter && event.key === 'Enter') {\n e.preventDefault();\n props.onEnter(e.target.value, id);\n }\n };\n\n const onBlur = (e) => {\n if (props.onBlur && value !== e.target.value) {\n props.onBlur(e.target.value, id);\n }\n };\n\n const classNames = `neko-input ${natural ? ' natural' : ''}`;\n\n return (\n <div className={[className].join(' ')} style={style}>\n {type === 'number'\n ? <input className={[classNames].join(' ')} {...rest} id={id} name={name} value={isControlled ? value : newValue} type={type} \n step={step} min={min} max={max} maxlength={maxLength} \n placeholder={placeholder} \n onChange={onChange} onKeyPress={onKeyPress} onBlur={onBlur} readOnly={readOnly} />\n : <input className={[classNames].join(' ')} {...rest} id={id} name={name} value={isControlled ? value : newValue} type={type} \n spellcheck=\"false\" \n placeholder={placeholder} \n onChange={onChange} onKeyPress={onKeyPress} onBlur={onBlur} readOnly={readOnly} />\n }\n {description && <p className=\"neko-input-description\">{description}</p>}\n </div>\n );\n})`\n .neko-input {\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeText};\n border: 2px solid ${Theme.blue};\n box-sizing: border-box;\n height: 30px;\n background: rgb(0 124 186 / 10%);\n padding: 0 10px;\n width: 100%;\n\n &.natural {\n border-color: gray;\n border-width: 1px;\n }\n\n &::placeholder {\n color: rgba(0, 0, 0, 0.25);\n }\n\n :focus {\n background-color: white;\n }\n\n :read-only {\n background-color: ${Theme.gray};\n }\n }\n\n .neko-input-description {\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeSmall};\n line-height: 14px;\n margin-top: 8px;\n margin-bottom: 0;\n }\n`;\n\nconst NekoInput = (props) => {\n return (<StyledNekoInput {...props} />);\n};\n\nNekoInput.propTypes = {\n id: PropTypes.string,\n type: PropTypes.oneOf(['number', 'text']),\n name: PropTypes.string,\n value: PropTypes.string,\n description: PropTypes.string,\n placeholder: PropTypes.string,\n onChange: PropTypes.func,\n onEnter: PropTypes.func,\n onBlur: PropTypes.func,\n readOnly: PropTypes.bool,\n step: PropTypes.number,\n min: PropTypes.number,\n max: PropTypes.number,\n maxLength: PropTypes.number,\n natural: PropTypes.bool\n};\n\nNekoInput.defaultProps = {\n id: undefined,\n type: 'text',\n name: undefined,\n value: '',\n description: undefined,\n placeholder: '',\n onChange: undefined,\n onEnter: undefined,\n onBlur: undefined,\n readOnly: false,\n step: 1,\n min: 1,\n max: 999,\n maxLength: 3,\n natural: false\n};\n\nexport { NekoInput };\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\n\n/**\n * @param {string} id\n * @param {string} name\n * @param {string} value\n * @param {string} description\n * @param {string} placeholder\n */\nconst StyledNekoTextArea = Styled(props => {\n const { id, name, value = '', description, placeholder = '', onEnter = null, readOnly = false, \n maxLength = 3, className, style, ...rest } = props;\n\n const [ newValue, setNewValue ] = useState(value);\n const isControlled = !!props.onChange;\n\n useEffect(() => {\n if (!isControlled) {\n setNewValue(value);\n }\n }, [ value ]);\n\n const onChange = (e) => {\n if (isControlled) { \n props.onChange(e.target.value, id);\n }\n else {\n setNewValue(e.target.value, id);\n }\n };\n\n const onKeyPress = (e) => {\n if (onEnter && event.key === 'Enter') {\n e.preventDefault();\n props.onEnter(e.target.value, id);\n }\n };\n\n const onBlur = (e) => {\n if (props.onBlur && value !== e.target.value) {\n props.onBlur(e.target.value, id);\n }\n };\n\n return (\n <div className={[className].join(' ')} style={style}>\n <textarea className=\"neko-textarea\" {...rest} id={id} name={name} spellCheck=\"false\" placeholder={placeholder} \n onChange={onChange} onKeyPress={onKeyPress} onBlur={onBlur} readOnly={readOnly}>\n {isControlled ? value : newValue}\n </textarea>\n {description && <p className=\"neko-input-description\">{description}</p>}\n </div>\n );\n})`\n .neko-textarea {\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeText};\n border: 2px solid ${Theme.blue};\n box-sizing: border-box;\n height: 160px;\n background: rgb(0 124 186 / 10%);\n padding: 0 10px;\n width: 100%;\n\n &::placeholder {\n color: rgba(0, 0, 0, 0.25);\n }\n\n :focus {\n background-color: white;\n }\n\n :read-only {\n background-color: ${Theme.gray};\n }\n }\n\n .neko-input-description {\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeSmall};\n line-height: 14px;\n margin-top: 8px;\n margin-bottom: 0;\n }\n`;\n\nconst NekoTextArea = (props) => {\n return (<StyledNekoTextArea {...props} />);\n};\n\nNekoTextArea.propTypes = {\n id: PropTypes.string,\n name: PropTypes.string,\n value: PropTypes.string,\n description: PropTypes.string,\n placeholder: PropTypes.string,\n onChange: PropTypes.func,\n onEnter: PropTypes.func,\n onBlur: PropTypes.func,\n readOnly: PropTypes.bool\n};\n\nNekoTextArea.defaultProps = {\n id: undefined,\n name: undefined,\n value: '',\n description: undefined,\n placeholder: '',\n onChange: undefined,\n onEnter: undefined,\n onBlur: undefined,\n readOnly: false\n};\n\nexport { NekoTextArea };\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\nimport { ProOnly } from '../label/ProOnly';\nimport { useOutsideClick } from '../hooks';\n\nimport { Icon } from '@iconify/react';\nimport checkboxBlankCircleOutline from '@iconify/icons-mdi/checkbox-blank-circle-outline';\nimport recordCircle from '@iconify/icons-mdi/record-circle';\nimport chevronDown from '@iconify/icons-mdi/chevron-down';\nimport chevronUp from '@iconify/icons-mdi/chevron-up';\n\nconst Select = Styled.div`\n border-radius: 8px;\n position: relative;\n user-select: none;\n cursor: pointer;\n\n &.show-options {\n background-color: ${Theme.blue};\n border-radius: 8px 8px 0 0;\n }\n`;\n\nconst SelectedOption = Styled.div`\n align-items: center;\n background-color: ${Theme.white};\n border: 2px solid ${Theme.blue};\n border-radius: 8px;\n display: flex;\n font-family: ${Theme.fontFamily};\n font-size: 14px;\n padding: 0 5px 0 10px;\n box-sizing: border-box;\n height: 30px;\n\n .rightContent {\n align-items: center;\n display: flex;\n margin-left: auto;\n }\n`;\n\nconst Description = Styled.div`\n display: block;\n margin-top: 5px;\n font-size: 13px;\n line-height: 14px;\n color: #8a8a8a;\n\n * {\n font-size: 13px;\n line-height: inherit;\n margin: 0;\n }\n`;\n\nconst Options = Styled.div`\n border-radius: 8px;\n overflow: hidden;\n padding-top: 28px;\n position: absolute;\n top: 0;\n z-index: 10;\n width: 100%;\n transition: all 0.2s ease-in;\n\n &.hidden {\n opacity: 0;\n }\n`;\n\nconst OptionsContainer = Styled.div`\n background-color: ${Theme.white};\n`;\n\n/**\n * @param {string} name\n */\nconst StyledNekoSelect = props => {\n const { id, name, value, scrolldown = false, isPro = false, onChange, ...rest } = props;\n\n const currentOption = React.Children.toArray(props.children)\n .find(child => child.props.value === value || child.props.checked)?.props;\n\n\n const label = currentOption?.label || 'Select';\n const description = currentOption?.description || props.description;\n const requirePro = currentOption?.requirePro || false;\n //const id = scrolldown ? props.id : currentOption?.id;\n\n const [ showOptions, toggleOptions ] = useState(false);\n const componentRef = scrolldown ? useOutsideClick(() => { toggleOptions(false) }) : null;\n const showUpProOnly = requirePro && !isPro;\n\n const onOptionClick = (newValue) => {\n if (newValue !== value) {\n if (!onChange) {\n console.log(`The onChange handler it not set for this checkbox.`, props);\n return;\n }\n onChange(newValue, id);\n }\n if (scrolldown) {\n toggleOptions(false);\n }\n }\n\n const children = React.Children.map(props.children, child => {\n return React.cloneElement(child, {\n name: child.props.name || name,\n checked: child.props.value === value || child.props.checked,\n onClick: onOptionClick,\n scrolldown,\n isPro\n });\n });\n\n return scrolldown\n ? <Select id={id} ref={componentRef} {...rest}\n onClick={() => toggleOptions(!showOptions)}\n className={[ 'nui-select', showOptions ? 'show-options' : '']}\n childrenLength={children.length}\n >\n <SelectedOption>\n {label}\n <div className=\"rightContent\">\n {showUpProOnly && <ProOnly />}\n <Icon icon={showOptions ? chevronUp : chevronDown} width=\"24\" />\n </div>\n </SelectedOption>\n {description && <Description>{description}</Description>}\n \n {showOptions &&\n <Options className={showOptions ? '' : 'hidden'}>\n <OptionsContainer>{[children]}</OptionsContainer>\n </Options>\n }\n </Select>\n : children;\n};\n\nconst RadioOption = Styled.div`\n font-family: ${Theme.fontFamily};\n margin-bottom: 6px;\n\n input {\n display: none;\n }\n\n label {\n cursor: pointer;\n display: flex;\n }\n\n .inner-container {\n margin-left: 4px;\n\n .label {\n display: block;\n font-size: 14px;\n line-height: 17px;\n padding-top: 4.5px;\n padding-bottom: 4px;\n }\n .description {\n display: block;\n font-size: 12px;\n }\n }\n\n &.disabled {\n color: ${Theme.disabledForm};\n\n label {\n cursor: default;\n }\n }\n`;\n\nconst SelectOption = Styled.div`\n background-color: ${Theme.blue};\n cursor: pointer;\n font-family: ${Theme.fontFamily};\n padding: 8px 12px;\n\n &:hover {\n filter: brightness(80%);\n }\n\n input {\n display: none;\n }\n\n .option {\n align-items: center;\n color: ${Theme.white};\n display: flex;\n justify-content: space-between;\n font-family: ${Theme.fontFamily};\n font-size: 14px;\n line-height: 17px;\n }\n\n &.disabled {\n background-color: rgb(224 156 54);\n pointer-events: none;\n\n .option {\n color: rgb(255 255 255 / 35%);\n }\n }\n`;\n\n/**\n * @param {string} id\n * @param {string} name\n * @param {string} value\n * @param {bool} checked\n * @param {string} label\n * @param {string} description\n * @param {function} onClick\n */\nconst StyledNekoOption = props => {\n const { id, name, value, checked, label, description, onClick, scrolldown, isPro = false, requirePro = false } = props;\n\n const showUpProOnly = requirePro && !isPro;\n const disabledClass = showUpProOnly ? 'disabled' : '';\n\n const radioOption = (\n <RadioOption className={`nui-select ${props.className || ''} ${disabledClass}`}>\n <input id={id} name={name} type=\"radio\" value={value} defaultChecked={checked} onClick={(e) => onClick(e.target.value)} disabled={showUpProOnly} />\n <label htmlFor={id}>\n <Icon icon={checked ? recordCircle : checkboxBlankCircleOutline} width=\"24px\" color={showUpProOnly ? Theme.disabledForm : Theme.blue}/>\n <div className=\"inner-container\">\n <span className=\"label\">{label}<ProOnly className=\"inline\" style={{ top: -1 }} show={showUpProOnly} /></span>\n {description ? <small className=\"description\">{description}</small> : null}\n </div>\n </label>\n </RadioOption>\n );\n\n const selectOption = (\n <SelectOption className={`nui-select ${props.className || ''} ${disabledClass}`}>\n <input id={id} name={name} type=\"radio\" value={value} defaultChecked={checked} disabled={showUpProOnly} />\n <div className=\"option\" onClick={() => onClick(value)}>\n {label}\n <ProOnly show={showUpProOnly} />\n </div>\n </SelectOption>\n );\n\n return scrolldown ? selectOption : radioOption;\n};\n\n/**\n * The NekoSelect has 2 types, radio (default) or select.\n */\nconst NekoSelect = (props) => {\n return (<StyledNekoSelect {...props} />);\n}\n\nNekoSelect.propTypes = {\n id: PropTypes.string,\n name: PropTypes.string,\n description: PropTypes.string,\n scrolldown: PropTypes.bool,\n isPro: PropTypes.bool,\n onChange: PropTypes.func\n};\n\nNekoSelect.propTypes = {\n id: undefined,\n name: undefined,\n description: undefined,\n scrolldown: false,\n isPro: false,\n onChange: undefined\n};\n\nconst NekoOption = (props) => {\n return (<StyledNekoOption {...props} />);\n}\n\nNekoOption.propTypes = {\n id: PropTypes.string,\n name: PropTypes.string,\n value: PropTypes.string,\n checked: PropTypes.bool,\n label: PropTypes.string,\n description: PropTypes.string,\n onClick: PropTypes.func,\n scrolldown: PropTypes.bool,\n isPro: PropTypes.bool,\n requirePro: PropTypes.bool\n};\n\nNekoOption.defaultProps = {\n id: undefined,\n name: undefined,\n value: undefined,\n checked: false,\n label: undefined,\n description: undefined,\n onClick: undefined,\n scrolldown: false,\n isPro: false,\n requirePro: false\n};\n\nexport { NekoSelect, NekoOption };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Colors from '../common/NekoTheme';\nimport { Icon, InlineIcon, IconifyIcon } from '@iconify/react';\nimport folderIcon from '@iconify/icons-mdi/folder';\nimport folderOpen from '@iconify/icons-mdi/folder-open';\nimport imageMultipleOutline from '@iconify/icons-mdi/image-multiple-outline';\nimport chevronRight from '@iconify/icons-mdi/chevron-right';\nimport chevronDown from '@iconify/icons-mdi/chevron-down';\nimport tagIcon from '@iconify/icons-mdi/tag';\n\nconst StyledNekoFinder = props => {\n\n const { chevron = true } = props;\n\n const children = React.Children.map(props.children, child => {\n return React.cloneElement(child, {\n chevron\n });\n });\n\n return (\n children\n );\n};\n\nconst FinderTitle = Styled.div`\n align-items: center;\n display: flex;\n margin-bottom: 8px;\n\n &.can-expand {\n cursor: pointer;\n }\n\n p {\n margin: 0 0 0 8px;\n }\n`;\n\nconst ChevronSpace = Styled.div`\n height: 24px;\n width: 24px;\n`;\n\nconst ItemContainer = Styled.div`\n border-left: 1px solid ${Colors.finderBorder};\n margin-left: 12px;\n padding-left: 6px;\n\n &.no-line {\n border-left: 0;\n padding-left: 12px;\n }\n\n &.no-chevron {\n border-left: 0;\n margin-left: 0;\n padding-left: 0;\n }\n`;\n\nconst RightElementContainer = Styled.div`\n margin-left: 5px;\n`;\n\nconst StyledNekoFinderItem = props => {\n\n const defaultIcons = {\n gallery: imageMultipleOutline,\n tag: tagIcon\n }\n\n const { title, chevron, rightElement = null, showRightElement = false } = props;\n const isFolder = !!!props.icon;\n const isCustomizedIcon = !!props.icon;\n const hasChild = !!props.children;\n const [ expanded, setExpanded ] = React.useState(false);\n const [ icon, setIcon ] = React.useState(() => {\n if (typeof props.icon === 'string' && Object.keys(defaultIcons).includes(props.icon)) {\n return defaultIcons[props.icon];\n } else if (props.icon) {\n return props.icon;\n }\n return folderIcon\n });\n\n const onClick = () => {\n if (!isFolder && !hasChild) return;\n if (!isCustomizedIcon) {\n setIcon(expanded ? folderIcon : folderOpen);\n }\n setExpanded(!expanded);\n }\n\n const children = React.Children.map(props.children, child => {\n return React.cloneElement(child, {\n chevron\n });\n });\n\n return (\n <div>\n <FinderTitle onClick={onClick} onMouseEnter={props.onMouseEnter} onMouseLeave={props.onMouseLeave} className={`${isFolder || children ? 'can-expand' : ''}`}>\n {chevron\n ? isFolder || children\n ? <Icon icon={expanded ? chevronDown : chevronRight} width=\"24\" height=\"24\" />\n : <ChevronSpace></ChevronSpace>\n : null\n }\n <Icon icon={icon} color={Colors.blue} width=\"24\" height=\"24\" />\n <p>{ title }</p>\n {showRightElement &&\n <RightElementContainer>{rightElement}</RightElementContainer>\n }\n </FinderTitle>\n {expanded && <ItemContainer className={`${isFolder ? '' : 'no-line'} ${chevron ? '' : 'no-chevron'}`}>{children}</ItemContainer>}\n </div>\n )\n}\n\nconst NekoFinder = (props) => {\n return (<StyledNekoFinder {...props} />);\n}\n\nNekoFinder.propTypes = {\n chevron: PropTypes.bool\n};\n\nNekoFinder.defaultProps = {\n chevron: true\n};\n\nconst NekoFinderItem = (props) => {\n return (<StyledNekoFinderItem {...props} />);\n}\n\nNekoFinderItem.propTypes = {\n icon: PropTypes.oneOfType([PropTypes.instanceOf(IconifyIcon), PropTypes.oneOf(['gallery'])]),\n title: PropTypes.string\n};\n\nNekoFinderItem.defaultProps = {\n icon: folderIcon,\n title: undefined\n};\n\nexport { NekoFinder, NekoFinderItem };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\n\nconst Logo = Styled.div`\n display: flex;\n width: 100%;\n height: 100%;\n max-width: 128px;\n max-height: 128px;\n\n & > * {\n width: 100%;\n height: auto;\n object-fit: contain;\n }\n`;\n\nconst StyledNekoLogo = () => {\n return (\n <Logo>\n <svg width=\"54\" height=\"38\" viewBox=\"0 0 54 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M11.3663 9.40518C9.2981 -3.25522 -0.310763 2.76769 2.5163 9.40518C2.5163 9.40518 8.29338 29.9322 22.3059 26.3677C36.3184 22.8031 23.9038 19.1156 23.9038 19.1156C23.9038 19.1156 13.4345 22.0656 11.3663 9.40518Z\" fill=\"#724024\" stroke=\"black\" strokeWidth=\"2.1869\"/>\n <path d=\"M10.7517 8.0531C10.0142 10.7573 6.32673 12.1093 3.99131 11.2489C1.65589 10.3885 2.63923 13.8302 5.09756 14.9364C7.55589 16.0427 11.2434 14.1989 12.1038 12.4781C12.9642 10.7573 11.4892 5.34893 10.7517 8.0531Z\" fill=\"#B7782E\"/>\n <path d=\"M14.0705 17.2718C13.8246 19.2385 9.64547 19.976 7.55589 19.8531C5.46631 19.7302 9.76839 23.5406 11.3663 23.5406C12.9642 23.5406 17.3892 21.2052 17.1434 19.2385C16.8976 17.2718 14.3163 15.3052 14.0705 17.2718Z\" fill=\"#B7782E\"/>\n <path d=\"M17.5121 26.2448C18.6184 25.3843 20.9538 21.8198 19.8476 19.8531C18.7413 17.8864 22.4288 20.9593 22.4288 20.9593L21.6913 26.2448C21.6913 26.2448 16.4059 27.1052 17.5121 26.2448Z\" fill=\"#B7782E\"/>\n <path d=\"M10.7517 8.0531C10.0142 10.7573 6.32673 12.1093 3.99131 11.2489C1.65589 10.3885 2.63923 13.8302 5.09756 14.9364C7.55589 16.0427 11.2434 14.1989 12.1038 12.4781C12.9642 10.7573 11.4892 5.34893 10.7517 8.0531Z\" stroke=\"black\"/>\n <path d=\"M14.0705 17.2718C13.8246 19.2385 9.64547 19.976 7.55589 19.8531C5.46631 19.7302 9.76839 23.5406 11.3663 23.5406C12.9642 23.5406 17.3892 21.2052 17.1434 19.2385C16.8976 17.2718 14.3163 15.3052 14.0705 17.2718Z\" stroke=\"black\"/>\n <path d=\"M17.5121 26.2448C18.6184 25.3843 20.9538 21.8198 19.8476 19.8531C18.7413 17.8864 22.4288 20.9593 22.4288 20.9593L21.6913 26.2448C21.6913 26.2448 16.4059 27.1052 17.5121 26.2448Z\" stroke=\"black\"/>\n <path d=\"M11.3663 9.40518C9.2981 -3.25522 -0.310763 2.76769 2.5163 9.40518C2.5163 9.40518 8.29338 29.9322 22.3059 26.3677C36.3184 22.8031 23.658 19.4843 23.658 19.4843C23.658 19.4843 13.4345 22.0656 11.3663 9.40518Z\" stroke=\"black\" strokeWidth=\"2.1869\"/>\n <path d=\"M25.3788 9.89685C25.3788 9.89685 21.3225 35.0947 21.9371 35.7093C22.5517 36.3239 27.4684 36.3239 28.083 35.7093C28.6975 35.0947 29.6523 22.5858 30.2955 21.9427C30.9386 21.2995 35.7226 33.1281 36.81 33.1281C37.8975 33.1281 43.2303 21.3567 43.8163 21.9427C44.4023 22.5287 45.2913 35.0947 45.9059 35.7093C46.5204 36.3239 51.3142 36.3239 51.9288 35.7093C52.5434 35.0947 48.9788 9.89685 48.9788 9.89685H42.9559C42.9559 9.89685 37.7934 21.9427 36.81 21.9427C35.8267 21.9427 31.4017 9.89685 31.4017 9.89685H25.3788Z\" fill=\"white\" stroke=\"black\" strokeWidth=\"2.1869\"/>\n </svg>\n </Logo>\n );\n}\n\nconst NekoLogo = (props) => {\n return (<StyledNekoLogo {...props} />);\n}\n\nNekoLogo.propTypes = {\n};\n\nNekoLogo.defaultProps = {\n};\n\nexport { NekoLogo };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport { lighten } from 'polished';\nimport { Icon, InlineIcon } from '@iconify/react';\nimport pauseIcon from '@iconify/icons-mdi/pause';\nimport stopIcon from '@iconify/icons-mdi/stop';\nimport playIcon from '@iconify/icons-mdi/play';\n\nimport Theme from '../common/NekoTheme';\n\n/**\n * @param {number} value Current progress\n * @param {number} max Max progress\n */\nconst StyledNekoProgress = Styled(props => {\n let { value = 0, max = 100, busy = false, status } = props;\n value = Math.min(value, max);\n let ratio = parseFloat(value) / parseFloat(max);\n\n return (\n <div className={props.className}>\n <ProgressCurrent ratio={ratio} busy={props.busy} status={status} />\n <div className=\"nui-progress-buttons\">\n {busy && props.onPauseClick && \n <div className='nui-progress-button pause' onClick={props.onPauseClick}>\n {props.paused ? <InlineIcon icon={playIcon} /> : <InlineIcon icon={pauseIcon} />}\n </div>\n }\n {busy && props.onStopClick && \n <div className='nui-progress-button stop' onClick={props.onStopClick}>\n <InlineIcon icon={stopIcon} />\n </div>\n }\n </div>\n </div>\n );\n})`\n position: relative;\n box-sizing: border-box;\n height: 30px;\n background: linear-gradient(\n 180deg,\n rgba(0, 0, 0, 0.06) 0%,\n rgba(0, 0, 0, 0.02) 50%,\n rgba(0, 0, 0, 0.10) 100%\n );\n border-radius: 12px;\n\n .nui-progress-buttons {\n position: absolute;\n height: 100%;\n right: 0px;\n display: flex;\n align-items: center;\n padding-right: 5px;\n\n .nui-progress-button {\n border: none;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-left: 2px;\n border-radius: 100%;\n color: white;\n padding: 2px;\n width: 18px;\n height: 18px;\n background-color: ${Theme.blue};\n\n &:hover {\n background-color: ${lighten(0.1, Theme.blue)};\n }\n\n &.stop {\n background: ${Theme.red};\n\n &:hover {\n background-color: ${lighten(0.1, Theme.red)};\n }\n }\n }\n }\n`;\n\n/**\n * @param {float} ratio Progress ratio (0.0 to 1.0)\n */\nconst ProgressCurrent = Styled(props => {\n const percent = !isNaN(props.ratio) ? parseInt(Math.round(props.ratio * 100)) : 0;\n const typeOfStatus = typeof props.status;\n let status = typeOfStatus !== 'undefined'\n ? (typeOfStatus === 'string') ? props.status : props.status(percent)\n : `${percent}%`;\n\n return (\n <div className={props.className} style={{ minWidth: 28, minWidth: percent + '%' }}>\n <div>{status}</div>\n </div>\n );\n})`\n position: absolute;\n overflow: hidden;\n top: 0; left: 0;\n height: 100%;\n background-color: ${Theme.progress};\n border-radius: 12px;\n text-align: center;\n padding: 0 10px;\n vertical-align: middle;\n color: white;\n font-family: ${Theme.fontFamily};\n font-size: 13px;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: min-width .2s ease-out;\n\n background-size: 30px 30px;\n background-image: linear-gradient(135deg, rgba(255, 255, 255, .15) 25%,\n transparent 25%,\n transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,\n transparent 75%, transparent);\n animation: ${props => props.busy ? 'animate-stripes 1.6s linear infinite' : 'none'};\n\n @keyframes animate-stripes {\n 0% { background-position: 0 0; }\n 100% { background-position: 60px 0; }\n }\n`;\n\nconst NekoProgress = (props) => {\n return (<StyledNekoProgress {...props} />);\n}\n\nNekoProgress.propTypes = {\n value: PropTypes.number,\n max: PropTypes.number,\n busy: PropTypes.bool,\n paused: PropTypes.bool,\n onPauseClick: PropTypes.func,\n onStopClick: PropTypes.func,\n status: PropTypes.oneOf([PropTypes.string, PropTypes.func])\n};\n\nNekoProgress.defaultProps = {\n value: 0,\n max: 100,\n busy: false,\n paused: false,\n onPauseClick: undefined,\n onStopClick: undefined,\n status: undefined\n};\n\nexport { NekoProgress };\n","import React, { useState, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\n\nimport { useComponentSize } from '../hooks';\nimport Theme from '../common/NekoTheme';\n\nconst TooltipContainer = Styled.div`\n\tdisplay: flex;\n`;\n\nconst Tooltip = Styled.div`\n\tbackground-color: rgba(${Theme.blackRGB}, 0.8);\n\tborder-radius: 4px;\n\tcolor: ${Theme.white};\n\tfont-family: ${Theme.fontFamily};\n\tfont-weight: normal;\n\tmin-width: 180px;\n\tmax-width: 280px;\n\tfont-size: ${Theme.fontSizeText};\n\tpadding: 8px 12px;\n\tposition: absolute;\n \tmax-width: 280px;\n\tdisplay: ${prop => prop.visible ? 'inline-block' : 'none'};\n\tz-index: 100;\n\n\t&:before {\n\t\tcontent: \"\";\n\t\tposition: absolute;\n\t\tborder: 4px solid transparent;\n\t}\n\n\t&.top {\n\t\t&:before {\n\t\t\tmargin-left: -4px;\n\t\t\ttop: 100%;\n\t\t\tleft: 50%;\n\t\t\tborder-top: 4px solid rgba(${Theme.blackRGB}, 0.8);\n\t\t}\n\t}\n\n\t&.left {\n\t\t&:before {\n\t\t\tmargin-top: -4px;\n\t\t\ttop: 50%;\n\t\t\tright: -8px;\n\t\t\tborder-left: 4px solid rgba(${Theme.blackRGB}, 0.8);\n\t\t}\n\t}\n\n\t&.right {\n\t\t&:before {\n\t\t\tmargin-top: -4px;\n\t\t\ttop: 50%;\n\t\t\tleft: -8px;\n\t\t\tborder-right: 4px solid rgba(${Theme.blackRGB}, 0.8);\n\t\t}\n\t}\n\n\t&.bottom {\n\t\t&:before {\n\t\t\tmargin-left: -4px;\n\t\t\ttop: -8px;\n\t\t\tleft: 50%;\n\t\t\tborder-bottom: 4px solid rgba(${Theme.blackRGB}, 0.8);\n\t\t}\n\t}\n\n\t${prop => prop.style}\n`;\n\n/**\n * @param {string} (variant) Tag Name\n */\nconst StyledNekoTooltip = props => {\n\tconst { text = 'Hello world!', position = 'top' } = props;\n\tconst [ show, setShow ] = useState(false);\n\tconst { ref: tooltipRef, width: tooltipWidth, height: tooltipHeight } = useComponentSize();\n\tconst { ref: childRef, width: childWidth, height: childHeight } = useComponentSize();\n\n\tconst transformStyle = useMemo(() => {\n\t\tconst pointerSize = 5;\n\t\tlet transY = 0;\n\t\tlet transX = 0;\n\n\t\tif (position === 'top') {\n\t\t\ttransY = -1 * tooltipHeight - pointerSize;\n\t\t\ttransX = -1 * (tooltipWidth / 2) + (childWidth / 2);\n\t\t}\n\t\telse if (position === 'bottom') {\n\t\t\ttransY = childHeight + pointerSize;\n\t\t\ttransX = -1 * (tooltipWidth / 2) + (childWidth / 2);\n\t\t}\n\t\telse if (position === 'left') {\n\t\t\tconst diff = tooltipHeight - childHeight;\n\t\t\ttransY = -1 * (diff / 2);\n\t\t\ttransX = -1 * tooltipWidth - pointerSize;\n\t\t}\n\t\telse if (position === 'right') {\n\t\t\tconst diff = tooltipHeight - childHeight;\n\t\t\ttransY = -1 * (diff / 2);\n\t\t\ttransX = childWidth + pointerSize;\n\t\t}\n\t\t\n\t\treturn { \n\t\t\ttransform: `translateX(${transX}px) translateY(${transY}px)`\n\t\t};\n\n\t}, [position, tooltipWidth, tooltipHeight, childWidth, childHeight])\n\n\treturn (\n\t\t<TooltipContainer>\n\t\t\t<Tooltip ref={tooltipRef} visible={show} className={position} style={transformStyle}>\n\t\t\t\t{text}\n\t\t\t</Tooltip>\n\t\t\t<div ref={childRef} onMouseEnter={() => setShow(true)} onMouseLeave={() => setShow(false)}>\n\t\t\t\t{props.children}\n\t\t\t</div>\n\t\t</TooltipContainer>\n\t);\n};\n\nconst NekoTooltip = (props) => {\n return (<StyledNekoTooltip {...props} />);\n}\n\nNekoTooltip.propTypes = {\n\ttext: PropTypes.string,\n\tposition: PropTypes.oneOf(['top', 'right', 'bottom', 'left'])\n};\n\nNekoTooltip.defaultProps = {\n\ttext: 'Hello world!',\n\tposition: 'top'\n};\n\nexport { NekoTooltip };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport { lighten } from 'polished';\nimport { Icon, IconifyIcon } from '@iconify/react';\n\nimport PresetIcons from '../common/PresetIcons';\nimport { NekoTooltip } from './Tooltip';\n\nconst StyledIconContainer = Styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst hoverColor = (color) => {\n if (color) {\n return `\n &:hover {\n path {\n fill: ${lighten(0.1, color)};\n }\n }\n `;\n }\n};\n\nconst StyledIcon = Styled(Icon)`\n\n path {\n fill: ${props => props.color};\n }\n\n ${props => hoverColor(props.color)}\n\n &.nui-clickable {\n cursor: pointer;\n }\n\n &.spin {\n animation-name: spin;\n animation-duration: 700ms;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n\n @keyframes spin {\n 0% {\n transform: rotate(360deg);\n }\n 100% {\n transform: rotate(0deg);\n }\n }\n }\n`;\n\nconst StyledNekoIcon = props => {\n\n let { icon, spinning = false, className = '', title, tooltip, containerStyle, color, ...rest } = props;\n\n if (!rest.width && !rest.height) {\n rest.width = rest.height = 30;\n }\n\n const getIcon = () => {\n if (typeof icon === 'string') {\n return PresetIcons[icon] || null;\n }\n return icon;\n };\n\n const iconClassName = `nui-icon ${className}${rest.onClick ? ' nui-clickable' : ''}${spinning ? ' spin' : ''}`;\n\n if (tooltip) {\n return (\n <NekoTooltip text={tooltip.text} position={tooltip.position || 'top'}>\n <StyledIconContainer style={containerStyle}>\n <StyledIcon icon={getIcon()} className={iconClassName} color={color} {...rest}/>\n </StyledIconContainer>\n </NekoTooltip>\n );\n }\n\n return (\n <StyledIconContainer style={containerStyle} title={title}>\n <StyledIcon icon={getIcon()} className={iconClassName} color={color} {...rest} />\n {!tooltip ? null : <NekoTooltip>{tooltip}</NekoTooltip>}\n </StyledIconContainer>\n );\n};\n\nconst NekoIcon = (props) => {\n return (<StyledNekoIcon {...props} />);\n};\n\nNekoIcon.propTypes = {\n icon: PropTypes.oneOfType([PropTypes.instanceOf(IconifyIcon), PropTypes.oneOf(['lock' ,'lock-open' ,'file-undo' ,'chevron-double-left' ,'chevron-double-right' ,'chevron-left' ,'chevron-right' ,'chevron-down' ,'chevron-up' ,'pause' ,'play' ,'replay' ,'check' ,'stop' ,'delete' ,'undo' ,'alert' ,'database' ,'pencil' ,'tools' ,'cog' ,'close' ,'cat' ,'upload'])]),\n color: PropTypes.string,\n spinning: PropTypes.bool,\n className: PropTypes.string,\n tooltip: PropTypes.string\n};\n\nNekoIcon.defaultProps = {\n icon: undefined,\n color: undefined,\n spinning: false,\n className: '',\n tooltip: undefined\n};\n\nexport { NekoIcon };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport { NekoLogo } from './Logo';\nimport { NekoIcon } from './Icon';\nimport Theme from '../common/NekoTheme';\nimport contentSave from '@iconify/icons-mdi/content-save';\n\nconst HeaderBase = Styled.div`\n position: relative;\n color: white;\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeText};\n display: flex;\n align-items: center;\n padding: 15px 20px;\n background-color: ${Theme.header};\n border-bottom: 5px #2981b5 solid;\n display: flex;\n\n .nui-header-logo-container {\n width: 55px;\n height: 55px;\n padding: 10px;\n margin-right: 20px;\n background: #3D5D8D;\n border-radius: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .nui-header-title-container {\n flex-direction: column;\n display: flex;\n\n .nui-header-title {\n color: white;\n font-family: ${Theme.fontFamily};\n font-size: 23px;\n line-height: normal;\n margin: 0;\n }\n\n .nui-header-subtitle {\n color: white;\n font-family: ${Theme.fontFamily};\n line-height: normal;\n font-size: ${Theme.fontSizeText};\n }\n }\n\n .nui-header-extra-content {\n flex: 1;\n margin: 0 20px;\n }\n`;\n\nconst StyledNekoHeader = props => {\n\n const { title = 'NekoUI', subtitle = 'By Jordy Meow', children, saving = false } = props;\n\n return (\n <HeaderBase>\n <div className='nui-header-logo-container'>\n <NekoLogo />\n </div>\n <div className=\"nui-header-title-container\">\n <h1 className=\"nui-header-title\">{title}</h1>\n <small className=\"nui-header-subtitle\"><a target='_blank' href='https://meowapps.com' \n style={{ color: 'white', textDecoration: 'none' }}>{subtitle}</a></small>\n </div>\n <div className=\"nui-header-extra-content\">{children}</div>\n {saving && <NekoIcon icon={contentSave} width=\"36\" height=\"36\" />}\n </HeaderBase>\n );\n};\n\nconst NekoHeader = (props) => {\n return (<StyledNekoHeader {...props} />);\n}\n\nNekoHeader.propTypes = {\n title: PropTypes.string,\n subtitle: PropTypes.string,\n saving: PropTypes.bool\n};\n\nNekoHeader.defaultProps = {\n title: 'NekoUI',\n subtitle: 'By Jordy Meow',\n saving: false\n};\n\nexport { NekoHeader };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport { Icon } from '@iconify/react';\nimport chevronDoubleLeft from '@iconify/icons-mdi/chevron-double-left';\nimport chevronLeft from '@iconify/icons-mdi/chevron-left';\nimport chevronDoubleRight from '@iconify/icons-mdi/chevron-double-right';\nimport chevronRight from '@iconify/icons-mdi/chevron-right';\nimport Theme from '../common/NekoTheme';\n\nconst PagingContainer = Styled.div`\n align-items: center;\n display: flex;\n\n .neko-paging-text {\n font-family: ${Theme.fontFamily};\n font-style: normal;\n font-weight: normal;\n font-size: 15px;\n line-height: 14px;\n }\n\n .neko-paging-controller {\n box-sizing: border-box;\n height: 30px;\n align-items: center;\n background-color: rgba(${Theme.blueRGB}, 0.8);\n border-radius: 15px;\n display: flex;\n margin-left: 15px;\n padding: 3px 5px;\n\n .nako-paging-controller-icon {\n background-color: ${Theme.white};\n border-radius: 100%;\n cursor: pointer;\n margin-right: 2px;\n height: 22px;\n width: 22px;\n box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.25);\n transition: transform 0.1s ease-in;\n box-sizing: border-box;\n\n :last-child {\n margin-right: 0;\n }\n\n &.disabled {\n color: ${Theme.darkGray};\n cursor: default;\n pointer-events: none;\n }\n\n &:hover {\n transform: scale(1.2) !important;\n z-index: 10;\n position: relative;\n }\n }\n\n .nako-paging-controller-text {\n color: ${Theme.white};\n font-family: ${Theme.fontFamily};\n font-style: normal;\n font-weight: normal;\n font-size: 13px;\n margin: 0 40px;\n user-select: none;\n }\n }\n`;\n\n/**\n * @param {number} currentPage Current page\n * @param {number} limit Items per page\n */\nconst StyledNekoPaging = props => {\n const { currentPage, limit, onClick, total } = props;\n const maxPage = Math.ceil(total === 0 ? 1 : (limit > 0 ? (total / limit) : 1));\n const prevIconClassName = `nako-paging-controller-icon ${currentPage === 1 ? 'disabled' : ''}`;\n const nextIconClassName = `nako-paging-controller-icon ${currentPage === maxPage ? 'disabled' : ''}`;\n\n const onClickHandle = (page) => {\n onClick(page);\n };\n\n return (\n <PagingContainer>\n\n <span className=\"neko-paging-text\">{total} result{total > 0 ? 's' : ''}</span>\n\n <div className=\"neko-paging-controller\">\n <Icon icon={chevronDoubleLeft}\n className={prevIconClassName}\n onClick={() => onClickHandle(1)}\n />\n <Icon icon={chevronLeft}\n className={prevIconClassName}\n onClick={() => onClickHandle(currentPage - 1)}\n />\n <p className=\"nako-paging-controller-text\">\n Page {currentPage} of {maxPage}\n </p>\n <Icon icon={chevronRight}\n className={nextIconClassName}\n onClick={() => onClickHandle(currentPage + 1)}\n />\n <Icon icon={chevronDoubleRight}\n className={nextIconClassName}\n onClick={() => onClickHandle(maxPage)}\n />\n </div>\n </PagingContainer>\n );\n};\n\nconst NekoPaging = (props) => {\n return (<StyledNekoPaging {...props} />);\n};\n\nNekoPaging.propTypes = {\n currentPage: PropTypes.number,\n limit: PropTypes.number,\n total: PropTypes.number,\n onClick: PropTypes.func\n};\n\nNekoPaging.defaultProps = {\n currentPage: undefined,\n limit: undefined,\n total: undefined,\n onClick: undefined\n};\n\nexport { NekoPaging };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\nimport { NekoIcon } from '../misc/Icon';\n\nconst LinkContainer = Styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst Link = Styled.span`\n color: ${Theme.blue};\n cursor: pointer;\n font-family: ${Theme.fontFamily};\n font-style: normal;\n font-weight: normal;\n font-size: 14px;\n line-height: 17px;\n\n &.is-active {\n cursor: default;\n color: ${Theme.black};\n font-weight: bold;\n }\n\n &::after {\n content: \"|\";\n color: ${Theme.darkGray};\n padding: 0 4px;\n }\n\n &:last-child::after {\n content: none;\n }\n\n span {\n color: ${Theme.darkGray};\n font-weight: normal;\n margin-left: 4px;\n }\n`;\n\nconst StyledNekoQuickLinks = props => {\n const { id, value, onChange, busy = false } = props;\n\n const children = React.Children.map(props.children, (child, i) => {\n return React.cloneElement(child, {\n busy: busy,\n isActive: child.props.value === value,\n onClick: (newValue) => {\n if (newValue !== value) {\n onChange(newValue, id);\n }\n }\n });\n });\n\n return (\n <LinkContainer>{children}</LinkContainer>\n );\n};\n\nconst StyledNekoLink = props => {\n\n const { title, value = 0, count, onClick, busy, isActive } = props;\n\n return (\n <Link onClick={() => onClick(value)} className={`${isActive ? 'is-active' : ''}`}>\n {title}\n {count === null ? null :\n <span>(\n {busy ? \n <NekoIcon icon=\"replay\" spinning={true} width={12} containerStyle={{ display: 'inline' }} /> : \n count\n })\n </span>\n }\n </Link>\n );\n};\n\nconst NekoQuickLinks = (props) => {\n return (<StyledNekoQuickLinks {...props} />);\n};\n\nNekoQuickLinks.propTypes = {\n id: PropTypes.string,\n value: PropTypes.string,\n onChange: PropTypes.func\n};\n\nNekoQuickLinks.defaultProps = {\n id: undefined,\n value: undefined,\n onChange: undefined\n};\n\nconst NekoLink = (props) => {\n return (<StyledNekoLink {...props} />);\n};\n\nNekoLink.propTypes = {\n title: PropTypes.string,\n value: PropTypes.string,\n count: PropTypes.number,\n onClick: PropTypes.func,\n isActive: PropTypes.bool\n};\n\nNekoLink.defaultProps = {\n title: undefined,\n value: 'default',\n count: 0,\n onClick: undefined,\n isActive: false\n};\n\nexport { NekoQuickLinks, NekoLink };\n","import React, { useState, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\n\nconst StyledSection = Styled.section`\n .mask {\n position: absolute;\n overflow: hidden;\n display: block;\n width: ${props => props.width}px;\n height: ${props => props.width / 2}px;\n }\n\n .semi-circle {\n position: relative;\n display: block;\n width: ${props => props.width}px;\n height: ${props => props.width / 2}px;\n background: linear-gradient(to right, #27b775 0%, #f3f32c 50%, #f71b1b 100%);\n border-radius: 50% 50% 50% 50% / 100% 100% 0% 0% ;\n\n &::before {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n z-index: 2;\n display: block;\n width: 140px;\n height: 70px;\n margin-left: -70px;\n background: ${props => props.backgroundColor};\n border-radius: 50% 50% 50% 50% / 100% 100% 0% 0% ;\n } \n }\n\n .semi-circle--mask {\n position: absolute;\n top: 0;\n left: 0;\n width: ${props => props.width}px;\n height: ${props => props.width}px;\n background: transparent;\n transform-origin: center center;\n backface-visibility: hidden;\n transition: all .3s ease-in-out;\n\n &::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0%;\n z-index: 2;\n display: block;\n width: ${props => props.width + 2}px;\n height: ${props => props.width / 2 + 2}px;\n margin-top: -1px;\n margin-left: -1px;\n background: #5396c1d6;\n border-radius: 50% 50% 50% 50% / 100% 100% 0% 0% ;\n } \n }\n\n .gauge { \n width: ${props => props.width}px;\n height: ${props => props.width / 2}px;\n \n .semi-circle--mask {\n transform: rotate(${props => props.degrees}deg) translate3d(0,0,0);\n }\n }\n\n .child-container {\n position: absolute;\n font-size: 16px;\n display: flex;\n width: ${props => props.width + 2}px;\n height: ${props => props.width / 2}px;\n z-index: 10;\n\n .spacing {\n flex: auto;\n }\n\n .child {\n color: white;\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n }\n`;\n\nconst NekoGauge = ({ value = 1000, min = 0, max = 2500, width = 200, background = '#007cba', children }) => {\n const degrees = 180 * (value <= max ? value : max) / max;\n return (\n <StyledSection backgroundColor={background} degrees={degrees} width={width}>\n <div class=\"gauge\">\n <div class=\"mask\">\n <div class=\"semi-circle\"></div>\n <div class=\"semi-circle--mask\"></div>\n </div>\n <div class=\"child-container\">\n <div class=\"child\">\n <div class=\"spacing\" />\n {children}\n </div>\n </div>\n </div>\n </StyledSection>\n )\n};\n\nNekoGauge.propTypes = {\n value : PropTypes.number,\n min : PropTypes.number,\n max : PropTypes.number,\n width : PropTypes.number,\n background : PropTypes.string,\n};\n\nNekoGauge.defaultProps = {\n value : 1000,\n min : 0,\n max : 2500,\n width : 200,\n background : '#007cba',\n};\n\nexport { NekoGauge };\n","import Styled from 'styled-components';\n\nconst NekoMessageDanger = Styled.p`\n background: #ba341e;\n padding: 20px;\n color: white;\n border-radius: 10px;\n font-size: 15px;\n\n a {\n color: white;\n font-weight: bold;\n }\n`;\n\nconst NekoMessageSuccess = Styled.p`\n background: #1eba96;\n padding: 20px;\n color: white;\n border-radius: 10px;\n font-size: 15px;\n text-align: center;\n\n a {\n color: white;\n font-weight: bold;\n }\n`;\n\nexport { NekoMessageDanger, NekoMessageSuccess };","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport { NekoIcon, NekoBusyOverlay, postFetch } from '../../index';\n\nconst StyledUpload = Styled.div`\n box-sizing: border-box;\n background: #f1f1f1;\n border: 2px dashed rgb(0 0 0 / 30%);\n color: rgb(0 0 0 / 60%);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n transition: all 0.25s ease;\n\n div {\n transition: all 0.5s ease;\n transform: scale(1.5);\n pointer-events: none;\n }\n\n &:hover {\n cursor: pointer;\n }\n\n &.dropping {\n background: #a4d5ff;\n\n div {\n transform: scale(2);\n }\n }\n`;\n\nconst NekoUpload = (props) => {\n\n const { width = '100%', height = '100%', iconSize = 48, onSuccess = () => {}, \n onFailure = () => {}, style = {}, apiUrl, apiConfig } = props;\n const [ inDropZone, setInDropZone ] = useState(false);\n const [ inputId, setInputId ] = useState(Math.floor(Math.random() * 100000000));\n const inputEl = useRef(null);\n const [ busy, setBusy ] = useState(false);\n\n const uploadFile = async (files) => {\n setBusy(true);\n apiConfig.file = files[0];\n const res = await postFetch(apiUrl, apiConfig);\n if (res.success) {\n onSuccess(res);\n }\n else {\n onFailure(res);\n }\n setBusy(false);\n }\n\n const onDragOver = (e) => {\n e.preventDefault();\n e.stopPropagation();\n }\n\n const onDragEnter = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setInDropZone(true);\n }\n\n const onDragLeave = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setInDropZone(false);\n }\n\n const onDrop = (e) => {\n const files = [...e.dataTransfer.files];\n uploadFiles(files, e);\n }\n\n const onClick = () => {\n inputEl.current.click();\n }\n\n const onInputUpload = (e) => {\n const files = [e.target.files[0]]; \n uploadFiles(files, e);\n }\n\n const uploadFiles = (files, e) => {\n e.preventDefault();\n e.stopPropagation();\n setInDropZone(false);\n console.log(files);\n uploadFile(files);\n }\n\n return (\n <NekoBusyOverlay busy={busy} >\n <input type=\"file\" id={inputId} accept=\"image/*\" ref={inputEl} onChange={onInputUpload} style={{ display: 'none' }} />\n <StyledUpload onClick={onClick} style={{ ...style, width, height }} className={inDropZone ? 'dropping' : ''} \n onDragOver={onDragOver} onDragEnter={onDragEnter} onDragLeave={onDragLeave} onDrop={onDrop}>\n <NekoIcon width={iconSize} height={iconSize} icon='upload' spinning={busy} \n onDragOver={onDragOver} onDragEnter={onDragEnter} />\n </StyledUpload>\n </NekoBusyOverlay>\n );\n}\n\nNekoUpload.propTypes = {\n width : PropTypes.string,\n height : PropTypes.string,\n onSuccess : PropTypes.func,\n onFailure : PropTypes.func,\n style : PropTypes.object,\n apiUrl : PropTypes.string,\n apiConfig : PropTypes.object\n};\n\nNekoUpload.defaultProps = {\n width : '100%',\n height : '100%',\n onSuccess : () => {},\n onFailure : () => {},\n style : {}\n};\n\nexport { NekoUpload };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Modal from 'react-modal';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\nimport { NekoButton } from '../button/Button';\n\nconst NekoModalParent = Styled.div`\n\n .ReactModal__Overlay {\n z-index: 100;\n display: flex;\n justify-content: center;\n flex-direction: column;\n align-items: center;\n background: ${Theme.overlay} !important;\n }\n .ReactModal__Overlay {\n opacity: 0;\n transition: opacity 200ms ease-in-out;\n }\n .ReactModal__Overlay--after-open {\n opacity: 1;\n }\n .ReactModal__Overlay--before-close {\n opacity: 0;\n }\n .ReactModal__Overlay .neko-modal {\n opacity: 0;\n transform: scale(0.85);\n transition: all 200ms ease-in-out;\n }\n .ReactModal__Overlay--after-open .neko-modal {\n transform: scale(1);\n opacity: 1;\n }\n .ReactModal__Overlay--before-close .neko-modal {\n transform: scale(0.85);\n opacity: 0;\n }\n .neko-modal {\n background: ${Theme.white};\n position: relative;\n box-shadow: 2px 2px 15px 2px rgba(0, 0, 0, 0.8);\n outline: none;\n padding: 15px;\n max-width: 820px;\n }\n`;\n\nconst NekoModalContent = Styled.div`\n width: 518px;\n\n p {\n margin: 0;\n }\n .title {\n font-family: ${Theme.fontFamily};\n font-style: normal;\n font-weight: normal;\n font-size: 18px;\n line-height: 22px;\n }\n .content {\n font-family: ${Theme.fontFamily};\n font-style: normal;\n font-weight: normal;\n font-size: 13px;\n line-height: 14px;\n margin-top: 15px;\n margin-bottom: 30px;\n }\n .button-group {\n align-items: center;\n display: flex;\n justify-content: flex-end;\n margin-top: 15px;\n }\n`;\n\nconst StyledNekoModal = (props) => {\n\n const {\n children,\n className,\n style,\n ok = 'OK',\n cancel = 'Cancel',\n customButtons = null,\n title = '',\n content = '',\n onOkClick,\n onCancelClick,\n ...rest\n } = props;\n const customClassName = style ? 'custom-modal' : '';\n\n const modalContent = children\n ? children\n : <NekoModalContent>\n {title && <p className=\"title\">{title}</p>}\n {content && <p className=\"content\">{content}</p>}\n <div className=\"button-group\">\n {onCancelClick && <NekoButton className=\"danger\" onClick={onCancelClick}>{cancel}</NekoButton>}\n {onOkClick && <NekoButton onClick={onOkClick}>{ok}</NekoButton>}\n {customButtons}\n </div>\n </NekoModalContent>;\n\n return (\n <React.Fragment>\n <NekoModalParent id=\"neko-modal-parent\" />\n <Modal ariaHideApp={false}\n parentSelector={() => document.getElementById('neko-modal-parent')}\n closeTimeoutMS={200}\n className={`neko-modal ${className || ''} ${customClassName}`}\n {...rest}\n >\n {modalContent}\n </Modal>\n </React.Fragment>\n );\n};\n\nconst NekoModal = (props) => {\n return (<StyledNekoModal {...props} />);\n};\n\nNekoModal.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n ok: PropTypes.string,\n cancel: PropTypes.string,\n title: PropTypes.string,\n content: PropTypes.string,\n onOkClick: PropTypes.func,\n onCancelClick: PropTypes.func,\n customButtons: PropTypes.object\n};\n\nNekoModal.defaultProps = {\n className: undefined,\n style: undefined,\n ok: 'OK',\n cancel: 'Cancel',\n title: '',\n content: '',\n onOkClick: undefined,\n onCancelClick: undefined,\n customButtons: null\n};\n\nexport { NekoModal };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport { Icon } from '@iconify/react';\nimport chevronDown from '@iconify/icons-mdi/chevron-down';\nimport chevronUp from '@iconify/icons-mdi/chevron-up';\nimport checkboxBlankOutline from '@iconify/icons-mdi/checkbox-blank-outline';\nimport checkboxMarked from '@iconify/icons-mdi/checkbox-marked';\nimport checkboxMultipleMarked from '@iconify/icons-mdi/checkbox-multiple-marked';\n\nimport Theme from '../common/NekoTheme';\nimport NekoBusyOverlay from '../common/NekoBusyOverlay';\n\nconst Table = Styled.table`\n background-color: ${Theme.white};\n font-family: ${Theme.fontFamily};\n border-spacing: 0;\n width: 100%;\n\n th, td {\n margin: 0;\n padding: 5px;\n border-bottom: 1px solid rgba(${Theme.blackRGB}, 0.1);\n border-right: 1px solid rgba(${Theme.blackRGB}, 0.1);\n\n a {\n text-decoration: none;\n }\n\n :last-child {\n border-right: 0;\n }\n }\n\n th, tfoot td {\n height: 30px;\n background-color: ${Theme.blue};\n color: ${Theme.white};\n font-style: normal;\n font-weight: normal;\n font-size: 13px;\n line-height: 16px;\n text-align: left;\n\n div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n &.sortable {\n cursor: pointer;\n }\n }\n }\n\n tbody {\n tr {\n :nth-child(even) {\n background-color: ${Theme.tableGray};\n }\n &.selected {\n background-color: rgba(${Theme.blueRGB}, 0.8);\n color: ${Theme.white};\n\n a {\n color: #81e8ff;\n }\n }\n }\n img {\n vertical-align: bottom;\n }\n }\n\n tfoot tr:last-child {\n td {\n border-bottom: 0;\n }\n }\n\n .table-checkbox-cell {\n width: 35px;\n text-align: center;\n\n svg {\n padding: 5px;\n cursor: pointer;\n }\n }\n`;\n\nconst TableCheckBox = (props) => {\n const { checked, intermediate = false, onSelect = () => {}, onUnselect = () => {}, ...rest } = props;\n\n const onClick = () => { \n checked ? onUnselect() : onSelect();\n };\n\n return (\n <Icon icon={intermediate ? checkboxMultipleMarked : (checked ? checkboxMarked : checkboxBlankOutline)}\n width=\"24px\" height=\"24px\" onClick={onClick} />\n );\n};\n\n/**\n * @param {string} className\n * @param {string|object} icon\n * @param {bool} disabled\n * @param {function} onClick\n */\nconst StyledNekoTable = (props) => {\n const { columns, data, busy = false, onSelect, onUnselect, selectedItems, sort, onSortChange } = props;\n const columnsCount = columns.length + (onSelect ? 1 : 0);\n\n const rows = data.map(v => {\n const cells = columns.map(c => { return { value: v[c.accessor], style : c.style || {} }});\n return { id: v.id, cells };\n });\n\n const currentRowsIds = rows.map(x => x.id);\n const currentSelectedRows = currentRowsIds.filter(x => selectedItems.includes(x));\n const areAllRowsSelected = currentSelectedRows.length === currentRowsIds.length;\n const isIntermediate = !areAllRowsSelected && selectedItems.length > 0;\n\n const hiddenColumnIndexes = columns.reduce(function(a, e, i) {\n if (e.visible === false)\n a.push(i);\n return a;\n }, []);\n\n const headersFooters = <tr>\n {onSelect && \n <th className='table-checkbox-cell'>\n <TableCheckBox checked={areAllRowsSelected} intermediate={isIntermediate}\n onSelect={() => onSelect(currentRowsIds) } \n onUnselect={() => { \n // The unselect on selectedItems never happens, but I keep it here in case\n // we find an elegant UI solution to unselect all the invisible selected rows as well.\n isIntermediate ? onUnselect(selectedItems) : onUnselect(currentRowsIds);\n }}\n />\n </th>\n }\n {columns.filter((x, i) => !hiddenColumnIndexes.includes(i)).map(column => {\n let beingSorted = sort && sort.accessor === column.accessor;\n let beingSortedAsc = sort && sort.by === 'asc';\n const thStyle = column.style || {};\n return (<th style={thStyle} key={column.accessor}>\n <div className={column.sortable ? 'sortable' : ''} \n onClick={column.sortable ? () => { \n onSortChange(column.accessor, beingSorted && beingSortedAsc ? 'desc' : 'asc')\n } : undefined}>\n <div>{column.title}</div>\n <div>{column.sortable && \n <Icon icon={!beingSorted ? chevronDown : (beingSortedAsc ? chevronDown : chevronUp)} \n color={beingSorted ? Theme.white : `rgba(${Theme.blackRGB}, 0.1)`} \n width=\"1.6rem\" height=\"1.6rem\" />}\n </div>\n </div>\n </th>)\n })}\n </tr>;\n\n return (\n <NekoBusyOverlay busy={busy} overlayStyle={{ top: '36px', height: 'calc(100% - 76px)' }}>\n <Table>\n <thead>{headersFooters}</thead>\n <tbody>\n {!rows.length && \n <tr><td colspan={columnsCount} style={{ textAlign: 'center', height: 40, color: 'gray' }}>\n Empty.\n </td></tr>\n }\n {rows.map(row => {\n return (\n <tr className={selectedItems.includes(row.id) ? 'selected' : ''}>\n {onSelect && \n <td className='table-checkbox-cell'>\n <TableCheckBox \n checked={selectedItems.includes(row.id)}\n onSelect={() => onSelect([ row.id ])}\n onUnselect={() => onUnselect([ row.id ])} \n />\n </td>\n }\n {row.cells.filter((x, i) => !hiddenColumnIndexes.includes(i)).map(cell => {\n return <td style={cell.style}>{cell.value}</td>;\n })}\n </tr>\n );\n })}\n </tbody>\n <tfoot>{headersFooters}</tfoot>\n </Table>\n </NekoBusyOverlay>\n );\n};\n\nconst NekoTable = (props) => {\n return (<StyledNekoTable {...props} />);\n};\n\nNekoTable.propTypes = {\n columns: PropTypes.arrayOf(PropTypes.any),\n data: PropTypes.arrayOf(PropTypes.any),\n busy: PropTypes.arrayOf(PropTypes.bool),\n onSelect: PropTypes.func,\n onUnselect: PropTypes.func,\n selectedItems: PropTypes.arrayOf(PropTypes.object),\n onSortChange: PropTypes.func\n};\n\nNekoTable.defaultProps = {\n columns: undefined,\n data: undefined,\n busy: false,\n onSelect: undefined,\n onUnselect: undefined,\n selectedItems: undefined,\n onSortChange: undefined\n};\n\nexport { NekoTable };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\nimport { ProOnly } from '../label/ProOnly';\n\nconst TabContainer = Styled.div`\n`;\n\nconst TabGroup = Styled.div`\n`;\n\nconst Tab = Styled.button`\n font-family: ${Theme.fontFamily};\n font-size: ${Theme.fontSizeText};\n border-radius: 8px 8px 0px 0px;\n border: 0;\n background-color: #459ad2;\n color: rgb(255 255 255 / 35%);\n\n cursor: pointer;\n line-height: 17px;\n margin-right: 5px;\n text-align: left;\n padding: 10px 15px 10px 15px;\n\n &:focus {\n outline: none;\n }\n\n &.active {\n background-color: ${Theme.blue};\n color: ${Theme.white};\n }\n\n &.disabled {\n background-color: rgb(224 156 54);\n cursor: default;\n display: inline-flex;\n padding-bottom: 7px;\n }\n`;\n\nconst TabContent = Styled.div`\n background-color: ${Theme.blue};\n display: none;\n padding: 10px;\n\n &.active {\n display: block;\n }\n`;\n\n/**\n * Need to use with NecoTab\n */\nconst StyledNekoTabs = props => {\n\n const [isActiveTabIndex, setIsActiveTabIndex] = React.useState(0);\n\n const tabAttributes = React.Children.map(props.children, (child, i) => {\n const title = child.props.title || (\"Untitled Tab \" + (i + 1));\n const key = child.props.key || 'neko-tab-' + title.toLowerCase();\n const onClick = child.props.onClick ? child.props.onClick : null;\n const requirePro = !props.isPro && (child.props.requirePro || false);\n return { key, title, onClick, requirePro };\n });\n\n const children = React.Children.map(props.children, (child, i) => {\n return React.cloneElement(child, {\n isActive: i === isActiveTabIndex\n });\n });\n\n const onTabClick = (tabIndex, tabAttr, ev) => {\n if (tabAttr.requirePro) return;\n setIsActiveTabIndex(tabIndex);\n if (props.onChange) {\n props.onChange(tabIndex, tabAttr, ev);\n }\n };\n\n return (\n <TabContainer>\n <TabGroup>\n {tabAttributes.map((attr, i) =>\n <Tab \n key={attr.key} \n className={`neko-tab-title ${i === isActiveTabIndex ? 'active' : ''} ${attr.requirePro ? 'disabled' : ''}`} \n onClick={(ev) => { onTabClick(i, attr, ev) }} >\n {attr.title}<ProOnly className=\"inline\" style={{ marginLeft: 10, marginRight: -5, top: -1 }} show={attr.requirePro} />\n </Tab>\n )}\n </TabGroup>\n { children }\n </TabContainer>\n );\n};\n\n\n/**\n * @oaram {string} title\n * @param {bool} isActive\n */\nconst StyledNekoTab = props => {\n\n const { children, isActive } = props;\n\n return (\n <TabContent className={`${isActive ? 'active' : ''}`}>\n { children }\n </TabContent>\n );\n};\n\nconst NekoTabs = (props) => {\n return (<StyledNekoTabs {...props} />);\n};\n\nNekoTabs.propTypes = {\n isPro: PropTypes.bool,\n onChange: PropTypes.func\n};\n\nNekoTabs.defaultProps = {\n isPro: false,\n onChange: undefined\n};\n\nconst NekoTab = (props) => {\n return (<StyledNekoTab {...props} />);\n};\n\nNekoTab.propTypes = {\n isActive: PropTypes.bool,\n requirePro: PropTypes.bool,\n title: PropTypes.string\n};\n\nNekoTab.defaultProps = {\n isActive: false,\n requirePro: false,\n title: undefined\n};\n\nexport { NekoTab, NekoTabs };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Theme from '../common/NekoTheme';\nimport { ProOnly } from '../label/ProOnly';\nimport { Icon, InlineIcon } from '@iconify/react';\nimport chevronDown from '@iconify/icons-mdi/chevron-down';\nimport chevronRight from '@iconify/icons-mdi/chevron-right';\n\nconst TabContainer = Styled.div`\n`;\n\nconst Tab = Styled.div`\n align-items: center;\n background-color: ${Theme.blue};\n border: 0;\n cursor: pointer;\n display: flex;\n padding: 2px 3px 2px 19px;\n\n &.disabled {\n background-color: rgba(${Theme.yellowRGB}, 0.25);\n cursor: default;\n }\n\n p {\n color: ${Theme.white};\n font-family: ${Theme.fontFamily};\n font-size: 14px;\n line-height: 17px;\n margin: 0;\n }\n\n .neko-side-tab-icon {\n color: ${Theme.white};\n margin-left: auto;\n height: 36px;\n width: 36px;\n }\n`;\n\nconst TabContent = Styled.div`\n background-color: ${Theme.white};\n display: none;\n\n &.active {\n display: block;\n }\n`;\n\n/**\n * Need to use with NecoTab\n */\nconst StyledNekoSideTabs = props => {\n\n const [activeTabIndex, setIsActiveTabIndex] = React.useState();\n\n const tabAttributes = React.Children.map(props.children, (child, i) => {\n const title = child.props.title || (\"Untitled Tab \" + (i + 1));\n const key = child.props.key || 'neko-tab-' + title.toLowerCase();\n const onClick = child.props.onClick ? child.props.onClick : null;\n const requirePro = !props.isPro && (child.props.requirePro || false);\n return { key, title, onClick, requirePro };\n });\n\n const children = React.Children.map(props.children, (child, i) => {\n return React.cloneElement(child, {\n isActive: i === activeTabIndex\n });\n });\n\n const onTabClick = (tabIndex, tabAttr, ev) => {\n if (tabAttr.requirePro) return;\n const newTabIndex = tabIndex === activeTabIndex ? null : tabIndex;\n setIsActiveTabIndex(newTabIndex);\n if (props.onChange) {\n props.onChange(newTabIndex, tabAttr, ev);\n }\n };\n\n return (\n <TabContainer>\n {tabAttributes.map((attr, i) =>\n <React.Fragment>\n <Tab\n key={attr.key}\n className={`${i === activeTabIndex ? 'active' : ''} ${attr.requirePro ? 'disabled' : ''}`}\n onClick={(ev) => { onTabClick(i, attr, ev); }}\n >\n <p>\n {attr.title}\n <ProOnly className=\"inline\" show={attr.requirePro} />\n </p>\n <Icon icon={i === activeTabIndex ? chevronDown : chevronRight } className=\"neko-side-tab-icon\" />\n </Tab>\n { children[i] }\n </React.Fragment>\n )}\n </TabContainer>\n );\n};\n\n\n/**\n * @oaram {string} title\n * @param {bool} isActive\n */\nconst StyledNekoSideTab = props => {\n\n const { children, isActive } = props;\n\n return (\n <TabContent className={`${isActive ? 'active' : ''}`}>\n { children }\n </TabContent>\n );\n};\n\nconst NekoSideTabs = (props) => {\n return (<StyledNekoSideTabs {...props} />);\n};\n\nNekoSideTabs.propTypes = {\n isPro: PropTypes.bool,\n onChange: PropTypes.func\n};\n\nNekoSideTabs.defaultProps = {\n isPro: false,\n onChange: undefined\n};\n\nconst NekoSideTab = (props) => {\n return (<StyledNekoSideTab {...props} />);\n};\n\nNekoSideTab.propTypes = {\n isActive: PropTypes.bool,\n requirePro: PropTypes.bool,\n title: PropTypes.string\n};\n\nNekoSideTab.defaultProps = {\n isActive: false,\n requirePro: false,\n title: undefined\n};\n\nexport { NekoSideTab, NekoSideTabs };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Styled from 'styled-components';\nimport Colors from '../common/NekoTheme';\n\nconst ToolbarBase = Styled.div`\n box-sizing: border-box;\n display: flex;\n width: 100%;\n padding: 10px 10px;\n background: ${Colors.white};\n border-radius: 10px;\n box-shadow: 0px 0px 10px rgba(${Colors.blackRGB}, 0.1);\n\n &.neko-align-left {\n justify-content: flex-start;\n }\n\n &.neko-align-right {\n justify-content: flex-end;\n }\n\n > *:not(:last-child) {\n margin-right: 5px;\n }\n`;\n\nconst StyledNekoToolbar = (props) => {\n const { align = 'left' } = props;\n return (\n <ToolbarBase className={`neko-align-${align}`}>\n {props.children}\n </ToolbarBase>\n );\n};\n\nconst NekoToolbar = (props) => {\n return (<StyledNekoToolbar {...props} />);\n};\n\nNekoToolbar.propTypes = {\n align: PropTypes.oneOf(['left', 'right'])\n};\n\nNekoToolbar.defaultProps = {\n align: 'left'\n};\n\nexport { NekoToolbar };","class NekoError {\n\n constructor(message, code = '', url = null, body = null, debug = {}, ) {\n this.url = url;\n this.message = message;\n this.code = code;\n this.body = body;\n this.debug = debug;\n }\n}\n\nexport { NekoError };","import { cache, mutate } from 'swr';\nimport { NekoError } from './errors';\n\n// This function allows to invalidate a SWR key which might\n// have been use for paging, for example: swrInvalidateMany('/api/items')\n// will reset everything which happens around this key.\n\nfunction swrInvalidateMany(select) {\n const keys = cache.keys();\n const mutations = [];\n let regexp = new RegExp(`(.*)${select}(.*)`);\n for (let key of keys) {\n if (regexp.test(key)) {\n mutations.push(mutate(key, null, true));\n }\n }\n return Promise.all(mutations);\n}\n\nfunction chunkArrayInGroups(arr, size) {\n let result = [];\n for (let i = 0; i < arr.length; i += size)\n result.push(arr.slice(i, i + size));\n return result;\n}\n\nconst consolidateJsonResult = (json) => {\n if (!json.data) {\n return json;\n }\n if (json.data.length > 0 && json.data[0].meta) {\n for (let x of json.data) {\n try { x.meta = JSON.parse(x.meta); }\n catch (err) { console.error('[JsonFetcher]', 'Could not decode meta.', x.meta); }\n }\n }\n else if (json.data.meta) {\n try { json.data.meta = JSON.parse(json.data.meta); }\n catch (err) { console.error('[JsonFetcher]', 'Could not decode meta.', x.meta); }\n }\n return json;\n}\n\nconst jsonFetcher = async (url, options = {}) => {\n let body = null;\n let json = {};\n let nekoError = null;\n let rawBody = null;\n\n try {\n options = options ? options : {};\n options.headers = options.headers ? options.headers : {};\n options.headers['Pragma'] = 'no-cache';\n options.headers['Cache-Control'] = 'no-cache';\n rawBody = await fetch(`${url}`, options);\n body = await rawBody.text();\n json = JSON.parse(body);\n if (!json.success) {\n let code = json.success === false ? 'NOT-SUCCESS' : 'N/A';\n let message = json.message ? json.message : 'Unknown error. Check your Console Logs.';\n if (json.code === 'rest_no_route') {\n message = \"The API can't be accessed. Is Rest API enabled?\";\n code = 'NO-ROUTE';\n }\n else if (json.code === 'internal_server_error') {\n message = \"Server error. Please check your PHP Error Logs.\";\n code = 'SERVER-ERROR';\n }\n nekoError = new NekoError(message, code, url, body ? body : rawBody);\n }\n }\n catch (error) {\n let code = 'BROKEN-REPLY';\n let message = \"The reply sent by the server is broken.\";\n if (rawBody && rawBody.status) {\n if (rawBody.status === 408) {\n code = \"REQUEST-TIMEOUT\";\n message = \"The request generated a timeout.\";\n }\n }\n nekoError = new NekoError(message, code, url, body ? body : rawBody, error);\n }\n\n // Rewrite the Json if there is an error\n if (nekoError) {\n console.error('[NekoError] JsonFetcher', nekoError.url, { code: nekoError.code, \n error: nekoError.error, body: nekoError.body });\n json.success = false;\n json.error = nekoError;\n }\n return consolidateJsonResult(json);\n}\n\nconst getFetch = async (url, json, signal) => {\n return jsonFetcher(url, { \n method: 'GET', \n headers: { 'Content-Type': 'application/json' },\n signal: signal\n });\n}\n\nconst postFetch = async (url, config = {}) => {\n const { json = {}, signal, file, nonce } = config;\n let formData = file ? new FormData() : null;\n if (file) {\n formData.append('file', file);\n for (const [key, value] of Object.entries(json)) {\n formData.append(key, value);\n }\n }\n\n const headers = nonce ? { 'X-WP-Nonce': nonce } : {};\n if (!formData) {\n headers['Content-Type'] = 'application/json';\n }\n\n return jsonFetcher(url, { \n method: 'POST',\n headers: headers,\n body: formData ? formData :JSON.stringify(json) ,\n signal: signal\n });\n}\n\nconst buildUrlWithParams = (apiUrl, params) => {\n const isPlainPermalink = apiUrl.includes('index.php?rest_route');\n const urlParams = new URLSearchParams(params);\n const finalUrl = apiUrl + (isPlainPermalink ? '&' : '?') + urlParams.toString();\n return finalUrl;\n}\n\nexport { getFetch, postFetch, jsonFetcher, swrInvalidateMany, chunkArrayInGroups, buildUrlWithParams };","const prefix = mgcl_gallery_custom_links.prefix;\nconst domain = mgcl_gallery_custom_links.domain;\nconst restUrl = mgcl_gallery_custom_links.rest_url.replace(/\\/+$/, \"\");\nconst apiUrl = mgcl_gallery_custom_links.api_url.replace(/\\/+$/, \"\");\nconst pluginUrl = mgcl_gallery_custom_links.plugin_url.replace(/\\/+$/, \"\");\nconst isPro = mgcl_gallery_custom_links.is_pro === '1';\nconst isRegistered = isPro && mgcl_gallery_custom_links.is_registered === '1';\nconst restNonce = mgcl_gallery_custom_links.rest_nonce;\n\nexport { prefix, domain, apiUrl, restUrl, pluginUrl, isPro, isRegistered, restNonce };\n","// React & Vendor Libs\nconst { useState } = wp.element;\nimport useSWR from 'swr';\n\n// NekoUI\nimport { NekoInput, NekoTypo, NekoPage, NekoBlock, NekoHeader, NekoContainer, NekoSettings,\n NekoTabs, NekoTab, NekoCheckboxGroup, NekoCheckbox, NekoWrapper, NekoSelect, NekoOption,\n NekoColumn } from '@neko-ui';\nimport { jsonFetcher, postFetch, useHandleSWR } from '@neko-ui';\n\nimport { apiUrl } from '@app/settings';\n\nconst Settings = () => {\n\n const { data: swrSettings, mutate: mutateSwrSettings } = useSWR(`${apiUrl}/all_settings/`, jsonFetcher);\n const { busy: busySettings, data: settings, error: swrError } = useHandleSWR(swrSettings, {}, true);\n const [ busyAction, setBusyAction ] = useState(false);\n const busy = busySettings || busyAction;\n\n const obmode = settings?.mgcl_obmode;\n const parsingEngine = settings?.mgcl_parsing_engine;\n const log = settings?.mgcl_log;\n const buttonEnabled = settings?.mgcl_button_enabled;\n const buttonLabel = settings?.mgcl_button_label;\n\n const parsingEngineOptions = [\n { id: \"none\", value: \"None\", label: \"None (Not Supported Yet)\"},\n { id: \"htmldomparser\", value: \"HtmlDomParser\", label: \"HtmlDomParser\" },\n { id: \"didom\", value: \"DiDom\", label: \"DiDom\" }\n ]\n\n const updateOption = async (value, id) => {\n let newSettingsData = { ...swrSettings.data };\n newSettingsData[id] = value;\n mutateSwrSettings({ ...swrSettings, data: newSettingsData }, false);\n setBusyAction(true);\n try {\n await postFetch(`${apiUrl}/update_option`, { json: { name: id, value } });\n }\n catch (err) {\n alert(err.message);\n }\n finally {\n setBusyAction(false);\n mutateSwrSettings();\n }\n }\n\n /**\n * Settings\n */\n\n const jsxOBMode =\n <NekoSettings title=\"OB Mode\">\n <NekoCheckboxGroup max=\"1\">\n <NekoCheckbox id=\"mgcl_obmode\" label=\"Enabled\" value=\"1\" checked={obmode} onChange={updateOption} description=\"If the linked images are outside of the main content (header, sidebar, etc), OB Mode is needed. This slows down the processing (cache recommended).\" />\n </NekoCheckboxGroup>\n </NekoSettings>;\n\n const jsxParsingEngine =\n <NekoSettings title=\"Parsing Engine\" description=\"Hello\">\n <NekoSelect id=\"mgcl_parsing_engine\" onChange={updateOption}>\n {parsingEngineOptions.map(option => <NekoOption id={`mgcl_parsing_engine_${option.id}`} value={option.value} label={option.label} checked={parsingEngine === option.value} /> )}\n </NekoSelect>\n </NekoSettings>;\n\n const jsxLog =\n <NekoSettings title=\"Logs\">\n <NekoCheckboxGroup max=\"1\">\n <NekoCheckbox id=\"mgcl_log\" label=\"Logs\" value=\"1\" checked={log} onChange={updateOption} description=\"Simple logging, written directly in the PHP Error Logs.\" />\n </NekoCheckboxGroup>\n </NekoSettings>;\n\n /**\n * CTA Buttons\n */\n const jsxUseButtons =\n <NekoSettings title=\"Use Buttons\">\n <NekoCheckboxGroup max=\"1\">\n <NekoCheckbox id=\"mgcl_button_enabled\" label=\"Enabled\" value=\"1\" description=\"A call-to-action button will be used of a clickable image.\" checked={buttonEnabled} onChange={updateOption} />\n </NekoCheckboxGroup>\n </NekoSettings>;\n\n const jsxButtonLabel =\n <NekoSettings title=\"Label\">\n <NekoInput id=\"mgcl_button_label\" name=\"mgcl_button_label\" value={buttonLabel} description=\"A call-to-action button will be used of a clickable image.\" onBlur={updateOption} />\n </NekoSettings>;\n\n return (\n <NekoPage nekoErrors={[ swrError ]}>\n\n <NekoHeader title='Gallery Custom Links | Settings' subtitle='By Jordy Meow' />\n\n <NekoWrapper>\n\n <NekoColumn full>\n <NekoContainer>\n <NekoTypo p>This plugin works out of the box, the default settings are the best for most installs. Don't hesitate to take a look at the <a href=\"https://meowapps.com/plugin/gallery-custom-links/\">official page</a>.</NekoTypo>\n </NekoContainer>\n\n <NekoTabs>\n\n <NekoTab title='Settings'>\n <NekoWrapper>\n\n <NekoColumn minimal>\n <NekoBlock busy={busy} title=\"Settings\" className=\"primary\">\n {jsxParsingEngine}\n {jsxOBMode}\n {jsxLog}\n </NekoBlock>\n </NekoColumn>\n\n <NekoColumn minimal>\n <NekoBlock busy={busy} title=\"CTA Buttons\" className=\"primary\">\n <NekoTypo p><b>Currently works with the <a href=\"https://wordpress.org/plugins/meow-gallery/\">Meow Gallery</a> and Gutenberg Galleries.</b> In a future Pro version, support for additional galleries might be added (please contact <a href=\"https://meowapps.com/contact/\">Meow Apps</a> for this).</NekoTypo>\n {jsxUseButtons}\n {!buttonEnabled ? null : jsxButtonLabel}\n </NekoBlock>\n </NekoColumn>\n\n </NekoWrapper>\n </NekoTab>\n\n </NekoTabs>\n\n </NekoColumn>\n\n </NekoWrapper>\n\n </NekoPage>\n );\n};\n\nexport default Settings;","// React & Vendor Libs\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\n// Gallery Custom Links\nimport Settings from '@app/components/Settings';\n\ndocument.addEventListener('DOMContentLoaded', function(event) {\n\n\t// Gallery Custom Links Settings\n\tconst container = document.getElementById('mgcl-admin-settings');\n\tif (container) {\n\t\tReactDOM.render((<Settings />), container);\n\t}\n\n});\n"],"sourceRoot":""}
classes/admin.php CHANGED
@@ -12,7 +12,7 @@ class Meow_MGCL_Admin extends MeowCommon_Admin {
12
 
13
  // Load the scripts only if they are needed by the current screen
14
  $page = isset( $_GET["page"] ) ? $_GET["page"] : null;
15
- $is_mgcl_screen = in_array( $page, [ 'mgcl_settings-menu' ] );
16
  $is_meowapps_dashboard = $page === 'meowapps-main-menu';
17
  if ( $is_meowapps_dashboard || $is_mgcl_screen ) {
18
  add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
@@ -107,7 +107,7 @@ class Meow_MGCL_Admin extends MeowCommon_Admin {
107
 
108
  function app_menu() {
109
  add_submenu_page( 'meowapps-main-menu', 'Gallery Custom Links', 'Custom Links', 'manage_options',
110
- 'mgcl_settings-menu', array( $this, 'admin_settings' ) );
111
  }
112
 
113
  function admin_settings() {
12
 
13
  // Load the scripts only if they are needed by the current screen
14
  $page = isset( $_GET["page"] ) ? $_GET["page"] : null;
15
+ $is_mgcl_screen = in_array( $page, [ 'mgcl_settings' ] );
16
  $is_meowapps_dashboard = $page === 'meowapps-main-menu';
17
  if ( $is_meowapps_dashboard || $is_mgcl_screen ) {
18
  add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
107
 
108
  function app_menu() {
109
  add_submenu_page( 'meowapps-main-menu', 'Gallery Custom Links', 'Custom Links', 'manage_options',
110
+ 'mgcl_settings', array( $this, 'admin_settings' ) );
111
  }
112
 
113
  function admin_settings() {
classes/core.php CHANGED
@@ -20,26 +20,30 @@ class Meow_MGCL_Core
20
  $this->enableLogs = get_option( 'mgcl_log', $this->enableLogs );
21
  $this->is_rest = MeowCommon_Helpers::is_rest();
22
  $this->is_cli = defined( 'WP_CLI' ) && WP_CLI;
 
23
  add_action( 'plugins_loaded', array( $this, 'init' ) );
24
 
25
- if ( $this->isObMode ) {
26
- add_action( 'template_redirect', array( $this, 'start' ) );
27
- add_action( 'shutdown', array( $this, 'shutdown' ) );
28
- add_action( 'wp_footer', array( $this, 'unlink_lightboxes_script' ) ) ;
29
- }
30
- else {
31
- add_filter( 'the_content', array( $this, 'linkify' ), 100 );
32
- add_action( 'wp_footer', array( $this, 'unlink_lightboxes_script' ) ) ;
33
- }
 
 
34
 
35
- $button_enabled = get_option( 'mgcl_button_enabled', false );
36
- if ( $button_enabled ) {
37
- require_once( 'button/gutenberg.php' );
38
- new Meow_MGCL_Core_Button_Gutenberg( $this );
39
- require_once( 'button/native_gallery.php' );
40
- new Meow_MGCL_Core_Button_Native_Gallery( $this );
41
- require_once( 'button/meow_gallery.php' );
42
- new Meow_MGCL_Core_Button_Meow_Gallery( $this );
 
43
  }
44
  }
45
 
@@ -146,7 +150,6 @@ class Meow_MGCL_Core
146
  // XXXX: Custom code with $aria Christoph Letmaier, 14.01.2020
147
  $handled = apply_filters( 'mgcl_linkers', false, $element, $parent, $mediaId, $url, $rel, $aria, $target );
148
  if ( !$handled ) {
149
- include_once( "mgcl_linker.php" );
150
  $linker = new Meow_MGCL_Linker( $this );
151
  // XXXX: Custom code with $aria Christoph Letmaier, 14.01.2020
152
  $linker->linker( $element, $parent, $mediaId, $url, $rel, $aria, $target );
20
  $this->enableLogs = get_option( 'mgcl_log', $this->enableLogs );
21
  $this->is_rest = MeowCommon_Helpers::is_rest();
22
  $this->is_cli = defined( 'WP_CLI' ) && WP_CLI;
23
+ $this->is_visitor = !$this->is_cli && !$this->is_rest && !is_admin();
24
  add_action( 'plugins_loaded', array( $this, 'init' ) );
25
 
26
+ // For visitors (client-side)
27
+ if ( $this->is_visitor ) {
28
+ if ( $this->isObMode ) {
29
+ add_action( 'template_redirect', array( $this, 'start' ) );
30
+ add_action( 'shutdown', array( $this, 'shutdown' ) );
31
+ add_action( 'wp_footer', array( $this, 'unlink_lightboxes_script' ) ) ;
32
+ }
33
+ else {
34
+ add_filter( 'the_content', array( $this, 'linkify' ), 100 );
35
+ add_action( 'wp_footer', array( $this, 'unlink_lightboxes_script' ) ) ;
36
+ }
37
 
38
+ $button_enabled = get_option( 'mgcl_button_enabled', false );
39
+ if ( $button_enabled ) {
40
+ require_once( 'button/gutenberg.php' );
41
+ new Meow_MGCL_Core_Button_Gutenberg( $this );
42
+ require_once( 'button/native_gallery.php' );
43
+ new Meow_MGCL_Core_Button_Native_Gallery( $this );
44
+ require_once( 'button/meow_gallery.php' );
45
+ new Meow_MGCL_Core_Button_Meow_Gallery( $this );
46
+ }
47
  }
48
  }
49
 
150
  // XXXX: Custom code with $aria Christoph Letmaier, 14.01.2020
151
  $handled = apply_filters( 'mgcl_linkers', false, $element, $parent, $mediaId, $url, $rel, $aria, $target );
152
  if ( !$handled ) {
 
153
  $linker = new Meow_MGCL_Linker( $this );
154
  // XXXX: Custom code with $aria Christoph Letmaier, 14.01.2020
155
  $linker->linker( $element, $parent, $mediaId, $url, $rel, $aria, $target );
classes/init.php CHANGED
@@ -34,11 +34,6 @@ spl_autoload_register(function ( $class ) {
34
 
35
  //require_once( MGCL_PATH . '/classes/api.php');
36
  require_once( MGCL_PATH . '/common/helpers.php');
37
-
38
- // In admin or Rest API request (REQUEST URI begins with '/wp-json/')
39
- if ( is_admin() || MeowCommon_Helpers::is_rest() || ( defined( 'WP_CLI' ) && WP_CLI ) ) {
40
- global $mfrh_core;
41
- $mfrh_core = new Meow_MGCL_Core();
42
- }
43
 
44
  ?>
34
 
35
  //require_once( MGCL_PATH . '/classes/api.php');
36
  require_once( MGCL_PATH . '/common/helpers.php');
37
+ new Meow_MGCL_Core();
 
 
 
 
 
38
 
39
  ?>
classes/rest.php CHANGED
@@ -2,16 +2,13 @@
2
 
3
  class Meow_MGCL_Rest
4
  {
5
- private $core = null;
6
  private $namespace = 'gallery-custom-links/v1';
7
 
8
  public function __construct( $core, $admin ) {
9
  if ( !current_user_can( 'administrator' ) ) {
10
  return;
11
  }
12
- $this->core = $core;
13
  $this->admin = $admin;
14
- $this->engine = $core->engine;
15
  add_action( 'rest_api_init', array( $this, 'rest_api_init' ) );
16
  }
17
 
2
 
3
  class Meow_MGCL_Rest
4
  {
 
5
  private $namespace = 'gallery-custom-links/v1';
6
 
7
  public function __construct( $core, $admin ) {
8
  if ( !current_user_can( 'administrator' ) ) {
9
  return;
10
  }
 
11
  $this->admin = $admin;
 
12
  add_action( 'rest_api_init', array( $this, 'rest_api_init' ) );
13
  }
14
 
gallery-custom-links.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Gallery Custom Links
4
  Plugin URI: https://meowapps.com
5
  Description: Gallery Custom Links allows you to link images from galleries to a specified URL. Tested with WordPress Gallery, Gutenberg, the Meow Gallery and others.
6
- Version: 2.0.0
7
  Author: Jordy Meow
8
  Author URI: https://meowapps.com
9
  Text Domain: gallery-custom-links
@@ -14,7 +14,7 @@ http://www.opensource.org/licenses/mit-license.php
14
  http://www.gnu.org/licenses/gpl.html
15
  */
16
 
17
- define( 'MGCL_VERSION', '2.0.0' );
18
  define( 'MGCL_PREFIX', 'mgcl' );
19
  define( 'MGCL_DOMAIN', 'gallery-custom-links' );
20
  define( 'MGCL_ENTRY', __FILE__ );
3
  Plugin Name: Gallery Custom Links
4
  Plugin URI: https://meowapps.com
5
  Description: Gallery Custom Links allows you to link images from galleries to a specified URL. Tested with WordPress Gallery, Gutenberg, the Meow Gallery and others.
6
+ Version: 2.0.1
7
  Author: Jordy Meow
8
  Author URI: https://meowapps.com
9
  Text Domain: gallery-custom-links
14
  http://www.gnu.org/licenses/gpl.html
15
  */
16
 
17
+ define( 'MGCL_VERSION', '2.0.1' );
18
  define( 'MGCL_PREFIX', 'mgcl' );
19
  define( 'MGCL_DOMAIN', 'gallery-custom-links' );
20
  define( 'MGCL_ENTRY', __FILE__ );
readme.txt CHANGED
@@ -5,7 +5,7 @@ Donate link: https://commerce.coinbase.com/checkout/d047546a-77a8-41c8-9ea9-4a95
5
  Requires at least: 5.0
6
  Tested up to: 5.4
7
  Requires PHP: 7.0
8
- Stable tag: 2.0.0
9
 
10
  Gallery Custom Links allows you to link images from galleries to a specified URL. Tested with WordPress Gallery, Gutenberg, the Meow Gallery and others.
11
 
@@ -42,7 +42,8 @@ Replace all the files. Nothing else to do.
42
 
43
  == Changelog ==
44
 
45
- = 2.0.0 =
 
46
  * Update: New modernized admin.
47
 
48
  = 1.2.7 =
5
  Requires at least: 5.0
6
  Tested up to: 5.4
7
  Requires PHP: 7.0
8
+ Stable tag: 2.0.1
9
 
10
  Gallery Custom Links allows you to link images from galleries to a specified URL. Tested with WordPress Gallery, Gutenberg, the Meow Gallery and others.
11
 
42
 
43
  == Changelog ==
44
 
45
+ = 2.0.1 =
46
+ * Fix: There were a few issues in this new version.
47
  * Update: New modernized admin.
48
 
49
  = 1.2.7 =