arize-phoenix 5.8.0__py3-none-any.whl → 5.9.0__py3-none-any.whl
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.
Potentially problematic release.
This version of arize-phoenix might be problematic. Click here for more details.
- {arize_phoenix-5.8.0.dist-info → arize_phoenix-5.9.0.dist-info}/METADATA +1 -1
- {arize_phoenix-5.8.0.dist-info → arize_phoenix-5.9.0.dist-info}/RECORD +25 -25
- {arize_phoenix-5.8.0.dist-info → arize_phoenix-5.9.0.dist-info}/WHEEL +1 -1
- phoenix/db/helpers.py +55 -1
- phoenix/server/api/helpers/playground_clients.py +160 -8
- phoenix/server/api/mutations/chat_mutations.py +198 -11
- phoenix/server/api/queries.py +5 -1
- phoenix/server/api/routers/v1/spans.py +25 -1
- phoenix/server/api/types/ExperimentRun.py +38 -1
- phoenix/server/api/types/GenerativeProvider.py +2 -1
- phoenix/server/app.py +7 -2
- phoenix/server/static/.vite/manifest.json +32 -32
- phoenix/server/static/assets/{components-MllbfxfJ.js → components-DU-8CYbi.js} +319 -296
- phoenix/server/static/assets/{index-BVO2YcT1.js → index-D9E16vvV.js} +2 -2
- phoenix/server/static/assets/{pages-BHfC6jnL.js → pages-t09OI1rC.js} +589 -454
- phoenix/server/static/assets/{vendor-BEuNhfwH.js → vendor-D04tenE6.js} +181 -181
- phoenix/server/static/assets/{vendor-arizeai-Bskhzyjm.js → vendor-arizeai-D3NxMQw0.js} +2 -2
- phoenix/server/static/assets/{vendor-codemirror-DLlXCf0x.js → vendor-codemirror-XTiZSlqq.js} +5 -5
- phoenix/server/static/assets/{vendor-recharts-CRqhvLYg.js → vendor-recharts-p0L0neVs.js} +1 -1
- phoenix/session/client.py +27 -7
- phoenix/utilities/json.py +31 -1
- phoenix/version.py +1 -1
- {arize_phoenix-5.8.0.dist-info → arize_phoenix-5.9.0.dist-info}/entry_points.txt +0 -0
- {arize_phoenix-5.8.0.dist-info → arize_phoenix-5.9.0.dist-info}/licenses/IP_NOTICE +0 -0
- {arize_phoenix-5.8.0.dist-info → arize_phoenix-5.9.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{cs as Wr,ct as gu,cu as zt,cv as ye,cw as Wt,r as B,cx as W,cy as z,cz as da,cA as X,R as A,cB as Dn,cC as bu,cD as Kc,cE as xu,cF as Ou,cG as Au,cH as wu,cI as Pu,cJ as Su,cK as Ti,cL as fi,cM as Fc,cN as Z,cO as at,cP as ki,cQ as Ii,cR as rn,cS as _i,cT as Mn,cU as Re,cV as ju,cW as Eu,cX as $u,cY as Fe,cZ as Tu,c_ as ku,c$ as Iu,d0 as _u,d1 as Cu,d2 as Hr,d3 as Du,d4 as Vc,d5 as Mu,d6 as Bu,d7 as Nu,d8 as Lu,d9 as Ru,da as zu,db as Wu,dc as Ku,dd as Fu,de as Vu,df as Xu,dg as Gu,dh as Me,di as Hu,dj as Uu,dk as Yu,dl as qu,dm as an,dn as Zu,dp as Xc,dq as Ju,dr as Qu,ds as es,dt as ts}from"./vendor-BEuNhfwH.js";var se=function(e){return e===0?0:e>0?1:-1},tt=function(e){return Wr(e)&&e.indexOf("%")===e.length-1},M=function(e){return gu(e)&&!zt(e)},ne=function(e){return M(e)||Wr(e)},rs=0,Xe=function(e){var r=++rs;return"".concat(e||"").concat(r)},fe=function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!M(e)&&!Wr(e))return n;var i;if(tt(e)){var o=e.indexOf("%");i=r*parseFloat(e.slice(0,o))/100}else i=+e;return zt(i)&&(i=n),a&&i>r&&(i=r),i},Le=function(e){if(!e)return null;var r=Object.keys(e);return r&&r.length?e[r[0]]:null},ns=function(e){if(!Array.isArray(e))return!1;for(var r=e.length,n={},a=0;a<r;a++)if(!n[e[a]])n[e[a]]=!0;else return!0;return!1},te=function(e,r){return M(e)&&M(r)?function(n){return e+n*(r-e)}:function(){return r}};function on(t,e,r){return!t||!t.length?null:t.find(function(n){return n&&(typeof e=="function"?e(n):ye(n,e))===r})}var as=function(e){if(!e||!e.length)return null;for(var r=e.length,n=0,a=0,i=0,o=0,c=1/0,l=-1/0,u=0,s=0,f=0;f<r;f++)u=e[f].cx||0,s=e[f].cy||0,n+=u,a+=s,i+=u*s,o+=u*u,c=Math.min(c,u),l=Math.max(l,u);var d=r*o!==n*n?(r*i-n*a)/(r*o-n*n):0;return{xmin:c,xmax:l,a:d,b:(a-d*n)/r}};function Ot(t,e){for(var r in t)if({}.hasOwnProperty.call(t,r)&&(!{}.hasOwnProperty.call(e,r)||t[r]!==e[r]))return!1;for(var n in e)if({}.hasOwnProperty.call(e,n)&&!{}.hasOwnProperty.call(t,n))return!1;return!0}function pa(t){"@babel/helpers - typeof";return pa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pa(t)}var is=["viewBox","children"],os=["aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","className","color","height","id","lang","max","media","method","min","name","style","target","width","role","tabIndex","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","href","ideographic","imageRendering","in2","in","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","ref","key","angle"],Ci=["points","pathLength"],ta={svg:is,polygon:Ci,polyline:Ci},di=["dangerouslySetInnerHTML","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onChangeCapture","onBeforeInput","onBeforeInputCapture","onInput","onInputCapture","onReset","onResetCapture","onSubmit","onSubmitCapture","onInvalid","onInvalidCapture","onLoad","onLoadCapture","onError","onErrorCapture","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onAbort","onAbortCapture","onCanPlay","onCanPlayCapture","onCanPlayThrough","onCanPlayThroughCapture","onDurationChange","onDurationChangeCapture","onEmptied","onEmptiedCapture","onEncrypted","onEncryptedCapture","onEnded","onEndedCapture","onLoadedData","onLoadedDataCapture","onLoadedMetadata","onLoadedMetadataCapture","onLoadStart","onLoadStartCapture","onPause","onPauseCapture","onPlay","onPlayCapture","onPlaying","onPlayingCapture","onProgress","onProgressCapture","onRateChange","onRateChangeCapture","onSeeked","onSeekedCapture","onSeeking","onSeekingCapture","onStalled","onStalledCapture","onSuspend","onSuspendCapture","onTimeUpdate","onTimeUpdateCapture","onVolumeChange","onVolumeChangeCapture","onWaiting","onWaitingCapture","onAuxClick","onAuxClickCapture","onClick","onClickCapture","onContextMenu","onContextMenuCapture","onDoubleClick","onDoubleClickCapture","onDrag","onDragCapture","onDragEnd","onDragEndCapture","onDragEnter","onDragEnterCapture","onDragExit","onDragExitCapture","onDragLeave","onDragLeaveCapture","onDragOver","onDragOverCapture","onDragStart","onDragStartCapture","onDrop","onDropCapture","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseMoveCapture","onMouseOut","onMouseOutCapture","onMouseOver","onMouseOverCapture","onMouseUp","onMouseUpCapture","onSelect","onSelectCapture","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","onPointerDown","onPointerDownCapture","onPointerMove","onPointerMoveCapture","onPointerUp","onPointerUpCapture","onPointerCancel","onPointerCancelCapture","onPointerEnter","onPointerEnterCapture","onPointerLeave","onPointerLeaveCapture","onPointerOver","onPointerOverCapture","onPointerOut","onPointerOutCapture","onGotPointerCapture","onGotPointerCaptureCapture","onLostPointerCapture","onLostPointerCaptureCapture","onScroll","onScrollCapture","onWheel","onWheelCapture","onAnimationStart","onAnimationStartCapture","onAnimationEnd","onAnimationEndCapture","onAnimationIteration","onAnimationIterationCapture","onTransitionEnd","onTransitionEndCapture"],cn=function(e,r){if(!e||typeof e=="function"||typeof e=="boolean")return null;var n=e;if(B.isValidElement(e)&&(n=e.props),!Wt(n))return null;var a={};return Object.keys(n).forEach(function(i){di.includes(i)&&(a[i]=r||function(o){return n[i](n,o)})}),a},cs=function(e,r,n){return function(a){return e(r,n,a),null}},Ve=function(e,r,n){if(!Wt(e)||pa(e)!=="object")return null;var a=null;return Object.keys(e).forEach(function(i){var o=e[i];di.includes(i)&&typeof o=="function"&&(a||(a={}),a[i]=cs(o,r,n))}),a},ls=["children"],us=["children"];function Di(t,e){if(t==null)return{};var r=ss(t,e),n,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(a=0;a<i.length;a++)n=i[a],!(e.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function ss(t,e){if(t==null)return{};var r={},n=Object.keys(t),a,i;for(i=0;i<n.length;i++)a=n[i],!(e.indexOf(a)>=0)&&(r[a]=t[a]);return r}function va(t){"@babel/helpers - typeof";return va=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},va(t)}var Mi={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart"},De=function(e){return typeof e=="string"?e:e?e.displayName||e.name||"Component":""},Bi=null,ra=null,pi=function t(e){if(e===Bi&&Array.isArray(ra))return ra;var r=[];return B.Children.forEach(e,function(n){z(n)||(da.isFragment(n)?r=r.concat(t(n.props.children)):r.push(n))}),ra=r,Bi=e,r};function de(t,e){var r=[],n=[];return Array.isArray(e)?n=e.map(function(a){return De(a)}):n=[De(e)],pi(t).forEach(function(a){var i=ye(a,"type.displayName")||ye(a,"type.name");n.indexOf(i)!==-1&&r.push(a)}),r}function he(t,e){var r=de(t,e);return r&&r[0]}var Ni=function(e){if(!e||!e.props)return!1;var r=e.props,n=r.width,a=r.height;return!(!M(n)||n<=0||!M(a)||a<=0)},fs=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],ds=function(e){return e&&e.type&&Wr(e.type)&&fs.indexOf(e.type)>=0},Gc=function(e){return e&&va(e)==="object"&&"cx"in e&&"cy"in e&&"r"in e},ps=function(e,r,n,a){var i,o=(i=ta==null?void 0:ta[a])!==null&&i!==void 0?i:[];return!W(e)&&(a&&o.includes(r)||os.includes(r))||n&&di.includes(r)},R=function(e,r,n){if(!e||typeof e=="function"||typeof e=="boolean")return null;var a=e;if(B.isValidElement(e)&&(a=e.props),!Wt(a))return null;var i={};return Object.keys(a).forEach(function(o){var c;ps((c=a)===null||c===void 0?void 0:c[o],o,r,n)&&(i[o]=a[o])}),i},ha=function t(e,r){if(e===r)return!0;var n=B.Children.count(e);if(n!==B.Children.count(r))return!1;if(n===0)return!0;if(n===1)return Li(Array.isArray(e)?e[0]:e,Array.isArray(r)?r[0]:r);for(var a=0;a<n;a++){var i=e[a],o=r[a];if(Array.isArray(i)||Array.isArray(o)){if(!t(i,o))return!1}else if(!Li(i,o))return!1}return!0},Li=function(e,r){if(z(e)&&z(r))return!0;if(!z(e)&&!z(r)){var n=e.props||{},a=n.children,i=Di(n,ls),o=r.props||{},c=o.children,l=Di(o,us);return a&&c?Ot(i,l)&&ha(a,c):!a&&!c?Ot(i,l):!1}return!1},Ri=function(e,r){var n=[],a={};return pi(e).forEach(function(i,o){if(ds(i))n.push(i);else if(i){var c=De(i.type),l=r[c]||{},u=l.handler,s=l.once;if(u&&(!s||!a[c])){var f=u(i,c,o);n.push(f),a[c]=!0}}}),n},vs=function(e){var r=e&&e.type;return r&&Mi[r]?Mi[r]:null},hs=function(e,r){return pi(r).indexOf(e)},ys=["children","width","height","viewBox","className","style","title","desc"];function ya(){return ya=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ya.apply(this,arguments)}function ms(t,e){if(t==null)return{};var r=gs(t,e),n,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(a=0;a<i.length;a++)n=i[a],!(e.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function gs(t,e){if(t==null)return{};var r={},n=Object.keys(t),a,i;for(i=0;i<n.length;i++)a=n[i],!(e.indexOf(a)>=0)&&(r[a]=t[a]);return r}function ma(t){var e=t.children,r=t.width,n=t.height,a=t.viewBox,i=t.className,o=t.style,c=t.title,l=t.desc,u=ms(t,ys),s=a||{width:r,height:n,x:0,y:0},f=X("recharts-surface",i);return A.createElement("svg",ya({},R(u,!0,"svg"),{className:f,width:r,height:n,style:o,viewBox:"".concat(s.x," ").concat(s.y," ").concat(s.width," ").concat(s.height)}),A.createElement("title",null,c),A.createElement("desc",null,l),e)}var bs=["children","className"];function ga(){return ga=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ga.apply(this,arguments)}function xs(t,e){if(t==null)return{};var r=Os(t,e),n,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(a=0;a<i.length;a++)n=i[a],!(e.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function Os(t,e){if(t==null)return{};var r={},n=Object.keys(t),a,i;for(i=0;i<n.length;i++)a=n[i],!(e.indexOf(a)>=0)&&(r[a]=t[a]);return r}var H=A.forwardRef(function(t,e){var r=t.children,n=t.className,a=xs(t,bs),i=X("recharts-layer",n);return A.createElement("g",ga({className:i},R(a,!0),{ref:e}),r)}),je=function(e,r){for(var n=arguments.length,a=new Array(n>2?n-2:0),i=2;i<n;i++)a[i-2]=arguments[i]};function sr(t){"@babel/helpers - typeof";return sr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},sr(t)}var As=["type","size","sizeType"];function ba(){return ba=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ba.apply(this,arguments)}function zi(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,n)}return r}function Wi(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?zi(Object(r),!0).forEach(function(n){ws(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):zi(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function ws(t,e,r){return e=Ps(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Ps(t){var e=Ss(t,"string");return sr(e)=="symbol"?e:String(e)}function Ss(t,e){if(sr(t)!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(sr(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function js(t,e){if(t==null)return{};var r=Es(t,e),n,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(a=0;a<i.length;a++)n=i[a],!(e.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function Es(t,e){if(t==null)return{};var r={},n=Object.keys(t),a,i;for(i=0;i<n.length;i++)a=n[i],!(e.indexOf(a)>=0)&&(r[a]=t[a]);return r}var Hc={symbolCircle:Kc,symbolCross:xu,symbolDiamond:Ou,symbolSquare:Au,symbolStar:wu,symbolTriangle:Pu,symbolWye:Su},$s=Math.PI/180,Ts=function(e){var r="symbol".concat(Dn(e));return Hc[r]||Kc},ks=function(e,r,n){if(r==="area")return e;switch(n){case"cross":return 5*e*e/9;case"diamond":return .5*e*e/Math.sqrt(3);case"square":return e*e;case"star":{var a=18*$s;return 1.25*e*e*(Math.tan(a)-Math.tan(a*2)*Math.pow(Math.tan(a),2))}case"triangle":return Math.sqrt(3)*e*e/4;case"wye":return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},Is=function(e,r){Hc["symbol".concat(Dn(e))]=r},Bn=function(e){var r=e.type,n=r===void 0?"circle":r,a=e.size,i=a===void 0?64:a,o=e.sizeType,c=o===void 0?"area":o,l=js(e,As),u=Wi(Wi({},l),{},{type:n,size:i,sizeType:c}),s=function(){var g=Ts(n),O=bu().type(g).size(ks(i,c,n));return O()},f=u.className,d=u.cx,p=u.cy,m=R(u,!0);return d===+d&&p===+p&&i===+i?A.createElement("path",ba({},m,{className:X("recharts-symbols",f),transform:"translate(".concat(d,", ").concat(p,")"),d:s()})):null};Bn.registerSymbol=Is;function wt(t){"@babel/helpers - typeof";return wt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},wt(t)}function xa(){return xa=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},xa.apply(this,arguments)}function Ki(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,n)}return r}function _s(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Ki(Object(r),!0).forEach(function(n){fr(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Ki(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function Cs(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Ds(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Yc(n.key),n)}}function Ms(t,e,r){return e&&Ds(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t}function Bs(t,e,r){return e=ln(e),Ns(t,Uc()?Reflect.construct(e,r||[],ln(t).constructor):e.apply(t,r))}function Ns(t,e){if(e&&(wt(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ls(t)}function Ls(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Uc(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(Uc=function(){return!!t})()}function ln(t){return ln=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},ln(t)}function Rs(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Oa(t,e)}function Oa(t,e){return Oa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,a){return n.__proto__=a,n},Oa(t,e)}function fr(t,e,r){return e=Yc(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Yc(t){var e=zs(t,"string");return wt(e)=="symbol"?e:String(e)}function zs(t,e){if(wt(t)!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(wt(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var be=32,vi=function(t){Rs(e,t);function e(){return Cs(this,e),Bs(this,e,arguments)}return Ms(e,[{key:"renderIcon",value:function(n){var a=this.props.inactiveColor,i=be/2,o=be/6,c=be/3,l=n.inactive?a:n.color;if(n.type==="plainline")return A.createElement("line",{strokeWidth:4,fill:"none",stroke:l,strokeDasharray:n.payload.strokeDasharray,x1:0,y1:i,x2:be,y2:i,className:"recharts-legend-icon"});if(n.type==="line")return A.createElement("path",{strokeWidth:4,fill:"none",stroke:l,d:"M0,".concat(i,"h").concat(c,`
|
|
1
|
+
import{cs as Wr,ct as gu,cu as zt,cv as ye,cw as Wt,r as B,cx as W,cy as z,cz as da,cA as X,R as A,cB as Dn,cC as bu,cD as Kc,cE as xu,cF as Ou,cG as Au,cH as wu,cI as Pu,cJ as Su,cK as Ti,cL as fi,cM as Fc,cN as Z,cO as at,cP as ki,cQ as Ii,cR as rn,cS as _i,cT as Mn,cU as Re,cV as ju,cW as Eu,cX as $u,cY as Fe,cZ as Tu,c_ as ku,c$ as Iu,d0 as _u,d1 as Cu,d2 as Hr,d3 as Du,d4 as Vc,d5 as Mu,d6 as Bu,d7 as Nu,d8 as Lu,d9 as Ru,da as zu,db as Wu,dc as Ku,dd as Fu,de as Vu,df as Xu,dg as Gu,dh as Me,di as Hu,dj as Uu,dk as Yu,dl as qu,dm as an,dn as Zu,dp as Xc,dq as Ju,dr as Qu,ds as es,dt as ts}from"./vendor-D04tenE6.js";var se=function(e){return e===0?0:e>0?1:-1},tt=function(e){return Wr(e)&&e.indexOf("%")===e.length-1},M=function(e){return gu(e)&&!zt(e)},ne=function(e){return M(e)||Wr(e)},rs=0,Xe=function(e){var r=++rs;return"".concat(e||"").concat(r)},fe=function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!M(e)&&!Wr(e))return n;var i;if(tt(e)){var o=e.indexOf("%");i=r*parseFloat(e.slice(0,o))/100}else i=+e;return zt(i)&&(i=n),a&&i>r&&(i=r),i},Le=function(e){if(!e)return null;var r=Object.keys(e);return r&&r.length?e[r[0]]:null},ns=function(e){if(!Array.isArray(e))return!1;for(var r=e.length,n={},a=0;a<r;a++)if(!n[e[a]])n[e[a]]=!0;else return!0;return!1},te=function(e,r){return M(e)&&M(r)?function(n){return e+n*(r-e)}:function(){return r}};function on(t,e,r){return!t||!t.length?null:t.find(function(n){return n&&(typeof e=="function"?e(n):ye(n,e))===r})}var as=function(e){if(!e||!e.length)return null;for(var r=e.length,n=0,a=0,i=0,o=0,c=1/0,l=-1/0,u=0,s=0,f=0;f<r;f++)u=e[f].cx||0,s=e[f].cy||0,n+=u,a+=s,i+=u*s,o+=u*u,c=Math.min(c,u),l=Math.max(l,u);var d=r*o!==n*n?(r*i-n*a)/(r*o-n*n):0;return{xmin:c,xmax:l,a:d,b:(a-d*n)/r}};function Ot(t,e){for(var r in t)if({}.hasOwnProperty.call(t,r)&&(!{}.hasOwnProperty.call(e,r)||t[r]!==e[r]))return!1;for(var n in e)if({}.hasOwnProperty.call(e,n)&&!{}.hasOwnProperty.call(t,n))return!1;return!0}function pa(t){"@babel/helpers - typeof";return pa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pa(t)}var is=["viewBox","children"],os=["aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","className","color","height","id","lang","max","media","method","min","name","style","target","width","role","tabIndex","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","href","ideographic","imageRendering","in2","in","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","ref","key","angle"],Ci=["points","pathLength"],ta={svg:is,polygon:Ci,polyline:Ci},di=["dangerouslySetInnerHTML","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onChangeCapture","onBeforeInput","onBeforeInputCapture","onInput","onInputCapture","onReset","onResetCapture","onSubmit","onSubmitCapture","onInvalid","onInvalidCapture","onLoad","onLoadCapture","onError","onErrorCapture","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onAbort","onAbortCapture","onCanPlay","onCanPlayCapture","onCanPlayThrough","onCanPlayThroughCapture","onDurationChange","onDurationChangeCapture","onEmptied","onEmptiedCapture","onEncrypted","onEncryptedCapture","onEnded","onEndedCapture","onLoadedData","onLoadedDataCapture","onLoadedMetadata","onLoadedMetadataCapture","onLoadStart","onLoadStartCapture","onPause","onPauseCapture","onPlay","onPlayCapture","onPlaying","onPlayingCapture","onProgress","onProgressCapture","onRateChange","onRateChangeCapture","onSeeked","onSeekedCapture","onSeeking","onSeekingCapture","onStalled","onStalledCapture","onSuspend","onSuspendCapture","onTimeUpdate","onTimeUpdateCapture","onVolumeChange","onVolumeChangeCapture","onWaiting","onWaitingCapture","onAuxClick","onAuxClickCapture","onClick","onClickCapture","onContextMenu","onContextMenuCapture","onDoubleClick","onDoubleClickCapture","onDrag","onDragCapture","onDragEnd","onDragEndCapture","onDragEnter","onDragEnterCapture","onDragExit","onDragExitCapture","onDragLeave","onDragLeaveCapture","onDragOver","onDragOverCapture","onDragStart","onDragStartCapture","onDrop","onDropCapture","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseMoveCapture","onMouseOut","onMouseOutCapture","onMouseOver","onMouseOverCapture","onMouseUp","onMouseUpCapture","onSelect","onSelectCapture","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","onPointerDown","onPointerDownCapture","onPointerMove","onPointerMoveCapture","onPointerUp","onPointerUpCapture","onPointerCancel","onPointerCancelCapture","onPointerEnter","onPointerEnterCapture","onPointerLeave","onPointerLeaveCapture","onPointerOver","onPointerOverCapture","onPointerOut","onPointerOutCapture","onGotPointerCapture","onGotPointerCaptureCapture","onLostPointerCapture","onLostPointerCaptureCapture","onScroll","onScrollCapture","onWheel","onWheelCapture","onAnimationStart","onAnimationStartCapture","onAnimationEnd","onAnimationEndCapture","onAnimationIteration","onAnimationIterationCapture","onTransitionEnd","onTransitionEndCapture"],cn=function(e,r){if(!e||typeof e=="function"||typeof e=="boolean")return null;var n=e;if(B.isValidElement(e)&&(n=e.props),!Wt(n))return null;var a={};return Object.keys(n).forEach(function(i){di.includes(i)&&(a[i]=r||function(o){return n[i](n,o)})}),a},cs=function(e,r,n){return function(a){return e(r,n,a),null}},Ve=function(e,r,n){if(!Wt(e)||pa(e)!=="object")return null;var a=null;return Object.keys(e).forEach(function(i){var o=e[i];di.includes(i)&&typeof o=="function"&&(a||(a={}),a[i]=cs(o,r,n))}),a},ls=["children"],us=["children"];function Di(t,e){if(t==null)return{};var r=ss(t,e),n,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(a=0;a<i.length;a++)n=i[a],!(e.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function ss(t,e){if(t==null)return{};var r={},n=Object.keys(t),a,i;for(i=0;i<n.length;i++)a=n[i],!(e.indexOf(a)>=0)&&(r[a]=t[a]);return r}function va(t){"@babel/helpers - typeof";return va=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},va(t)}var Mi={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart"},De=function(e){return typeof e=="string"?e:e?e.displayName||e.name||"Component":""},Bi=null,ra=null,pi=function t(e){if(e===Bi&&Array.isArray(ra))return ra;var r=[];return B.Children.forEach(e,function(n){z(n)||(da.isFragment(n)?r=r.concat(t(n.props.children)):r.push(n))}),ra=r,Bi=e,r};function de(t,e){var r=[],n=[];return Array.isArray(e)?n=e.map(function(a){return De(a)}):n=[De(e)],pi(t).forEach(function(a){var i=ye(a,"type.displayName")||ye(a,"type.name");n.indexOf(i)!==-1&&r.push(a)}),r}function he(t,e){var r=de(t,e);return r&&r[0]}var Ni=function(e){if(!e||!e.props)return!1;var r=e.props,n=r.width,a=r.height;return!(!M(n)||n<=0||!M(a)||a<=0)},fs=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],ds=function(e){return e&&e.type&&Wr(e.type)&&fs.indexOf(e.type)>=0},Gc=function(e){return e&&va(e)==="object"&&"cx"in e&&"cy"in e&&"r"in e},ps=function(e,r,n,a){var i,o=(i=ta==null?void 0:ta[a])!==null&&i!==void 0?i:[];return!W(e)&&(a&&o.includes(r)||os.includes(r))||n&&di.includes(r)},R=function(e,r,n){if(!e||typeof e=="function"||typeof e=="boolean")return null;var a=e;if(B.isValidElement(e)&&(a=e.props),!Wt(a))return null;var i={};return Object.keys(a).forEach(function(o){var c;ps((c=a)===null||c===void 0?void 0:c[o],o,r,n)&&(i[o]=a[o])}),i},ha=function t(e,r){if(e===r)return!0;var n=B.Children.count(e);if(n!==B.Children.count(r))return!1;if(n===0)return!0;if(n===1)return Li(Array.isArray(e)?e[0]:e,Array.isArray(r)?r[0]:r);for(var a=0;a<n;a++){var i=e[a],o=r[a];if(Array.isArray(i)||Array.isArray(o)){if(!t(i,o))return!1}else if(!Li(i,o))return!1}return!0},Li=function(e,r){if(z(e)&&z(r))return!0;if(!z(e)&&!z(r)){var n=e.props||{},a=n.children,i=Di(n,ls),o=r.props||{},c=o.children,l=Di(o,us);return a&&c?Ot(i,l)&&ha(a,c):!a&&!c?Ot(i,l):!1}return!1},Ri=function(e,r){var n=[],a={};return pi(e).forEach(function(i,o){if(ds(i))n.push(i);else if(i){var c=De(i.type),l=r[c]||{},u=l.handler,s=l.once;if(u&&(!s||!a[c])){var f=u(i,c,o);n.push(f),a[c]=!0}}}),n},vs=function(e){var r=e&&e.type;return r&&Mi[r]?Mi[r]:null},hs=function(e,r){return pi(r).indexOf(e)},ys=["children","width","height","viewBox","className","style","title","desc"];function ya(){return ya=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ya.apply(this,arguments)}function ms(t,e){if(t==null)return{};var r=gs(t,e),n,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(a=0;a<i.length;a++)n=i[a],!(e.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function gs(t,e){if(t==null)return{};var r={},n=Object.keys(t),a,i;for(i=0;i<n.length;i++)a=n[i],!(e.indexOf(a)>=0)&&(r[a]=t[a]);return r}function ma(t){var e=t.children,r=t.width,n=t.height,a=t.viewBox,i=t.className,o=t.style,c=t.title,l=t.desc,u=ms(t,ys),s=a||{width:r,height:n,x:0,y:0},f=X("recharts-surface",i);return A.createElement("svg",ya({},R(u,!0,"svg"),{className:f,width:r,height:n,style:o,viewBox:"".concat(s.x," ").concat(s.y," ").concat(s.width," ").concat(s.height)}),A.createElement("title",null,c),A.createElement("desc",null,l),e)}var bs=["children","className"];function ga(){return ga=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ga.apply(this,arguments)}function xs(t,e){if(t==null)return{};var r=Os(t,e),n,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(a=0;a<i.length;a++)n=i[a],!(e.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function Os(t,e){if(t==null)return{};var r={},n=Object.keys(t),a,i;for(i=0;i<n.length;i++)a=n[i],!(e.indexOf(a)>=0)&&(r[a]=t[a]);return r}var H=A.forwardRef(function(t,e){var r=t.children,n=t.className,a=xs(t,bs),i=X("recharts-layer",n);return A.createElement("g",ga({className:i},R(a,!0),{ref:e}),r)}),je=function(e,r){for(var n=arguments.length,a=new Array(n>2?n-2:0),i=2;i<n;i++)a[i-2]=arguments[i]};function sr(t){"@babel/helpers - typeof";return sr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},sr(t)}var As=["type","size","sizeType"];function ba(){return ba=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ba.apply(this,arguments)}function zi(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,n)}return r}function Wi(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?zi(Object(r),!0).forEach(function(n){ws(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):zi(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function ws(t,e,r){return e=Ps(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Ps(t){var e=Ss(t,"string");return sr(e)=="symbol"?e:String(e)}function Ss(t,e){if(sr(t)!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(sr(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function js(t,e){if(t==null)return{};var r=Es(t,e),n,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(a=0;a<i.length;a++)n=i[a],!(e.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function Es(t,e){if(t==null)return{};var r={},n=Object.keys(t),a,i;for(i=0;i<n.length;i++)a=n[i],!(e.indexOf(a)>=0)&&(r[a]=t[a]);return r}var Hc={symbolCircle:Kc,symbolCross:xu,symbolDiamond:Ou,symbolSquare:Au,symbolStar:wu,symbolTriangle:Pu,symbolWye:Su},$s=Math.PI/180,Ts=function(e){var r="symbol".concat(Dn(e));return Hc[r]||Kc},ks=function(e,r,n){if(r==="area")return e;switch(n){case"cross":return 5*e*e/9;case"diamond":return .5*e*e/Math.sqrt(3);case"square":return e*e;case"star":{var a=18*$s;return 1.25*e*e*(Math.tan(a)-Math.tan(a*2)*Math.pow(Math.tan(a),2))}case"triangle":return Math.sqrt(3)*e*e/4;case"wye":return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},Is=function(e,r){Hc["symbol".concat(Dn(e))]=r},Bn=function(e){var r=e.type,n=r===void 0?"circle":r,a=e.size,i=a===void 0?64:a,o=e.sizeType,c=o===void 0?"area":o,l=js(e,As),u=Wi(Wi({},l),{},{type:n,size:i,sizeType:c}),s=function(){var g=Ts(n),O=bu().type(g).size(ks(i,c,n));return O()},f=u.className,d=u.cx,p=u.cy,m=R(u,!0);return d===+d&&p===+p&&i===+i?A.createElement("path",ba({},m,{className:X("recharts-symbols",f),transform:"translate(".concat(d,", ").concat(p,")"),d:s()})):null};Bn.registerSymbol=Is;function wt(t){"@babel/helpers - typeof";return wt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},wt(t)}function xa(){return xa=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},xa.apply(this,arguments)}function Ki(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,n)}return r}function _s(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Ki(Object(r),!0).forEach(function(n){fr(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Ki(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function Cs(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Ds(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Yc(n.key),n)}}function Ms(t,e,r){return e&&Ds(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t}function Bs(t,e,r){return e=ln(e),Ns(t,Uc()?Reflect.construct(e,r||[],ln(t).constructor):e.apply(t,r))}function Ns(t,e){if(e&&(wt(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ls(t)}function Ls(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Uc(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(Uc=function(){return!!t})()}function ln(t){return ln=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},ln(t)}function Rs(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Oa(t,e)}function Oa(t,e){return Oa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,a){return n.__proto__=a,n},Oa(t,e)}function fr(t,e,r){return e=Yc(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Yc(t){var e=zs(t,"string");return wt(e)=="symbol"?e:String(e)}function zs(t,e){if(wt(t)!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(wt(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var be=32,vi=function(t){Rs(e,t);function e(){return Cs(this,e),Bs(this,e,arguments)}return Ms(e,[{key:"renderIcon",value:function(n){var a=this.props.inactiveColor,i=be/2,o=be/6,c=be/3,l=n.inactive?a:n.color;if(n.type==="plainline")return A.createElement("line",{strokeWidth:4,fill:"none",stroke:l,strokeDasharray:n.payload.strokeDasharray,x1:0,y1:i,x2:be,y2:i,className:"recharts-legend-icon"});if(n.type==="line")return A.createElement("path",{strokeWidth:4,fill:"none",stroke:l,d:"M0,".concat(i,"h").concat(c,`
|
|
2
2
|
A`).concat(o,",").concat(o,",0,1,1,").concat(2*c,",").concat(i,`
|
|
3
3
|
H`).concat(be,"M").concat(2*c,",").concat(i,`
|
|
4
4
|
A`).concat(o,",").concat(o,",0,1,1,").concat(c,",").concat(i),className:"recharts-legend-icon"});if(n.type==="rect")return A.createElement("path",{stroke:"none",fill:l,d:"M0,".concat(be/8,"h").concat(be,"v").concat(be*3/4,"h").concat(-be,"z"),className:"recharts-legend-icon"});if(A.isValidElement(n.legendIcon)){var u=_s({},n);return delete u.legendIcon,A.cloneElement(n.legendIcon,u)}return A.createElement(Bn,{fill:l,cx:i,cy:i,size:be,sizeType:"diameter",type:n.type})}},{key:"renderItems",value:function(){var n=this,a=this.props,i=a.payload,o=a.iconSize,c=a.layout,l=a.formatter,u=a.inactiveColor,s={x:0,y:0,width:be,height:be},f={display:c==="horizontal"?"inline-block":"block",marginRight:10},d={display:"inline-block",verticalAlign:"middle",marginRight:4};return i.map(function(p,m){var y=p.formatter||l,g=X(fr(fr({"recharts-legend-item":!0},"legend-item-".concat(m),!0),"inactive",p.inactive));if(p.type==="none")return null;var O=W(p.value)?null:p.value;je(!W(p.value),`The name property is also required when using a function for the dataKey of a chart's cartesian components. Ex: <Bar name="Name of my Data"/>`);var b=p.inactive?u:p.color;return A.createElement("li",xa({className:g,style:f,key:"legend-item-".concat(m)},Ve(n.props,p,m)),A.createElement(ma,{width:o,height:o,viewBox:s,style:d},n.renderIcon(p)),A.createElement("span",{className:"recharts-legend-item-text",style:{color:b}},y?y(O,p,m):O))})}},{key:"render",value:function(){var n=this.props,a=n.payload,i=n.layout,o=n.align;if(!a||!a.length)return null;var c={padding:0,margin:0,textAlign:i==="horizontal"?o:"left"};return A.createElement("ul",{className:"recharts-default-legend",style:c},this.renderItems())}}]),e}(B.PureComponent);fr(vi,"displayName","Legend");fr(vi,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});function qc(t,e,r){return e===!0?Ti(t,r):W(e)?Ti(t,e):t}function Pt(t){"@babel/helpers - typeof";return Pt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Pt(t)}var Ws=["ref"];function Fi(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,n)}return r}function Ze(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Fi(Object(r),!0).forEach(function(n){Nn(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Fi(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function Ks(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Vi(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Qc(n.key),n)}}function Fs(t,e,r){return e&&Vi(t.prototype,e),r&&Vi(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function Vs(t,e,r){return e=un(e),Xs(t,Zc()?Reflect.construct(e,r||[],un(t).constructor):e.apply(t,r))}function Xs(t,e){if(e&&(Pt(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Jc(t)}function Zc(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(Zc=function(){return!!t})()}function un(t){return un=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},un(t)}function Jc(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Gs(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Aa(t,e)}function Aa(t,e){return Aa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,a){return n.__proto__=a,n},Aa(t,e)}function Nn(t,e,r){return e=Qc(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Qc(t){var e=Hs(t,"string");return Pt(e)=="symbol"?e:String(e)}function Hs(t,e){if(Pt(t)!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(Pt(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Us(t,e){if(t==null)return{};var r=Ys(t,e),n,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(a=0;a<i.length;a++)n=i[a],!(e.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function Ys(t,e){if(t==null)return{};var r={},n=Object.keys(t),a,i;for(i=0;i<n.length;i++)a=n[i],!(e.indexOf(a)>=0)&&(r[a]=t[a]);return r}function qs(t){return t.value}function Zs(t,e){if(A.isValidElement(t))return A.cloneElement(t,e);if(typeof t=="function")return A.createElement(t,e);e.ref;var r=Us(e,Ws);return A.createElement(vi,r)}var Xi=1,dr=function(t){Gs(e,t);function e(){var r;Ks(this,e);for(var n=arguments.length,a=new Array(n),i=0;i<n;i++)a[i]=arguments[i];return r=Vs(this,e,[].concat(a)),Nn(Jc(r),"lastBoundingBox",{width:-1,height:-1}),r}return Fs(e,[{key:"componentDidMount",value:function(){this.updateBBox()}},{key:"componentDidUpdate",value:function(){this.updateBBox()}},{key:"getBBox",value:function(){if(this.wrapperNode&&this.wrapperNode.getBoundingClientRect){var n=this.wrapperNode.getBoundingClientRect();return n.height=this.wrapperNode.offsetHeight,n.width=this.wrapperNode.offsetWidth,n}return null}},{key:"updateBBox",value:function(){var n=this.props.onBBoxUpdate,a=this.getBBox();a?(Math.abs(a.width-this.lastBoundingBox.width)>Xi||Math.abs(a.height-this.lastBoundingBox.height)>Xi)&&(this.lastBoundingBox.width=a.width,this.lastBoundingBox.height=a.height,n&&n(a)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,n&&n(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?Ze({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(n){var a=this.props,i=a.layout,o=a.align,c=a.verticalAlign,l=a.margin,u=a.chartWidth,s=a.chartHeight,f,d;if(!n||(n.left===void 0||n.left===null)&&(n.right===void 0||n.right===null))if(o==="center"&&i==="vertical"){var p=this.getBBoxSnapshot();f={left:((u||0)-p.width)/2}}else f=o==="right"?{right:l&&l.right||0}:{left:l&&l.left||0};if(!n||(n.top===void 0||n.top===null)&&(n.bottom===void 0||n.bottom===null))if(c==="middle"){var m=this.getBBoxSnapshot();d={top:((s||0)-m.height)/2}}else d=c==="bottom"?{bottom:l&&l.bottom||0}:{top:l&&l.top||0};return Ze(Ze({},f),d)}},{key:"render",value:function(){var n=this,a=this.props,i=a.content,o=a.width,c=a.height,l=a.wrapperStyle,u=a.payloadUniqBy,s=a.payload,f=Ze(Ze({position:"absolute",width:o||"auto",height:c||"auto"},this.getDefaultPosition(l)),l);return A.createElement("div",{className:"recharts-legend-wrapper",style:f,ref:function(p){n.wrapperNode=p}},Zs(i,Ze(Ze({},this.props),{},{payload:qc(s,u,qs)})))}}],[{key:"getWithHeight",value:function(n,a){var i=n.props.layout;return i==="vertical"&&M(n.props.height)?{height:n.props.height}:i==="horizontal"?{width:n.props.width||a}:null}}]),e}(B.PureComponent);Nn(dr,"displayName","Legend");Nn(dr,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});function pr(t){"@babel/helpers - typeof";return pr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pr(t)}function wa(){return wa=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},wa.apply(this,arguments)}function Js(t,e){return rf(t)||tf(t,e)||ef(t,e)||Qs()}function Qs(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
phoenix/session/client.py
CHANGED
|
@@ -36,6 +36,7 @@ from phoenix.trace import Evaluations, TraceDataset
|
|
|
36
36
|
from phoenix.trace.dsl import SpanQuery
|
|
37
37
|
from phoenix.trace.otel import encode_span_to_otlp
|
|
38
38
|
from phoenix.utilities.client import VersionedClient
|
|
39
|
+
from phoenix.utilities.json import decode_df_from_json_string
|
|
39
40
|
|
|
40
41
|
logger = logging.getLogger(__name__)
|
|
41
42
|
|
|
@@ -145,6 +146,7 @@ class Client(TraceDataExtractor):
|
|
|
145
146
|
end_time = end_time or stop_time
|
|
146
147
|
try:
|
|
147
148
|
response = self._client.post(
|
|
149
|
+
headers={"accept": "application/json"},
|
|
148
150
|
url=urljoin(self._base_url, "v1/spans"),
|
|
149
151
|
params={
|
|
150
152
|
"project_name": project_name,
|
|
@@ -180,14 +182,32 @@ class Client(TraceDataExtractor):
|
|
|
180
182
|
elif response.status_code == 422:
|
|
181
183
|
raise ValueError(response.content.decode())
|
|
182
184
|
response.raise_for_status()
|
|
183
|
-
source = BytesIO(response.content)
|
|
184
185
|
results = []
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
186
|
+
content_type = response.headers.get("Content-Type")
|
|
187
|
+
if isinstance(content_type, str) and "multipart/mixed" in content_type:
|
|
188
|
+
if "boundary=" in content_type:
|
|
189
|
+
boundary_token = content_type.split("boundary=")[1].split(";", 1)[0]
|
|
190
|
+
else:
|
|
191
|
+
raise ValueError(
|
|
192
|
+
"Boundary not found in Content-Type header for multipart/mixed response"
|
|
193
|
+
)
|
|
194
|
+
boundary = f"--{boundary_token}"
|
|
195
|
+
text = response.text
|
|
196
|
+
while boundary in text:
|
|
197
|
+
part, text = text.split(boundary, 1)
|
|
198
|
+
if "Content-Type: application/json" in part:
|
|
199
|
+
json_string = part.split("\r\n\r\n", 1)[1].strip()
|
|
200
|
+
df = decode_df_from_json_string(json_string)
|
|
201
|
+
results.append(df)
|
|
202
|
+
else:
|
|
203
|
+
# For backward compatibility
|
|
204
|
+
source = BytesIO(response.content)
|
|
205
|
+
while True:
|
|
206
|
+
try:
|
|
207
|
+
with pa.ipc.open_stream(source) as reader:
|
|
208
|
+
results.append(reader.read_pandas())
|
|
209
|
+
except ArrowInvalid:
|
|
210
|
+
break
|
|
191
211
|
if len(results) == 1:
|
|
192
212
|
df = results[0]
|
|
193
213
|
return None if df.shape == (0, 0) else df
|
phoenix/utilities/json.py
CHANGED
|
@@ -2,10 +2,14 @@ import dataclasses
|
|
|
2
2
|
import datetime
|
|
3
3
|
from collections.abc import Mapping, Sequence
|
|
4
4
|
from enum import Enum
|
|
5
|
+
from io import StringIO
|
|
5
6
|
from pathlib import Path
|
|
6
|
-
from typing import Any, Union, get_args, get_origin
|
|
7
|
+
from typing import Any, Union, cast, get_args, get_origin
|
|
7
8
|
|
|
8
9
|
import numpy as np
|
|
10
|
+
import pandas as pd
|
|
11
|
+
from pandas.io.json import build_table_schema, ujson_dumps # type: ignore
|
|
12
|
+
from pandas.io.json._table_schema import parse_table_schema # type: ignore
|
|
9
13
|
from strawberry import UNSET
|
|
10
14
|
from strawberry.types.base import StrawberryObjectDefinition
|
|
11
15
|
|
|
@@ -71,3 +75,29 @@ def jsonify(obj: Any) -> Any:
|
|
|
71
75
|
return jsonify(d)
|
|
72
76
|
cls = obj.__class__
|
|
73
77
|
return f"<{cls.__module__}.{cls.__name__} object>"
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def encode_df_as_json_string(df: pd.DataFrame) -> str:
|
|
81
|
+
index_names = df.index.names
|
|
82
|
+
n = len(index_names)
|
|
83
|
+
primary_key = [f"{i}_{(x or '')}" for i, x in enumerate(index_names)]
|
|
84
|
+
df = df.set_axis([f"{i}_{x}" for i, x in enumerate(df.columns, n)], axis=1)
|
|
85
|
+
df = df.reset_index(names=primary_key)
|
|
86
|
+
schema = build_table_schema(df, False, primary_key) # type: ignore
|
|
87
|
+
data = df.to_dict("records")
|
|
88
|
+
return cast(
|
|
89
|
+
str,
|
|
90
|
+
ujson_dumps(
|
|
91
|
+
{"schema": schema, "data": data},
|
|
92
|
+
date_unit="ns",
|
|
93
|
+
iso_dates=True,
|
|
94
|
+
ensure_ascii=False,
|
|
95
|
+
),
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def decode_df_from_json_string(obj: str) -> pd.DataFrame:
|
|
100
|
+
# Note: read_json converts an all null column to NaN
|
|
101
|
+
df = cast(pd.DataFrame, parse_table_schema(StringIO(obj).read(), False))
|
|
102
|
+
df.index.names = [x.split("_", 1)[1] or None for x in df.index.names] # type: ignore
|
|
103
|
+
return df.set_axis([x.split("_", 1)[1] for x in df.columns], axis=1)
|
phoenix/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "5.
|
|
1
|
+
__version__ = "5.9.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|