@crimsonsunset/jsg-logger 1.5.2 → 1.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -4
- package/README.md +62 -36
- package/config/config-manager.js +2 -2
- package/config/default-config.json +3 -0
- package/devtools/dist/panel-entry.js +4588 -0
- package/devtools/dist/panel-entry.js.map +1 -0
- package/devtools/dist/vite.svg +1 -0
- package/docs/devtools-roadmap.md +6 -3
- package/docs/next-session.md +65 -3
- package/docs/roadmap.md +174 -17
- package/examples/advanced-config.json +3 -0
- package/index.js +70 -32
- package/package.json +26 -15
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel-entry.js","sources":["../node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js","../node_modules/preact/compat/dist/compat.module.js","../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../node_modules/prop-types/node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/clsx/dist/clsx.js","../node_modules/react-draggable/build/cjs/utils/shims.js","../node_modules/react-draggable/build/cjs/utils/getPrefix.js","../node_modules/react-draggable/build/cjs/utils/domFns.js","../node_modules/react-draggable/build/cjs/utils/positionFns.js","../node_modules/react-draggable/build/cjs/utils/log.js","../node_modules/react-draggable/build/cjs/DraggableCore.js","../node_modules/react-draggable/build/cjs/Draggable.js","../node_modules/react-draggable/build/cjs/cjs.js","../src/components/FloatingButton.jsx","../src/components/ComponentFilters.jsx","../src/components/GlobalControls.jsx","../src/components/DisplayControls.jsx","../src/components/PanelContainer.jsx","../src/components/DevToolsPanel.jsx","../node_modules/lodash.merge/index.js","../src/theme/devtools-theme.js","../src/panel-entry.jsx"],"sourcesContent":["import{options as r,Fragment as e}from\"preact\";export{Fragment}from\"preact\";var t=/[\"&<]/;function n(r){if(0===r.length||!1===t.test(r))return r;for(var e=0,n=0,o=\"\",f=\"\";n<r.length;n++){switch(r.charCodeAt(n)){case 34:f=\""\";break;case 38:f=\"&\";break;case 60:f=\"<\";break;default:continue}n!==e&&(o+=r.slice(e,n)),o+=f,e=n+1}return n!==e&&(o+=r.slice(e,n)),o}var o=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,f=0,i=Array.isArray;function u(e,t,n,o,i,u){t||(t={});var a,c,p=t;if(\"ref\"in p)for(c in p={},t)\"ref\"==c?a=t[c]:p[c]=t[c];var l={type:e,props:p,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--f,__i:-1,__u:0,__source:i,__self:u};if(\"function\"==typeof e&&(a=e.defaultProps))for(c in a)void 0===p[c]&&(p[c]=a[c]);return r.vnode&&r.vnode(l),l}function a(r){var t=u(e,{tpl:r,exprs:[].slice.call(arguments,1)});return t.key=t.__v,t}var c={},p=/[A-Z]/g;function l(e,t){if(r.attr){var f=r.attr(e,t);if(\"string\"==typeof f)return f}if(t=function(r){return null!==r&&\"object\"==typeof r&&\"function\"==typeof r.valueOf?r.valueOf():r}(t),\"ref\"===e||\"key\"===e)return\"\";if(\"style\"===e&&\"object\"==typeof t){var i=\"\";for(var u in t){var a=t[u];if(null!=a&&\"\"!==a){var l=\"-\"==u[0]?u:c[u]||(c[u]=u.replace(p,\"-$&\").toLowerCase()),s=\";\";\"number\"!=typeof a||l.startsWith(\"--\")||o.test(l)||(s=\"px;\"),i=i+l+\":\"+a+s}}return e+'=\"'+n(i)+'\"'}return null==t||!1===t||\"function\"==typeof t||\"object\"==typeof t?\"\":!0===t?e:e+'=\"'+n(\"\"+t)+'\"'}function s(r){if(null==r||\"boolean\"==typeof r||\"function\"==typeof r)return null;if(\"object\"==typeof r){if(void 0===r.constructor)return r;if(i(r)){for(var e=0;e<r.length;e++)r[e]=s(r[e]);return r}}return n(\"\"+r)}export{u as jsx,l as jsxAttr,u as jsxDEV,s as jsxEscape,a as jsxTemplate,u as jsxs};\n//# sourceMappingURL=jsxRuntime.module.js.map\n","import{Component as n,createElement as t,options as e,toChildArray as r,Fragment as u,render as o,hydrate as i,createContext as l,createRef as c,cloneElement as f}from\"preact\";export{Component,Fragment,createContext,createElement,createRef}from\"preact\";import{useState as a,useLayoutEffect as s,useEffect as h,useCallback as v,useContext as d,useDebugValue as m,useId as p,useImperativeHandle as y,useMemo as _,useReducer as b,useRef as S}from\"preact/hooks\";export*from\"preact/hooks\";function g(n,t){for(var e in t)n[e]=t[e];return n}function E(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function C(n,t){var e=t(),r=a({t:{__:e,u:t}}),u=r[0].t,o=r[1];return s(function(){u.__=e,u.u=t,x(u)&&o({t:u})},[n,e,t]),h(function(){return x(u)&&o({t:u}),n(function(){x(u)&&o({t:u})})},[n]),e}function x(n){var t,e,r=n.u,u=n.__;try{var o=r();return!((t=u)===(e=o)&&(0!==t||1/t==1/e)||t!=t&&e!=e)}catch(n){return!0}}function R(n){n()}function w(n){return n}function k(){return[!1,R]}var I=s;function N(n,t){this.props=n,this.context=t}function M(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:E(this.props,n)}function u(e){return this.shouldComponentUpdate=r,t(n,e)}return u.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",u.prototype.isReactComponent=!0,u.__f=!0,u.type=n,u}(N.prototype=new n).isPureReactComponent=!0,N.prototype.shouldComponentUpdate=function(n,t){return E(this.props,n)||E(this.state,t)};var T=e.__b;e.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),T&&T(n)};var A=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function D(n){function t(t){var e=g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=A,t.render=n,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var L=function(n,t){return null==n?null:r(r(n).map(t))},O={map:L,forEach:L,count:function(n){return n?r(n).length:0},only:function(n){var t=r(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:r},F=e.__e;e.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);F(n,t,e,r)};var U=e.unmount;function V(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c.__e=!0,n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return V(n,t,e)})),n}function W(n,t,e){return n&&e&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return W(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.appendChild(n.__e),n.__c.__e=!0,n.__c.__P=e)),n}function P(){this.__u=0,this.o=null,this.__b=null}function j(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function z(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return t(r,o)}return o.displayName=\"Lazy\",o.__f=!0,o}function B(){this.i=null,this.l=null}e.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&32&n.__u&&(n.type=null),U&&U(n)},(P.prototype=new n).__c=function(n,t){var e=t.__c,r=this;null==r.o&&(r.o=[]),r.o.push(e);var u=j(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=W(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.o.pop();)t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},P.prototype.componentWillUnmount=function(){this.o=[]},P.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement(\"div\"),o=this.__v.__k[0].__c;this.__v.__k[0]=V(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&t(u,null,n.fallback);return i&&(i.__u&=-33),[t(u,null,e.__a?null:n.children),i]};var H=function(n,t,e){if(++e[1]===e[0]&&n.l.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.l.size))for(e=n.i;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.i=e=e[2]}};function Z(n){return this.getChildContext=function(){return n.context},n.children}function Y(n){var e=this,r=n.h;if(e.componentWillUnmount=function(){o(null,e.v),e.v=null,e.h=null},e.h&&e.h!==r&&e.componentWillUnmount(),!e.v){for(var u=e.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;e.h=r,e.v={nodeType:1,parentNode:r,childNodes:[],__k:{__m:u.__m},contains:function(){return!0},insertBefore:function(n,t){this.childNodes.push(n),e.h.insertBefore(n,t)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.h.removeChild(n)}}}o(t(Z,{context:e.context},n.__v),e.v)}function $(n,e){var r=t(Y,{__v:n,h:e});return r.containerInfo=e,r}(B.prototype=new n).__a=function(n){var t=this,e=j(t.__v),r=t.l.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),H(t,n,r)):u()};e?e(o):o()}},B.prototype.render=function(n){this.i=null,this.l=new Map;var t=r(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.l.set(t[e],this.i=[1,0,this.i]);return n.children},B.prototype.componentDidUpdate=B.prototype.componentDidMount=function(){var n=this;this.l.forEach(function(t,e){H(n,e,t)})};var q=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,G=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,J=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,K=/[A-Z0-9]/g,Q=\"undefined\"!=typeof document,X=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/:/fil|che|ra/).test(n)};function nn(n,t,e){return null==t.__k&&(t.textContent=\"\"),o(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function tn(n,t,e){return i(n,t),\"function\"==typeof e&&e(),n?n.__c:null}n.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(t){Object.defineProperty(n.prototype,t,{configurable:!0,get:function(){return this[\"UNSAFE_\"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var en=e.event;function rn(){}function un(){return this.cancelBubble}function on(){return this.defaultPrevented}e.event=function(n){return en&&(n=en(n)),n.persist=rn,n.isPropagationStopped=un,n.isDefaultPrevented=on,n.nativeEvent=n};var ln,cn={enumerable:!1,configurable:!0,get:function(){return this.class}},fn=e.vnode;e.vnode=function(n){\"string\"==typeof n.type&&function(n){var t=n.props,e=n.type,u={},o=-1===e.indexOf(\"-\");for(var i in t){var l=t[i];if(!(\"value\"===i&&\"defaultValue\"in t&&null==l||Q&&\"children\"===i&&\"noscript\"===e||\"class\"===i||\"className\"===i)){var c=i.toLowerCase();\"defaultValue\"===i&&\"value\"in t&&null==t.value?i=\"value\":\"download\"===i&&!0===l?l=\"\":\"translate\"===c&&\"no\"===l?l=!1:\"o\"===c[0]&&\"n\"===c[1]?\"ondoubleclick\"===c?i=\"ondblclick\":\"onchange\"!==c||\"input\"!==e&&\"textarea\"!==e||X(t.type)?\"onfocus\"===c?i=\"onfocusin\":\"onblur\"===c?i=\"onfocusout\":J.test(i)&&(i=c):c=i=\"oninput\":o&&G.test(i)?i=i.replace(K,\"-$&\").toLowerCase():null===l&&(l=void 0),\"oninput\"===c&&u[i=c]&&(i=\"oninputCapture\"),u[i]=l}}\"select\"==e&&u.multiple&&Array.isArray(u.value)&&(u.value=r(t.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),\"select\"==e&&null!=u.defaultValue&&(u.value=r(t.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),t.class&&!t.className?(u.class=t.class,Object.defineProperty(u,\"className\",cn)):(t.className&&!t.class||t.class&&t.className)&&(u.class=u.className=t.className),n.props=u}(n),n.$$typeof=q,fn&&fn(n)};var an=e.__r;e.__r=function(n){an&&an(n),ln=n.__c};var sn=e.diffed;e.diffed=function(n){sn&&sn(n);var t=n.props,e=n.__e;null!=e&&\"textarea\"===n.type&&\"value\"in t&&t.value!==e.value&&(e.value=null==t.value?\"\":t.value),ln=null};var hn={ReactCurrentDispatcher:{current:{readContext:function(n){return ln.__n[n.__c].props.value},useCallback:v,useContext:d,useDebugValue:m,useDeferredValue:w,useEffect:h,useId:p,useImperativeHandle:y,useInsertionEffect:I,useLayoutEffect:s,useMemo:_,useReducer:b,useRef:S,useState:a,useSyncExternalStore:C,useTransition:k}}},vn=\"18.3.1\";function dn(n){return t.bind(null,n)}function mn(n){return!!n&&n.$$typeof===q}function pn(n){return mn(n)&&n.type===u}function yn(n){return!!n&&!!n.displayName&&(\"string\"==typeof n.displayName||n.displayName instanceof String)&&n.displayName.startsWith(\"Memo(\")}function _n(n){return mn(n)?f.apply(null,arguments):n}function bn(n){return!!n.__k&&(o(null,n),!0)}function Sn(n){return n&&(n.base||1===n.nodeType&&n)||null}var gn=function(n,t){return n(t)},En=function(n,t){return n(t)},Cn=u,xn=mn,Rn={useState:a,useId:p,useReducer:b,useEffect:h,useLayoutEffect:s,useInsertionEffect:I,useTransition:k,useDeferredValue:w,useSyncExternalStore:C,startTransition:R,useRef:S,useImperativeHandle:y,useMemo:_,useCallback:v,useContext:d,useDebugValue:m,version:\"18.3.1\",Children:O,render:nn,hydrate:tn,unmountComponentAtNode:bn,createPortal:$,createElement:t,createContext:l,createFactory:dn,cloneElement:_n,createRef:c,Fragment:u,isValidElement:mn,isElement:xn,isFragment:pn,isMemo:yn,findDOMNode:Sn,Component:n,PureComponent:N,memo:M,forwardRef:D,flushSync:En,unstable_batchedUpdates:gn,StrictMode:Cn,Suspense:P,SuspenseList:B,lazy:z,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:hn};export{O as Children,N as PureComponent,Cn as StrictMode,P as Suspense,B as SuspenseList,hn as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,_n as cloneElement,dn as createFactory,$ as createPortal,Rn as default,Sn as findDOMNode,En as flushSync,D as forwardRef,tn as hydrate,xn as isElement,pn as isFragment,yn as isMemo,mn as isValidElement,z as lazy,M as memo,nn as render,R as startTransition,bn as unmountComponentAtNode,gn as unstable_batchedUpdates,w as useDeferredValue,I as useInsertionEffect,C as useSyncExternalStore,k as useTransition,vn as version};\n//# sourceMappingURL=compat.module.js.map\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","function r(e){var o,t,f=\"\";if(\"string\"==typeof e||\"number\"==typeof e)f+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var n=e.length;for(o=0;o<n;o++)e[o]&&(t=r(e[o]))&&(f&&(f+=\" \"),f+=t)}else for(t in e)e[t]&&(f&&(f+=\" \"),f+=t);return f}function e(){for(var e,o,t=0,f=\"\",n=arguments.length;t<n;t++)(e=arguments[t])&&(o=r(e))&&(f&&(f+=\" \"),f+=o);return f}module.exports=e,module.exports.clsx=e;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dontSetMe = dontSetMe;\nexports.findInArray = findInArray;\nexports.int = int;\nexports.isFunction = isFunction;\nexports.isNum = isNum;\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array /*: Array<any> | TouchList*/, callback /*: Function*/) /*: any*/{\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\nfunction isFunction(func /*: any*/) /*: boolean %checks*/{\n // $FlowIgnore[method-unbinding]\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\nfunction isNum(num /*: any*/) /*: boolean %checks*/{\n return typeof num === 'number' && !isNaN(num);\n}\nfunction int(a /*: string*/) /*: number*/{\n return parseInt(a, 10);\n}\nfunction dontSetMe(props /*: Object*/, propName /*: string*/, componentName /*: string*/) /*: ?Error*/{\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.browserPrefixToKey = browserPrefixToKey;\nexports.browserPrefixToStyle = browserPrefixToStyle;\nexports.default = void 0;\nexports.getPrefix = getPrefix;\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nfunction getPrefix() /*: string*/{\n let prop /*: string*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';\n // Ensure we're running in an environment where there is actually a global\n // `window` obj\n if (typeof window === 'undefined') return '';\n\n // If we're in a pseudo-browser server-side environment, this access\n // path may not exist, so bail out if it doesn't.\n const style = window.document?.documentElement?.style;\n if (!style) return '';\n if (prop in style) return '';\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n return '';\n}\nfunction browserPrefixToKey(prop /*: string*/, prefix /*: string*/) /*: string*/{\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\nfunction browserPrefixToStyle(prop /*: string*/, prefix /*: string*/) /*: string*/{\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\nfunction kebabToTitleCase(str /*: string*/) /*: string*/{\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nvar _default = exports.default = (getPrefix() /*: string*/);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addClassName = addClassName;\nexports.addEvent = addEvent;\nexports.addUserSelectStyles = addUserSelectStyles;\nexports.createCSSTransform = createCSSTransform;\nexports.createSVGTransform = createSVGTransform;\nexports.getTouch = getTouch;\nexports.getTouchIdentifier = getTouchIdentifier;\nexports.getTranslation = getTranslation;\nexports.innerHeight = innerHeight;\nexports.innerWidth = innerWidth;\nexports.matchesSelector = matchesSelector;\nexports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;\nexports.offsetXYFromParent = offsetXYFromParent;\nexports.outerHeight = outerHeight;\nexports.outerWidth = outerWidth;\nexports.removeClassName = removeClassName;\nexports.removeEvent = removeEvent;\nexports.scheduleRemoveUserSelectStyles = scheduleRemoveUserSelectStyles;\nvar _shims = require(\"./shims\");\nvar _getPrefix = _interopRequireWildcard(require(\"./getPrefix\"));\nfunction _interopRequireWildcard(e, t) { if (\"function\" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) \"default\" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }\n/*:: import type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';*/\nlet matchesSelectorFunc = '';\nfunction matchesSelector(el /*: Node*/, selector /*: string*/) /*: boolean*/{\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {\n // $FlowIgnore: Doesn't think elements are indexable\n return (0, _shims.isFunction)(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nfunction matchesSelectorAndParentsTo(el /*: Node*/, selector /*: string*/, baseNode /*: Node*/) /*: boolean*/{\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n // $FlowIgnore[incompatible-type]\n node = node.parentNode;\n } while (node);\n return false;\n}\nfunction addEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{\n if (!el) return;\n const options = {\n capture: true,\n ...inputOptions\n };\n // $FlowIgnore[method-unbinding]\n if (el.addEventListener) {\n el.addEventListener(event, handler, options);\n } else if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\nfunction removeEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{\n if (!el) return;\n const options = {\n capture: true,\n ...inputOptions\n };\n // $FlowIgnore[method-unbinding]\n if (el.removeEventListener) {\n el.removeEventListener(event, handler, options);\n } else if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\nfunction outerHeight(node /*: HTMLElement*/) /*: number*/{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += (0, _shims.int)(computedStyle.borderTopWidth);\n height += (0, _shims.int)(computedStyle.borderBottomWidth);\n return height;\n}\nfunction outerWidth(node /*: HTMLElement*/) /*: number*/{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += (0, _shims.int)(computedStyle.borderLeftWidth);\n width += (0, _shims.int)(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node /*: HTMLElement*/) /*: number*/{\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= (0, _shims.int)(computedStyle.paddingTop);\n height -= (0, _shims.int)(computedStyle.paddingBottom);\n return height;\n}\nfunction innerWidth(node /*: HTMLElement*/) /*: number*/{\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= (0, _shims.int)(computedStyle.paddingLeft);\n width -= (0, _shims.int)(computedStyle.paddingRight);\n return width;\n}\n/*:: interface EventWithOffset {\n clientX: number, clientY: number\n}*/\n// Get from offsetParent\nfunction offsetXYFromParent(evt /*: EventWithOffset*/, offsetParent /*: HTMLElement*/, scale /*: number*/) /*: ControlPosition*/{\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {\n left: 0,\n top: 0\n } : offsetParent.getBoundingClientRect();\n const x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;\n const y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;\n return {\n x,\n y\n };\n}\nfunction createCSSTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: Object*/{\n const translation = getTranslation(controlPos, positionOffset, 'px');\n return {\n [(0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default)]: translation\n };\n}\nfunction createSVGTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: string*/{\n const translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\nfunction getTranslation(_ref /*:: */, positionOffset /*: PositionOffsetControlPosition*/, unitSuffix /*: string*/) /*: string*/{\n let {\n x,\n y\n } /*: ControlPosition*/ = _ref /*: ControlPosition*/;\n let translation = `translate(${x}${unitSuffix},${y}${unitSuffix})`;\n if (positionOffset) {\n const defaultX = `${typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix}`;\n const defaultY = `${typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix}`;\n translation = `translate(${defaultX}, ${defaultY})` + translation;\n }\n return translation;\n}\nfunction getTouch(e /*: MouseTouchEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/{\n return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, t => identifier === t.identifier) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, t => identifier === t.identifier);\n}\nfunction getTouchIdentifier(e /*: MouseTouchEvent*/) /*: ?number*/{\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nfunction addUserSelectStyles(doc /*: ?Document*/) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\nfunction scheduleRemoveUserSelectStyles(doc /*: ?Document*/) {\n // Prevent a possible \"forced reflow\"\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(() => {\n removeUserSelectStyles(doc);\n });\n } else {\n removeUserSelectStyles(doc);\n }\n}\nfunction removeUserSelectStyles(doc /*: ?Document*/) {\n if (!doc) return;\n try {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n // Remove selection caused by scroll, unless it's a focused input\n // (we use doc.defaultView in case we're in an iframe)\n const selection = (doc.defaultView || window).getSelection();\n if (selection && selection.type !== 'Caret') {\n selection.removeAllRanges();\n }\n }\n } catch (e) {\n // probably IE\n }\n}\nfunction addClassName(el /*: HTMLElement*/, className /*: string*/) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\nfunction removeClassName(el /*: HTMLElement*/, className /*: string*/) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canDragX = canDragX;\nexports.canDragY = canDragY;\nexports.createCoreData = createCoreData;\nexports.createDraggableData = createDraggableData;\nexports.getBoundPosition = getBoundPosition;\nexports.getControlPosition = getControlPosition;\nexports.snapToGrid = snapToGrid;\nvar _shims = require(\"./shims\");\nvar _domFns = require(\"./domFns\");\n/*:: import type Draggable from '../Draggable';*/\n/*:: import type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';*/\n/*:: import type DraggableCore from '../DraggableCore';*/\nfunction getBoundPosition(draggable /*: Draggable*/, x /*: number*/, y /*: number*/) /*: [number, number]*/{\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {\n bounds\n } = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n if (typeof bounds === 'string') {\n const {\n ownerDocument\n } = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n // Flow assigns the wrong return type (Node) for getRootNode(),\n // so we cast it to one of the correct types (Element).\n // The others are Document and ShadowRoot.\n // All three implement querySelector() so it's safe to call.\n const rootNode = ((node.getRootNode() /*: any*/) /*: Element*/);\n boundNode = rootNode.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const boundNodeEl /*: HTMLElement*/ = boundNode; // for Flow, can't seem to refine correctly\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),\n top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),\n right: (0, _domFns.innerWidth)(boundNodeEl) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),\n bottom: (0, _domFns.innerHeight)(boundNodeEl) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);\n if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);\n if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);\n return [x, y];\n}\nfunction snapToGrid(grid /*: [number, number]*/, pendingX /*: number*/, pendingY /*: number*/) /*: [number, number]*/{\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\nfunction canDragX(draggable /*: Draggable*/) /*: boolean*/{\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\nfunction canDragY(draggable /*: Draggable*/) /*: boolean*/{\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nfunction getControlPosition(e /*: MouseTouchEvent*/, touchIdentifier /*: ?number*/, draggableCore /*: DraggableCore*/) /*: ?ControlPosition*/{\n const touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);\n}\n\n// Create an data object exposed by <DraggableCore>'s events\nfunction createCoreData(draggable /*: DraggableCore*/, x /*: number*/, y /*: number*/) /*: DraggableData*/{\n const isStart = !(0, _shims.isNum)(draggable.lastX);\n const node = findDOMNode(draggable);\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0,\n deltaY: 0,\n lastX: x,\n lastY: y,\n x,\n y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - draggable.lastX,\n deltaY: y - draggable.lastY,\n lastX: draggable.lastX,\n lastY: draggable.lastY,\n x,\n y\n };\n }\n}\n\n// Create an data exposed by <Draggable>'s events\nfunction createDraggableData(draggable /*: Draggable*/, coreData /*: DraggableData*/) /*: DraggableData*/{\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX / scale,\n y: draggable.state.y + coreData.deltaY / scale,\n deltaX: coreData.deltaX / scale,\n deltaY: coreData.deltaY / scale,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds /*: Bounds*/) /*: Bounds*/{\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\nfunction findDOMNode(draggable /*: Draggable | DraggableCore*/) /*: HTMLElement*/{\n const node = draggable.findDOMNode();\n if (!node) {\n throw new Error('<DraggableCore>: Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = log;\n/*eslint no-console:0*/\nfunction log() {\n if (undefined) console.log(...arguments);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\nvar _domFns = require(\"./utils/domFns\");\nvar _positionFns = require(\"./utils/positionFns\");\nvar _shims = require(\"./utils/shims\");\nvar _log = _interopRequireDefault(require(\"./utils/log\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _interopRequireWildcard(e, t) { if (\"function\" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) \"default\" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/*:: import type {EventHandler, MouseTouchEvent} from './utils/types';*/\n/*:: import type {Element as ReactElement} from 'react';*/\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n/*:: export type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};*/\n/*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/\n/*:: export type ControlPosition = {x: number, y: number};*/\n/*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/\n/*:: export type DraggableCoreDefaultProps = {\n allowAnyClick: boolean,\n allowMobileScroll: boolean,\n disabled: boolean,\n enableUserSelectHack: boolean,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n scale: number,\n};*/\n/*:: export type DraggableCoreProps = {\n ...DraggableCoreDefaultProps,\n cancel: string,\n children: ReactElement<any>,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n nodeRef?: ?React.ElementRef<any>,\n};*/\n//\n// Define <DraggableCore>.\n//\n// <DraggableCore> is for advanced usage of <Draggable>. It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nclass DraggableCore extends React.Component /*:: <DraggableCoreProps>*/{\n constructor() {\n super(...arguments);\n _defineProperty(this, \"dragging\", false);\n // Used while dragging to determine deltas.\n _defineProperty(this, \"lastX\", NaN);\n _defineProperty(this, \"lastY\", NaN);\n _defineProperty(this, \"touchIdentifier\", null);\n _defineProperty(this, \"mounted\", false);\n _defineProperty(this, \"handleDragStart\", e => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = this.findDOMNode();\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error('<DraggableCore> not mounted on DragStart!');\n }\n const {\n ownerDocument\n } = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled || !(e.target instanceof ownerDocument.defaultView.Node) || this.props.handle && !(0, _domFns.matchesSelectorAndParentsTo)(e.target, this.props.handle, thisNode) || this.props.cancel && (0, _domFns.matchesSelectorAndParentsTo)(e.target, this.props.cancel, thisNode)) {\n return;\n }\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n // Important that this is after handle/cancel.\n if (e.type === 'touchstart' && !this.props.allowMobileScroll) e.preventDefault();\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = (0, _domFns.getTouchIdentifier)(e);\n this.touchIdentifier = touchIdentifier;\n\n // Get the current drag point from the event. This is used as the offset.\n const position = (0, _positionFns.getControlPosition)(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {\n x,\n y\n } = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = (0, _positionFns.createCoreData)(this, x, y);\n (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n (0, _log.default)('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false || this.mounted === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.dragging = true;\n this.lastX = x;\n this.lastY = y;\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, this.handleDrag);\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, this.handleDragStop);\n });\n _defineProperty(this, \"handleDrag\", e => {\n // Get the current drag point from the event. This is used as the offset.\n const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);\n if (position == null) return;\n let {\n x,\n y\n } = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.lastX,\n deltaY = y - this.lastY;\n [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.lastX + deltaX, y = this.lastY + deltaY;\n }\n const coreEvent = (0, _positionFns.createCoreData)(this, x, y);\n (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false || this.mounted === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents') /*: any*/) /*: MouseTouchEvent*/);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n this.lastX = x;\n this.lastY = y;\n });\n _defineProperty(this, \"handleDragStop\", e => {\n if (!this.dragging) return;\n const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);\n if (position == null) return;\n let {\n x,\n y\n } = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.lastX || 0;\n let deltaY = y - this.lastY || 0;\n [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);\n x = this.lastX + deltaX, y = this.lastY + deltaY;\n }\n const coreEvent = (0, _positionFns.createCoreData)(this, x, y);\n\n // Call event handler\n const shouldContinue = this.props.onStop(e, coreEvent);\n if (shouldContinue === false || this.mounted === false) return false;\n const thisNode = this.findDOMNode();\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) (0, _domFns.scheduleRemoveUserSelectStyles)(thisNode.ownerDocument);\n }\n (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.dragging = false;\n this.lastX = NaN;\n this.lastY = NaN;\n if (thisNode) {\n // Remove event handlers\n (0, _log.default)('DraggableCore: Removing handlers');\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n });\n _defineProperty(this, \"onMouseDown\", e => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n });\n _defineProperty(this, \"onMouseUp\", e => {\n dragEventFor = eventsFor.mouse;\n return this.handleDragStop(e);\n });\n // Same as onMouseDown (start drag), but now consider this a touch device.\n _defineProperty(this, \"onTouchStart\", e => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return this.handleDragStart(e);\n });\n _defineProperty(this, \"onTouchEnd\", e => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return this.handleDragStop(e);\n });\n }\n componentDidMount() {\n this.mounted = true;\n // Touch handlers must be added with {passive: false} to be cancelable.\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n const thisNode = this.findDOMNode();\n if (thisNode) {\n (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n }\n }\n componentWillUnmount() {\n this.mounted = false;\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = this.findDOMNode();\n if (thisNode) {\n const {\n ownerDocument\n } = thisNode;\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n if (this.props.enableUserSelectHack) (0, _domFns.scheduleRemoveUserSelectStyles)(ownerDocument);\n }\n }\n\n // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n findDOMNode() /*: ?HTMLElement*/{\n return this.props?.nodeRef ? this.props?.nodeRef?.current : _reactDom.default.findDOMNode(this);\n }\n render() /*: React.Element<any>*/{\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onMouseUp: this.onMouseUp,\n // onTouchStart is added on `componentDidMount` so they can be added with\n // {passive: false}, which allows it to cancel. See\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n onTouchEnd: this.onTouchEnd\n });\n }\n}\nexports.default = DraggableCore;\n_defineProperty(DraggableCore, \"displayName\", 'DraggableCore');\n_defineProperty(DraggableCore, \"propTypes\", {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: _propTypes.default.bool,\n /**\n * `allowMobileScroll` turns off cancellation of the 'touchstart' event\n * on mobile devices. Only enable this if you are having trouble with click\n * events. Prefer using 'handle' / 'cancel' instead.\n *\n * Defaults to `false`.\n */\n allowMobileScroll: _propTypes.default.bool,\n children: _propTypes.default.node.isRequired,\n /**\n * `disabled`, if true, stops the <Draggable> from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: _propTypes.default.bool,\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: _propTypes.default.bool,\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function (props /*: DraggableCoreProps*/, propName /*: $Keys<DraggableCoreProps>*/) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: _propTypes.default.arrayOf(_propTypes.default.number),\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * <Draggable handle=\".handle\">\n * <div>\n * <div className=\"handle\">Click me to drag</div>\n * <div>This is some other content</div>\n * </div>\n * </Draggable>\n * );\n * }\n * });\n * ```\n */\n handle: _propTypes.default.string,\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * <Draggable cancel=\".cancel\">\n * <div>\n * <div className=\"cancel\">You can't drag from here</div>\n * <div>Dragging here works fine</div>\n * </div>\n * </Draggable>\n * );\n * }\n * });\n * ```\n */\n cancel: _propTypes.default.string,\n /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.\n * Unfortunately, in order for <Draggable> to work properly, we need raw access\n * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`\n * as in this example:\n *\n * function MyComponent() {\n * const nodeRef = React.useRef(null);\n * return (\n * <Draggable nodeRef={nodeRef}>\n * <div ref={nodeRef}>Example Target</div>\n * </Draggable>\n * );\n * }\n *\n * This can be used for arbitrarily nested components, so long as the ref ends up\n * pointing to the actual child DOM node and not a custom component.\n */\n nodeRef: _propTypes.default.object,\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: _propTypes.default.func,\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: _propTypes.default.func,\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: _propTypes.default.func,\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: _propTypes.default.func,\n /**\n * `scale`, if set, applies scaling while dragging an element\n */\n scale: _propTypes.default.number,\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n});\n_defineProperty(DraggableCore, \"defaultProps\", {\n allowAnyClick: false,\n // by default only accept left click\n allowMobileScroll: false,\n disabled: false,\n enableUserSelectHack: true,\n onStart: function () {},\n onDrag: function () {},\n onStop: function () {},\n onMouseDown: function () {},\n scale: 1\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"DraggableCore\", {\n enumerable: true,\n get: function () {\n return _DraggableCore.default;\n }\n});\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\nvar _clsx = require(\"clsx\");\nvar _domFns = require(\"./utils/domFns\");\nvar _positionFns = require(\"./utils/positionFns\");\nvar _shims = require(\"./utils/shims\");\nvar _DraggableCore = _interopRequireDefault(require(\"./DraggableCore\"));\nvar _log = _interopRequireDefault(require(\"./utils/log\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _interopRequireWildcard(e, t) { if (\"function\" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) \"default\" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); } /*:: import type {ControlPosition, PositionOffsetControlPosition, DraggableCoreProps, DraggableCoreDefaultProps} from './DraggableCore';*/\n/*:: import type {Bounds, DraggableEventHandler} from './utils/types';*/\n/*:: import type {Element as ReactElement} from 'react';*/\n/*:: type DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean,\n prevPropsPosition: ?ControlPosition,\n};*/\n/*:: export type DraggableDefaultProps = {\n ...DraggableCoreDefaultProps,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: Bounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n scale: number,\n};*/\n/*:: export type DraggableProps = {\n ...DraggableCoreProps,\n ...DraggableDefaultProps,\n positionOffset: PositionOffsetControlPosition,\n position: ControlPosition,\n};*/\n//\n// Define <Draggable>\n//\nclass Draggable extends React.Component /*:: <DraggableProps, DraggableState>*/{\n // React 16.3+\n // Arity (props, state)\n static getDerivedStateFromProps(_ref /*:: */, _ref2 /*:: */) /*: ?Partial<DraggableState>*/{\n let {\n position\n } /*: DraggableProps*/ = _ref /*: DraggableProps*/;\n let {\n prevPropsPosition\n } /*: DraggableState*/ = _ref2 /*: DraggableState*/;\n // Set x/y if a new position is provided in props that is different than the previous.\n if (position && (!prevPropsPosition || position.x !== prevPropsPosition.x || position.y !== prevPropsPosition.y)) {\n (0, _log.default)('Draggable: getDerivedStateFromProps %j', {\n position,\n prevPropsPosition\n });\n return {\n x: position.x,\n y: position.y,\n prevPropsPosition: {\n ...position\n }\n };\n }\n return null;\n }\n constructor(props /*: DraggableProps*/) {\n super(props);\n _defineProperty(this, \"onDragStart\", (e, coreData) => {\n (0, _log.default)('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, (0, _positionFns.createDraggableData)(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n this.setState({\n dragging: true,\n dragged: true\n });\n });\n _defineProperty(this, \"onDrag\", (e, coreData) => {\n if (!this.state.dragging) return false;\n (0, _log.default)('Draggable: onDrag: %j', coreData);\n const uiData = (0, _positionFns.createDraggableData)(this, coreData);\n const newState = {\n x: uiData.x,\n y: uiData.y,\n slackX: 0,\n slackY: 0\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {\n x,\n y\n } = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = (0, _positionFns.getBoundPosition)(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n this.setState(newState);\n });\n _defineProperty(this, \"onDragStop\", (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldContinue = this.props.onStop(e, (0, _positionFns.createDraggableData)(this, coreData));\n if (shouldContinue === false) return false;\n (0, _log.default)('Draggable: onDragStop: %j', coreData);\n const newState /*: Partial<DraggableState>*/ = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {\n x,\n y\n } = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n this.setState(newState);\n });\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n // Whether or not we have been dragged before.\n dragged: false,\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n prevPropsPosition: {\n ...props.position\n },\n // Used for compensating for out-of-bounds drags\n slackX: 0,\n slackY: 0,\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n if (props.position && !(props.onDrag || props.onStop)) {\n // eslint-disable-next-line no-console\n console.warn('A `position` was applied to this <Draggable>, without drag handlers. This will make this ' + 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' + '`position` of this element.');\n }\n }\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if (typeof window.SVGElement !== 'undefined' && this.findDOMNode() instanceof window.SVGElement) {\n this.setState({\n isElementSVG: true\n });\n }\n }\n componentWillUnmount() {\n if (this.state.dragging) {\n this.setState({\n dragging: false\n }); // prevents invariant if unmounted while dragging\n }\n }\n\n // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n findDOMNode() /*: ?HTMLElement*/{\n return this.props?.nodeRef?.current ?? _reactDom.default.findDOMNode(this);\n }\n render() /*: ReactElement<any>*/{\n const {\n axis,\n bounds,\n children,\n defaultPosition,\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged,\n position,\n positionOffset,\n scale,\n ...draggableCoreProps\n } = this.props;\n let style = {};\n let svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(position);\n const draggable = !controlled || this.state.dragging;\n const validPosition = position || defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : validPosition.x,\n // Set top if vertical drag is enabled\n y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : validPosition.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = (0, _domFns.createSVGTransform)(transformOpts, positionOffset);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a <span> so <Draggable>\n // has a clean slate.\n style = (0, _domFns.createCSSTransform)(transformOpts, positionOffset);\n }\n\n // Mark with class while dragging\n const className = (0, _clsx.clsx)(children.props.className || '', defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return /*#__PURE__*/React.createElement(_DraggableCore.default, _extends({}, draggableCoreProps, {\n onStart: this.onDragStart,\n onDrag: this.onDrag,\n onStop: this.onDragStop\n }), /*#__PURE__*/React.cloneElement(React.Children.only(children), {\n className: className,\n style: {\n ...children.props.style,\n ...style\n },\n transform: svgTransform\n }));\n }\n}\nexports.default = Draggable;\n_defineProperty(Draggable, \"displayName\", 'Draggable');\n_defineProperty(Draggable, \"propTypes\", {\n // Accepts all props <DraggableCore> accepts.\n ..._DraggableCore.default.propTypes,\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * <Draggable bounds={{right: 300, bottom: 300}}>\n * <div>Content</div>\n * </Draggable>\n * );\n * }\n * });\n * ```\n */\n bounds: _propTypes.default.oneOfType([_propTypes.default.shape({\n left: _propTypes.default.number,\n right: _propTypes.default.number,\n top: _propTypes.default.number,\n bottom: _propTypes.default.number\n }), _propTypes.default.string, _propTypes.default.oneOf([false])]),\n defaultClassName: _propTypes.default.string,\n defaultClassNameDragging: _propTypes.default.string,\n defaultClassNameDragged: _propTypes.default.string,\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * <Draggable defaultPosition={{x: 25, y: 25}}>\n * <div>I start with transformX: 25px and transformY: 25px;</div>\n * </Draggable>\n * );\n * }\n * });\n * ```\n */\n defaultPosition: _propTypes.default.shape({\n x: _propTypes.default.number,\n y: _propTypes.default.number\n }),\n positionOffset: _propTypes.default.shape({\n x: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),\n y: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])\n }),\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * <Draggable position={{x: 25, y: 25}}>\n * <div>I start with transformX: 25px and transformY: 25px;</div>\n * </Draggable>\n * );\n * }\n * });\n * ```\n */\n position: _propTypes.default.shape({\n x: _propTypes.default.number,\n y: _propTypes.default.number\n }),\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n});\n_defineProperty(Draggable, \"defaultProps\", {\n ..._DraggableCore.default.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {\n x: 0,\n y: 0\n },\n scale: 1\n});","\"use strict\";\n\nconst {\n default: Draggable,\n DraggableCore\n} = require('./Draggable');\n\n// Previous versions of this lib exported <Draggable> as the root export. As to no-// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = DraggableCore;","/**\n * Floating Button Component\n * Grid widget with drag handle, positioning controls, and toggle button\n */\n\nimport { Pane, Text } from 'evergreen-ui';\nimport { useState } from 'preact/hooks';\nimport Draggable from 'react-draggable';\n\nexport function FloatingButton({ onClick, isActive, logCount = 0 }) {\n // Position presets for snap-to-corner functionality\n const widgetWidth = 112; // 28px * 3 buttons + 6px * 2 gaps + 8px * 2 padding\n const widgetHeight = 185; // approximate height\n \n const positionPresets = {\n 'top-left': { x: 20, y: 20 },\n 'top-center': { x: window.innerWidth / 2 - widgetWidth / 2, y: 20 },\n 'top-right': { x: window.innerWidth - widgetWidth - 20, y: 20 },\n 'middle-left': { x: 20, y: window.innerHeight / 2 - widgetHeight / 2 },\n 'middle-right': { x: window.innerWidth - widgetWidth - 20, y: window.innerHeight / 2 - widgetHeight / 2 },\n 'bottom-left': { x: 20, y: window.innerHeight - widgetHeight - 20 },\n 'bottom-center': { x: window.innerWidth / 2 - widgetWidth / 2, y: window.innerHeight - widgetHeight - 20 },\n 'bottom-right': { x: window.innerWidth - widgetWidth - 20, y: window.innerHeight - widgetHeight - 20 }\n };\n\n // Button configuration for the 3x3 grid\n const buttonConfig = [\n // Top row\n { id: 'top-left', emoji: '↖', title: 'Top Left' },\n { id: 'top-center', emoji: '↑', title: 'Top Center' },\n { id: 'top-right', emoji: '↗', title: 'Top Right' },\n // Middle row\n { id: 'middle-left', emoji: '←', title: 'Middle Left' },\n { id: 'toggle', emoji: '🔧', title: 'Toggle DevTools Panel', isToggle: true },\n { id: 'middle-right', emoji: '→', title: 'Middle Right' },\n // Bottom row\n { id: 'bottom-left', emoji: '↙', title: 'Bottom Left' },\n { id: 'bottom-center', emoji: '↓', title: 'Bottom Center' },\n { id: 'bottom-right', emoji: '↘', title: 'Bottom Right' }\n ];\n\n // Draggable position state\n const [position, setPosition] = useState(positionPresets['bottom-right']);\n\n // Handle snap to preset position\n const snapToPosition = (presetName) => {\n setPosition(positionPresets[presetName]);\n };\n\n // Handle drag stop\n const handleDragStop = (e, data) => {\n setPosition({ x: data.x, y: data.y });\n };\n\n // Render individual button based on config\n const renderButton = (config) => {\n const baseStyle = {\n cursor: 'pointer',\n fontSize: '24px',\n width: '28px',\n height: '28px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'opacity 0.2s, transform 0.1s',\n pointerEvents: 'auto',\n userSelect: 'none',\n fontVariantEmoji: 'text',\n textRendering: 'optimizeLegibility',\n WebkitFontSmoothing: 'antialiased',\n MozOsxFontSmoothing: 'grayscale',\n color: 'white',\n fontWeight: 'bold'\n };\n\n if (config.isToggle) {\n return (\n <div\n key={config.id}\n onClick={onClick}\n title={config.title}\n role=\"button\"\n tabIndex={0}\n style={{\n ...baseStyle,\n opacity: isActive ? 1 : 0.7\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.opacity = '1';\n e.currentTarget.style.transform = 'scale(1.2)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.opacity = isActive ? '1' : '0.7';\n e.currentTarget.style.transform = 'scale(1)';\n }}\n >\n {config.emoji}\n </div>\n );\n }\n\n return (\n <div\n key={config.id}\n onClick={() => snapToPosition(config.id)}\n title={config.title}\n role=\"button\"\n tabIndex={0}\n style={{\n ...baseStyle,\n opacity: 0.6\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.opacity = '1';\n e.currentTarget.style.transform = 'scale(1.2)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.opacity = '0.6';\n e.currentTarget.style.transform = 'scale(1)';\n }}\n >\n {config.emoji}\n </div>\n );\n };\n\n return (\n <Draggable\n position={position}\n onStop={handleDragStop}\n handle=\".drag-handle\"\n >\n <Pane\n position=\"fixed\"\n width=\"fit-content\"\n background=\"#1a202c\"\n borderRadius={8}\n boxShadow=\"0 4px 12px rgba(0,0,0,0.4)\"\n border=\"1px solid #4a5568\"\n zIndex={999999}\n style={{ cursor: 'default', pointerEvents: 'auto' }}\n >\n {/* Drag Handle */}\n <Pane\n className=\"drag-handle\"\n cursor=\"grab\"\n padding={6}\n textAlign=\"center\"\n borderBottom=\"1px solid #4a5568\"\n background=\"#0d1f28\"\n borderTopLeftRadius={8}\n borderTopRightRadius={8}\n userSelect=\"none\"\n style={{\n transition: 'background 0.2s'\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = '#1a3d4d';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = '#0d1f28';\n }}\n >\n <Text size={300} color=\"#718096\" fontWeight={600}>⋮⋮ drag ⋮⋮</Text>\n </Pane>\n\n {/* 3x3 Grid - Config-driven */}\n <Pane\n display=\"grid\"\n gridTemplateColumns=\"28px 28px 28px\"\n gridTemplateRows=\"28px 28px 28px\"\n gap={6}\n padding={8}\n background=\"#0d1f28\"\n style={{ pointerEvents: 'auto' }}\n >\n {buttonConfig.map(renderButton)}\n </Pane>\n\n {/* Log Count Footer */}\n <Pane\n padding={6}\n textAlign=\"center\"\n borderTop=\"1px solid #4a5568\"\n background={logCount > 0 ? '#2d3748' : '#0d1f28'}\n borderBottomLeftRadius={8}\n borderBottomRightRadius={8}\n >\n <Text \n size={300} \n color={logCount > 0 ? '#48bb78' : '#a0aec0'}\n fontWeight={logCount > 0 ? 600 : 400}\n >\n # of logs: {logCount}\n </Text>\n </Pane>\n </Pane>\n </Draggable>\n );\n}\n","/**\n * Component Filters Component\n * Individual level sliders for each logger component\n */\n\nimport {useEffect, useState} from 'preact/compat';\nimport {Button, Heading, Pane, Text} from 'evergreen-ui';\n\n// Log level mapping for slider values\nconst LOG_LEVELS = [\n {value: 0, name: 'SILENT', emoji: '🔇', color: '#718096'},\n {value: 1, name: 'ERROR', emoji: '🚨', color: '#E53E3E'},\n {value: 2, name: 'WARN', emoji: '⚠️', color: '#DD6B20'},\n {value: 3, name: 'INFO', emoji: '✨', color: '#3182CE'},\n {value: 4, name: 'DEBUG', emoji: '🐛', color: '#805AD5'},\n {value: 5, name: 'TRACE', emoji: '🔍', color: '#38A169'}\n];\n\nconst levelNameToValue = {\n 'silent': 0, 'error': 1, 'warn': 2, 'info': 3, 'debug': 4, 'trace': 5\n};\n\nconst levelValueToName = {\n 0: 'silent', 1: 'error', 2: 'warn', 3: 'info', 4: 'debug', 5: 'trace'\n};\n\nexport function ComponentFilters({components, loggerControls, onLevelChange}) {\n const [componentLevels, setComponentLevels] = useState({});\n\n // Initialize component levels\n useEffect(() => {\n const levels = {};\n components.forEach(name => {\n const level = loggerControls.getLevel?.(name) || 'info';\n levels[name] = levelNameToValue[level] ?? 3; // Default to INFO\n });\n setComponentLevels(levels);\n }, [components, loggerControls]);\n\n const handleLevelChange = (componentName, sliderValue) => {\n const newLevel = levelValueToName[sliderValue];\n\n // Update local state immediately for responsive UI\n setComponentLevels(prev => ({\n ...prev,\n [componentName]: sliderValue\n }));\n\n // Call parent handler with new level\n onLevelChange?.(componentName, newLevel);\n };\n\n if (components.length === 0) {\n return (\n <Pane marginBottom={24}>\n <Heading size={500} marginBottom={12} color=\"muted\" borderBottom=\"1px solid\" borderColor=\"border.muted\"\n paddingBottom={8}>\n 📦 Components\n </Heading>\n <Text color=\"muted\" fontStyle=\"italic\">\n No components detected\n </Text>\n </Pane>\n );\n }\n\n return (\n <Pane marginBottom={16}>\n {components.map(componentName => {\n const currentLevel = componentLevels[componentName] ?? 3;\n const levelConfig = LOG_LEVELS[currentLevel];\n\n return (\n <Pane\n key={componentName}\n paddingY={16}\n paddingX={16}\n marginY={8}\n background=\"#2d3748\"\n borderRadius={8}\n border=\"1px solid #3a4553\"\n transition=\"all 0.2s\"\n >\n {/* Component Name and Current Level */}\n <Pane\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n marginBottom={12}\n border=\"none\"\n borderWidth={0}\n outline=\"none\"\n boxShadow=\"none\"\n >\n <Text size={400} color=\"#e2e8f0\" fontWeight=\"600\">\n {componentName}\n </Text>\n <Pane\n display=\"flex\"\n alignItems=\"center\"\n gap={8}\n border=\"none\"\n borderWidth={0}\n outline=\"none\"\n boxShadow=\"none\"\n >\n <Text fontSize=\"14px\" color={levelConfig.color}>\n {levelConfig.emoji}\n </Text>\n <Pane\n paddingX={8}\n paddingY={4}\n backgroundColor={levelConfig.color}\n borderRadius={12}\n border=\"none\"\n borderWidth={0}\n outline=\"none\"\n boxShadow=\"none\"\n >\n <Text\n fontSize=\"11px\"\n fontWeight=\"600\"\n color=\"white\"\n >\n {levelConfig.name}\n </Text>\n </Pane>\n </Pane>\n </Pane>\n\n {/* Level Control using Button Array (Custom Segmented Control) */}\n <Pane display=\"flex\" marginBottom={12} borderRadius={6} overflow=\"hidden\">\n {LOG_LEVELS.map((level, index) => (\n <Button\n key={level.value}\n appearance=\"minimal\"\n size=\"small\"\n height={32}\n flex={1}\n borderRadius={0}\n border=\"none\"\n background={currentLevel === index ? level.color : \"transparent\"}\n color={currentLevel === index ? \"white\" : level.color}\n onClick={() => handleLevelChange(componentName, level.value)}\n title={`Set to ${level.name}`}\n style={{\n transition: 'all 0.2s ease',\n fontWeight: currentLevel === index ? '600' : '400'\n }}\n >\n {level.emoji}\n </Button>\n ))}\n </Pane>\n\n {/* Level Names Row */}\n <Pane display=\"flex\" justifyContent=\"space-between\" paddingX={4}>\n {LOG_LEVELS.map((level, index) => (\n <Text\n key={level.value}\n fontSize=\"9px\"\n color={currentLevel === index ? level.color : '#718096'}\n fontWeight={currentLevel === index ? '600' : '400'}\n textAlign=\"center\"\n width={`${100 / 6}%`}\n >\n {level.name}\n </Text>\n ))}\n </Pane>\n </Pane>\n );\n })}\n </Pane>\n );\n}\n","/**\n * Global Controls Component\n * System-wide controls and actions\n */\n\nimport {Button, Pane, Text} from 'evergreen-ui';\n\nexport function GlobalControls({onDebugAll, onTraceAll, onReset, loggerControls}) {\n const stats = loggerControls.getStats?.() || {total: 0, byLevel: {}, byComponent: {}};\n const configSummary = loggerControls.getConfigSummary?.() || {};\n\n return (\n <Pane marginBottom={16}>\n {/* Primary Action Buttons */}\n <Pane display=\"flex\" gap={8} marginBottom={16} flexWrap=\"wrap\">\n <Button\n appearance=\"primary\"\n intent=\"success\"\n size=\"medium\"\n flex=\"1\"\n minWidth={100}\n onClick={onDebugAll}\n title=\"Enable debug level for all components\"\n >\n 🐛 Debug All\n </Button>\n\n <Button\n appearance=\"primary\"\n intent=\"warning\"\n size=\"medium\"\n flex=\"1\"\n minWidth={100}\n onClick={onTraceAll}\n title=\"Enable trace level for all components\"\n >\n 🔍 Trace All\n </Button>\n </Pane>\n\n {/* Secondary Action Buttons */}\n <Pane display=\"flex\" gap={8} marginBottom={16} flexWrap=\"wrap\">\n <Button\n intent=\"danger\"\n size=\"small\"\n flex=\"1\"\n minWidth={80}\n onClick={onReset}\n title=\"Reset all settings to defaults\"\n >\n Reset All\n </Button>\n\n <Button\n appearance=\"default\"\n size=\"small\"\n flex=\"1\"\n minWidth={80}\n onClick={() => {\n const summary = loggerControls.getConfigSummary?.();\n console.log('[JSG-DEVTOOLS] Current Config:', summary);\n alert('Config exported to console');\n }}\n title=\"Export current configuration to console\"\n >\n Export Config\n </Button>\n </Pane>\n\n {/* Stats Panel */}\n <Pane background=\"#2d3748\" paddingX={12} paddingY={8} borderRadius={6} marginTop={12}\n border=\"1px solid #4a5568\">\n <Pane display=\"flex\" justifyContent=\"space-between\" alignItems=\"center\" paddingY={2}>\n <Text size={300} color=\"#a0aec0\">📊 Total Logs:</Text>\n <Text size={300} color=\"#ffffff\" fontWeight=\"600\">{stats.total.toString()}</Text>\n </Pane>\n\n {stats.byLevel && Object.keys(stats.byLevel).length > 0 && (\n <Pane display=\"flex\" justifyContent=\"space-between\" alignItems=\"center\" paddingY={2}>\n <Text size={300} color=\"#a0aec0\">📈 By Level:</Text>\n <Text size={300} color=\"#e2e8f0\" fontFamily=\"mono\">\n {Object.entries(stats.byLevel)\n .map(([level, count]) => `${level}:${count}`)\n .join(' ')}\n </Text>\n </Pane>\n )}\n\n {configSummary.environment && (\n <Pane display=\"flex\" justifyContent=\"space-between\" alignItems=\"center\" paddingY={2}>\n <Text size={300} color=\"#a0aec0\">🌍 Environment:</Text>\n <Text size={300} color=\"#ffffff\" fontWeight=\"600\">{configSummary.environment}</Text>\n </Pane>\n )}\n\n {configSummary.fileOverrides && (\n <Pane display=\"flex\" justifyContent=\"space-between\" alignItems=\"center\" paddingY={2}>\n <Text size={300} color=\"#a0aec0\">📁 File Overrides:</Text>\n <Text size={300} color=\"#ffffff\"\n fontWeight=\"600\">{configSummary.fileOverrides.toString()}</Text>\n </Pane>\n )}\n </Pane>\n </Pane>\n );\n}\n","/**\n * Display Controls Component\n * Controls for log display options with real-time preview\n */\n\nimport {useEffect, useState} from 'preact/hooks';\nimport {Button, Pane, Switch, Text} from 'evergreen-ui';\n\n/**\n * Real-time preview of log formatting\n * Exported for use in PanelContainer header\n */\nexport function LogPreview({displayOptions, timestampMode}) {\n const previewStyle = {\n fontFamily: 'Monaco, Consolas, \"Courier New\", monospace',\n fontSize: '12px',\n lineHeight: '1.6',\n whiteSpace: 'pre-wrap',\n color: '#e2e8f0'\n };\n\n const timestampStyle = {color: '#a0aec0'};\n const emojiStyle = {marginRight: '6px'};\n const levelStyle = {color: '#f6ad55', fontWeight: '600'};\n const componentStyle = {color: '#4299e1', fontWeight: '600'};\n const messageStyle = {color: '#e2e8f0'};\n const contextKeyStyle = {color: '#9ae6b4'};\n const contextValueStyle = {color: '#cbd5e0'};\n\n // Generate timestamp based on mode\n const getTimestamp = () => {\n switch (timestampMode) {\n case 'absolute':\n return '22:15:30.1';\n case 'readable':\n return '10:15 PM';\n case 'relative':\n return '2s ago';\n case 'disable':\n return null;\n default:\n return '22:15:30.1';\n }\n };\n\n const timestamp = getTimestamp();\n\n return (\n <Pane\n background=\"#2d3748\"\n padding={12}\n borderRadius={6}\n border=\"1px solid #4a5568\"\n >\n <Pane style={previewStyle}>\n {/* Main log line */}\n <div>\n {displayOptions.timestamp && timestamp && (\n <span style={timestampStyle}>{timestamp} </span>\n )}\n {displayOptions.emoji && (\n <span style={emojiStyle}>🌐</span>\n )}\n {displayOptions.level && (\n <span style={levelStyle}>INFO </span>\n )}\n {displayOptions.component && (\n <span style={componentStyle}>[API] </span>\n )}\n {displayOptions.message && (\n <span style={messageStyle}>Request completed successfully</span>\n )}\n </div>\n\n {/* JSON context data */}\n {displayOptions.jsonPayload && (\n <>\n <div>\n <span style={contextKeyStyle}> ├─ endpoint: </span>\n <span style={contextValueStyle}>/api/users/profile</span>\n </div>\n <div>\n <span style={contextKeyStyle}> ├─ status: </span>\n <span style={contextValueStyle}>200</span>\n </div>\n <div>\n <span style={contextKeyStyle}> ├─ duration: </span>\n <span style={contextValueStyle}>145ms</span>\n </div>\n <div>\n <span style={contextKeyStyle}> └─ cached: </span>\n <span style={contextValueStyle}>false</span>\n </div>\n </>\n )}\n\n {/* Stack trace (only shown if enabled) */}\n {displayOptions.stackTrace && (\n <Pane marginTop={8} opacity={0.7}>\n <div style={{color: '#fc8181'}}> at processRequest (api.js:42:15)</div>\n <div style={{color: '#fc8181'}}> at handleRoute (router.js:128:8)</div>\n </Pane>\n )}\n </Pane>\n </Pane>\n );\n}\n\n/**\n * Main Display Controls Component\n */\nexport function DisplayControls({loggerControls, onStateChange}) {\n const [timestampMode, setTimestampMode] = useState('absolute');\n const [displayOptions, setDisplayOptions] = useState({\n timestamp: true,\n emoji: true,\n component: true,\n level: false,\n message: true,\n jsonPayload: true,\n stackTrace: true\n });\n\n // Load initial configuration from logger\n useEffect(() => {\n if (loggerControls) {\n try {\n const config = loggerControls.getDisplayConfig?.();\n if (config) {\n setDisplayOptions(prev => ({\n ...prev,\n ...config\n }));\n }\n\n const currentTimestampMode = loggerControls.getTimestampMode?.();\n if (currentTimestampMode) {\n setTimestampMode(currentTimestampMode);\n }\n } catch (error) {\n console.warn('[DisplayControls] Failed to load config:', error);\n }\n }\n }, [loggerControls]);\n\n // Notify parent of state changes for preview rendering\n useEffect(() => {\n if (onStateChange) {\n onStateChange({displayOptions, timestampMode});\n }\n }, [displayOptions, timestampMode, onStateChange]);\n\n /**\n * Handle timestamp mode change\n */\n const handleTimestampModeChange = (mode) => {\n setTimestampMode(mode);\n\n // Update display option for timestamp visibility\n const isVisible = mode !== 'disable';\n setDisplayOptions(prev => ({...prev, timestamp: isVisible}));\n\n // Apply to logger\n try {\n loggerControls.setTimestampMode?.(mode);\n console.log(`[JSG-DEVTOOLS] Timestamp mode changed to: ${mode}`);\n } catch (error) {\n console.warn('[DisplayControls] Failed to set timestamp mode:', error);\n }\n };\n\n /**\n * Handle individual toggle\n */\n const handleToggle = (option) => {\n const newValue = !displayOptions[option];\n setDisplayOptions(prev => ({\n ...prev,\n [option]: newValue\n }));\n\n // Apply to logger\n try {\n loggerControls.setDisplayOption?.(option, newValue);\n console.log(`[JSG-DEVTOOLS] Display option '${option}' set to: ${newValue}`);\n } catch (error) {\n console.warn(`[DisplayControls] Failed to set ${option}:`, error);\n }\n };\n\n /**\n * Enable all display options\n */\n const handleAllOn = () => {\n const allOn = {\n timestamp: true,\n emoji: true,\n component: true,\n level: true,\n message: true,\n jsonPayload: true,\n stackTrace: true\n };\n setDisplayOptions(allOn);\n setTimestampMode('absolute');\n\n // Apply to logger\n try {\n Object.entries(allOn).forEach(([key, value]) => {\n loggerControls.setDisplayOption?.(key, value);\n });\n loggerControls.setTimestampMode?.('absolute');\n console.log('[JSG-DEVTOOLS] All display options enabled');\n } catch (error) {\n console.warn('[DisplayControls] Failed to enable all options:', error);\n }\n };\n\n /**\n * Disable all display options (except message)\n */\n const handleAllOff = () => {\n const allOff = {\n timestamp: false,\n emoji: false,\n component: false,\n level: false,\n message: true, // Keep message always on\n jsonPayload: false,\n stackTrace: false\n };\n setDisplayOptions(allOff);\n setTimestampMode('disable');\n\n // Apply to logger\n try {\n Object.entries(allOff).forEach(([key, value]) => {\n loggerControls.setDisplayOption?.(key, value);\n });\n loggerControls.setTimestampMode?.('disable');\n console.log('[JSG-DEVTOOLS] All display options disabled (message kept on)');\n } catch (error) {\n console.warn('[DisplayControls] Failed to disable all options:', error);\n }\n };\n\n /**\n * Reset to defaults\n */\n const handleReset = () => {\n const defaults = {\n timestamp: true,\n emoji: true,\n component: true,\n level: false,\n message: true,\n jsonPayload: true,\n stackTrace: true\n };\n setDisplayOptions(defaults);\n setTimestampMode('absolute');\n\n // Apply to logger\n try {\n Object.entries(defaults).forEach(([key, value]) => {\n loggerControls.setDisplayOption?.(key, value);\n });\n loggerControls.setTimestampMode?.('absolute');\n console.log('[JSG-DEVTOOLS] Display options reset to defaults');\n } catch (error) {\n console.warn('[DisplayControls] Failed to reset options:', error);\n }\n };\n\n const timestampOptions = [\n {label: 'Absolute', value: 'absolute'},\n {label: 'Readable', value: 'readable'},\n {label: 'Relative', value: 'relative'},\n {label: 'Off', value: 'disable'}\n ];\n\n return (\n <Pane paddingX={20} paddingY={16}>\n {/* Timestamp Mode Selector */}\n <Pane marginBottom={12}>\n <Pane display=\"flex\" gap={4}>\n {timestampOptions.map(option => (\n <Button\n key={option.value}\n size=\"small\"\n appearance={timestampMode === option.value ? 'primary' : 'default'}\n onClick={() => handleTimestampModeChange(option.value)}\n flex=\"1\"\n >\n {option.label}\n </Button>\n ))}\n </Pane>\n </Pane>\n\n {/* Toggle Switches Grid */}\n <Pane\n display=\"grid\"\n gridTemplateColumns=\"1fr 1fr\"\n gap={12}\n marginBottom={12}\n >\n {/* Emoji Toggle */}\n <Pane display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\">\n <Text size={300} color=\"#e2e8f0\">\n 😀 Emoji\n </Text>\n <Switch\n checked={displayOptions.emoji}\n onChange={() => handleToggle('emoji')}\n height={20}\n />\n </Pane>\n\n {/* Component Toggle */}\n <Pane display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\">\n <Text size={300} color=\"#e2e8f0\">\n 📦 Component\n </Text>\n <Switch\n checked={displayOptions.component}\n onChange={() => handleToggle('component')}\n height={20}\n />\n </Pane>\n\n {/* Level Toggle */}\n <Pane display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\">\n <Text size={300} color=\"#e2e8f0\">\n 📊 Level Name\n </Text>\n <Switch\n checked={displayOptions.level}\n onChange={() => handleToggle('level')}\n height={20}\n />\n </Pane>\n\n {/* Message Toggle (disabled - always on) */}\n <Pane display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\" opacity={0.5}>\n <Text size={300} color=\"#e2e8f0\">\n 💬 Message\n </Text>\n <Switch\n checked={displayOptions.message}\n disabled={true}\n height={20}\n />\n </Pane>\n\n {/* JSON Payload Toggle */}\n <Pane display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\">\n <Text size={300} color=\"#e2e8f0\">\n 📋 JSON Data\n </Text>\n <Switch\n checked={displayOptions.jsonPayload}\n onChange={() => handleToggle('jsonPayload')}\n height={20}\n />\n </Pane>\n\n {/* Stack Trace Toggle */}\n <Pane display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\">\n <Text size={300} color=\"#e2e8f0\">\n 📚 Stack Trace\n </Text>\n <Switch\n checked={displayOptions.stackTrace}\n onChange={() => handleToggle('stackTrace')}\n height={20}\n />\n </Pane>\n </Pane>\n\n {/* Bulk Control Buttons */}\n <Pane display=\"flex\" gap={8} flexWrap=\"wrap\">\n <Button\n size=\"small\"\n appearance=\"primary\"\n intent=\"success\"\n onClick={handleAllOn}\n flex=\"1\"\n minWidth={80}\n >\n ✅ All On\n </Button>\n <Button\n size=\"small\"\n appearance=\"default\"\n onClick={handleAllOff}\n flex=\"1\"\n minWidth={80}\n >\n ❌ All Off\n </Button>\n <Button\n size=\"small\"\n appearance=\"default\"\n onClick={handleReset}\n flex=\"1\"\n minWidth={80}\n >\n ↻ Reset\n </Button>\n </Pane>\n </Pane>\n );\n}\n\n","/**\n * Panel Container Component\n * Collapsible sidebar with all devtools controls\n */\n\nimport {useState} from 'preact/hooks';\nimport {Button, Heading, Pane, Switch} from 'evergreen-ui';\nimport {ComponentFilters} from './ComponentFilters.jsx';\nimport {GlobalControls} from './GlobalControls.jsx';\nimport {DisplayControls, LogPreview} from './DisplayControls.jsx';\n\nexport function PanelContainer({\n components,\n loggerControls,\n onLevelChange,\n onGlobalDebug,\n onGlobalTrace,\n onReset,\n onClose,\n isClosing\n }) {\n // Fixed positioning and animation styles that can't be handled by Evergreen\n const panelContainerStyle = {\n position: 'fixed',\n top: '0',\n left: '0',\n width: '380px', // Slightly narrower since we're using segmented controls\n height: '100vh',\n zIndex: '999998',\n pointerEvents: 'all',\n overflow: 'auto',\n animation: isClosing ? 'slideOut 0.3s ease-in' : 'slideIn 0.3s ease-out'\n };\n\n // Add CSS animation keyframes to document head\n if (!document.getElementById('jsg-devtools-styles')) {\n const styleSheet = document.createElement('style');\n styleSheet.id = 'jsg-devtools-styles';\n styleSheet.textContent = `\n @keyframes slideIn {\n from { transform: translateX(-100%); }\n to { transform: translateX(0); }\n }\n \n @keyframes slideOut {\n from { transform: translateX(0); }\n to { transform: translateX(-100%); }\n }\n `;\n document.head.appendChild(styleSheet);\n }\n\n // State for live preview in header\n const [previewState, setPreviewState] = useState({\n displayOptions: {\n timestamp: true,\n emoji: true,\n component: true,\n level: false,\n message: true,\n jsonPayload: true,\n stackTrace: true\n },\n timestampMode: 'absolute'\n });\n\n // State for showing/hiding preview and controls\n const [showPreviewControls, setShowPreviewControls] = useState(true);\n\n // Header height for sticky positioning (updated to include preview)\n const headerHeight = 150; // Increased for preview section\n\n return (\n <Pane\n style={panelContainerStyle}\n background=\"#0d1f28\"\n boxShadow=\"2px 0 8px rgba(0,0,0,0.3)\"\n fontSize={14}\n borderRight=\"1px solid #22577a\"\n >\n {/* Sticky Header with Preview and Controls */}\n <Pane\n position=\"sticky\"\n top={0}\n background=\"#1a3d4d\"\n zIndex={999999}\n borderBottom=\"1px solid #22577a\"\n >\n {/* Title Bar */}\n <Pane\n paddingX={16}\n paddingY={12}\n display=\"flex\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n >\n <Heading size={500} color=\"#ffffff\" fontWeight=\"600\">\n 🔧 Logger Controls\n </Heading>\n <Pane display=\"flex\" gap={12} alignItems=\"center\">\n <Switch\n checked={showPreviewControls}\n onChange={(e) => setShowPreviewControls(e.target.checked)}\n height={20}\n />\n <Button\n appearance=\"minimal\"\n onClick={onClose}\n title=\"Close DevTools panel\"\n size=\"small\"\n color=\"#8b949e\"\n >\n ×\n </Button>\n </Pane>\n </Pane>\n\n {/* Live Preview in Sticky Header (conditionally shown) */}\n {showPreviewControls && (\n <>\n <Pane paddingX={16} paddingBottom={12}>\n <LogPreview\n displayOptions={previewState.displayOptions}\n timestampMode={previewState.timestampMode}\n />\n </Pane>\n\n {/* Display Controls in Sticky Header */}\n <DisplayControls\n loggerControls={loggerControls}\n onStateChange={setPreviewState}\n />\n </>\n )}\n </Pane>\n\n {/* Scrolling Content */}\n <Pane paddingBottom={20}>\n {/* Component Filters */}\n <Pane paddingX={20}>\n <ComponentFilters\n components={components}\n loggerControls={loggerControls}\n onLevelChange={onLevelChange}\n />\n\n {/* Global Controls */}\n <GlobalControls\n onDebugAll={onGlobalDebug}\n onTraceAll={onGlobalTrace}\n onReset={onReset}\n loggerControls={loggerControls}\n />\n </Pane>\n </Pane>\n </Pane>\n );\n}\n","/**\n * Main DevTools Panel Component\n * Floating button + collapsible sidebar interface\n */\n\nimport {useEffect, useState} from 'preact/compat';\nimport {FloatingButton} from './FloatingButton.jsx';\nimport {PanelContainer} from './PanelContainer.jsx';\n\nexport function DevToolsPanel({loggerControls, onUnmount}) {\n const [isPanelOpen, setIsPanelOpen] = useState(true);\n const [isClosing, setIsClosing] = useState(false);\n const [components, setComponents] = useState([]);\n const [loggerStats, setLoggerStats] = useState({total: 0});\n\n // Initialize component list and stats\n useEffect(() => {\n if (loggerControls) {\n // Get available components\n const componentList = loggerControls.listComponents?.() || [];\n setComponents(componentList);\n\n // Get initial stats\n const stats = loggerControls.getStats?.() || {total: 0};\n setLoggerStats(stats);\n\n // Subscribe to real-time log updates via LogStore\n const unsubscribe = loggerControls.subscribe?.((logEntry, allLogs) => {\n // Update stats immediately when logs change\n const updatedStats = loggerControls.getStats?.() || {total: 0};\n setLoggerStats(updatedStats);\n });\n\n return () => {\n if (unsubscribe) unsubscribe();\n };\n }\n }, [loggerControls]);\n\n // Manage body class for content push\n useEffect(() => {\n if (isPanelOpen && !isClosing) {\n document.body.classList.add('jsg-devtools-panel-open');\n document.body.classList.remove('jsg-devtools-panel-closing');\n } else if (isClosing) {\n document.body.classList.remove('jsg-devtools-panel-open');\n document.body.classList.add('jsg-devtools-panel-closing');\n } else {\n document.body.classList.remove('jsg-devtools-panel-open');\n document.body.classList.remove('jsg-devtools-panel-closing');\n }\n\n // Cleanup on unmount\n return () => {\n document.body.classList.remove('jsg-devtools-panel-open');\n document.body.classList.remove('jsg-devtools-panel-closing');\n };\n }, [isPanelOpen, isClosing]);\n\n const handleClose = () => {\n // Trigger closing animation\n setIsClosing(true);\n\n // Wait for animation to complete before actually closing\n setTimeout(() => {\n setIsPanelOpen(false);\n setIsClosing(false);\n }, 300); // Match the slideOut animation duration\n };\n\n const handleTogglePanel = () => {\n if (!isPanelOpen) {\n // Opening panel - just set state, useEffect will handle body class\n setIsPanelOpen(true);\n } else {\n // Use handleClose for proper animation\n handleClose();\n }\n };\n\n const handleLevelChange = (componentName, newLevel) => {\n // Set the specific log level for the component\n loggerControls.setLevel?.(componentName, newLevel);\n\n console.log(`[JSG-DEVTOOLS] Changed ${componentName} level to: ${newLevel.toUpperCase()}`);\n };\n\n const handleGlobalDebug = () => {\n loggerControls.enableDebugMode?.();\n console.log('[JSG-DEVTOOLS] Enabled debug mode for all components');\n };\n\n const handleGlobalTrace = () => {\n loggerControls.enableTraceMode?.();\n console.log('[JSG-DEVTOOLS] Enabled trace mode for all components');\n };\n\n const handleReset = () => {\n loggerControls.reset?.();\n console.log('[JSG-DEVTOOLS] Reset all settings to defaults');\n };\n\n // Expose close handler to parent for unmount\n useEffect(() => {\n if (onUnmount) {\n onUnmount(handleClose);\n }\n }, [onUnmount]);\n\n return (\n <div>\n <FloatingButton\n onClick={handleTogglePanel}\n isActive={isPanelOpen}\n logCount={loggerStats.total}\n />\n\n {isPanelOpen && (\n <PanelContainer\n components={components}\n loggerControls={loggerControls}\n onLevelChange={handleLevelChange}\n onGlobalDebug={handleGlobalDebug}\n onGlobalTrace={handleGlobalTrace}\n onReset={handleReset}\n onClose={handleClose}\n isClosing={isClosing}\n />\n )}\n </div>\n );\n}\n","/**\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = merge;\n","/**\n * JSG Logger DevTools Panel - Custom Dark Theme\n * Professional dark theme optimized for development tools\n */\n\nimport { defaultTheme } from 'evergreen-ui'\nimport merge from 'lodash.merge'\n\nexport const devToolsTheme = merge({}, defaultTheme, {\n // Color system optimized for dark DevTools\n colors: {\n // Background colors\n background: {\n tint1: '#1E1E1E', // Main panel background\n tint2: '#2A2A2A', // Card/section backgrounds \n overlay: 'rgba(0,0,0,0.9)' // Modal overlays\n },\n \n // Border colors\n border: {\n default: '#333333', // Primary borders\n muted: '#2A2A2A' // Subtle borders\n },\n \n // Text colors\n text: {\n default: '#FFFFFF', // Primary text\n muted: '#CCCCCC', // Secondary text\n dark: '#888888' // Tertiary text\n },\n \n // Brand colors (blue-green palette)\n palette: {\n primary: {\n base: '#22577a', // Lapis Lazuli\n dark: '#1a3d4d', // Darker shade\n light: '#38a3a5' // Verdigris for hover\n },\n \n // Status colors\n success: {\n base: '#57cc99', // Emerald\n dark: '#38a3a5', // Verdigris\n light: '#80ed99' // Light green\n },\n \n warning: {\n base: '#F39C12', // Orange for warning states \n dark: '#D68910',\n light: '#F1C40F'\n },\n \n danger: {\n base: '#E74C3C', // Red for error states\n dark: '#C0392B', \n light: '#EC7063'\n },\n \n neutral: {\n base: '#95A5A6', // Gray for neutral states\n dark: '#7F8C8D',\n light: '#BDC3C7'\n }\n },\n \n // Intent colors (Evergreen's semantic colors)\n intent: {\n success: '#57cc99', // Emerald\n warning: '#F39C12',\n danger: '#E74C3C',\n none: '#95A5A6'\n }\n },\n \n // Typography system\n typography: {\n fontFamilies: {\n display: 'system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n ui: 'system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n mono: 'Monaco, \"SF Mono\", Consolas, \"Liberation Mono\", Menlo, monospace'\n },\n \n fontSizes: {\n caption: 11, // Small captions\n body: 13, // Body text (DevTools standard)\n heading: 16, // Section headings\n title: 20 // Panel title\n },\n \n fontWeights: {\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700\n }\n },\n \n // Component-specific overrides\n components: {\n // Button component customization\n Button: {\n baseStyle: {\n borderRadius: '6px',\n fontWeight: 500,\n transition: 'all 0.2s ease',\n cursor: 'pointer',\n fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif'\n },\n \n appearances: {\n // Primary button (Debug All, Trace All)\n primary: {\n backgroundColor: '#22577a',\n color: '#FFFFFF',\n border: 'none',\n \n _hover: {\n backgroundColor: '#38a3a5',\n transform: 'translateY(-1px)',\n boxShadow: '0 2px 8px rgba(34, 87, 122, 0.3)'\n },\n \n _active: {\n backgroundColor: '#1a3d4d',\n transform: 'translateY(0)',\n boxShadow: '0 1px 4px rgba(34, 87, 122, 0.3)'\n },\n \n _disabled: {\n backgroundColor: '#555555',\n color: '#888888',\n transform: 'none',\n boxShadow: 'none'\n }\n },\n \n // Minimal button (secondary actions)\n minimal: {\n backgroundColor: 'transparent',\n color: '#CCCCCC',\n border: '1px solid #333333',\n \n _hover: {\n backgroundColor: '#2A2A2A',\n borderColor: '#38a3a5',\n color: '#FFFFFF'\n },\n \n _active: {\n backgroundColor: '#1E1E1E',\n borderColor: '#22577a'\n }\n },\n \n // Danger button (Reset, destructive actions)\n default: {\n backgroundColor: '#E74C3C',\n color: '#FFFFFF', \n border: 'none',\n \n _hover: {\n backgroundColor: '#EC7063',\n transform: 'translateY(-1px)'\n },\n \n _active: {\n backgroundColor: '#C0392B',\n transform: 'translateY(0)'\n }\n }\n },\n \n sizes: {\n small: {\n height: 28,\n paddingX: 12,\n fontSize: 12\n },\n medium: {\n height: 32,\n paddingX: 16,\n fontSize: 13\n },\n large: {\n height: 36,\n paddingX: 20, \n fontSize: 14\n }\n }\n },\n \n // Switch component (for component toggles)\n Switch: {\n baseStyle: {\n backgroundColor: '#444444'\n },\n \n appearances: {\n default: {\n backgroundColor: '#444444',\n \n _checked: {\n backgroundColor: '#22577a'\n },\n \n _hover: {\n backgroundColor: '#555555'\n },\n \n _checkedHover: {\n backgroundColor: '#38a3a5'\n }\n }\n }\n },\n \n // Pane component (containers, panels)\n Pane: {\n baseStyle: {\n backgroundColor: '#1E1E1E',\n border: '1px solid #333333',\n borderRadius: '8px'\n }\n },\n \n // Card component (content cards)\n Card: {\n baseStyle: {\n backgroundColor: '#2A2A2A',\n border: '1px solid #333333', \n borderRadius: '8px',\n boxShadow: '0 2px 8px rgba(0, 0, 0, 0.15)'\n }\n },\n \n // Text components\n Text: {\n baseStyle: {\n color: '#FFFFFF',\n fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif'\n },\n \n appearances: {\n default: {\n color: '#FFFFFF'\n },\n muted: {\n color: '#CCCCCC'\n },\n disabled: {\n color: '#888888' \n }\n }\n },\n \n // Heading components\n Heading: {\n baseStyle: {\n color: '#38a3a5',\n fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n fontWeight: 600\n }\n },\n \n // Badge component (for log counts)\n Badge: {\n appearances: {\n default: {\n backgroundColor: '#E74C3C',\n color: '#FFFFFF'\n }\n }\n }\n }\n})\n\nexport default devToolsTheme\n","/**\n * JSG Logger DevTools Panel - Main Entry Point\n * Runtime-injected UI for log filtering and controls\n * 🎨 EVERGREEN UI VERSION - Built: ${new Date().toISOString()}\n */\n\nimport { render } from 'preact/compat';\nimport { ThemeProvider } from 'evergreen-ui';\nimport { DevToolsPanel } from './components/DevToolsPanel.jsx';\nimport { devToolsTheme } from './theme/devtools-theme.js';\n\nconsole.log('🎛️ JSG Logger DevTools Panel - Evergreen UI Edition'); \nconsole.log('[JSG-DEVTOOLS] Loading from source with hot reload enabled', { \n timestamp: new Date().toISOString(),\n version: 'v2.0',\n framework: 'Evergreen UI + Preact',\n loadedFrom: 'devtools/src/panel-entry.jsx'\n});\n\nlet panelInstance = null;\nlet isInitialized = false;\nlet closeHandler = null;\n\n/**\n * Initialize the DevTools panel\n * Called by logger.controls.enableDevPanel()\n */\nexport function initializePanel() {\n if (isInitialized) {\n console.log('[JSG-DEVTOOLS] Panel already initialized');\n return panelInstance;\n }\n\n console.log('[JSG-DEVTOOLS] Initializing DevTools panel');\n console.log('[JSG-DEVTOOLS] devToolsTheme:', devToolsTheme);\n console.log('[JSG-DEVTOOLS] theme.colors exists?', !!devToolsTheme?.colors);\n\n try {\n // Check if JSG Logger is available\n if (!window.JSG_Logger) {\n console.warn('[JSG-DEVTOOLS] JSG Logger not found on window. Make sure logger is initialized.');\n return null;\n }\n\n // Create panel container\n const panelContainer = document.createElement('div');\n panelContainer.id = 'jsg-devtools-panel';\n panelContainer.style.cssText = `\n position: fixed;\n top: 0;\n left: 0;\n z-index: 999999;\n pointer-events: none;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n `;\n\n // Add styles for body content push\n if (!document.getElementById('jsg-devtools-body-styles')) {\n const bodyStyles = document.createElement('style');\n bodyStyles.id = 'jsg-devtools-body-styles';\n bodyStyles.textContent = `\n body.jsg-devtools-panel-open {\n margin-left: 380px !important;\n transition: margin-left 0.3s ease-out !important;\n }\n \n body.jsg-devtools-panel-closing {\n margin-left: 0 !important;\n transition: margin-left 0.3s ease-in !important;\n }\n `;\n document.head.appendChild(bodyStyles);\n }\n\n document.body.appendChild(panelContainer);\n\n // Render the panel with theme provider\n render(\n <ThemeProvider value={devToolsTheme}>\n <DevToolsPanel \n loggerControls={window.JSG_Logger}\n onUnmount={(handler) => { closeHandler = handler; }}\n />\n </ThemeProvider>,\n panelContainer\n );\n\n panelInstance = {\n container: panelContainer,\n destroy: () => destroyPanel()\n };\n\n isInitialized = true;\n console.log('[JSG-DEVTOOLS] Panel initialized successfully');\n \n return panelInstance;\n } catch (error) {\n console.error('[JSG-DEVTOOLS] Failed to initialize panel:', error);\n return null;\n }\n}\n\n/**\n * Destroy the panel and cleanup\n */\nfunction destroyPanel() {\n if (panelInstance?.container) {\n // Trigger closing animation if handler is available\n if (closeHandler) {\n closeHandler();\n \n // Wait for animation to complete (300ms) before removing from DOM\n setTimeout(() => {\n if (panelInstance?.container && document.body.contains(panelInstance.container)) {\n document.body.removeChild(panelInstance.container);\n }\n panelInstance = null;\n isInitialized = false;\n closeHandler = null;\n console.log('[JSG-DEVTOOLS] Panel destroyed with animation');\n }, 350); // Slightly longer than animation duration to ensure completion\n } else {\n // Fallback: immediate removal if no close handler\n document.body.removeChild(panelInstance.container);\n panelInstance = null;\n isInitialized = false;\n closeHandler = null;\n console.log('[JSG-DEVTOOLS] Panel destroyed');\n }\n }\n}\n\n/**\n * Toggle panel visibility (for external control)\n * Note: Panel is always visible when loaded. Use destroy() to remove.\n */\nexport function togglePanel() {\n // Panel is always visible when loaded\n // Use window.JSG_Logger.disableDevPanel() to remove panel\n console.log('[JSG-DEVTOOLS] Panel is always visible when loaded. Use disableDevPanel() to remove.');\n}\n\n// Global access for debugging\nif (typeof window !== 'undefined') {\n window.JSG_DevTools = {\n initialize: initializePanel,\n destroy: destroyPanel,\n toggle: togglePanel\n };\n}\n"],"names":["e","u","r","a","s","h","n","t","o","i","f","g","k","q","w","x","z","A","Fragment","reactIsModule","require$$0","require$$1","has","require$$2","require$$3","require$$4","checker","propTypesModule","clsxModule","getPrefix_1","_shims","_interopRequireWildcard","options","_domFns","log_1","DraggableCore_1","require$$5","require$$6","DraggableCore","React","_propTypes","_interopRequireDefault","_reactDom","_positionFns","require$$7","_log","require$$8","_defineProperty","_toPropertyKey","_toPrimitive","Draggable","cjsModule","jsx","jsxs","_a","global","Symbol","Map","isFunction","merge","render"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,27]}
|