diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/editor/config/axis.js b/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/editor/config/axis.js index 61359f612f63..8809f2e2c8ef 100644 --- a/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/editor/config/axis.js +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/editor/config/axis.js @@ -24,6 +24,7 @@ var isArray = require( '@stdlib/assert/is-array' ); var defaults = require( './../defaults.js' ); var resolveValue = require( './resolve_value.js' ); var resolveTextValue = require( './resolve_text_value.js' ); +var resolveSchemaValue = require( './resolve_schema_value.js' ); // VARIABLES // @@ -35,12 +36,22 @@ var PROPS = [ 'domainDashOffset', 'domainOpacity', 'domainWidth', + 'grid', + 'gridCap', + 'gridColor', + 'gridDashOffset', + 'gridOpacity', + 'gridWidth', 'titleColor', 'titleFont', 'titleOpacity' ]; var ARRAY_PROPS = [ - 'domainDash' + 'domainDash', + 'gridDash' +]; +var SCHEMA_PROPS = [ + 'gridScale' ]; var TEXT_PROPS = [ 'title' @@ -75,6 +86,9 @@ function config( conf, schema ) { for ( i = 0; i < PROPS.length; i++ ) { resolveValue( schema, def, conf, PROPS[ i ] ); } + for ( i = 0; i < SCHEMA_PROPS.length; i++ ) { + resolveSchemaValue( schema, def, conf, SCHEMA_PROPS[ i ] ); + } return conf; } diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/editor/config/resolve_schema_value.js b/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/editor/config/resolve_schema_value.js new file mode 100644 index 000000000000..9d39c425b189 --- /dev/null +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/editor/config/resolve_schema_value.js @@ -0,0 +1,56 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var isSignalReference = require( '@stdlib/plot/vega/base/assert/is-signal-reference' ); +var isUndefined = require( '@stdlib/assert/is-undefined' ); + + +// MAIN // + +/** +* Resolves a configuration value derived from a schema. +* +* @private +* @param {Object} src - source object +* @param {Object} defaults - defaults object +* @param {Object} dest - destination object +* @param {string} prop - property name +*/ +function resolveSchemaValue( src, defaults, dest, prop ) { + var v = src[ prop ]; + if ( !isSignalReference( v ) ) { + if ( isUndefined( v ) || v === '' ) { + if ( prop === 'gridScale' ) { + dest[ prop ] = src.scale; + } else { + dest[ prop ] = defaults[ prop ].default; + } + } else { + dest[ prop ] = v; + } + } +} + + +// EXPORTS // + +module.exports = resolveSchemaValue; diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/editor/index.js b/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/editor/index.js index ca4c3bdc15ca..9b6a2358105c 100644 --- a/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/editor/index.js +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/editor/index.js @@ -154,7 +154,7 @@ setReadOnly( Editor.prototype, 'create', function create() { this._tree.general = createGeneral( editor, conf.general ); this._tree.padding = createPadding( editor, conf.padding ); this._tree.title = createTitle( editor, conf.title ); - this._tree.axes = createAxes( editor, conf.axes ); + this._tree.axes = createAxes( editor, conf.axes, this._state.schema.raw ); editor.onFinishChange( onChange ); diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/editor/menus/axes.js b/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/editor/menus/axes.js index 5cbd8120b9c4..e6566a13942a 100644 --- a/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/editor/menus/axes.js +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/editor/menus/axes.js @@ -32,9 +32,10 @@ var axis = require( './axis.js' ); * @private * @param {Editor} editor - editor instance * @param {Array} conf - list of editor axis configurations +* @param {Object} schema - visualization schema * @returns {(Object|null)} menu tree */ -function addMenu( editor, conf ) { +function addMenu( editor, conf, schema ) { var children; var folder; var o; @@ -48,7 +49,7 @@ function addMenu( editor, conf ) { children = []; for ( i = 0; i < conf.length; i++ ) { - o = axis( folder, conf[ i ], format( 'Axis %d', i+1 ) ); + o = axis( folder, conf[ i ], schema, format( 'Axis %d', i+1 ) ); if ( o ) { children.push( o ); } diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/editor/menus/axis.js b/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/editor/menus/axis.js index bff880a20cd7..669b1b87cab1 100644 --- a/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/editor/menus/axis.js +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/editor/menus/axis.js @@ -22,6 +22,7 @@ var objectKeys = require( '@stdlib/utils/keys' ); var format = require( '@stdlib/string/format' ); +var resolveSchemaValues = require( './resolve_schema_values.js' ); var defaults = require( './../defaults.js' ); @@ -38,10 +39,11 @@ var EMPTY_STRING = [ '' ]; * @private * @param {Editor} parent - parent folder instance * @param {Object} conf - editor axis configuration +* @param {Object} schema - visualization schema * @param {string} name - folder name * @returns {(Object|null)} menu tree */ -function addMenu( parent, conf, name ) { +function addMenu( parent, conf, schema, name ) { var controllers; var controller; var folder; @@ -83,6 +85,27 @@ function addMenu( parent, conf, name ) { controller = folder.add( conf, k ) .min( d.min ); controller.name( format( '%s (%s)', k, d.units ) ); + } else if ( k === 'grid' ) { + controller = folder.add( conf, k ); + } else if ( k === 'gridCap' ) { + controller = folder.add( conf, k, EMPTY_STRING.concat( d.values ) ); + } else if ( k === 'gridColor' ) { + controller = folder.addColor( conf, k ); + } else if ( k === 'gridDash' ) { + controller = folder.add( conf, k ); + } else if ( k === 'gridDashOffset' ) { + controller = folder.add( conf, k ); + controller.name( format( '%s (%s)', k, d.units ) ); + } else if ( k === 'gridOpacity' ) { + controller = folder.add( conf, k ) + .min( d.min ) + .max( d.max ); + } else if ( k === 'gridScale' ) { + controller = folder.add( conf, k, resolveSchemaValues( schema, 'scales.*.name' ) ).disable(); + } else if ( k === 'gridWidth' ) { + controller = folder.add( conf, k ) + .min( d.min ); + controller.name( format( '%s (%s)', k, d.units ) ); } else if ( k === 'title' ) { controller = folder.add( conf, k ); } else if ( k === 'titleColor' ) { diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/editor/menus/resolve_schema_values.js b/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/editor/menus/resolve_schema_values.js new file mode 100644 index 000000000000..fbc3b34500b8 --- /dev/null +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/editor/menus/resolve_schema_values.js @@ -0,0 +1,46 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MAIN // + +/** +* Resolves configuration values from a visualization schema. +* +* @private +* @param {Object} schema - visualization schema +* @param {string} path - schema path pattern +* @returns {Array} resolved values +*/ +function resolveSchemaValues( schema, path ) { + var out; + var i; + if ( path === 'scales.*.name' ) { + out = []; + for ( i = 0; i < schema.scales.length; i++ ) { + out.push( schema.scales[ i ].name ); + } + } + return out; +} + + +// EXPORTS // + +module.exports = resolveSchemaValues; diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/schema/transforms/axis.js b/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/schema/transforms/axis.js index 77b394a2f98a..fe8f5ddaff47 100644 --- a/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/schema/transforms/axis.js +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/app/schema/transforms/axis.js @@ -36,6 +36,13 @@ var PROPS = [ 'domainDashOffset', 'domainOpacity', 'domainWidth', + 'grid', + 'gridCap', + 'gridColor', + 'gridDash', + 'gridDashOffset', + 'gridOpacity', + 'gridWidth', 'title', 'titleColor', 'titleFont', @@ -77,13 +84,19 @@ function transform( schema, signals, defaults, prefix ) { 'value': ( isUndefined( v ) ) ? defaults[ k ].default : v }); - // FIXME: Vega does not currently support signal updates for structural properties like `domain`. As a workaround, we keep `domain` statically `true` and dynamically hide it by dropping `domainOpacity` to 0 when unchecked. + // FIXME: Vega does not currently support signal updates for structural properties like `domain` and `grid`. As a workaround, we keep them statically `true` and dynamically hide them by dropping their respective opacities to 0 when unchecked. if ( k === 'domain' ) { out[ k ] = true; } else if ( k === 'domainOpacity' ) { out[ k ] = { 'signal': signalName( prefix+'domain' ) + ' ? ' + name + ' : 0' }; + } else if ( k === 'grid' ) { + out[ k ] = true; + } else if ( k === 'gridOpacity' ) { + out[ k ] = { + 'signal': signalName( prefix+'grid' ) + ' ? ' + name + ' : 0' + }; } else { out[ k ] = { 'signal': name diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/app/bundle.js b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/app/bundle.js index a9c446e7783c..c48cea886181 100644 --- a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/app/bundle.js +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/app/bundle.js @@ -3,4 +3,4 @@ /* eslint-disable */ /* editorconfig-checker-disable-file */ -!function(){B=function(t,e){var r=Object.prototype.toString;t.exports=function(t){var e=r.call(t);return"[object Arguments]"===e||"[object Array]"!==e&&null!==t&&"object"==typeof t&&"number"==typeof t.length&&0<=t.length&&"[object Function]"===r.call(t.callee)}};var B,M,C=function(t){return M||B(M={exports:{},parent:t},M.exports),M.exports},U="function"==typeof Object.defineProperty?Object.defineProperty:null;var N=function(){try{return U({},"x",{}),!0}catch(t){return!1}},z=Object.defineProperty;var D=function(t){return"number"==typeof t};function W(t){for(var e="",r=0;rn.maxWidth&&(n.arg=n.arg.substring(0,n.maxWidth)),n.padZeros?n.arg=$(n.arg,n.width||n.precision,n.padRight):n.width&&(n.arg=st(n.arg,n.width,n.padRight)),o+=n.arg||"",a+=1}return o},ht=/%(?:([1-9]\d*)\$)?([0 +\-#]*)(\*|\d+)?(?:(\.)(\*|\d+)?)?[hlL]?([%A-Za-z])/g;var yt=function(t){for(var e,r,n,i=[],o=0,a=ht.exec(t);a;)(e=t.slice(o,ht.lastIndex-a[0].length)).length&&i.push(e),"%"===a[6]?i.push("%"):i.push((n=void 0,n={mapping:(r=a)[1]?parseInt(r[1],10):void 0,flags:r[2],width:r[3],precision:r[5],specifier:r[6]},"."===r[4]&&void 0===r[5]&&(n.precision="1"),n)),o=ht.lastIndex,a=ht.exec(t);return(e=t.slice(o)).length&&i.push(e),i};var gt=function(t){return"string"==typeof t};var h=function t(e){var r,n;if(!gt(e))throw new TypeError(t("invalid argument. First argument must be a string. Value: `%s`.",e));for(r=[yt(e)],n=1;n=r.length?(s=!!(c=g(o,f)))&&"get"in c&&!("originalValue"in c.get)?c.get:o[f]:(s=Je(o,f),o[f]),s&&!a&&(Qe[l]=o)}}return o},_r=$e([Er("%String.prototype.indexOf%")]),Tr=he(),xr=tr("Object.prototype.toString"),Ar=function(t){return!(Tr&&t&&"object"==typeof t&&Symbol.toStringTag in t)&&"[object Arguments]"===xr(t)},ve=function(){return Ar(arguments)}(),be=(Ar.isLegacyArguments=er,ve?Ar:er),Sr=he()?(rr=tr("RegExp.prototype.exec"),nr={},ir={toString:we=function(){throw nr},valueOf:we},"symbol"==typeof Symbol.toPrimitive&&(ir[Symbol.toPrimitive]=we),function(t){if(!t||"object"!=typeof t)return!1;var e=g(t,"lastIndex");if(!(e&&Je(e,"value")))return!1;try{rr(t,ir)}catch(t){return t===nr}}):(or=tr("Object.prototype.toString"),ar="[object RegExp]",function(t){return!(!t||"object"!=typeof t&&"function"!=typeof t)&&or(t)===ar}),jr=tr("RegExp.prototype.exec"),Or=function(){if(void 0===ur)try{ur=Function("return function* () {}")().constructor}catch(t){ur=!1}return ur},Fr=(e=>{if(Sr(e))return function(t){return null!==jr(e,t)};throw new p("`regex` must be a RegExp")})(/^\s*(?:function)?\*/),Pr=he(),Vr=tr("Object.prototype.toString"),kr=tr("Function.prototype.toString"),Ir=Function.prototype.toString,Rr="object"==typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"==typeof Rr&&"function"==typeof Object.defineProperty)try{sr=Object.defineProperty({},"length",{get:function(){throw fr}}),fr={},Rr(function(){throw 42},null,sr)}catch(t){t!==fr&&(Rr=null)}else Rr=null;function Lr(t){try{return Mr(t)?!1:(Ir.call(t),!0)}catch(t){return!1}}var Br=/^\s*class\b/,Mr=function(t){try{var e=Ir.call(t);return Br.test(e)}catch(t){return!1}},Cr=Object.prototype.toString,Ur="[object Object]",Nr="[object HTMLAllCollection]",zr="[object HTML document.all class]",Dr="[object HTMLCollection]",Wr="function"==typeof Symbol&&!!Symbol.toStringTag,$r=!(0 in[,]),Gr=function(){return!1},qr=("object"==typeof document&&Cr.call(document.all)===Cr.call(document.all)&&(Gr=function(t){if(($r||!t)&&(void 0===t||"object"==typeof t))try{var e=Cr.call(t);return(e===Nr||e===zr||e===Dr||e===Ur)&&null==t("")}catch(t){}return!1}),Rr?function(t){if(Gr(t))return!0;if(!t)return!1;if("function"!=typeof t&&"object"!=typeof t)return!1;try{Rr(t,null,sr)}catch(t){if(t!==fr)return!1}return!Mr(t)&&Lr(t)}:function(t){var e;return!!Gr(t)||!!t&&!("function"!=typeof t&&"object"!=typeof t||!Wr&&(Mr(t)||"[object Function]"!==(e=Cr.call(t))&&"[object GeneratorFunction]"!==e&&!/^\[object HTML/.test(e)))&&Lr(t)}),Hr=Object.prototype.toString,Yr=Object.prototype.hasOwnProperty,Jr=function(t,e,r){for(var n=0,i=t.length;n{var r;return v(e)?t.stylize("undefined","undefined"):m(e)?(r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'",t.stylize(r,"string")):d(e)?t.stylize(""+e,"number"):y(e)?t.stylize(""+e,"boolean"):g(e)?t.stylize("null","null"):void 0})(e,r);if(t)return t;var i,t=Object.keys(r),o=(i={},t.forEach(function(t,e){i[t]=!0}),i);if(e.showHidden&&(t=Object.getOwnPropertyNames(r)),E(r)&&(0<=t.indexOf("message")||0<=t.indexOf("description")))return c(r);if(0===t.length){if(_(r))return a=r.name?": "+r.name:"",e.stylize("[Function"+a+"]","special");if(b(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(w(r))return e.stylize(Date.prototype.toString.call(r),"date");if(E(r))return c(r)}var a="",u=!1,s=["{","}"];if(h(r)&&(u=!0,s=["[","]"]),_(r)&&(a=" [Function"+(r.name?": "+r.name:"")+"]"),b(r)&&(a=" "+RegExp.prototype.toString.call(r)),w(r)&&(a=" "+Date.prototype.toUTCString.call(r)),E(r)&&(a=" "+c(r)),0===t.length&&(!u||0==r.length))return s[0]+a+s[1];if(n<0)return b(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special");e.seen.push(r),f=u?((e,r,n,i,t)=>{for(var o=[],a=0,u=r.length;a{if("undefined"!=typeof window)for(var t in window)try{if(!oi["$"+t]&&Kn.call(window,t)&&null!==window[t]&&"object"==typeof window[t])try{ii(window[t])}catch(t){return!0}}catch(t){return!0}return!1})(),ui=function(t){if("undefined"==typeof window||!ai)return ii(t);try{return ii(t)}catch(t){return!1}},No=function(t){var e=null!==t&&"object"==typeof t,r="[object Function]"===Qn.call(t),n=ti(t),i=e&&"[object String]"===Qn.call(t),o=[];if(!e&&!r&&!n)throw new TypeError("Object.keys called on a non-object");var a=ri&&r;if(i&&0{var r;return v(e)?t.stylize("undefined","undefined"):m(e)?(r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'",t.stylize(r,"string")):d(e)?t.stylize(""+e,"number"):y(e)?t.stylize(""+e,"boolean"):g(e)?t.stylize("null","null"):void 0})(e,r);if(t)return t;var i,t=Object.keys(r),o=(i={},t.forEach(function(t,e){i[t]=!0}),i);if(e.showHidden&&(t=Object.getOwnPropertyNames(r)),E(r)&&(0<=t.indexOf("message")||0<=t.indexOf("description")))return c(r);if(0===t.length){if(_(r))return a=r.name?": "+r.name:"",e.stylize("[Function"+a+"]","special");if(b(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(w(r))return e.stylize(Date.prototype.toString.call(r),"date");if(E(r))return c(r)}var a="",u=!1,s=["{","}"];if(h(r)&&(u=!0,s=["[","]"]),_(r)&&(a=" [Function"+(r.name?": "+r.name:"")+"]"),b(r)&&(a=" "+RegExp.prototype.toString.call(r)),w(r)&&(a=" "+Date.prototype.toUTCString.call(r)),E(r)&&(a=" "+c(r)),0===t.length&&(!u||0==r.length))return s[0]+a+s[1];if(n<0)return b(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special");e.seen.push(r),f=u?((e,r,n,i,t)=>{for(var o=[],a=0,u=r.length;a{var e;try{t()}catch(t){e=t}return e})(e),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),t&&!e&&s(e,r,"Missing expected exception"+n);var i="string"==typeof n,o=!t&&e&&!r;if((!t&&S.isError(e)&&i&&l(e,r)||o)&&s(e,r,"Got unwanted exception"+n),t&&e&&r&&!l(e,r)||!t&&e)throw e}o.AssertionError=function(t){this.name="AssertionError",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=a(u((r=this).actual),128)+" "+r.operator+" "+a(u(r.expected),128),this.generatedMessage=!0);var e,r=t.stackStartFunction||s;Error.captureStackTrace?Error.captureStackTrace(this,r):(t=new Error).stack&&(t=t.stack,e=i(r),0<=(e=t.indexOf("\n"+e))&&(e=t.indexOf("\n",e+1),t=t.substring(e+1)),this.stack=t)},S.inherits(o.AssertionError,Error),o.fail=s,o.ok=f,o.equal=function(t,e,r){t!=e&&s(t,e,r,"==",o.equal)},o.notEqual=function(t,e,r){t==e&&s(t,e,r,"!=",o.notEqual)},o.deepEqual=function(t,e,r){v(t,e,!1)||s(t,e,r,"deepEqual",o.deepEqual)},o.deepStrictEqual=function(t,e,r){v(t,e,!0)||s(t,e,r,"deepStrictEqual",o.deepStrictEqual)},o.notDeepEqual=function(t,e,r){v(t,e,!1)&&s(t,e,r,"notDeepEqual",o.notDeepEqual)},o.notDeepStrictEqual=function t(e,r,n){v(e,r,!0)&&s(e,r,n,"notDeepStrictEqual",t)},o.strictEqual=function(t,e,r){t!==e&&s(t,e,r,"===",o.strictEqual)},o.notStrictEqual=function(t,e,r){t===e&&s(t,e,r,"!==",o.notStrictEqual)},o.throws=function(t,e,r){c(!0,t,e,r)},o.doesNotThrow=function(t,e,r){c(!1,t,e,r)},o.ifError=function(t){if(t)throw t},o.strict=t(function t(e,r){e||s(e,!0,r,"==",t)},o,{equal:o.strictEqual,deepEqual:o.deepStrictEqual,notEqual:o.notStrictEqual,notDeepEqual:o.notDeepStrictEqual}),o.strict.strict=o.strict;var w=Object.keys||function(t){var e,r=[];for(e in t)n.call(t,e)&&r.push(e);return r}}.call(this)}.call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),{}),xi=(!function(s){!function(){function r(){return(new Date).getTime()}for(var e=Array.prototype.slice,n={},i=void 0!==s&&s.console?s.console:"undefined"!=typeof window&&window.console?window.console:{},t=[[function(){},"log"],[function(){i.log.apply(i,arguments)},"info"],[function(){i.log.apply(i,arguments)},"warn"],[function(){i.warn.apply(i,arguments)},"error"],[function(t){n[t]=r()},"time"],[function(t){var e=n[t];if(!e)throw new Error("No such label: "+t);delete n[t];e=r()-e;i.log(t+": "+e+"ms")},"timeEnd"],[function(){var t=new Error;t.name="Trace",t.message=F.format.apply(null,arguments),i.error(t.stack)},"trace"],[function(t){i.log(F.inspect(t)+"\n")},"dir"],[function(t){t||(t=e.call(arguments,1),_i.ok(!1,F.format.apply(null,t)))},"assert"]],o=0;oe.byteLength-t)throw new RangeError(h("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",r*ru));e=new m(e,t,2*r)}}return u(this,"_buffer",e),u(this,"_length",e.length/2),this}u(T,"BYTES_PER_ELEMENT",ru),u(T,"name","Complex64Array"),u(T,"from",function(t){var e,r,n,i,o,a,u,s,f,l,c,p;if(!y(this))throw new TypeError("invalid invocation. `this` context must be a constructor.");if(!iu(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(1<(r=arguments.length)){if(!y(n=arguments[1]))throw new TypeError(h("invalid argument. Second argument must be a function. Value: `%s`.",n));2=this._length))return s(this._buffer,t)}),t(T.prototype,"buffer",function(){return this._buffer.buffer}),t(T.prototype,"byteLength",function(){return this._buffer.byteLength}),t(T.prototype,"byteOffset",function(){return this._buffer.byteOffset}),u(T.prototype,"BYTES_PER_ELEMENT",T.BYTES_PER_ELEMENT),u(T.prototype,"copyWithin",function(t,e){if(_(this))return 2===arguments.length?this._buffer.copyWithin(2*t,2*e):this._buffer.copyWithin(2*t,2*e,2*arguments[2]),this;throw new TypeError("invalid invocation. `this` is not a complex number array.")}),u(T.prototype,"entries",function(){var t,e,r,n,i,o;if(_(this))return n=(t=this)._buffer,r=this._length,o=-1,u(e={},"next",function(){if(o+=1,i||r<=o)return{done:!0};return{value:[o,s(n,o)],done:!1}}),u(e,"return",function(t){if(i=!0,arguments.length)return{value:t,done:!0};return{done:!0}}),b&&u(e,b,function(){return t.entries()}),e;throw new TypeError("invalid invocation. `this` is not a complex number array.")}),u(T.prototype,"every",function(t,e){var r,n;if(!_(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!y(t))throw new TypeError(h("invalid argument. First argument must be a function. Value: `%s`.",t));for(r=this._buffer,n=0;n=this._length))return s(this._buffer,t)}),u(T.prototype,"includes",function(t,e){var r,n,i,o,a;if(!_(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!v(t))throw new TypeError(h("invalid argument. First argument must be a complex number. Value: `%s`.",t));if(1=this._length?e=this._length-1:e<0&&(e+=this._length)}else e=this._length-1;for(i=w(t),o=E(t),r=this._buffer,a=e;0<=a;a--)if(i===r[n=2*a]&&o===r[1+n])return a;return-1}),t(T.prototype,"length",function(){return this._length}),u(T.prototype,"map",function(t,e){var r,n,i,o,a;if(!_(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!y(t))throw new TypeError(h("invalid argument. First argument must be a function. Value: `%s`.",t));for(n=this._buffer,r=(i=new this.constructor(this._length))._buffer,o=0;o=this._length)throw new RangeError(h("invalid argument. Index argument is out-of-bounds. Value: `%u`.",r));n[r*=2]=w(t),n[r+1]=E(t)}else if(_(t)){if(r+(a=t._length)>this._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(f=n.byteOffset+r*ru,(e=t._buffer).buffer===n.buffer&&e.byteOffsetf){for(i=new m(e.length),s=0;sthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(f=n.byteOffset+r*ru,(e=t).buffer===n.buffer&&e.byteOffsetf){for(i=new m(a),s=0;sthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");for(r*=2,s=0;se.byteLength-t)throw new RangeError(h("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",r*lu));e=new po(e,t,2*r)}}return u(this,"_buffer",e),u(this,"_length",e.length/2),this}u(V,"BYTES_PER_ELEMENT",lu),u(V,"name","Complex128Array"),u(V,"from",function(t){var e,r,n,i,o,a,u,s,f,l,c,p;if(!y(this))throw new TypeError("invalid invocation. `this` context must be a constructor.");if(!pu(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(1<(r=arguments.length)){if(!y(n=arguments[1]))throw new TypeError(h("invalid argument. Second argument must be a function. Value: `%s`.",n));2=this._length))return P(this._buffer,t)}),t(V.prototype,"buffer",function(){return this._buffer.buffer}),t(V.prototype,"byteLength",function(){return this._buffer.byteLength}),t(V.prototype,"byteOffset",function(){return this._buffer.byteOffset}),u(V.prototype,"BYTES_PER_ELEMENT",V.BYTES_PER_ELEMENT),u(V.prototype,"copyWithin",function(t,e){if(j(this))return 2===arguments.length?this._buffer.copyWithin(2*t,2*e):this._buffer.copyWithin(2*t,2*e,2*arguments[2]),this;throw new TypeError("invalid invocation. `this` is not a complex number array.")}),u(V.prototype,"entries",function(){var e,t,r,n,i,o,a;if(j(this))return e=(t=this)._buffer,n=this._length,o=-1,a=-2,u(r={},"next",function(){var t;if(o+=1,i||n<=o)return{done:!0};return t=new Ba(e[a+=2],e[a+1]),{value:[o,t],done:!1}}),u(r,"return",function(t){if(i=!0,arguments.length)return{value:t,done:!0};return{done:!0}}),b&&u(r,b,function(){return t.entries()}),r;throw new TypeError("invalid invocation. `this` is not a complex number array.")}),u(V.prototype,"every",function(t,e){var r,n;if(!j(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!y(t))throw new TypeError(h("invalid argument. First argument must be a function. Value: `%s`.",t));for(r=this._buffer,n=0;n=this._length))return P(this._buffer,t)}),t(V.prototype,"length",function(){return this._length}),u(V.prototype,"includes",function(t,e){var r,n,i,o,a;if(!j(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!v(t))throw new TypeError(h("invalid argument. First argument must be a complex number. Value: `%s`.",t));if(1=this._length?e=this._length-1:e<0&&(e+=this._length)}else e=this._length-1;for(i=x(t),o=A(t),r=this._buffer,a=e;0<=a;a--)if(i===r[n=2*a]&&o===r[1+n])return a;return-1}),u(V.prototype,"map",function(t,e){var r,n,i,o,a;if(!j(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!y(t))throw new TypeError(h("invalid argument. First argument must be a function. Value: `%s`.",t));for(n=this._buffer,r=(i=new this.constructor(this._length))._buffer,o=0;o=this._length)throw new RangeError(h("invalid argument. Index argument is out-of-bounds. Value: `%u`.",r));n[r*=2]=x(t),n[r+1]=A(t)}else if(j(t)){if(r+(a=t._length)>this._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(f=n.byteOffset+r*lu,(e=t._buffer).buffer===n.buffer&&e.byteOffsetf){for(i=new po(e.length),s=0;sthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(f=n.byteOffset+r*lu,(e=t).buffer===n.buffer&&e.byteOffsetf){for(i=new po(a),s=0;sthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");for(r*=2,s=0;st.byteLength-e)throw new RangeError(h("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",r*Eu));t=new Ho(t,e,r)}}return u(this,"_buffer",t),u(this,"_length",t.length),this}u(I,"BYTES_PER_ELEMENT",Eu),u(I,"name","BooleanArray"),u(I,"from",function(t){var e,r,n,i,o,a,u,s,f;if(!y(this))throw new TypeError("invalid invocation. `this` context must be a constructor.");if(!Tu(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(1<(r=arguments.length)){if(!y(n=arguments[1]))throw new TypeError(h("invalid argument. Second argument must be a function. Value: `%s`.",n));2=this._length))return l(this._buffer[t])}),u(I.prototype,"includes",function(t,e){var r,n;if(!k(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!mu(t))throw new TypeError(h("invalid argument. First argument must be a boolean. Value: `%s`.",t));if(1=this._length?e=this._length-1:e<0&&(e+=this._length)}else e=this._length-1;for(r=this._buffer,n=e;0<=n;n--)if(t===l(r[n]))return n;return-1}),t(I.prototype,"length",function(){return this._length}),u(I.prototype,"map",function(t,e){var r,n,i,o;if(!k(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!y(t))throw new TypeError("invalid argument. First argument must be a function. Value: `%s`.",t);for(i=this._buffer,r=(n=new this.constructor(this._length))._buffer,o=0;othis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(e=k(t)?t._buffer:t,u=n.byteOffset+r*Eu,e.buffer===n.buffer&&e.byteOffsetu){for(i=new Ho(e.length),a=0;a=this._length)throw new RangeError(h("invalid argument. Index argument is out-of-bounds. Value: `%u`.",r));n[r]=t?1:0}}),u(I.prototype,"slice",function(t,e){var r,n,i,o,a;if(!k(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(i=this._buffer,o=this._length,0===arguments.length)t=0,e=o;else{if(!vu(t))throw new TypeError(h("invalid argument. First argument must be an integer. Value: `%s`.",t));if(t<0&&(t+=o)<0&&(t=0),1===arguments.length)e=o;else{if(!vu(e))throw new TypeError(h("invalid argument. Second argument must be an integer. Value: `%s`.",e));e<0?(e+=o)<0&&(e=0):oi&&!o.warned&&(o.warned=!0,(n=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit")).name="MaxListenersExceededWarning",n.emitter=t,n.type=e,n.count=o.length,r=n,console)&&console.warn&&console.warn(r)),t}function is(t,e,r){t={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},e=function(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}.bind(t);return e.listener=r,t.wrapFn=e}function os(t,e,r){t=t._events;if(void 0===t)return[];t=t[e];if(void 0===t)return[];if("function"==typeof t)return r?[t.listener||t]:[t];if(r){for(var n=t,i=new Array(n.length),o=0;o{if("undefined"!==le(tf))for(var t in tf)try{-1===Xs(Qs,t)&&Ft(tf,t)&&null!==tf[t]&&"object"===le(tf[t])&&Ks(tf[t])}catch(t){return!0}return!1})(),rf="undefined"!=typeof window;var nf=function(t){if(!1===rf&&!ef)return Ks(t);try{return Ks(t)}catch(t){return!1}},of=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"];function af(t){var e,r,n,i,o,a,u=[];if($s(t))for(a=0;a=e.length)return r();e[n](t)}()},L={editor:null,schema:null,sse:null,viz:null};function Nf(t){L.schema=new Zu(L),L.schema.resolve(t)}function zf(t){L.editor=new Uf(L),L.editor.init(),L.editor.on("change",$f),t()}function Df(t){L.sse=new ys(L),L.sse.on("refresh",Gf),L.sse.on("patch",qf),L.sse.on("data",Hf),L.sse.connect(t)}function Wf(t){L.view=new Os(L),L.view.init(t)}function $f(t){c("Updating rendered visualization..."),L.view.onSignal(t.path,t.value)}function Gf(t){L.schema.raw=pe(t.data),L.view.init(),L.editor.refresh()}function qf(){}function Hf(){}function Yf(t){t?console.error(t.message):c("Successfully booted application.")}c("Booting application..."),we([Nf,Wf,Df,zf],Yf)}(); +!function(){B=function(t,e){var r=Object.prototype.toString;t.exports=function(t){var e=r.call(t);return"[object Arguments]"===e||"[object Array]"!==e&&null!==t&&"object"==typeof t&&"number"==typeof t.length&&0<=t.length&&"[object Function]"===r.call(t.callee)}};var B,C,M=function(t){return C||B(C={exports:{},parent:t},C.exports),C.exports},U="function"==typeof Object.defineProperty?Object.defineProperty:null;var N=function(){try{return U({},"x",{}),!0}catch(t){return!1}},D=Object.defineProperty;var z=function(t){return"number"==typeof t};function W(t){for(var e="",r=0;rn.maxWidth&&(n.arg=n.arg.substring(0,n.maxWidth)),n.padZeros?n.arg=$(n.arg,n.width||n.precision,n.padRight):n.width&&(n.arg=st(n.arg,n.width,n.padRight)),o+=n.arg||"",a+=1}return o},ht=/%(?:([1-9]\d*)\$)?([0 +\-#]*)(\*|\d+)?(?:(\.)(\*|\d+)?)?[hlL]?([%A-Za-z])/g;var yt=function(t){for(var e,r,n,i=[],o=0,a=ht.exec(t);a;)(e=t.slice(o,ht.lastIndex-a[0].length)).length&&i.push(e),"%"===a[6]?i.push("%"):i.push((n=void 0,n={mapping:(r=a)[1]?parseInt(r[1],10):void 0,flags:r[2],width:r[3],precision:r[5],specifier:r[6]},"."===r[4]&&void 0===r[5]&&(n.precision="1"),n)),o=ht.lastIndex,a=ht.exec(t);return(e=t.slice(o)).length&&i.push(e),i};var gt=function(t){return"string"==typeof t};var h=function t(e){var r,n;if(!gt(e))throw new TypeError(t("invalid argument. First argument must be a string. Value: `%s`.",e));for(r=[yt(e)],n=1;n=r.length?(s=!!(c=g(o,f)))&&"get"in c&&!("originalValue"in c.get)?c.get:o[f]:(s=Je(o,f),o[f]),s&&!a&&(Qe[l]=o)}}return o},_r=$e([Er("%String.prototype.indexOf%")]),Tr=he(),xr=tr("Object.prototype.toString"),Ar=function(t){return!(Tr&&t&&"object"==typeof t&&Symbol.toStringTag in t)&&"[object Arguments]"===xr(t)},ve=function(){return Ar(arguments)}(),be=(Ar.isLegacyArguments=er,ve?Ar:er),Sr=he()?(rr=tr("RegExp.prototype.exec"),nr={},ir={toString:we=function(){throw nr},valueOf:we},"symbol"==typeof Symbol.toPrimitive&&(ir[Symbol.toPrimitive]=we),function(t){if(!t||"object"!=typeof t)return!1;var e=g(t,"lastIndex");if(!(e&&Je(e,"value")))return!1;try{rr(t,ir)}catch(t){return t===nr}}):(or=tr("Object.prototype.toString"),ar="[object RegExp]",function(t){return!(!t||"object"!=typeof t&&"function"!=typeof t)&&or(t)===ar}),jr=tr("RegExp.prototype.exec"),Or=function(){if(void 0===ur)try{ur=Function("return function* () {}")().constructor}catch(t){ur=!1}return ur},Fr=(e=>{if(Sr(e))return function(t){return null!==jr(e,t)};throw new p("`regex` must be a RegExp")})(/^\s*(?:function)?\*/),Pr=he(),kr=tr("Object.prototype.toString"),Vr=tr("Function.prototype.toString"),Ir=Function.prototype.toString,Rr="object"==typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"==typeof Rr&&"function"==typeof Object.defineProperty)try{sr=Object.defineProperty({},"length",{get:function(){throw fr}}),fr={},Rr(function(){throw 42},null,sr)}catch(t){t!==fr&&(Rr=null)}else Rr=null;function Lr(t){try{return Cr(t)?!1:(Ir.call(t),!0)}catch(t){return!1}}var Br=/^\s*class\b/,Cr=function(t){try{var e=Ir.call(t);return Br.test(e)}catch(t){return!1}},Mr=Object.prototype.toString,Ur="[object Object]",Nr="[object HTMLAllCollection]",Dr="[object HTML document.all class]",zr="[object HTMLCollection]",Wr="function"==typeof Symbol&&!!Symbol.toStringTag,$r=!(0 in[,]),Gr=function(){return!1},qr=("object"==typeof document&&Mr.call(document.all)===Mr.call(document.all)&&(Gr=function(t){if(($r||!t)&&(void 0===t||"object"==typeof t))try{var e=Mr.call(t);return(e===Nr||e===Dr||e===zr||e===Ur)&&null==t("")}catch(t){}return!1}),Rr?function(t){if(Gr(t))return!0;if(!t)return!1;if("function"!=typeof t&&"object"!=typeof t)return!1;try{Rr(t,null,sr)}catch(t){if(t!==fr)return!1}return!Cr(t)&&Lr(t)}:function(t){var e;return!!Gr(t)||!!t&&!("function"!=typeof t&&"object"!=typeof t||!Wr&&(Cr(t)||"[object Function]"!==(e=Mr.call(t))&&"[object GeneratorFunction]"!==e&&!/^\[object HTML/.test(e)))&&Lr(t)}),Hr=Object.prototype.toString,Yr=Object.prototype.hasOwnProperty,Jr=function(t,e,r){for(var n=0,i=t.length;n{var r;return v(e)?t.stylize("undefined","undefined"):m(e)?(r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'",t.stylize(r,"string")):d(e)?t.stylize(""+e,"number"):y(e)?t.stylize(""+e,"boolean"):g(e)?t.stylize("null","null"):void 0})(e,r);if(t)return t;var i,t=Object.keys(r),o=(i={},t.forEach(function(t,e){i[t]=!0}),i);if(e.showHidden&&(t=Object.getOwnPropertyNames(r)),E(r)&&(0<=t.indexOf("message")||0<=t.indexOf("description")))return c(r);if(0===t.length){if(_(r))return a=r.name?": "+r.name:"",e.stylize("[Function"+a+"]","special");if(b(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(w(r))return e.stylize(Date.prototype.toString.call(r),"date");if(E(r))return c(r)}var a="",u=!1,s=["{","}"];if(h(r)&&(u=!0,s=["[","]"]),_(r)&&(a=" [Function"+(r.name?": "+r.name:"")+"]"),b(r)&&(a=" "+RegExp.prototype.toString.call(r)),w(r)&&(a=" "+Date.prototype.toUTCString.call(r)),E(r)&&(a=" "+c(r)),0===t.length&&(!u||0==r.length))return s[0]+a+s[1];if(n<0)return b(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special");e.seen.push(r),f=u?((e,r,n,i,t)=>{for(var o=[],a=0,u=r.length;a{if("undefined"!=typeof window)for(var t in window)try{if(!oi["$"+t]&&Kn.call(window,t)&&null!==window[t]&&"object"==typeof window[t])try{ii(window[t])}catch(t){return!0}}catch(t){return!0}return!1})(),ui=function(t){if("undefined"==typeof window||!ai)return ii(t);try{return ii(t)}catch(t){return!1}},No=function(t){var e=null!==t&&"object"==typeof t,r="[object Function]"===Qn.call(t),n=ti(t),i=e&&"[object String]"===Qn.call(t),o=[];if(!e&&!r&&!n)throw new TypeError("Object.keys called on a non-object");var a=ri&&r;if(i&&0{var r;return v(e)?t.stylize("undefined","undefined"):m(e)?(r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'",t.stylize(r,"string")):d(e)?t.stylize(""+e,"number"):y(e)?t.stylize(""+e,"boolean"):g(e)?t.stylize("null","null"):void 0})(e,r);if(t)return t;var i,t=Object.keys(r),o=(i={},t.forEach(function(t,e){i[t]=!0}),i);if(e.showHidden&&(t=Object.getOwnPropertyNames(r)),E(r)&&(0<=t.indexOf("message")||0<=t.indexOf("description")))return c(r);if(0===t.length){if(_(r))return a=r.name?": "+r.name:"",e.stylize("[Function"+a+"]","special");if(b(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(w(r))return e.stylize(Date.prototype.toString.call(r),"date");if(E(r))return c(r)}var a="",u=!1,s=["{","}"];if(h(r)&&(u=!0,s=["[","]"]),_(r)&&(a=" [Function"+(r.name?": "+r.name:"")+"]"),b(r)&&(a=" "+RegExp.prototype.toString.call(r)),w(r)&&(a=" "+Date.prototype.toUTCString.call(r)),E(r)&&(a=" "+c(r)),0===t.length&&(!u||0==r.length))return s[0]+a+s[1];if(n<0)return b(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special");e.seen.push(r),f=u?((e,r,n,i,t)=>{for(var o=[],a=0,u=r.length;a{var e;try{t()}catch(t){e=t}return e})(e),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),t&&!e&&s(e,r,"Missing expected exception"+n);var i="string"==typeof n,o=!t&&e&&!r;if((!t&&S.isError(e)&&i&&l(e,r)||o)&&s(e,r,"Got unwanted exception"+n),t&&e&&r&&!l(e,r)||!t&&e)throw e}o.AssertionError=function(t){this.name="AssertionError",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=a(u((r=this).actual),128)+" "+r.operator+" "+a(u(r.expected),128),this.generatedMessage=!0);var e,r=t.stackStartFunction||s;Error.captureStackTrace?Error.captureStackTrace(this,r):(t=new Error).stack&&(t=t.stack,e=i(r),0<=(e=t.indexOf("\n"+e))&&(e=t.indexOf("\n",e+1),t=t.substring(e+1)),this.stack=t)},S.inherits(o.AssertionError,Error),o.fail=s,o.ok=f,o.equal=function(t,e,r){t!=e&&s(t,e,r,"==",o.equal)},o.notEqual=function(t,e,r){t==e&&s(t,e,r,"!=",o.notEqual)},o.deepEqual=function(t,e,r){v(t,e,!1)||s(t,e,r,"deepEqual",o.deepEqual)},o.deepStrictEqual=function(t,e,r){v(t,e,!0)||s(t,e,r,"deepStrictEqual",o.deepStrictEqual)},o.notDeepEqual=function(t,e,r){v(t,e,!1)&&s(t,e,r,"notDeepEqual",o.notDeepEqual)},o.notDeepStrictEqual=function t(e,r,n){v(e,r,!0)&&s(e,r,n,"notDeepStrictEqual",t)},o.strictEqual=function(t,e,r){t!==e&&s(t,e,r,"===",o.strictEqual)},o.notStrictEqual=function(t,e,r){t===e&&s(t,e,r,"!==",o.notStrictEqual)},o.throws=function(t,e,r){c(!0,t,e,r)},o.doesNotThrow=function(t,e,r){c(!1,t,e,r)},o.ifError=function(t){if(t)throw t},o.strict=t(function t(e,r){e||s(e,!0,r,"==",t)},o,{equal:o.strictEqual,deepEqual:o.deepStrictEqual,notEqual:o.notStrictEqual,notDeepEqual:o.notDeepStrictEqual}),o.strict.strict=o.strict;var w=Object.keys||function(t){var e,r=[];for(e in t)n.call(t,e)&&r.push(e);return r}}.call(this)}.call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),{}),xi=(!function(s){!function(){function r(){return(new Date).getTime()}for(var e=Array.prototype.slice,n={},i=void 0!==s&&s.console?s.console:"undefined"!=typeof window&&window.console?window.console:{},t=[[function(){},"log"],[function(){i.log.apply(i,arguments)},"info"],[function(){i.log.apply(i,arguments)},"warn"],[function(){i.warn.apply(i,arguments)},"error"],[function(t){n[t]=r()},"time"],[function(t){var e=n[t];if(!e)throw new Error("No such label: "+t);delete n[t];e=r()-e;i.log(t+": "+e+"ms")},"timeEnd"],[function(){var t=new Error;t.name="Trace",t.message=F.format.apply(null,arguments),i.error(t.stack)},"trace"],[function(t){i.log(F.inspect(t)+"\n")},"dir"],[function(t){t||(t=e.call(arguments,1),_i.ok(!1,F.format.apply(null,t)))},"assert"]],o=0;oe.byteLength-t)throw new RangeError(h("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",r*ru));e=new m(e,t,2*r)}}return u(this,"_buffer",e),u(this,"_length",e.length/2),this}u(T,"BYTES_PER_ELEMENT",ru),u(T,"name","Complex64Array"),u(T,"from",function(t){var e,r,n,i,o,a,u,s,f,l,c,p;if(!y(this))throw new TypeError("invalid invocation. `this` context must be a constructor.");if(!iu(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(1<(r=arguments.length)){if(!y(n=arguments[1]))throw new TypeError(h("invalid argument. Second argument must be a function. Value: `%s`.",n));2=this._length))return s(this._buffer,t)}),t(T.prototype,"buffer",function(){return this._buffer.buffer}),t(T.prototype,"byteLength",function(){return this._buffer.byteLength}),t(T.prototype,"byteOffset",function(){return this._buffer.byteOffset}),u(T.prototype,"BYTES_PER_ELEMENT",T.BYTES_PER_ELEMENT),u(T.prototype,"copyWithin",function(t,e){if(_(this))return 2===arguments.length?this._buffer.copyWithin(2*t,2*e):this._buffer.copyWithin(2*t,2*e,2*arguments[2]),this;throw new TypeError("invalid invocation. `this` is not a complex number array.")}),u(T.prototype,"entries",function(){var t,e,r,n,i,o;if(_(this))return n=(t=this)._buffer,r=this._length,o=-1,u(e={},"next",function(){if(o+=1,i||r<=o)return{done:!0};return{value:[o,s(n,o)],done:!1}}),u(e,"return",function(t){if(i=!0,arguments.length)return{value:t,done:!0};return{done:!0}}),b&&u(e,b,function(){return t.entries()}),e;throw new TypeError("invalid invocation. `this` is not a complex number array.")}),u(T.prototype,"every",function(t,e){var r,n;if(!_(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!y(t))throw new TypeError(h("invalid argument. First argument must be a function. Value: `%s`.",t));for(r=this._buffer,n=0;n=this._length))return s(this._buffer,t)}),u(T.prototype,"includes",function(t,e){var r,n,i,o,a;if(!_(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!v(t))throw new TypeError(h("invalid argument. First argument must be a complex number. Value: `%s`.",t));if(1=this._length?e=this._length-1:e<0&&(e+=this._length)}else e=this._length-1;for(i=w(t),o=E(t),r=this._buffer,a=e;0<=a;a--)if(i===r[n=2*a]&&o===r[1+n])return a;return-1}),t(T.prototype,"length",function(){return this._length}),u(T.prototype,"map",function(t,e){var r,n,i,o,a;if(!_(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!y(t))throw new TypeError(h("invalid argument. First argument must be a function. Value: `%s`.",t));for(n=this._buffer,r=(i=new this.constructor(this._length))._buffer,o=0;o=this._length)throw new RangeError(h("invalid argument. Index argument is out-of-bounds. Value: `%u`.",r));n[r*=2]=w(t),n[r+1]=E(t)}else if(_(t)){if(r+(a=t._length)>this._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(f=n.byteOffset+r*ru,(e=t._buffer).buffer===n.buffer&&e.byteOffsetf){for(i=new m(e.length),s=0;sthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(f=n.byteOffset+r*ru,(e=t).buffer===n.buffer&&e.byteOffsetf){for(i=new m(a),s=0;sthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");for(r*=2,s=0;se.byteLength-t)throw new RangeError(h("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",r*lu));e=new po(e,t,2*r)}}return u(this,"_buffer",e),u(this,"_length",e.length/2),this}u(k,"BYTES_PER_ELEMENT",lu),u(k,"name","Complex128Array"),u(k,"from",function(t){var e,r,n,i,o,a,u,s,f,l,c,p;if(!y(this))throw new TypeError("invalid invocation. `this` context must be a constructor.");if(!pu(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(1<(r=arguments.length)){if(!y(n=arguments[1]))throw new TypeError(h("invalid argument. Second argument must be a function. Value: `%s`.",n));2=this._length))return P(this._buffer,t)}),t(k.prototype,"buffer",function(){return this._buffer.buffer}),t(k.prototype,"byteLength",function(){return this._buffer.byteLength}),t(k.prototype,"byteOffset",function(){return this._buffer.byteOffset}),u(k.prototype,"BYTES_PER_ELEMENT",k.BYTES_PER_ELEMENT),u(k.prototype,"copyWithin",function(t,e){if(j(this))return 2===arguments.length?this._buffer.copyWithin(2*t,2*e):this._buffer.copyWithin(2*t,2*e,2*arguments[2]),this;throw new TypeError("invalid invocation. `this` is not a complex number array.")}),u(k.prototype,"entries",function(){var e,t,r,n,i,o,a;if(j(this))return e=(t=this)._buffer,n=this._length,o=-1,a=-2,u(r={},"next",function(){var t;if(o+=1,i||n<=o)return{done:!0};return t=new Ba(e[a+=2],e[a+1]),{value:[o,t],done:!1}}),u(r,"return",function(t){if(i=!0,arguments.length)return{value:t,done:!0};return{done:!0}}),b&&u(r,b,function(){return t.entries()}),r;throw new TypeError("invalid invocation. `this` is not a complex number array.")}),u(k.prototype,"every",function(t,e){var r,n;if(!j(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!y(t))throw new TypeError(h("invalid argument. First argument must be a function. Value: `%s`.",t));for(r=this._buffer,n=0;n=this._length))return P(this._buffer,t)}),t(k.prototype,"length",function(){return this._length}),u(k.prototype,"includes",function(t,e){var r,n,i,o,a;if(!j(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!v(t))throw new TypeError(h("invalid argument. First argument must be a complex number. Value: `%s`.",t));if(1=this._length?e=this._length-1:e<0&&(e+=this._length)}else e=this._length-1;for(i=x(t),o=A(t),r=this._buffer,a=e;0<=a;a--)if(i===r[n=2*a]&&o===r[1+n])return a;return-1}),u(k.prototype,"map",function(t,e){var r,n,i,o,a;if(!j(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!y(t))throw new TypeError(h("invalid argument. First argument must be a function. Value: `%s`.",t));for(n=this._buffer,r=(i=new this.constructor(this._length))._buffer,o=0;o=this._length)throw new RangeError(h("invalid argument. Index argument is out-of-bounds. Value: `%u`.",r));n[r*=2]=x(t),n[r+1]=A(t)}else if(j(t)){if(r+(a=t._length)>this._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(f=n.byteOffset+r*lu,(e=t._buffer).buffer===n.buffer&&e.byteOffsetf){for(i=new po(e.length),s=0;sthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(f=n.byteOffset+r*lu,(e=t).buffer===n.buffer&&e.byteOffsetf){for(i=new po(a),s=0;sthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");for(r*=2,s=0;st.byteLength-e)throw new RangeError(h("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",r*Eu));t=new Ho(t,e,r)}}return u(this,"_buffer",t),u(this,"_length",t.length),this}u(I,"BYTES_PER_ELEMENT",Eu),u(I,"name","BooleanArray"),u(I,"from",function(t){var e,r,n,i,o,a,u,s,f;if(!y(this))throw new TypeError("invalid invocation. `this` context must be a constructor.");if(!Tu(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(1<(r=arguments.length)){if(!y(n=arguments[1]))throw new TypeError(h("invalid argument. Second argument must be a function. Value: `%s`.",n));2=this._length))return l(this._buffer[t])}),u(I.prototype,"includes",function(t,e){var r,n;if(!V(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!mu(t))throw new TypeError(h("invalid argument. First argument must be a boolean. Value: `%s`.",t));if(1=this._length?e=this._length-1:e<0&&(e+=this._length)}else e=this._length-1;for(r=this._buffer,n=e;0<=n;n--)if(t===l(r[n]))return n;return-1}),t(I.prototype,"length",function(){return this._length}),u(I.prototype,"map",function(t,e){var r,n,i,o;if(!V(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!y(t))throw new TypeError("invalid argument. First argument must be a function. Value: `%s`.",t);for(i=this._buffer,r=(n=new this.constructor(this._length))._buffer,o=0;othis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(e=V(t)?t._buffer:t,u=n.byteOffset+r*Eu,e.buffer===n.buffer&&e.byteOffsetu){for(i=new Ho(e.length),a=0;a=this._length)throw new RangeError(h("invalid argument. Index argument is out-of-bounds. Value: `%u`.",r));n[r]=t?1:0}}),u(I.prototype,"slice",function(t,e){var r,n,i,o,a;if(!V(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(i=this._buffer,o=this._length,0===arguments.length)t=0,e=o;else{if(!vu(t))throw new TypeError(h("invalid argument. First argument must be an integer. Value: `%s`.",t));if(t<0&&(t+=o)<0&&(t=0),1===arguments.length)e=o;else{if(!vu(e))throw new TypeError(h("invalid argument. Second argument must be an integer. Value: `%s`.",e));e<0?(e+=o)<0&&(e=0):oi&&!o.warned&&(o.warned=!0,(n=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit")).name="MaxListenersExceededWarning",n.emitter=t,n.type=e,n.count=o.length,r=n,console)&&console.warn&&console.warn(r)),t}function is(t,e,r){t={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},e=function(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}.bind(t);return e.listener=r,t.wrapFn=e}function os(t,e,r){t=t._events;if(void 0===t)return[];t=t[e];if(void 0===t)return[];if("function"==typeof t)return r?[t.listener||t]:[t];if(r){for(var n=t,i=new Array(n.length),o=0;o{if("undefined"!==le(tf))for(var t in tf)try{-1===Xs(Qs,t)&&Ft(tf,t)&&null!==tf[t]&&"object"===le(tf[t])&&Ks(tf[t])}catch(t){return!0}return!1})(),rf="undefined"!=typeof window;var nf=function(t){if(!1===rf&&!ef)return Ks(t);try{return Ks(t)}catch(t){return!1}},of=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"];function af(t){var e,r,n,i,o,a,u=[];if($s(t))for(a=0;a=e.length)return r();e[n](t)}()},L={editor:null,schema:null,sse:null,viz:null};function Wf(t){L.schema=new Zu(L),L.schema.resolve(t)}function $f(t){L.editor=new zf(L),L.editor.init(),L.editor.on("change",Hf),t()}function Gf(t){L.sse=new ys(L),L.sse.on("refresh",Yf),L.sse.on("patch",Jf),L.sse.on("data",Zf),L.sse.connect(t)}function qf(t){L.view=new Os(L),L.view.init(t)}function Hf(t){c("Updating rendered visualization..."),L.view.onSignal(t.path,t.value)}function Yf(t){L.schema.raw=pe(t.data),L.view.init(),L.editor.refresh()}function Jf(){}function Zf(){}function Xf(t){t?console.error(t.message):c("Successfully booted application.")}c("Booting application..."),we([Wf,qf,Gf,$f],Xf)}(); diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-cap/index.js b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-cap/index.js new file mode 100644 index 000000000000..3d563c0612f1 --- /dev/null +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-cap/index.js @@ -0,0 +1,43 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var schema = require( './schema.json' ); +var handler = require( './main.js' ); + + +// MAIN // + +/** +* Defines a route handler for receiving updating a plot configuration. +* +* @private +* @returns {Object} route declaration +*/ +function route() { + schema.handler = handler; + return schema; +} + + +// EXPORTS // + +module.exports = route; diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-cap/main.js b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-cap/main.js new file mode 100644 index 000000000000..2ffe7b29f0e1 --- /dev/null +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-cap/main.js @@ -0,0 +1,57 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var middleware = require( './../../../../middleware_sequence.js' ); +var allowCredentials = require( './../../../../middleware/allow-credentials' ); +var tryAssign = require( './../../../../middleware/plot-try-assign' ); +var body = require( './../../../../middleware/body' ); +var ok = require( './../../../../middleware/ok' ); +var onError = require( './../../../../middleware/error' ); + + +// VARIABLES // + +var steps = [ + allowCredentials, + body, + tryAssign( [ 'config', 'axes', ':axis' ], 'gridCap' ), + ok +]; + + +// MAIN // + +/** +* Request handler for updating a plot configuration. +* +* @private +* @name handler +* @type {Function} +* @param {Object} request - request object +* @param {Object} response - response object +*/ +var handler = middleware( steps, onError ); + + +// EXPORTS // + +module.exports = handler; diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-cap/schema.json b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-cap/schema.json new file mode 100644 index 000000000000..e5ea545bc4ca --- /dev/null +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-cap/schema.json @@ -0,0 +1,40 @@ +{ + "method": "POST", + "url": "/config/axes/:axis/gridCap", + "schema": { + "response": { + "200": { + "type": "string" + }, + "400": { + "type": "object", + "properties": { + "statusCode": { + "type": "integer" + }, + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "413": { + "type": "object", + "properties": { + "statusCode": { + "type": "integer" + }, + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + } + } + } + }, + "handler": null +} diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-color/index.js b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-color/index.js new file mode 100644 index 000000000000..3d563c0612f1 --- /dev/null +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-color/index.js @@ -0,0 +1,43 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var schema = require( './schema.json' ); +var handler = require( './main.js' ); + + +// MAIN // + +/** +* Defines a route handler for receiving updating a plot configuration. +* +* @private +* @returns {Object} route declaration +*/ +function route() { + schema.handler = handler; + return schema; +} + + +// EXPORTS // + +module.exports = route; diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-color/main.js b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-color/main.js new file mode 100644 index 000000000000..f41aa0d8b44c --- /dev/null +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-color/main.js @@ -0,0 +1,57 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var middleware = require( './../../../../middleware_sequence.js' ); +var allowCredentials = require( './../../../../middleware/allow-credentials' ); +var tryAssign = require( './../../../../middleware/plot-try-assign' ); +var body = require( './../../../../middleware/body' ); +var ok = require( './../../../../middleware/ok' ); +var onError = require( './../../../../middleware/error' ); + + +// VARIABLES // + +var steps = [ + allowCredentials, + body, + tryAssign( [ 'config', 'axes', ':axis' ], 'gridColor' ), + ok +]; + + +// MAIN // + +/** +* Request handler for updating a plot configuration. +* +* @private +* @name handler +* @type {Function} +* @param {Object} request - request object +* @param {Object} response - response object +*/ +var handler = middleware( steps, onError ); + + +// EXPORTS // + +module.exports = handler; diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-color/schema.json b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-color/schema.json new file mode 100644 index 000000000000..e36cbb5786c8 --- /dev/null +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-color/schema.json @@ -0,0 +1,40 @@ +{ + "method": "POST", + "url": "/config/axes/:axis/gridColor", + "schema": { + "response": { + "200": { + "type": "string" + }, + "400": { + "type": "object", + "properties": { + "statusCode": { + "type": "integer" + }, + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "413": { + "type": "object", + "properties": { + "statusCode": { + "type": "integer" + }, + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + } + } + } + }, + "handler": null +} diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-dash-offset/index.js b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-dash-offset/index.js new file mode 100644 index 000000000000..3d563c0612f1 --- /dev/null +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-dash-offset/index.js @@ -0,0 +1,43 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var schema = require( './schema.json' ); +var handler = require( './main.js' ); + + +// MAIN // + +/** +* Defines a route handler for receiving updating a plot configuration. +* +* @private +* @returns {Object} route declaration +*/ +function route() { + schema.handler = handler; + return schema; +} + + +// EXPORTS // + +module.exports = route; diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-dash-offset/main.js b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-dash-offset/main.js new file mode 100644 index 000000000000..31cf96624f31 --- /dev/null +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-dash-offset/main.js @@ -0,0 +1,58 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var middleware = require( './../../../../middleware_sequence.js' ); +var allowCredentials = require( './../../../../middleware/allow-credentials' ); +var tryAssign = require( './../../../../middleware/plot-try-assign' ); +var body = require( './../../../../middleware/body' ); +var ok = require( './../../../../middleware/ok' ); +var onError = require( './../../../../middleware/error' ); +var transform = require( './../../transforms.js' ).toNumber; + + +// VARIABLES // + +var steps = [ + allowCredentials, + body, + tryAssign( [ 'config', 'axes', ':axis' ], 'gridDashOffset', transform ), + ok +]; + + +// MAIN // + +/** +* Request handler for updating a plot configuration. +* +* @private +* @name handler +* @type {Function} +* @param {Object} request - request object +* @param {Object} response - response object +*/ +var handler = middleware( steps, onError ); + + +// EXPORTS // + +module.exports = handler; diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-dash-offset/schema.json b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-dash-offset/schema.json new file mode 100644 index 000000000000..3fa8971c3699 --- /dev/null +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-dash-offset/schema.json @@ -0,0 +1,40 @@ +{ + "method": "POST", + "url": "/config/axes/:axis/gridDashOffset", + "schema": { + "response": { + "200": { + "type": "string" + }, + "400": { + "type": "object", + "properties": { + "statusCode": { + "type": "integer" + }, + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "413": { + "type": "object", + "properties": { + "statusCode": { + "type": "integer" + }, + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + } + } + } + }, + "handler": null +} diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-dash/index.js b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-dash/index.js new file mode 100644 index 000000000000..3d563c0612f1 --- /dev/null +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-dash/index.js @@ -0,0 +1,43 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var schema = require( './schema.json' ); +var handler = require( './main.js' ); + + +// MAIN // + +/** +* Defines a route handler for receiving updating a plot configuration. +* +* @private +* @returns {Object} route declaration +*/ +function route() { + schema.handler = handler; + return schema; +} + + +// EXPORTS // + +module.exports = route; diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-dash/main.js b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-dash/main.js new file mode 100644 index 000000000000..9385ac02917a --- /dev/null +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-dash/main.js @@ -0,0 +1,58 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var middleware = require( './../../../../middleware_sequence.js' ); +var allowCredentials = require( './../../../../middleware/allow-credentials' ); +var tryAssign = require( './../../../../middleware/plot-try-assign' ); +var body = require( './../../../../middleware/body' ); +var ok = require( './../../../../middleware/ok' ); +var onError = require( './../../../../middleware/error' ); +var transform = require( './../../transforms.js' ).toIntegerArray; + + +// VARIABLES // + +var steps = [ + allowCredentials, + body, + tryAssign( [ 'config', 'axes', ':axis' ], 'gridDash', transform ), + ok +]; + + +// MAIN // + +/** +* Request handler for updating a plot configuration. +* +* @private +* @name handler +* @type {Function} +* @param {Object} request - request object +* @param {Object} response - response object +*/ +var handler = middleware( steps, onError ); + + +// EXPORTS // + +module.exports = handler; diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-dash/schema.json b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-dash/schema.json new file mode 100644 index 000000000000..068a67c184e0 --- /dev/null +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-dash/schema.json @@ -0,0 +1,40 @@ +{ + "method": "POST", + "url": "/config/axes/:axis/gridDash", + "schema": { + "response": { + "200": { + "type": "string" + }, + "400": { + "type": "object", + "properties": { + "statusCode": { + "type": "integer" + }, + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "413": { + "type": "object", + "properties": { + "statusCode": { + "type": "integer" + }, + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + } + } + } + }, + "handler": null +} diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-opacity/index.js b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-opacity/index.js new file mode 100644 index 000000000000..3d563c0612f1 --- /dev/null +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-opacity/index.js @@ -0,0 +1,43 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var schema = require( './schema.json' ); +var handler = require( './main.js' ); + + +// MAIN // + +/** +* Defines a route handler for receiving updating a plot configuration. +* +* @private +* @returns {Object} route declaration +*/ +function route() { + schema.handler = handler; + return schema; +} + + +// EXPORTS // + +module.exports = route; diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-opacity/main.js b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-opacity/main.js new file mode 100644 index 000000000000..458f2cbb42c2 --- /dev/null +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-opacity/main.js @@ -0,0 +1,58 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var middleware = require( './../../../../middleware_sequence.js' ); +var allowCredentials = require( './../../../../middleware/allow-credentials' ); +var tryAssign = require( './../../../../middleware/plot-try-assign' ); +var body = require( './../../../../middleware/body' ); +var ok = require( './../../../../middleware/ok' ); +var onError = require( './../../../../middleware/error' ); +var transform = require( './../../transforms.js' ).toNumber; + + +// VARIABLES // + +var steps = [ + allowCredentials, + body, + tryAssign( [ 'config', 'axes', ':axis' ], 'gridOpacity', transform ), + ok +]; + + +// MAIN // + +/** +* Request handler for updating a plot configuration. +* +* @private +* @name handler +* @type {Function} +* @param {Object} request - request object +* @param {Object} response - response object +*/ +var handler = middleware( steps, onError ); + + +// EXPORTS // + +module.exports = handler; diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-opacity/schema.json b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-opacity/schema.json new file mode 100644 index 000000000000..84adfde5f2c6 --- /dev/null +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-opacity/schema.json @@ -0,0 +1,40 @@ +{ + "method": "POST", + "url": "/config/axes/:axis/gridOpacity", + "schema": { + "response": { + "200": { + "type": "string" + }, + "400": { + "type": "object", + "properties": { + "statusCode": { + "type": "integer" + }, + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "413": { + "type": "object", + "properties": { + "statusCode": { + "type": "integer" + }, + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + } + } + } + }, + "handler": null +} diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-scale/index.js b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-scale/index.js new file mode 100644 index 000000000000..3d563c0612f1 --- /dev/null +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-scale/index.js @@ -0,0 +1,43 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var schema = require( './schema.json' ); +var handler = require( './main.js' ); + + +// MAIN // + +/** +* Defines a route handler for receiving updating a plot configuration. +* +* @private +* @returns {Object} route declaration +*/ +function route() { + schema.handler = handler; + return schema; +} + + +// EXPORTS // + +module.exports = route; diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-scale/main.js b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-scale/main.js new file mode 100644 index 000000000000..0b978ffe4ec8 --- /dev/null +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-scale/main.js @@ -0,0 +1,57 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var middleware = require( './../../../../middleware_sequence.js' ); +var allowCredentials = require( './../../../../middleware/allow-credentials' ); +var tryAssign = require( './../../../../middleware/plot-try-assign' ); +var body = require( './../../../../middleware/body' ); +var ok = require( './../../../../middleware/ok' ); +var onError = require( './../../../../middleware/error' ); + + +// VARIABLES // + +var steps = [ + allowCredentials, + body, + tryAssign( [ 'config', 'axes', ':axis' ], 'gridScale' ), + ok +]; + + +// MAIN // + +/** +* Request handler for updating a plot configuration. +* +* @private +* @name handler +* @type {Function} +* @param {Object} request - request object +* @param {Object} response - response object +*/ +var handler = middleware( steps, onError ); + + +// EXPORTS // + +module.exports = handler; diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-scale/schema.json b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-scale/schema.json new file mode 100644 index 000000000000..3d9b11f47ff4 --- /dev/null +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid-scale/schema.json @@ -0,0 +1,40 @@ +{ + "method": "POST", + "url": "/config/axes/:axis/gridScale", + "schema": { + "response": { + "200": { + "type": "string" + }, + "400": { + "type": "object", + "properties": { + "statusCode": { + "type": "integer" + }, + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "413": { + "type": "object", + "properties": { + "statusCode": { + "type": "integer" + }, + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + } + } + } + }, + "handler": null +} diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid/index.js b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid/index.js new file mode 100644 index 000000000000..3d563c0612f1 --- /dev/null +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid/index.js @@ -0,0 +1,43 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var schema = require( './schema.json' ); +var handler = require( './main.js' ); + + +// MAIN // + +/** +* Defines a route handler for receiving updating a plot configuration. +* +* @private +* @returns {Object} route declaration +*/ +function route() { + schema.handler = handler; + return schema; +} + + +// EXPORTS // + +module.exports = route; diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid/main.js b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid/main.js new file mode 100644 index 000000000000..e9407bf71742 --- /dev/null +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid/main.js @@ -0,0 +1,58 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var middleware = require( './../../../../middleware_sequence.js' ); +var allowCredentials = require( './../../../../middleware/allow-credentials' ); +var tryAssign = require( './../../../../middleware/plot-try-assign' ); +var body = require( './../../../../middleware/body' ); +var ok = require( './../../../../middleware/ok' ); +var onError = require( './../../../../middleware/error' ); +var transform = require( './../../transforms.js' ).toBoolean; + + +// VARIABLES // + +var steps = [ + allowCredentials, + body, + tryAssign( [ 'config', 'axes', ':axis' ], 'grid', transform ), + ok +]; + + +// MAIN // + +/** +* Request handler for updating a plot configuration. +* +* @private +* @name handler +* @type {Function} +* @param {Object} request - request object +* @param {Object} response - response object +*/ +var handler = middleware( steps, onError ); + + +// EXPORTS // + +module.exports = handler; diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid/schema.json b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid/schema.json new file mode 100644 index 000000000000..a0a9d948fe16 --- /dev/null +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/config/axes/grid/schema.json @@ -0,0 +1,40 @@ +{ + "method": "POST", + "url": "/config/axes/:axis/grid", + "schema": { + "response": { + "200": { + "type": "string" + }, + "400": { + "type": "object", + "properties": { + "statusCode": { + "type": "integer" + }, + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "413": { + "type": "object", + "properties": { + "statusCode": { + "type": "integer" + }, + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + } + } + } + }, + "handler": null +} diff --git a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/index.js b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/index.js index 2497d2c281f4..fca4421960a1 100644 --- a/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/index.js +++ b/lib/node_modules/@stdlib/plot/base/view/lib/browser/routes/index.js @@ -27,7 +27,7 @@ var home = require( './home' ); var landing = require( './landing' ); var ping = require( './ping' ); var schema = require( './schema' ); -var status = require( './status' ); +var status = require( './status' ); // eslint-disable-line stdlib/no-redeclare var lilgui = require( './vendored/lilgui' ); var vega = require( './vendored/vega' ); var axesAria = require( './config/axes/aria' ); @@ -41,6 +41,13 @@ var axesDomainDashOffset = require( './config/axes/domain-dash-offset' ); var axesDomainOpacity = require( './config/axes/domain-opacity' ); var axesDomainWidth = require( './config/axes/domain-width' ); var axesFormatType = require( './config/axes/format-type' ); +var axesGrid = require( './config/axes/grid' ); +var axesGridCap = require( './config/axes/grid-cap' ); +var axesGridColor = require( './config/axes/grid-color' ); +var axesGridDash = require( './config/axes/grid-dash' ); +var axesGridDashOffset = require( './config/axes/grid-dash-offset' ); +var axesGridOpacity = require( './config/axes/grid-opacity' ); +var axesGridScale = require( './config/axes/grid-scale' ); var axesGridWidth = require( './config/axes/grid-width' ); var axesLabels = require( './config/axes/labels' ); var axesOrient = require( './config/axes/orient' ); @@ -124,6 +131,13 @@ function register( router ) { router.route( axesDomainOpacity() ); // /config/axes/:axis/domainOpacity router.route( axesDomainWidth() ); // /config/axes/:axis/domainWidth router.route( axesFormatType() ); // /config/axes/:axis/formatType + router.route( axesGrid() ); // /config/axes/:axis/grid + router.route( axesGridCap() ); // /config/axes/:axis/gridCap + router.route( axesGridColor() ); // /config/axes/:axis/gridColor + router.route( axesGridDash() ); // /config/axes/:axis/gridDash + router.route( axesGridDashOffset() ); // /config/axes/:axis/gridDashOffset + router.route( axesGridOpacity() ); // /config/axes/:axis/gridOpacity + router.route( axesGridScale() ); // /config/axes/:axis/gridScale router.route( axesGridWidth() ); // /config/axes/:axis/gridWidth router.route( axesLabels() ); // /config/axes/:axis/labels router.route( axesOrient() ); // /config/axes/:axis/orient diff --git a/lib/node_modules/@stdlib/plot/vega/editor-config/axis/lib/main.js b/lib/node_modules/@stdlib/plot/vega/editor-config/axis/lib/main.js index 4bfef7106fcd..ac5d7f06e2be 100644 --- a/lib/node_modules/@stdlib/plot/vega/editor-config/axis/lib/main.js +++ b/lib/node_modules/@stdlib/plot/vega/editor-config/axis/lib/main.js @@ -84,6 +84,60 @@ function config() { 'min': 0, 'units': 'px' }, + 'grid': { + 'description': 'whether to include grid lines as part of an axis', + 'property': 'grid', + 'default': false, + 'type': 'boolean' + }, + 'gridCap': { + 'description': 'stroke cap for axis grid lines', + 'property': 'gridCap', + 'default': 'butt', + 'type': 'oneOf', + 'values': strokeCaps() + }, + 'gridColor': { + 'description': 'color of axis grid lines', + 'property': 'gridColor', + 'default': '#000', + 'type': 'string' + }, + 'gridDash': { + 'description': 'stroke dash of axis grid lines', + 'property': 'gridDash', + 'default': '', + 'type': 'string' + }, + 'gridDashOffset': { + 'description': 'pixel offset at which to start an axis grid line stroke dash', + 'property': 'gridDashOffset', + 'default': 0, + 'type': 'number', + 'units': 'px' + }, + 'gridOpacity': { + 'description': 'opacity of axis grid lines', + 'property': 'gridOpacity', + 'default': 1, + 'type': 'number', + 'min': 0, + 'max': 1 + }, + 'gridScale': { + 'description': 'name of the scale to use when rendering axis grid lines', + 'property': 'gridScale', + 'default': '', + 'type': 'string' + }, + 'gridWidth': { + 'description': 'stroke width of axis grid lines', + 'property': 'gridWidth', + 'default': 1, + 'type': 'number', + 'min': 0, + 'units': 'px' + }, 'title': { 'description': 'title text', 'property': 'title',