@axdspub/axiom-charts 0.0.36 → 0.0.37
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.
|
@@ -1697,7 +1697,7 @@ class AxiomRadialRose extends AxiomPlotRoot {
|
|
|
1697
1697
|
this.numBins = 16;
|
|
1698
1698
|
this.speedBins = d3.range(1, 8, 1);
|
|
1699
1699
|
this.stacks = undefined;
|
|
1700
|
-
this.directionMode = '
|
|
1700
|
+
this.directionMode = 'to';
|
|
1701
1701
|
}
|
|
1702
1702
|
setStackedData() {
|
|
1703
1703
|
var _a, _b, _c;
|
|
@@ -1797,14 +1797,12 @@ class AxiomRadialRose extends AxiomPlotRoot {
|
|
|
1797
1797
|
const chartOffset = chart.getChartOffset();
|
|
1798
1798
|
const bandwidth = 2 * Math.PI / this.numBins;
|
|
1799
1799
|
const getStartAngle = (direction) => {
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
return this.directionMode === 'from' ? start : (start + 180) % 360;
|
|
1800
|
+
const start = this.directionMode === 'from' ? xScale(direction) : xScale((direction + 180) % 360);
|
|
1801
|
+
return (start !== null && start !== void 0 ? start : 0) - (bandwidth / 2);
|
|
1803
1802
|
};
|
|
1804
1803
|
const getEndAngle = (direction) => {
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
return this.directionMode === 'from' ? start : (start + 180) % 360;
|
|
1804
|
+
const end = this.directionMode === 'from' ? xScale(direction) : xScale((direction + 180) % 360);
|
|
1805
|
+
return (end !== null && end !== void 0 ? end : 0) + (bandwidth / 2);
|
|
1808
1806
|
};
|
|
1809
1807
|
svg.insert('g', 'g.axis')
|
|
1810
1808
|
.attr('transform', `translate(${chartOffset.x},${chartOffset.y})`)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../src/Root/Types/ChartTypes.ts","../../../src/Root/Plots/PlotRoot.ts","../../../src/Root/ChartRoot.ts","../../../src/Libraries/axiom/Plots/PlotRoot.ts","../../../src/Libraries/axiom/Plots/AxiomLine.ts","../../../src/Libraries/axiom/Plots/AxiomArea.ts","../../../src/Libraries/axiom/Plots/AxiomScatter.ts","../../../src/Libraries/axiom/Plots/Bar.ts","../../../src/Libraries/axiom/Plots/index.ts","../../../node_modules/style-inject/dist/style-inject.es.js","../../../src/Libraries/axiom/AxiomChart.ts","../../../src/Libraries/axiom/Radial/Plots/AxiomRadialLine.ts","../../../src/Libraries/axiom/Radial/Plots/AxiomRadialScatter.ts","../../../src/Libraries/axiom/Radial/Plots/AxiomRadialArea.ts","../../../src/Libraries/axiom/Radial/Plots/AxiomRadialRose.ts","../../../src/Libraries/axiom/Radial/AxiomRadialChart.ts","../../../src/Root/Plots/BoxBase.ts","../../../src/Root/Plots/LineBase.ts","../../../src/Root/Plots/index.ts","../../../src/Libraries/axiom/index.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","import { type IRequestItemData, type INumericDataAccessor, type IDataResult, type IRequestItemProps, type IRequestItemImplementation } from '@axdspub/axiom-ui-data-services'\n\ninterface IUnit {\n code: string\n label: string\n}\n\ninterface ILegendItem {\n id: string\n label: string\n style: React.CSSProperties\n}\n\ntype IPlotLegends = Record<PlotId, ILegendItem[]>\n\ninterface IChartAxis {\n label?: string\n unit?: IUnit\n plots: IPlot[]\n key: string\n scale?: IChartScale\n offset?: {\n x?: number\n y?: number\n }\n}\nenum EChartAxes {\n x = 'x',\n y = 'y',\n z = 'z',\n color = 'color'\n}\n\ninterface IChartAxes {\n [EChartAxes.x]?: IChartAxis\n [EChartAxes.y]?: IChartAxis\n [EChartAxes.z]?: IChartAxis\n [EChartAxes.color]?: IChartAxis\n}\n\ntype IChartDimensionParameter = string\n\ninterface IPlotAxisSetting {\n reverse?: boolean\n accessProperties?: Record<string, string>\n parameter?: IChartDimensionParameter\n}\n\ntype IPlotAxisSettings = Record<string, IPlotAxisSetting | undefined>\n\ninterface IPlotLegendSettings {\n hide?: boolean\n axis?: EChartAxes\n}\n\ninterface IPlotScrubSettings {\n enabled?: boolean\n axis?: EChartAxes\n followCursor?: boolean\n}\n\ntype IChartDimensionDomain = Array<Date | number>\ntype IChartDimensionAccessor = (row: any) => number | number[] | Record<string, number> | Date\n\ntype INumericScale = (d: any) => number\ninterface IChartScale {\n // axis: EChartAxes\n // plots: IPlotImplementation[]\n // scale: INumericScale\n range: INumericRange\n domain: IChartDimensionDomain\n // position?: (d: number | null) => number\n}\n\ntype INumericRange = number[]\ninterface IChartDimension {\n accessor?: IChartDimensionAccessor\n parameter?: IChartDimensionParameter\n domain?: IChartDimensionDomain\n range?: INumericRange\n scale?: IChartScale\n label?: string\n displayUnits?: IUnit\n sourceUnits?: IUnit\n axes?: IChartAxes\n property?: string\n properties?: string[]\n}\n\ntype IChartDimensions = Record<string, IChartDimension>\n\nenum EPlotTypes {\n line = 'line',\n area = 'area',\n scatter = 'scatter',\n box = 'box',\n bar = 'bar',\n stacked = 'stacked',\n anomaly = 'anomaly',\n curtain = 'curtain',\n curtain_anomaly = 'curtain_anomaly',\n seasonal = 'seasonal',\n radial = 'radial',\n pie = 'pie',\n windrose = 'windrose',\n}\n\ninterface IPlotStyle {\n strokeWidth?: number\n strokeColor?: string\n strokeDash?: [number, number]\n fill?: string\n radius?: number\n colors?: string[]\n}\n\n// service?: () => Promise<any>\n// parser?: (data: any) => IPlotData\ninterface IPlot extends IRequestItemProps {\n id: string\n type: EPlotTypes\n dimensions: IChartDimensions\n data?: IDataResult\n axes?: IChartAxes\n style?: IPlotStyle\n scrubbing?: boolean\n scrubSettings?: IPlotScrubSettings\n onDataLoad?: (event: IPlotDataLoadEvent) => void\n axisSettings?: IPlotAxisSettings\n legendSettings?: IPlotLegendSettings\n}\n\ninterface IPlotImplementationProps extends IPlot {\n chart: IChartImplementation\n}\n\ntype IPlotDataAccessors = { [key in EChartAxes]?: INumericDataAccessor }\ninterface IPlotData extends IRequestItemData {\n accessors: IPlotDataAccessors\n}\n\ninterface IPlotDataLoadEvent {\n plotId: string\n data: IDataResult\n properties?: any\n}\n\ninterface IScrubEvent {\n position: number\n value: any\n properties?: any\n}\n\ntype IPlotScrubEvent = {\n [key in EChartAxes]?: IScrubEvent\n}\n\ntype PlotId = string\n\ntype IPlotScrubs = Record<PlotId, IPlotScrubEvent>\n\ninterface IPlotImplementation extends IPlotImplementationProps, IRequestItemImplementation {\n chart: IChartImplementation\n draw: () => Promise<void>\n destroy: () => void\n getDomain: (axis: EChartAxes) => Promise<IChartDimensionDomain>\n getYDomain: () => Promise<IChartDimensionDomain>\n getAxisSetting: (axis: string) => IPlotAxisSetting\n runtime: any\n\n}\n\ninterface IPlotImplementationGroup {\n plots: IPlotImplementation[]\n reverse: boolean\n parameter: IChartDimensionParameter\n}\n\ntype IPlotImplementationGroups = Record<string, IPlotImplementationGroup>\n\n// interface IPlotTypes = Record<EPlotTypes.anomaly | EPlotTypes.line | EPlotTypes.scatter | EPlotTypes.curtain | EPlotTypes.line | EPlotTypes.seasonal, IPlotImplementation | undefined>\n\ntype IPlotTypes = { [key in EPlotTypes]?: ((props: IPlotImplementationProps) => IPlotImplementation) }\ninterface IChartLibrary {\n Chart: (props: IChartImplementationProps) => IChartImplementation\n RadialChart: (props: IChartImplementationProps) => IChartImplementation\n // plotTypes: IPlotTypes\n}\n\ninterface IChartSettings {\n margin: {\n left: number\n right: number\n top: number\n bottom: number\n }\n width: number | 'auto'\n height: number\n layout?: 'radial' | 'windrose' | 'timeseries' | undefined\n axes?: any\n}\n\ninterface IChart {\n settings: IChartSettings\n plots: IPlot[]\n label?: string\n description?: string\n help?: string\n onPlotDataLoad?: (event: IPlotDataLoadEvent) => void\n onPlotLegendReady?: (plotId: string, legendItems: ILegendItem[]) => void\n onPlotScrub?: (plotId: string, scrubData: IPlotScrubEvent) => void\n onPlotScrubEnd?: (plotId: string) => void\n}\n\ninterface IChartImplementationProps extends IChart {\n element?: HTMLElement\n}\n\ninterface IChartImplementation extends IChartImplementationProps {\n init: (drawImmediately: boolean) => Promise<void>\n draw: () => Promise<void>\n destroy: () => void\n}\n\nexport type {\n ILegendItem,\n IPlotLegends,\n INumericScale,\n INumericRange,\n IChartLibrary,\n IChartAxis,\n IChartAxes,\n IPlotAxisSetting,\n IPlotAxisSettings,\n IChartDimensions,\n IChartDimension,\n IChartDimensionParameter,\n IChartDimensionAccessor,\n IChartDimensionDomain,\n IChartScale,\n IChart,\n IChartSettings,\n IChartImplementation,\n IChartImplementationProps,\n IPlot,\n IPlotStyle,\n IPlotData,\n IPlotDataLoadEvent,\n IPlotTypes,\n IPlotImplementation,\n IPlotImplementationProps,\n IPlotDataAccessors,\n IPlotImplementationGroup,\n IPlotImplementationGroups,\n IPlotScrubEvent,\n IPlotScrubs,\n IPlotScrubSettings,\n IPlotLegendSettings\n}\n\nexport {\n EPlotTypes,\n EChartAxes\n}\n","import { RequestItem, type IDataResult, type IDataRow, type INumericDataAccessor, type INumericData, type INumericDomainDataAccessor } from '@axdspub/axiom-ui-data-services'\nimport { type IPlotImplementationProps, type IPlotImplementation, type IChartDimensionDomain, type IChartImplementation, type IChartDimensions, type EPlotTypes, type IChartAxes, type IPlotStyle, type IPlotAxisSetting, type IPlotAxisSettings, type IPlotDataLoadEvent, type ILegendItem, type IPlotScrubSettings, EChartAxes, type IPlotLegendSettings } from '@/Root/Types/ChartTypes'\nimport { extent } from 'd3-array'\nimport type ChartRoot from '../ChartRoot'\n\nclass PlotRoot extends RequestItem implements IPlotImplementation {\n id: string\n type: EPlotTypes\n data?: IDataResult\n axes?: IChartAxes\n axisSettings?: IPlotAxisSettings\n chart: IChartImplementation\n dimensions: IChartDimensions\n runtime: any\n style?: IPlotStyle\n scrubbing?: boolean\n onDataLoad?: (event: IPlotDataLoadEvent) => void\n scrubSettings: IPlotScrubSettings\n scrubSettingsDefaults: IPlotScrubSettings = {\n enabled: true,\n axis: EChartAxes.x\n }\n\n legendSettings: IPlotLegendSettings\n legendSettingsDefaults: IPlotLegendSettings = {\n hide: false,\n axis: EChartAxes.y\n }\n\n constructor (props: IPlotImplementationProps) {\n super(props)\n this.id = props.id\n this.type = props.type\n this.chart = props.chart\n this.dimensions = props.dimensions\n this.style = props.style\n this.scrubbing = props.scrubbing\n this.onDataLoad = props.onDataLoad\n this.axisSettings = props.axisSettings\n this.scrubSettings = { ...this.scrubSettingsDefaults, ...props.scrubSettings }\n this.legendSettings = {\n ...this.legendSettingsDefaults,\n ...props.legendSettings\n }\n this.runtime = {}\n }\n\n public getAxisSetting (axis: string): IPlotAxisSetting {\n if (this.axisSettings === undefined) {\n return {}\n }\n const axisSetting = this.axisSettings[axis]\n if (axisSetting === undefined) {\n return {}\n }\n return axisSetting\n }\n\n protected getDomainAccessor (axis: string): INumericDataAccessor | INumericDomainDataAccessor {\n const domainAccessors = this.runtime?.data?.parsed?.domainAccessors !== undefined ? this.runtime.data.parsed.domainAccessors : {}\n const accessors = this.runtime?.data?.parsed?.accessors !== undefined ? this.runtime.data.parsed.accessors : {}\n\n if (domainAccessors[axis] !== undefined) {\n return domainAccessors[axis]\n }\n if (accessors[axis] !== undefined) {\n return accessors[axis]\n }\n return (d: IDataRow) => {\n return (typeof d === 'number' || d instanceof Date || typeof d === 'string') ? d : d[axis]\n }\n }\n\n public getAvailableAccessors (): Record<string, INumericDataAccessor> {\n return this.runtime?.data?.parsed?.accessors !== undefined ? this.runtime.data.parsed.accessors : {}\n }\n\n public getAccessorsAtAxis (axis: string): Record<string, INumericDataAccessor> {\n const accessors = this.getAvailableAccessors()\n const axisSetting = this.getAxisSetting(axis)\n const accessProperties = axisSetting.accessProperties !== undefined ? axisSetting.accessProperties : {}\n const accessorKeys = Object.keys(accessors).filter(k => k.startsWith(axis))\n const accessorMap = Object.fromEntries(accessorKeys.map(k => [k, accessors[k]]))\n Object.keys(accessProperties).forEach(k => {\n const accessorKey = accessProperties[k]\n const accFn = accessors[accessorKey]\n if (accFn !== undefined) {\n accessorMap[k] = accFn\n }\n })\n\n return accessorMap\n }\n\n public getAccessorAtAxis (axis: string): INumericDataAccessor | undefined {\n const axisAccessors = this.getAccessorsAtAxis(axis)\n const accessor = axisAccessors[axis]\n if (accessor !== undefined) {\n return accessor\n }\n const allAccessors = this.getAvailableAccessors()\n if (allAccessors[axis] !== undefined) {\n return allAccessors[axis]\n }\n return undefined\n }\n\n public async getDomain (axis: string): Promise<IChartDimensionDomain> {\n const data: IDataResult = await this.getData()\n const parsedData = data?.parsed?.data !== undefined ? data.parsed.data : []\n\n const accessor: INumericDataAccessor | INumericDomainDataAccessor = this.getDomainAccessor(axis)\n const values: INumericData[] = parsedData\n .map((d) => {\n return accessor(d)\n })\n .flat()\n .filter(d => d !== undefined && d !== null)\n const domain: IChartDimensionDomain = extent(values) as IChartDimensionDomain\n return domain\n }\n\n public async getXDomain (): Promise<IChartDimensionDomain> {\n const domain = await this.getDomain('x')\n return domain\n }\n\n public async getYDomain (): Promise<IChartDimensionDomain> {\n const domain = await this.getDomain('y')\n return domain\n }\n\n /* public async getColorDomain (): IChartDimensionDomain {\n\n } */\n\n public async draw (): Promise<void> {\n this.data = await this.getData()\n }\n\n protected onLegendReady (legendItems: ILegendItem[]): void {\n const chart = this.chart as ChartRoot\n chart.emitPlotLegendReady(this.id, legendItems)\n }\n\n protected onScrub (scrubData: any): void {\n const chart = this.chart as ChartRoot\n chart.emitPlotScrub(this.id, scrubData)\n }\n\n protected onScrubEnd (): void {\n const chart = this.chart as ChartRoot\n chart.emitPlotScrubEnd(this.id)\n }\n\n public destroy (): void {\n\n }\n}\n\nexport default PlotRoot\n","import { type IPlot, type IChartImplementation, type IChartImplementationProps, type IChartSettings, type IPlotImplementation, type IPlotImplementationProps, type IChartDimensionDomain, EChartAxes, type IChartAxis, type IChartDimension, type IPlotAxisSetting, type IPlotImplementationGroup, type IPlotImplementationGroups, type IPlotDataLoadEvent, type ILegendItem, type IPlotScrubEvent } from '@/Root/Types/ChartTypes'\nimport PlotRoot from '@/Root/Plots/PlotRoot'\nimport { extent } from 'd3-array'\nimport { debounce, groupBy } from 'lodash'\n\nclass ChartRoot implements IChartImplementation {\n plots: IPlot[]\n element?: HTMLElement\n settings: IChartSettings\n plotImplementations?: IPlotImplementation[]\n onPlotDataLoad?: (event: IPlotDataLoadEvent) => void\n onPlotLegendReady?: (plotId: string, legendItems: ILegendItem[]) => void\n onPlotScrub?: (plotId: string, scrubData: IPlotScrubEvent) => void\n onPlotScrubEnd?: (plotId: string) => void\n runtime: {\n prevWidth: number\n prevHeight: number\n xDomain?: IChartDimensionDomain\n yDomain?: IChartDimensionDomain\n axisGroups?: {\n x: {\n domain: IChartDimensionDomain\n }\n y: {\n domain: IChartDimensionDomain\n }\n }\n [index: string]: any\n }\n\n constructor (props: IChartImplementationProps) {\n this.plots = props.plots.map(p => ({ ...p }))\n this.settings = props.settings\n this.element = props.element\n this.onPlotDataLoad = props.onPlotDataLoad\n this.onPlotLegendReady = props.onPlotLegendReady\n this.onPlotScrub = props.onPlotScrub\n this.onPlotScrubEnd = props.onPlotScrubEnd\n this.runtime = {\n prevWidth: 0,\n prevHeight: 0\n }\n /* if (props.element !== undefined) {\n this.element = props.element\n this.draw()\n .then(() => {\n this.onDraw()\n })\n .catch((e) => {\n this.onError(e)\n })\n } */\n }\n\n public emitPlotLegendReady (plotId: string, legendItems: ILegendItem[]): void {\n if (this.onPlotLegendReady === undefined) return\n this.onPlotLegendReady(plotId, legendItems)\n }\n\n public emitPlotScrub (plotId: string, scrubData: any): void {\n if (this.onPlotScrub === undefined) return\n this.onPlotScrub(plotId, scrubData)\n }\n\n public emitPlotScrubEnd (plotId: string): void {\n if (this.onPlotScrubEnd === undefined) return\n this.onPlotScrubEnd(plotId)\n }\n\n protected onError (e: Error): void {\n\n }\n\n public onResize (prevWidth: number, prevHeight: number): void {\n console.log('RESIZE!')\n console.log(this)\n }\n\n public getWidth (): number {\n if (this.settings.width === 'auto') {\n if (this.element != null) {\n return this.element.clientWidth\n }\n return 400\n }\n return this.settings.width\n }\n\n public onDraw (): void {\n\n }\n\n protected async getDomainForPlotImplementations (plotImplementations: IPlotImplementation[], axis: EChartAxes): Promise<IChartDimensionDomain> {\n const domains = await Promise.all(plotImplementations.map(async p => {\n const domain = await p.getDomain(axis)\n return domain\n }))\n\n return extent(domains.flat()) as IChartDimensionDomain\n }\n\n protected reversePlotAxis (plot: IPlotImplementation, axis: string): boolean {\n const axisSetting: IPlotAxisSetting = plot.getAxisSetting(axis)\n return axisSetting.reverse === true\n }\n\n protected getDimensionAxisParam (plot: IPlotImplementation, axis: string): string {\n const dimension: IChartDimension = plot.dimensions[axis]\n const axisSetting: IPlotAxisSetting = plot.getAxisSetting(axis)\n let param = axis\n if (axisSetting.parameter !== undefined) {\n param = axisSetting.parameter\n } else if (dimension !== undefined) {\n if (dimension.parameter !== undefined) {\n param = dimension.parameter\n } else if (dimension.property !== undefined) {\n param = dimension.property\n } else if (dimension.properties !== undefined) {\n param = dimension.properties.join(',')\n }\n }\n\n return param\n }\n\n protected getPlotImplementationGroups (plots: IPlotImplementation[], axis: string): IPlotImplementationGroups {\n const groups = groupBy(plots, p => {\n const param = this.getDimensionAxisParam(p, axis)\n return `${param}${this.reversePlotAxis(p, axis) ? '.reverse' : ''}`\n })\n const plotGroups: IPlotImplementationGroups = {}\n Object.keys(groups).forEach(k => {\n const plotGroup: IPlotImplementationGroup = {\n plots: groups[k],\n reverse: this.reversePlotAxis(groups[k][0], axis),\n parameter: this.getDimensionAxisParam(groups[k][0], axis)\n }\n plotGroups[k] = plotGroup\n })\n return plotGroups\n }\n\n protected getXRange (chartWidth: number): [number, number] {\n return [0, chartWidth]\n }\n\n protected getYRange (chartHeight: number): [number, number] {\n return [chartHeight, 0]\n }\n\n public getChartWidth (): number {\n const yAxesWidth = this.getYAxesWidth()\n return this.getWidth() - yAxesWidth - this.settings.margin.right\n }\n\n protected getChartHeight (): number {\n const xGroups = this.plotImplementations !== undefined ? this.getPlotImplementationGroups(this.plotImplementations, 'x') : {}\n const xGroupCount: number = Object.keys(xGroups).length\n return this.settings.height - this.settings.margin.top - (this.settings.margin.bottom * xGroupCount)\n }\n\n protected getYAxesWidth (): number {\n const yGroups = this.plotImplementations !== undefined ? this.getPlotImplementationGroups(this.plotImplementations, 'y') : {}\n return this.settings.margin.left * Object.keys(yGroups).length\n }\n\n private debouncedResize (): void {\n if (this.runtime.resizeEventHandler?.cancel !== undefined) {\n this.runtime.resizeEventHandler.cancel()\n console.log('cancel')\n }\n this.runtime.resizeEventHandler = debounce(() => { this.onResize(this.runtime.prevWidth, this.runtime.prevHeight) }, 1000)\n this.runtime.resizeEventHandler()\n }\n\n public async init (drawImmediately: boolean = false): Promise<void> {\n this.runtime.resizeEventHandler = debounce(() => { this.onResize(this.runtime.prevWidth, this.runtime.prevHeight) }, 1000)\n window.addEventListener('resize', () => { this.debouncedResize() })\n this.plotImplementations?.forEach(plot => { plot.destroy() })\n this.plotImplementations = this.createPlots()\n\n // PRELOAD ALL CHART METADATA AND DATA\n /* await Promise.all(this.plotImplementations.map(async p => {\n return await new Promise((resolve, reject) => {\n p.load()\n .then(resolve)\n .catch(e => {\n this.onError(e)\n reject(e)\n })\n })\n })) */\n\n const { margin } = this.settings\n\n const xGroups = this.getPlotImplementationGroups(this.plotImplementations, 'x')\n const chartHeight: number = this.getChartHeight()\n\n const yGroups = this.getPlotImplementationGroups(this.plotImplementations, 'y')\n\n const yAxes: IChartAxis[] = []\n const yRange = this.getYRange(chartHeight)\n\n await Promise.all(Object.keys(yGroups).map(async (key, index) => {\n const group = yGroups[key]\n const p = group.plots\n const domain = await this.getDomainForPlotImplementations(yGroups[key].plots, EChartAxes.y)\n // const scale = this.makeD3Scale(domain, yRange, domain[0])\n const axis: IChartAxis = {\n scale: {\n domain,\n range: group.reverse ? yRange.slice().reverse() : yRange\n // scale\n },\n plots: p,\n key,\n offset: {\n x: margin.left + (margin.left * index),\n y: margin.top\n }\n }\n\n p.forEach(_p => {\n _p.axes = _p.axes !== undefined ? _p.axes : {}\n _p.axes.y = axis\n })\n yAxes.push(axis)\n }))\n\n this.showYAxes(yAxes)\n\n const yAxesWidth = this.getYAxesWidth()\n const chartWidth = this.getChartWidth()\n const xRange = this.getXRange(chartWidth)\n const xAxes: IChartAxis[] = []\n\n await Promise.all(Object.keys(xGroups).map(async (key, index) => {\n const group = xGroups[key]\n const p = group.plots\n const domain = await this.getDomainForPlotImplementations(p, EChartAxes.x)\n // const scale = this.makeD3Scale(domain, yRange, domain[0])\n const axis: IChartAxis = {\n scale: {\n domain,\n range: group.reverse ? xRange.slice().reverse() : xRange\n // scale\n },\n plots: p,\n key,\n offset: {\n x: yAxesWidth,\n y: margin.top + chartHeight + (margin.bottom * index)\n }\n }\n\n p.forEach(_p => {\n _p.axes = _p.axes !== undefined ? _p.axes : {}\n _p.axes.x = axis\n })\n xAxes.push(axis)\n }))\n\n this.showXAxes(xAxes)\n\n // console.log(`${JSON.stringify(this.runtime, null, 2)}`)\n\n if (drawImmediately) {\n // now draw..\n await this.draw()\n }\n }\n\n public showAxes (xGroup: Record<string, IPlotImplementation[]>, yGroup: Record<string, IPlotImplementation[]>): void {\n\n }\n\n public showYAxes (yAxes: IChartAxis[]): void {\n\n }\n\n public showXAxes (xAxes: IChartAxis[]): void {\n\n }\n\n public adjustYAxis (): void {\n\n }\n\n public async draw (): Promise<void> {\n const plotImplementations = this.plotImplementations\n if (plotImplementations !== undefined) {\n await Promise.all(plotImplementations.map(async p => {\n await p.draw()\n }))\n }\n }\n\n public destroy (): void {\n // window.removeEventListener('resize', this.runtime.resizeEventHandler)\n }\n\n public createPlots (): IPlotImplementation[] {\n return this.plots.map(p => {\n return this.createPlot(p)\n })\n }\n\n protected getPlotImplementationProps (plot: IPlot): IPlotImplementationProps {\n return {\n ...plot,\n chart: this,\n onDataLoad: this.onPlotDataLoad\n }\n }\n\n protected createPlot (plot: IPlot): IPlotImplementation {\n return new PlotRoot(this.getPlotImplementationProps(plot))\n }\n}\n\nexport default ChartRoot\n\nexport type {\n ChartRoot as ChartRootType\n}\n","import PlotRoot from '@/Root/Plots/PlotRoot'\n\nabstract class AxiomPlotRoot extends PlotRoot {\n}\n\nexport default AxiomPlotRoot\n","import { line as d3Line } from 'd3-shape'\n\nimport AxiomPlotRoot from '@/Libraries/axiom/Plots/PlotRoot'\nimport { type INumericDataAccessor, type INumericDomainDataAccessor, type IDataRow, type IDataResult } from '@axdspub/axiom-ui-data-services'\nimport type AxiomChart from '@/Libraries/axiom/AxiomChart'\nimport { type IAxiomD3ContinuousScale } from '@/Libraries/axiom/AxiomChart'\n\nclass AxiomLine extends AxiomPlotRoot {\n xScale: IAxiomD3ContinuousScale | undefined\n yScale: IAxiomD3ContinuousScale | undefined\n parsedData: IDataRow[] | undefined\n offset: { x: number, y: number } | undefined\n\n protected getDomainAccessor (axis: string): INumericDataAccessor | INumericDomainDataAccessor {\n const accessors = this.runtime?.data?.parsed?.accessors !== undefined ? this.runtime.data.parsed.accessors : {}\n\n if (accessors[axis] !== undefined) {\n return accessors[axis]\n }\n return (d: IDataRow) => {\n return (typeof d === 'number' || d instanceof Date || typeof d === 'string') ? d : d[axis]\n }\n }\n\n public async draw (): Promise<void> {\n const style = this.style !== undefined ? this.style : {}\n if (this.parsedData === undefined) {\n const data = await this.getData()\n this.emitDataLoad(data)\n this.parsedData = data?.parsed?.data\n }\n const xAccessor = this.getAccessorAtAxis('x')\n const yAccessor = this.getAccessorAtAxis('y')\n const chart = this.chart as AxiomChart\n const ctx = chart.getCanvasContext()\n\n if (ctx === null) {\n return undefined\n }\n const xAxisScale = this?.axes?.x?.scale\n const yAxisScale = this?.axes?.y?.scale\n if (xAxisScale === undefined || yAxisScale === undefined || this.parsedData === undefined || xAccessor === undefined || yAccessor === undefined) {\n return undefined\n }\n this.offset = {\n x: this?.axes?.x?.offset?.x !== undefined ? this.axes.x.offset.x : 0,\n y: this?.axes?.y?.offset?.y !== undefined ? this.axes.y.offset.y : 0\n }\n this.xScale = chart.getD3XScale(xAxisScale)\n const xPosition = (d: IDataRow): number => {\n if (this.xScale === undefined || this.offset === undefined) return 0\n const v = xAccessor(d)\n const p = this.xScale(v)\n return p === undefined ? 0 : (p + this.offset.x)\n }\n\n this.yScale = chart.getD3YScale(yAxisScale)\n const yPosition = (d: IDataRow): number => {\n if (this.yScale === undefined || this.offset === undefined) return 0\n const v = yAccessor(d)\n const p = this.yScale(v)\n return p === undefined ? 0 : (p + this.offset.y)\n }\n\n const isDefined = (d: IDataRow): boolean => {\n const v = yAccessor(d)\n return !!((v !== undefined && v !== null && !isNaN(+v)))\n }\n\n ctx.strokeStyle = this.getStrokeStyle()\n ctx.lineWidth = this.getLineWidth()\n ctx.setLineDash([])\n ctx.lineCap = 'square'\n const line = d3Line()\n .x(xPosition)\n .y(yPosition)\n .defined(isDefined)\n line.context(ctx)\n ctx.beginPath()\n if (style?.strokeDash !== undefined) {\n ctx.setLineDash(style.strokeDash)\n }\n line(this.parsedData as unknown as Iterable<[number, number]>)\n ctx.stroke()\n\n if (\n this.legendSettings.axis !== undefined &&\n this.axes !== undefined &&\n !(this.legendSettings.hide ?? false)\n ) {\n const legendAxis = this.axes[this.legendSettings.axis]\n if (legendAxis !== undefined) {\n super.onLegendReady([{\n id: legendAxis.key,\n label: chart.getAxisLabel(legendAxis, this.legendSettings.axis) ?? legendAxis.label ?? legendAxis.key,\n style: { backgroundColor: ctx.strokeStyle }\n }])\n }\n }\n\n this.setupScrubbing()\n }\n\n private setupScrubbing (): void {\n const chartElements = (this.chart as AxiomChart).getChartElements()\n if (chartElements !== undefined) {\n chartElements.svg.node()?.addEventListener('mouseover', this.onMouseScrub)\n chartElements.svg.node()?.addEventListener('mousemove', this.onMouseScrub)\n chartElements.svg.node()?.addEventListener('mouseleave', this.onScrubEnd)\n }\n }\n\n onMouseScrub = (event: MouseEvent): void => {\n const chart = this.chart as AxiomChart\n if (chart.onPlotScrub === undefined) return\n const xAccessor = this.getAccessorAtAxis('x')\n const yAccessor = this.getAccessorAtAxis('y')\n if (\n this.scrubSettings.axis === undefined ||\n this.xScale === undefined ||\n this.yScale === undefined ||\n xAccessor === undefined ||\n yAccessor === undefined ||\n this.parsedData === undefined ||\n this.offset === undefined\n ) {\n return\n }\n const scrub = chart.getScrubEvent(\n event,\n this.scrubSettings.axis,\n this.xScale,\n this.yScale,\n xAccessor,\n yAccessor,\n this.parsedData,\n this.offset)\n if (scrub === undefined || scrub.x === undefined) return\n this.onScrub(scrub)\n chart.drawPlotScrubbing(this.id, scrub, this.style, this.scrubSettings)\n }\n\n onScrubEnd = (): void => {\n (this.chart as AxiomChart).erasePlotScrub(this.id)\n super.onScrubEnd()\n }\n\n private getStrokeStyle (): string {\n const style = this.style !== undefined ? this.style : {}\n return style.strokeColor !== undefined ? style.strokeColor : '#333'\n }\n\n private getLineWidth (): number {\n const style = this.style !== undefined ? this.style : {}\n return style.strokeWidth !== undefined ? style.strokeWidth : 1\n }\n\n private emitDataLoad (data: IDataResult): void {\n if (this.onDataLoad !== undefined) {\n this.onDataLoad({\n plotId: this.id,\n data\n })\n }\n }\n\n public destroy (): void {\n const chartElements = (this.chart as AxiomChart).getChartElements()\n if (chartElements !== undefined) {\n chartElements.svg.node()?.removeEventListener('mouseover', this.onMouseScrub)\n chartElements.svg.node()?.removeEventListener('mousemove', this.onMouseScrub)\n chartElements.svg.node()?.removeEventListener('mouseleave', this.onScrubEnd)\n }\n }\n}\n\nexport default AxiomLine\n","import { area as d3Area } from 'd3-shape'\nimport { sum } from 'd3-array'\n\nimport AxiomPlotRoot from '@/Libraries/axiom/Plots/PlotRoot'\nimport { type INumericDataAccessor, type INumericDomainDataAccessor, type IDataRow } from '@axdspub/axiom-ui-data-services'\nimport type AxiomChart from '@/Libraries/axiom/AxiomChart'\nimport { type AxisScale } from 'd3-axis'\nimport { type NumberValue } from 'd3-scale'\n\nclass AxiomArea extends AxiomPlotRoot {\n protected getMaxAccessorAtAxis (axis: string): INumericDataAccessor | undefined {\n const axisAccessors = this.getAccessorsAtAxis(axis)\n const maxAccessor = axisAccessors[`${axis}1`]\n return maxAccessor\n }\n\n protected getMinAccessorAtAxis (axis: string): INumericDataAccessor | undefined {\n const axisAccessors = this.getAccessorsAtAxis(axis)\n const minAccessor = axisAccessors[`${axis}0`]\n return minAccessor\n }\n\n protected getDomainAccessor (axis: string): INumericDataAccessor | INumericDomainDataAccessor {\n const minAccessor = this.getMinAccessorAtAxis(axis)\n const maxAccessor = this.getMaxAccessorAtAxis(axis)\n if (minAccessor !== undefined && maxAccessor !== undefined) {\n return (d) => {\n return [\n minAccessor(d),\n maxAccessor(d)\n ]\n }\n }\n\n const accessor = this.getAccessorAtAxis(axis)\n if (accessor !== undefined) {\n return accessor\n }\n\n return (d: IDataRow) => {\n return (d instanceof Date || d === null || typeof d === 'number' || typeof d === 'string') ? d : sum(Object.values(d))\n }\n }\n\n public async draw (): Promise<void> {\n const style = this.style !== undefined ? this.style : {}\n const data = await this.getData()\n const parsedData = data?.parsed?.data\n\n const xAccessors = this.getAccessorsAtAxis('x')\n const xAccessor = this.getAccessorAtAxis('x')\n const x0Accessor = xAccessors.x0\n const x1Accessor = xAccessors.x1\n\n const yAccessors = this.getAccessorsAtAxis('y')\n const yAccessor = this.getAccessorAtAxis('y')\n const y0Accessor = yAccessors.y0\n const y1Accessor = yAccessors.y1\n\n const offset = {\n x: this?.axes?.x?.offset?.x !== undefined ? this.axes.x.offset.x : 0,\n y: this?.axes?.y?.offset?.y !== undefined ? this.axes.y.offset.y : 0\n }\n\n const chart = this.chart as AxiomChart\n const ctx = chart.getCanvasContext()\n\n if (ctx === null) {\n return undefined\n }\n const xAxisScale = this?.axes?.x?.scale\n const yAxisScale = this?.axes?.y?.scale\n if (\n xAxisScale === undefined ||\n yAxisScale === undefined ||\n parsedData === undefined ||\n (\n xAccessor === undefined && x0Accessor === undefined && x1Accessor === undefined\n ) ||\n (\n yAccessor === undefined && y0Accessor === undefined && y1Accessor === undefined\n )\n ) {\n console.log('Missing one of: xAxisScale, yAxisScale, parsedData, xAccessor(s), yAccessor(s)')\n return undefined\n }\n\n const xScale = chart.getD3XScale(xAxisScale)\n const yScale = chart.getD3YScale(yAxisScale)\n\n const makePositionFn = (acc: INumericDataAccessor, d3Scale: AxisScale<Date | NumberValue>, offset: number) => {\n return (d: IDataRow): number => {\n const v = acc(d)\n const p = d3Scale(v)\n return p === undefined ? 0 : (p + offset)\n }\n }\n\n const makeDefinedFn = (acc: INumericDataAccessor) => {\n return (d: IDataRow): boolean => {\n const v = acc(d)\n return !!((v !== undefined && v !== null && !isNaN(+v)))\n }\n }\n\n ctx.fillStyle = style.fill !== undefined ? style.fill : '#EDEDED'\n\n const area = d3Area()\n if (x0Accessor !== undefined && x1Accessor !== undefined) {\n area.x0(makePositionFn(x0Accessor, xScale, offset.x))\n area.x1(makePositionFn(x1Accessor, xScale, offset.x))\n } else if (xAccessor !== undefined) {\n area.x(makePositionFn(xAccessor, xScale, offset.x))\n }\n if (y0Accessor !== undefined && y1Accessor !== undefined) {\n area.y0(makePositionFn(y0Accessor, yScale, offset.y))\n area.y1(makePositionFn(y1Accessor, yScale, offset.y))\n area.defined(makeDefinedFn(y1Accessor))\n } else if (yAccessor !== undefined) {\n area.y(makePositionFn(yAccessor, yScale, offset.y))\n }\n\n area.context(ctx)\n ctx.beginPath()\n area(parsedData as unknown as Iterable<[number, number]>)\n ctx.fill()\n\n if (this.axes?.y !== undefined && !(this.legendSettings.hide ?? false)) {\n super.onLegendReady([{\n id: this.axes.y.key,\n label: chart.getAxisLabel(this.axes.y, 'y') ?? this.axes.y.key,\n style: { backgroundColor: ctx.fillStyle }\n }])\n }\n }\n}\n\nexport default AxiomArea\n","import AxiomPlotRoot from '@/Libraries/axiom/Plots/PlotRoot'\nimport { type INumericDataAccessor, type INumericDomainDataAccessor, type IDataRow } from '@axdspub/axiom-ui-data-services'\nimport type AxiomChart from '@/Libraries/axiom/AxiomChart'\nimport { type IAxiomD3ContinuousScale } from '@/Libraries/axiom/AxiomChart'\n\nclass AxiomScatter extends AxiomPlotRoot {\n circleClass = `${this.id}-scrub-circle`\n xScale: IAxiomD3ContinuousScale | undefined\n yScale: IAxiomD3ContinuousScale | undefined\n parsedData: IDataRow[] | undefined\n offset: { x: number, y: number } | undefined\n\n protected getDomainAccessor (axis: string): INumericDataAccessor | INumericDomainDataAccessor {\n const accessors = this.runtime?.data?.parsed?.accessors !== undefined ? this.runtime.data.parsed.accessors : {}\n\n if (accessors[axis] !== undefined) {\n return accessors[axis]\n }\n return (d: IDataRow) => {\n return (typeof d === 'number' || d instanceof Date || typeof d === 'string') ? d : d[axis]\n }\n }\n\n public async draw (): Promise<void> {\n const style = this.style !== undefined ? this.style : {}\n const data = await this.getData()\n this.parsedData = data?.parsed?.data\n const xAccessor = this.getAccessorAtAxis('x')\n const yAccessor = this.getAccessorAtAxis('y')\n const chart = this.chart as AxiomChart\n const ctx = chart.getCanvasContext()\n\n if (ctx === null) {\n return undefined\n }\n const xAxisScale = this?.axes?.x?.scale\n const yAxisScale = this?.axes?.y?.scale\n if (xAxisScale === undefined || yAxisScale === undefined || this.parsedData === undefined || xAccessor === undefined || yAccessor === undefined) {\n return undefined\n }\n this.offset = {\n x: this?.axes?.x?.offset?.x !== undefined ? this.axes.x.offset.x : 0,\n y: this?.axes?.y?.offset?.y !== undefined ? this.axes.y.offset.y : 0\n }\n this.xScale = chart.getD3XScale(xAxisScale)\n const xPosition = (d: IDataRow): number => {\n if (this.xScale === undefined || this.offset === undefined) return 0\n const v = xAccessor(d)\n const p = this.xScale(v)\n return p === undefined ? 0 : (p + this.offset.x)\n }\n\n this.yScale = chart.getD3YScale(yAxisScale)\n const yPosition = (d: IDataRow): number => {\n if (this.yScale === undefined || this.offset === undefined) return 0\n const v = yAccessor(d)\n const p = this.yScale(v)\n return p === undefined ? 0 : (p + this.offset.y)\n }\n\n const isDefined = (d: IDataRow): boolean => {\n const v = yAccessor(d)\n return !!((v !== undefined && v !== null && !isNaN(+v)))\n }\n\n // .style?.strokeColor !== undefined ? settings.style.strokeColor :\n\n // .style?.strokeWidth ||\n\n ctx.strokeStyle = style.strokeColor !== undefined ? style.strokeColor : '#FFF'\n const radius = style.radius !== undefined ? style.radius : 2\n ctx.lineWidth = (style.strokeWidth !== undefined || style.strokeColor !== undefined) ? ((style.strokeWidth !== undefined ? style.strokeWidth : 1) + radius) : 0\n\n ctx.fillStyle = style.fill !== undefined ? style.fill : '#666'\n this.parsedData.forEach(d => {\n if (isDefined(d)) {\n ctx.beginPath()\n ctx.arc(xPosition(d), yPosition(d), radius, 0, 2 * Math.PI)\n ctx.stroke()\n ctx.fill()\n }\n })\n\n if (this.axes?.y !== undefined && !(this.legendSettings.hide ?? false)) {\n super.onLegendReady([{\n id: this.axes.y.key,\n label: chart.getAxisLabel(this.axes.y, 'y') ?? this.axes.y.key,\n style: {\n backgroundColor: ctx.fillStyle,\n border: `1px solid ${ctx.strokeStyle}`\n }\n }])\n }\n\n this.setupScrubbing()\n }\n\n private setupScrubbing (): void {\n const chartElements = (this.chart as AxiomChart).getChartElements()\n if (chartElements !== undefined) {\n chartElements.svg.node()?.addEventListener('mouseover', this.onMouseScrub)\n chartElements.svg.node()?.addEventListener('mousemove', this.onMouseScrub)\n chartElements.svg.node()?.addEventListener('mouseleave', this.onScrubEnd)\n }\n }\n\n onMouseScrub = (event: MouseEvent): void => {\n const chart = this.chart as AxiomChart\n if (chart.onPlotScrub === undefined) return\n const xAccessor = this.getAccessorAtAxis('x')\n const yAccessor = this.getAccessorAtAxis('y')\n if (\n this.scrubSettings.axis === undefined ||\n this.xScale === undefined ||\n this.yScale === undefined ||\n xAccessor === undefined ||\n yAccessor === undefined ||\n this.parsedData === undefined ||\n this.offset === undefined\n ) {\n return\n }\n const scrub = chart.getScrubEvent(\n event,\n this.scrubSettings.axis,\n this.xScale,\n this.yScale,\n xAccessor,\n yAccessor,\n this.parsedData,\n this.offset)\n if (scrub === undefined || scrub.x === undefined) return\n this.onScrub(scrub)\n chart.drawPlotScrubbing(this.id, scrub, this.style, this.scrubSettings)\n }\n\n onScrubEnd = (): void => {\n (this.chart as AxiomChart).erasePlotScrub(this.id)\n super.onScrubEnd()\n }\n\n public destroy (): void {\n const chartElements = (this.chart as AxiomChart).getChartElements()\n if (chartElements !== undefined) {\n chartElements.svg.node()?.removeEventListener('mouseover', this.onMouseScrub)\n chartElements.svg.node()?.removeEventListener('mousemove', this.onMouseScrub)\n chartElements.svg.node()?.removeEventListener('mouseleave', this.onScrubEnd)\n }\n }\n}\n\nexport default AxiomScatter\n","import { type IPlotImplementationProps } from '@/library'\nimport AxiomPlotRoot from './PlotRoot'\nimport * as d3 from 'd3'\nimport type AxiomChart from '../AxiomChart'\nimport { type INumericDataAccessor, type IDataRow } from '@axdspub/axiom-ui-data-services'\n\ninterface IScrubData {\n label: string\n key: string\n x: any\n value: number\n}\n\ntype YScale = d3.ScaleLinear<number, number, never>\nexport default class AxiomBar extends AxiomPlotRoot {\n legendHeight = 12\n legendPaddingTop = 8\n\n constructor (props: IPlotImplementationProps) {\n super(props)\n const chart = this.chart as AxiomChart\n const chartElements = chart.getChartElements()\n if (chartElements?.svg !== undefined) {\n chartElements.svg.style('z-index', 20)\n // TODO find better way ^. Doing this so that svg can get events.\n }\n }\n\n public async draw (): Promise<void> {\n const dataResponse = await this.getData()\n const parsedData = dataResponse?.parsed?.data\n if (parsedData === undefined) return\n\n const xAccessor = this.getAccessorAtAxis('x') as unknown as (d: any) => string\n const yAccessor = dataResponse.parsed?.accessors.y\n if (xAccessor === undefined || yAccessor === undefined) return\n const y2Accessor = dataResponse.parsed?.accessors.y2\n\n const yGroups = this.dimensions\n const yKey = yGroups.y.property\n const yLabel = yGroups.y.label\n const y2Key: string | undefined = this.dimensions.y2.property\n const y2Label: string | undefined = this.dimensions.y2.label\n\n const chart = this.chart as AxiomChart\n const chartElements = chart.getChartElements()\n if (chartElements === undefined || chartElements.svg === null || yKey === undefined || yLabel === undefined) return undefined\n if (chartElements.svg.select('g') !== undefined) chartElements.svg.select('g').remove()\n\n let { height } = chart.settings\n let width = chart.getWidth()\n width = Number(width)\n height = Number(height)\n\n const oneOrZero = y2Key === undefined ? 0 : 1 // Used to add in space for y2 if exists.\n const xAxisHeight = 48 // HOW TO GET DYNAMICALLY?\n const yAxisWidth = 36 // HOW TO GET DYNAMICALLY?\n const y2AxisWidth = yAxisWidth * oneOrZero\n const chartPaddingTop = 4\n const yLabelWidth = 24\n const y1TotalWidth = yAxisWidth + yLabelWidth\n const y2LabelWidth = yLabelWidth * oneOrZero\n const y2TotalWidth = y2AxisWidth * oneOrZero + y2LabelWidth\n const plotHeight = height - xAxisHeight - this.legendHeight - this.legendPaddingTop - chartPaddingTop\n const plotWidth = width - yAxisWidth - yLabelWidth - y2TotalWidth\n const plotXStart = width - plotWidth - y2TotalWidth\n const plotXEnd = width - y2TotalWidth\n const groups = parsedData.map(d => xAccessor(d))\n const subgroups: string[] = [yKey]\n if (y2Key !== undefined && y2Accessor !== undefined) subgroups.push(y2Key)\n\n // Colors\n const fillColors = this.style?.colors ?? d3.schemeTableau10\n const color = d3.scaleOrdinal(fillColors).domain(subgroups)\n\n const svg = chartElements.svg\n const g = svg.insert('g')\n\n const x = this.getXScale(plotXStart, plotXEnd, groups)\n const y = this.getYScale(plotHeight, chartPaddingTop, parsedData, yAccessor)\n const y2 = this.getY2Scale(plotHeight, chartPaddingTop, parsedData, y2Accessor)\n\n const subgroupScales = this.getSubgroupScales(yKey, y, y2Key, y2)\n\n const xSubgroup = d3.scaleBand()\n .domain(subgroups)\n .range([0, x.bandwidth()])\n .padding(0.05)\n\n // Make Bar Groups\n g.append('g')\n .attr('width', plotWidth)\n .attr('height', plotHeight)\n .selectAll('g')\n .data(parsedData)\n .enter()\n .append('g')\n .attr('transform', d => `translate(${Number(x(xAccessor(d)))}, 0)`)\n .selectAll('rect')\n .data(d => Object.keys(this.dimensions).filter(key => key !== 'x').map((key: string): IScrubData => {\n return {\n label: this.dimensions[key].label ?? key,\n key: this.dimensions[key].property ?? '',\n x: d[this.dimensions.x?.property ?? 'x'],\n value: d[this.dimensions[key].property ?? ''] as number\n }\n }))\n .enter()\n .append('rect')\n .attr('x', d => Number(xSubgroup(d.key)))\n .attr('y', d => Number(subgroupScales[d.key](d.value)))\n .attr('width', xSubgroup.bandwidth())\n .attr('height', d => plotHeight - Number(subgroupScales[d.key](d.value)))\n .attr('fill', d => color(d.key))\n .classed('bar', true)\n .on('mouseover', (event, data) => { this.onMouseScrub(event, data) })\n .on('mousemove', (event, data) => { this.onMouseScrub(event, data) })\n .on('mouseleave', () => { this.onScrubEnd() })\n\n // X Axis\n const xAxis = g.append('g')\n .attr('transform', `translate(0, ${plotHeight})`)\n .call(d3.axisBottom(x))\n // X Labels\n xAxis.selectAll('text')\n .attr('text-anchor', 'end')\n .attr('transform', 'rotate(-45)translate(-10, 0)')\n\n // Y Axis\n g.append('g')\n .call(d3.axisLeft(y))\n .attr('transform', `translate(${y1TotalWidth}, 0)`)\n\n if (y2 !== undefined) {\n // Y2 Axis\n g.append('g')\n .call(d3.axisRight(y2))\n .attr('transform', `translate(${width - y2TotalWidth}, 0)`)\n }\n\n // Y Label\n g.append('text')\n .attr('text-anchor', 'middle')\n .attr('transform', 'rotate(-90)')\n .attr('x', -1 * plotHeight / 2)\n .attr('y', yLabelWidth)\n .attr('font-weight', 800)\n .text(yLabel)\n\n if (y2Label !== undefined) {\n // Y2 Label\n g.append('text')\n .attr('text-anchor', 'middle')\n .attr('transform', 'rotate(90)')\n .attr('x', 1 * plotHeight / 2)\n .attr('y', -1 * (width - y2LabelWidth))\n .attr('font-weight', 800)\n .text(y2Label)\n }\n\n super.onLegendReady(Object.keys(this.dimensions).filter(key => key !== 'x').map(key => ({\n id: key,\n label: this.dimensions[key].label ?? key,\n style: { backgroundColor: this.dimensions[key].property === undefined ? '' : color(this.dimensions[key].property ?? '') }\n })))\n }\n\n private onMouseScrub (event: MouseEvent, data: any): void {\n if (this.chart.onPlotScrub === undefined) return\n this.onScrub({\n x: {\n position: event.offsetX,\n value: data.x\n },\n y: {\n position: event.offsetY,\n value: data.value\n }\n })\n }\n\n private getXScale (plotXStart: number, plotXEnd: number, groups: string[]): d3.ScaleBand<string> {\n return d3.scaleBand()\n .domain(groups)\n .range([plotXStart, plotXEnd])\n .padding(0.25)\n }\n\n private getYScale (plotHeight: number, chartPaddingTop: number, data: IDataRow[], yAccessor: INumericDataAccessor): YScale {\n return d3.scaleLinear()\n .domain([\n 0,\n Number(d3.max(data, d => yAccessor(d)))\n ])\n .range([plotHeight, chartPaddingTop])\n }\n\n private getY2Scale (plotHeight: number, chartPaddingTop: number, data: IDataRow[], y2Accessor?: INumericDataAccessor): YScale | undefined {\n if (y2Accessor === undefined) return undefined\n return this.getYScale(plotHeight, chartPaddingTop, data, y2Accessor)\n }\n\n /**\n *\n * Returns a map from Y key to Y scale. E.g.\n * {\n * \"frequency\": Y,\n * \"proportion\": Y2\n * }\n */\n private getSubgroupScales (yKey: string, y: YScale, y2Key?: string, y2?: YScale): Record<string, YScale> {\n const subgroupScales: Record<string, YScale> = {\n [yKey]: y\n }\n if (y2Key !== undefined && y2 !== undefined) {\n subgroupScales[y2Key] = y2\n }\n return subgroupScales\n }\n}\n","import AxiomLine from '@/Libraries/axiom/Plots/AxiomLine'\nimport AxiomArea from '@/Libraries/axiom/Plots/AxiomArea'\nimport AxiomScatter from '@/Libraries/axiom/Plots/AxiomScatter'\nimport Bar from '@/Libraries/axiom/Plots/Bar'\n\nconst chartTypes = {\n Line: AxiomLine,\n Area: AxiomArea,\n Scatter: AxiomScatter,\n Bar\n}\n\nexport default chartTypes\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import ChartRoot from '@/Root/ChartRoot'\nimport { create, type Selection } from 'd3-selection'\nimport { type ValueFn, type BaseType, bisector } from 'd3'\nimport { type IChartScale, type IChartAxis, type IPlotImplementation, type IPlot, EPlotTypes, type IPlotScrubEvent, type IPlotStyle, type IPlotScrubSettings, EChartAxes } from '@/Root/Types/ChartTypes'\nimport { type NumberValue, scaleUtc, scaleLinear, type ScaleLinear, type ScaleTime, type ScaleRadial } from 'd3-scale'\nimport { type AxisScale, axisLeft, axisBottom, type Axis } from 'd3-axis'\nimport PlotRoot from '@/Root/Plots/PlotRoot'\nimport chartTypes from './Plots'\n\nimport './axiom-chart.css'\nimport { type IDataRow, type INumericData, type INumericDataAccessor } from '@axdspub/axiom-ui-data-services'\n\ninterface IAxiomChartElements {\n svg: Selection<SVGSVGElement, undefined, null, undefined>\n canvas: Selection<HTMLCanvasElement, undefined, null, undefined>\n}\n\ninterface IAxiomChartAxisSettings {\n ticks?: Array<string | number>\n tickFormat?: (domainValue: Date | NumberValue, index: number) => string\n tickSpace?: number\n fontSize?: number | string\n}\n\ntype IAxiomD3GSelection = Selection<SVGGElement, undefined, null, undefined>\n\ntype IAxiomD3AxisCall = (g: IAxiomD3GSelection) => IAxiomD3GSelection\n\ntype IAxiomD3ContinuousScale = ScaleTime<number, number, never> | ScaleLinear<number, number, never> | ScaleRadial<number, number, never>\n\ntype IAxiomSelectionValueFn = ValueFn<SVGGElement | BaseType, string, string | number | boolean | ReadonlyArray<string | number> | null>\n\nclass AxiomChart extends ChartRoot {\n chartElements?: IAxiomChartElements\n\n updateD3AxisSettings (axis: Axis<Date | NumberValue>, axisSettings: IAxiomChartAxisSettings): void {\n if (axisSettings.ticks !== undefined) {\n axis.ticks(axisSettings.ticks)\n }\n if (axisSettings.tickFormat !== undefined) {\n axis.tickFormat(axisSettings.tickFormat)\n }\n }\n\n protected getD3Scale (scale: IChartScale): IAxiomD3ContinuousScale {\n const d3Scale = scale.domain[0] instanceof Date\n ? scaleUtc().domain(scale.domain).range(scale.range)\n : scaleLinear().domain(scale.domain).range(scale.range)\n return d3Scale\n }\n\n public getD3YScale (scale: IChartScale): IAxiomD3ContinuousScale {\n return this.getD3Scale(scale)\n }\n\n public getD3XScale (scale: IChartScale): IAxiomD3ContinuousScale {\n return this.getD3Scale(scale)\n }\n\n public getYAxis (axis: IChartAxis, axisSettings: IAxiomChartAxisSettings, index: number): IAxiomD3AxisCall {\n if (axis.scale === undefined) {\n return (g) => g\n }\n const d3Scale: AxisScale<Date | NumberValue> = this.getD3YScale(axis.scale)\n const d3Axis = axisLeft(d3Scale)\n this.updateD3AxisSettings(d3Axis, axisSettings)\n\n const axisSpace = axis.scale.range[1] - axis.scale.range[0]\n const minAxisSpace = Math.min(axisSpace / 2, axisSettings.tickSpace !== undefined ? axisSettings.tickSpace : 50)\n d3Axis.ticks(Math.floor(axisSpace / minAxisSpace))\n\n const offset = this.getyAxisOffset(axis)\n const axisG = (g: IAxiomD3GSelection): IAxiomD3GSelection => {\n const o = g\n .attr('transform', `translate(${offset.x},${offset.y})`)\n .call(d3Axis)\n o.select('.domain').remove()\n return o\n }\n return axisG\n }\n\n public getXAxis (axis: IChartAxis, axisSettings: IAxiomChartAxisSettings): IAxiomD3AxisCall {\n if (axis.scale === undefined) {\n return (g) => g\n }\n const d3Scale: AxisScale<Date | NumberValue> = this.getD3XScale(axis.scale)\n const d3Axis = axisBottom(d3Scale)\n this.updateD3AxisSettings(d3Axis, axisSettings)\n\n const axisSpace = axis.scale.range[1] - axis.scale.range[0]\n const minAxisSpace = Math.min(axisSpace / 2, axisSettings.tickSpace !== undefined ? axisSettings.tickSpace : 50)\n d3Axis.ticks(Math.floor(axisSpace / minAxisSpace))\n\n const offset = this.getXAxisOffset(axis)\n const axisG = (g: IAxiomD3GSelection): IAxiomD3GSelection => {\n const o = g\n .attr('transform', `translate(${offset.x},${offset.y + 1})`)\n .call(d3Axis)\n o\n .select('.domain')\n .remove()\n return o\n }\n return axisG\n }\n\n public adjustYAxis (): void {\n console.log('here')\n const chartElements = this.getChartElements()\n if (chartElements === undefined) return\n const { svg, canvas } = chartElements\n let node = svg.selectAll('.y-axis').nodes()[0]\n if (node === null || node === undefined) return\n node = (node as Element)\n // const yAxisWidth = node.getBoundingClientRect()\n console.log(node)\n svg.selectAll('.y-axis').attr('translate', 'transform(100px, 100px)').attr('width', 100)\n canvas.attr('width', this.getWidth() - 45.7)\n canvas.attr('transform', `translate(${45.7}, 0)`)\n }\n\n public showYAxes (axes: IChartAxis[]): void {\n const chartElements = this.getChartElements()\n if (chartElements === undefined) {\n return undefined\n }\n const { svg } = chartElements\n axes.forEach((axis, index) => {\n const axisSettings = {}\n if (axis?.scale !== undefined) {\n const axisG = this.getYAxis(\n axis,\n axisSettings,\n index\n )\n const axisSelection = svg.select('.y-axis').size() > 0 ? svg.select('.y-axis') : svg.append('g').attr('class', 'y-axis axis')\n axisSelection.append('g').call(axisG)\n }\n })\n if (this.settings.layout === 'timeseries') {\n this.showYLabelsForTimeSeries(axes, this.plots)\n }\n }\n\n public getAxisLabel (axis: IChartAxis, dimensionKey: string): string | undefined {\n return axis.plots[0]?.dimensions[dimensionKey].label\n }\n\n public showYLabelsForTimeSeries (axes: IChartAxis[], plots: IPlot[]): void {\n const yLabelsAreSupportedForPlotType = [EPlotTypes.line, EPlotTypes.scatter, EPlotTypes.seasonal, EPlotTypes.area]\n .find(type => type === plots[0].type) !== undefined\n if (plots.length === 0 || !yLabelsAreSupportedForPlotType) {\n return\n }\n\n const chartElements = this.getChartElements()\n if (chartElements === undefined) {\n return\n }\n const { svg } = chartElements\n const axisSelection = svg.select('.y-axis').size() > 0 ? svg.select('.y-axis') : svg.append('g').attr('class', 'y-axis axis')\n\n // TODO: Don't hardcode these two vars\n const axisWidth = 24\n const labelMargin = 3\n axes.forEach(axis => {\n axisSelection.append('text')\n .attr('class', 'y-label')\n .attr('transform', 'rotate(-90)')\n .style('text-anchor', 'middle')\n .attr('x', -1 * Math.floor(this.getChartHeight() / 2))\n .attr('y', `${this.getyAxisOffset(axis).x - axisWidth - labelMargin}`)\n .attr('font-size', '.75rem')\n .text(this.getAxisLabel(axis, 'y') ?? '')\n })\n }\n\n public getXAxisOffset (axis: IChartAxis): { x: number, y: number } {\n return {\n x: this.settings.margin.left,\n y: this.settings.height - this.settings.margin.bottom,\n ...axis.offset\n }\n }\n\n public getyAxisOffset (axis: IChartAxis): { x: number, y: number } {\n return {\n x: this.settings.margin.left,\n y: this.settings.margin.top,\n ...axis.offset\n }\n }\n\n public showXAxes (axes: IChartAxis[]): void {\n const chartElements = this.getChartElements()\n if (chartElements === undefined) {\n return undefined\n }\n const { svg } = chartElements\n axes.forEach((axis, index) => {\n const axisSettings = {}\n if (axis?.scale !== undefined) {\n const axisG = this.getXAxis(\n axis,\n axisSettings\n )\n const axisSelection = svg.select('.x-axis').size() > 0 ? svg.select('.x-axis') : svg.append('g').attr('class', 'x-axis axis')\n axisSelection.append('g').call(axisG)\n }\n })\n }\n\n public getCanvasContext (): CanvasRenderingContext2D | null {\n if (this.chartElements !== undefined) {\n const { canvas } = this.chartElements\n const node = canvas.node()\n if (node !== undefined && node !== null) {\n return node.getContext('2d')\n }\n }\n return null\n }\n\n public onResize (prevWidth: number, prevHeight: number): void {\n if (this.settings.width === 'auto') {\n const { height } = this.settings\n const width = this.getWidth()\n const ctx = this.getCanvasContext()\n if (this.runtime.busy !== true && ctx !== null && this.chartElements !== undefined && ctx !== undefined && (prevWidth !== width || prevHeight !== height)) {\n this.runtime.busy = true\n const { svg, canvas } = this.chartElements\n svg.selectAll('*').remove()\n svg.attr('viewBox', [0, 0, width, height])\n .attr('width', width)\n ctx.clearRect(0, 0, +canvas.attr('width'), +canvas.attr('height'))\n canvas\n .attr('width', width)\n .attr('height', height)\n this.init(true).then(() => {\n this.runtime.busy = false\n console.log('drawn')\n }).catch(e => {\n this.onError(e)\n })\n } else {\n console.log('skipping resize!')\n }\n }\n }\n\n public getChartElements (): IAxiomChartElements | undefined {\n if (this.chartElements !== undefined) {\n return this.chartElements\n }\n const { height } = this.settings\n const width = this.getWidth()\n const svg: Selection<SVGSVGElement, undefined, null, undefined> = create('svg')\n .attr('viewBox', [0, 0, width, height])\n .attr('width', width)\n .attr('height', height)\n .style('position', 'absolute')\n .style('z-index', 20)\n\n const canvas: Selection<HTMLCanvasElement, undefined, null, undefined> = create('canvas')\n .attr('width', width)\n .attr('height', height)\n .style('position', 'absolute')\n\n if (canvas !== null && svg !== null) {\n this.chartElements = {\n canvas,\n svg\n }\n const context = this.getCanvasContext()\n if (context !== null) {\n context.imageSmoothingQuality = 'high'\n }\n }\n return this.chartElements\n }\n\n public drawPlotScrubbing (plotId: string, scrubPosition: IPlotScrubEvent, style?: IPlotStyle, scrubSettings?: IPlotScrubSettings): void {\n const chartElements = this.getChartElements()\n if (chartElements === undefined) return\n if (scrubPosition === undefined || scrubPosition.x === undefined || scrubPosition.y === undefined) return\n const { x, y } = scrubPosition\n this.drawScrubLine(plotId, scrubPosition, chartElements.svg, style, scrubSettings)\n this.drawPlotScrubCircle(plotId, x?.position, y?.position, chartElements.svg, style)\n }\n\n private drawScrubLine (plotId: string, scrubPosition: IPlotScrubEvent, svg: IAxiomChartElements['svg'], style?: IPlotStyle, scrubSettings?: IPlotScrubSettings): void {\n const scrubLineClass = this.getPlotScrubLineClass(plotId)\n svg.select(`.${scrubLineClass}`).remove()\n const line = svg.insert('line')\n .classed(scrubLineClass, true)\n if (scrubSettings?.axis === EChartAxes.x) {\n const lineLength = this.settings.height - this.settings.margin.bottom\n line.attr('x1', scrubPosition.x?.position ?? 0)\n .attr('y1', 0)\n .attr('x2', scrubPosition.x?.position ?? 0)\n .attr('y2', lineLength)\n .attr('stroke', this.getPlotStrokeColor(style))\n .style('stroke-width', this.getPlotStrokeWidth(style))\n } else {\n const width = this.getChartWidth()\n const left = this.settings.margin.left\n const lineLength = width - left\n line.attr('x1', this.settings.margin.left)\n .attr('y1', scrubPosition.y?.position ?? 0)\n .attr('x2', width + lineLength)\n .attr('y2', scrubPosition.y?.position ?? 0)\n .attr('stroke', this.getPlotStrokeColor(style))\n .style('stroke-width', this.getPlotStrokeWidth(style))\n }\n }\n\n private drawPlotScrubCircle (plotId: string, x: number, y: number, svg: IAxiomChartElements['svg'], style?: IPlotStyle): void {\n svg.select(`.${this.getPlotScrubCircleClass(plotId)}`).remove()\n svg.insert('circle')\n .classed(this.getPlotScrubCircleClass(plotId), true)\n .attr('r', 6)\n .attr('cx', x)\n .attr('cy', y)\n .style('stroke', this.getPlotStrokeColor(style))\n .style('stroke-width', this.getPlotStrokeWidth(style))\n .style('fill-opacity', '0')\n }\n\n public erasePlotScrub (plotId: string): void {\n if (this.chartElements === undefined) return\n this.chartElements.svg.select(`.${this.getPlotScrubCircleClass(plotId)}`).remove()\n this.chartElements.svg.select(`.${this.getPlotScrubLineClass(plotId)}`).remove()\n }\n\n public getScrubEvent (\n event: MouseEvent,\n scrubAxis: EChartAxes,\n xScale: IAxiomD3ContinuousScale,\n yScale: IAxiomD3ContinuousScale,\n xAccessor: INumericDataAccessor,\n yAccessor: INumericDataAccessor,\n rows: IDataRow[],\n offsetSettings: { x: number, y: number }): IPlotScrubEvent {\n let mousePosition: number\n let offset: number\n let scrubbingScale: IAxiomD3ContinuousScale\n let scrubbingAccessor: (row: IDataRow) => INumericData\n let valueAccessor: (row: IDataRow) => INumericData\n if (scrubAxis === EChartAxes.x) {\n mousePosition = event.offsetX\n offset = offsetSettings.x\n scrubbingScale = xScale\n scrubbingAccessor = xAccessor\n valueAccessor = yAccessor\n } else {\n mousePosition = event.offsetY\n offset = offsetSettings.y\n scrubbingScale = yScale\n scrubbingAccessor = yAccessor\n valueAccessor = xAccessor\n }\n\n const scrubValue = scrubbingScale.invert(mousePosition - offset)\n\n const bisect = bisector((row: IDataRow) => scrubbingAccessor(row)).center\n const bisectIndex = bisect(rows, scrubValue)\n\n const nearestRow = this.getDataRowNearestToScrub(bisectIndex, scrubValue, rows, valueAccessor, scrubbingAccessor)\n\n const bisected = nearestRow\n const xValue = xAccessor(bisected)\n const xPosition = xScale(xValue) + offsetSettings.x\n\n const yValue = yAccessor(nearestRow)\n const yPosition = yScale(yValue) + offsetSettings.y\n\n return {\n x: {\n position: xPosition,\n value: xValue\n },\n y: {\n position: yPosition,\n value: yValue\n }\n }\n }\n\n private getDataRowNearestToScrub (\n bisectIndex: number,\n scrubValue: number | Date,\n parsedData: IDataRow[],\n valueAccessor: (row: IDataRow) => INumericData,\n scrubbingAccessor: (row: IDataRow) => INumericData\n ): IDataRow {\n const nonEmptyRows = parsedData.filter(row => valueAccessor(row) !== null && valueAccessor(row) !== undefined)\n let minDistance = Number.MAX_VALUE\n let nearestRow = parsedData[bisectIndex]\n for (let i = 0; i < nonEmptyRows.length; i += 1) {\n const current = scrubbingAccessor(nonEmptyRows[i])\n const distance = Math.abs(+current - +scrubValue)\n if (distance < minDistance) {\n minDistance = distance\n nearestRow = nonEmptyRows[i]\n }\n }\n return nearestRow\n }\n\n private getPlotStrokeColor (style?: IPlotStyle): string {\n return style?.strokeColor ?? '#333'\n }\n\n private getPlotStrokeWidth (style?: IPlotStyle): number {\n return style?.strokeWidth ?? 1\n }\n\n private getPlotScrubCircleClass (plotId: string): string {\n return `${plotId}-scrub-circle`\n }\n\n private getPlotScrubLineClass (plotId: string): string {\n return `${plotId}-scrub-line`\n }\n\n protected attachChartElements (): void {\n const chartElements = this.getChartElements()\n if (this.element !== undefined && chartElements !== undefined) {\n const { svg, canvas } = chartElements\n const svgNode = svg?.node()\n const canvasNode = canvas?.node()\n if (svgNode !== null && canvasNode !== null) {\n this.element.innerHTML = ''\n this.element.append(svgNode)\n this.element.append(canvasNode)\n }\n }\n }\n\n protected createPlot (plot: IPlot): IPlotImplementation {\n const props = this.getPlotImplementationProps(plot)\n if (plot.type === EPlotTypes.line) {\n return new chartTypes.Line(props)\n } else if (plot.type === EPlotTypes.area) {\n return new chartTypes.Area(props)\n } else if (plot.type === EPlotTypes.scatter) {\n return new chartTypes.Scatter(props)\n } else if (plot.type === EPlotTypes.bar) {\n return new chartTypes.Bar(props)\n }\n return new PlotRoot(props)\n }\n\n public clearCanvas (): void {\n const ctx = this.getCanvasContext()\n if (ctx !== null) {\n ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height)\n }\n }\n\n public async init (drawImmediately: boolean = false): Promise<void> {\n await super.init(drawImmediately)\n this.attachChartElements()\n // this.adjustYAxis()\n }\n\n public destroy (): void {\n console.log('destroy')\n this.chartElements = undefined\n super.destroy()\n }\n}\n\nexport default AxiomChart\n\nexport type {\n IAxiomChartAxisSettings,\n IAxiomChartElements,\n IAxiomD3GSelection,\n IAxiomD3AxisCall,\n IAxiomD3ContinuousScale,\n IAxiomSelectionValueFn\n}\n","import { lineRadial, curveLinearClosed } from 'd3-shape'\nimport AxiomLine from '@/Libraries/axiom/Plots/AxiomLine'\nimport { type IDataRow } from '@axdspub/axiom-ui-data-services'\nimport type AxiomRadialChart from '@/Libraries/axiom/Radial/AxiomRadialChart'\n\nclass AxiomRadialLine extends AxiomLine {\n public async draw (): Promise<void> {\n const style = this.style !== undefined ? this.style : {}\n const data = await this.getData()\n const parsedData = data?.parsed?.data\n const xAccessor = this.getAccessorAtAxis('x')\n const yAccessor = this.getAccessorAtAxis('y')\n const chart = this.chart as AxiomRadialChart\n const chartElements = chart.getChartElements()\n\n if (chartElements === undefined || chartElements.svg === null) {\n return undefined\n }\n const svg = chartElements.svg\n const xAxisScale = this?.axes?.x?.scale\n const yAxisScale = this?.axes?.y?.scale\n if (xAxisScale === undefined || yAxisScale === undefined || parsedData === undefined || xAccessor === undefined || yAccessor === undefined) {\n return undefined\n }\n /* const offset = {\n x: (this?.axes?.x?.offset?.x !== undefined ? this.axes.x.offset.x : 0),\n y: (this?.axes?.y?.offset?.y !== undefined ? this.axes.y.offset.y : 0)\n } */\n\n const xScale = chart.getD3RadialXScale(xAxisScale)\n const xPosition = (d: IDataRow): number => {\n const v = xAccessor(d)\n const p = xScale(v)\n return p === undefined ? 0 : p\n }\n\n const yScale = chart.getD3RadialYScale(yAxisScale)\n const yPosition = (d: IDataRow): number => {\n const v = yAccessor(d)\n const p = yScale(v)\n return p === undefined ? 0 : p\n }\n\n /* const isDefined = (d: IDataRow): boolean => {\n const v = yAccessor(d)\n return !!((v !== undefined && v !== null && !isNaN(+v)))\n } */\n\n const line = lineRadial()\n .angle(xPosition)\n .radius(yPosition)\n .curve(curveLinearClosed)\n\n const radialData = parsedData.slice()\n const chartOffset = chart.getChartOffset()\n\n const stroke = style.strokeColor !== undefined ? style.strokeColor : '#333'\n svg.append('g')\n .attr('transform', `translate(${chartOffset.x},${chartOffset.y})`)\n .attr('class', 'radial-line')\n .append('path')\n .attr('fill', 'none')\n .attr('stroke', stroke)\n .attr('stroke-width', style.strokeWidth !== undefined ? style.strokeWidth : 1)\n .attr('d', line(radialData as unknown as Iterable<[number, number]>))\n\n if (this.axes?.y !== undefined && !(this.legendSettings.hide ?? false)) {\n super.onLegendReady([{\n id: this.axes.y.key,\n label: chart.getAxisLabel(this.axes.y, 'y') ?? this.axes.y.key,\n style: { backgroundColor: stroke }\n }])\n }\n }\n}\n\nexport default AxiomRadialLine\n","import { pointRadial } from 'd3-shape'\nimport AxiomScatter from '@/Libraries/axiom/Plots/AxiomLine'\nimport { type IDataRow } from '@axdspub/axiom-ui-data-services'\nimport type AxiomRadialChart from '@/Libraries/axiom/Radial/AxiomRadialChart'\n\nclass AxiomRadialScatter extends AxiomScatter {\n public async draw (): Promise<void> {\n // const style = this.style !== undefined ? this.style : {}\n const data = await this.getData()\n const parsedData = data?.parsed?.data\n const xAccessor = this.getAccessorAtAxis('x')\n const yAccessor = this.getAccessorAtAxis('y')\n const chart = this.chart as AxiomRadialChart\n const chartElements = chart.getChartElements()\n\n if (chartElements === undefined || chartElements.svg === null) {\n return undefined\n }\n const svg = chartElements.svg\n const xAxisScale = this?.axes?.x?.scale\n const yAxisScale = this?.axes?.y?.scale\n if (xAxisScale === undefined || yAxisScale === undefined || parsedData === undefined || xAccessor === undefined || yAccessor === undefined) {\n return undefined\n }\n /* const offset = {\n x: (this?.axes?.x?.offset?.x !== undefined ? this.axes.x.offset.x : 0),\n y: (this?.axes?.y?.offset?.y !== undefined ? this.axes.y.offset.y : 0)\n } */\n\n const xScale = chart.getD3RadialXScale(xAxisScale)\n\n const xPosition = (d: IDataRow): number => {\n const v = xAccessor(d)\n const p = xScale(v)\n return p === undefined ? 0 : p\n }\n\n const yScale = chart.getD3RadialYScale(yAxisScale)\n const yPosition = (d: IDataRow): number => {\n const v = yAccessor(d)\n const p = yScale(v)\n return p === undefined ? 0 : p\n }\n\n const g = svg.append('g')\n .attr('transform', `translate(${chart.getChartSize() / 2},${chart.getChartSize() / 2})`)\n .attr('class', 'radial-scatter')\n\n const style = this.style !== undefined ? this.style : {}\n const radius = style.radius !== undefined ? style.radius : 2\n\n const fill = style.fill !== undefined ? style.fill : '#333'\n const stroke = style.strokeColor !== undefined ? style.strokeColor : '#CCC'\n parsedData.forEach(d => {\n const pt = pointRadial(xPosition(d), yPosition(d))\n g.append('circle')\n .attr('r', radius * 2)\n .attr('fill', fill)\n .attr('stroke', stroke)\n .attr('stroke-width', (style.strokeWidth !== undefined || style.strokeColor !== undefined) ? ((style.strokeWidth !== undefined ? style.strokeWidth : 1)) : 0)\n .attr('cx', pt[0] + chart.settings.margin.left)\n .attr('cy', pt[1] + chart.settings.margin.top)\n })\n\n if (this.axes?.y !== undefined && !(this.legendSettings.hide ?? false)) {\n super.onLegendReady([{\n id: this.axes.y.key,\n label: chart.getAxisLabel(this.axes.y, 'y') ?? this.axes.y.key,\n style: {\n backgroundColor: fill,\n border: `1px solid ${stroke}`\n }\n }])\n }\n }\n}\n\nexport default AxiomRadialScatter\n","import { areaRadial, curveLinearClosed } from 'd3-shape'\nimport AxiomArea from '@/Libraries/axiom/Plots/AxiomArea'\nimport { type INumericDataAccessor, type IDataRow } from '@axdspub/axiom-ui-data-services'\nimport type AxiomRadialChart from '@/Libraries/axiom/Radial/AxiomRadialChart'\nimport { type IAxiomD3ContinuousScale } from '@/Libraries/axiom/AxiomChart'\n\nclass AxiomRadialArea extends AxiomArea {\n public async draw (): Promise<void> {\n const style = this.style !== undefined ? this.style : {}\n const data = await this.getData()\n const parsedData = data?.parsed?.data\n\n const xAccessors = this.getAccessorsAtAxis('x')\n const xAccessor = this.getAccessorAtAxis('x')\n const x0Accessor = xAccessors.x0\n const x1Accessor = xAccessors.x1\n\n const yAccessors = this.getAccessorsAtAxis('y')\n const yAccessor = this.getAccessorAtAxis('y')\n const y0Accessor = yAccessors.y0\n const y1Accessor = yAccessors.y1\n\n const chart = this.chart as AxiomRadialChart\n const chartElements = chart.getChartElements()\n\n if (chartElements === undefined || chartElements.svg === null) {\n return undefined\n }\n const svg = chartElements.svg\n\n const xAxisScale = this?.axes?.x?.scale\n const yAxisScale = this?.axes?.y?.scale\n if (\n xAxisScale === undefined ||\n yAxisScale === undefined ||\n parsedData === undefined ||\n (\n xAccessor === undefined && x0Accessor === undefined && x1Accessor === undefined\n ) ||\n (\n yAccessor === undefined && y0Accessor === undefined && y1Accessor === undefined\n )\n ) {\n console.log('Missing one of: xAxisScale, yAxisScale, parsedData, xAccessor(s), yAccessor(s)')\n return undefined\n }\n\n const xScale = chart.getD3RadialXScale(xAxisScale)\n const yScale = chart.getD3RadialYScale(yAxisScale)\n\n const makePositionFn = (acc: INumericDataAccessor, d3Scale: IAxiomD3ContinuousScale) => {\n return (d: IDataRow): number => {\n const v = acc(d)\n const p = d3Scale(v)\n return p === undefined ? 0 : p\n }\n }\n\n const makeDefinedFn = (acc: INumericDataAccessor) => {\n return (d: IDataRow): boolean => {\n const v = acc(d)\n return !!((v !== undefined && v !== null && !isNaN(+v)))\n }\n }\n\n if (xAccessor === undefined || y0Accessor === undefined || y1Accessor === undefined) {\n return undefined\n }\n\n const area = areaRadial()\n .angle(makePositionFn(xAccessor, xScale))\n .innerRadius(makePositionFn(y0Accessor, yScale))\n .outerRadius(makePositionFn(y1Accessor, yScale))\n .defined(makeDefinedFn(y1Accessor))\n .curve(curveLinearClosed)\n\n const radialData = parsedData.slice()\n const chartOffset = chart.getChartOffset()\n\n const fill = style.fill !== undefined ? style.fill : '#EDEDED99'\n svg.insert('g', 'g.axis')\n .attr('transform', `translate(${chartOffset.x},${chartOffset.y})`)\n .attr('class', 'radial-area')\n .append('path')\n .attr('fill', fill)\n .attr('stroke-width', style.strokeWidth !== undefined ? style.strokeWidth : 1)\n .attr('d', area(radialData as unknown as Iterable<[number, number]>))\n\n if (this.axes?.y !== undefined && !(this.legendSettings.hide ?? false)) {\n super.onLegendReady([{\n id: this.axes.y.key,\n label: chart.getAxisLabel(this.axes.y, 'y') ?? this.axes.y.key,\n style: { backgroundColor: fill }\n }])\n }\n }\n}\n\nexport default AxiomRadialArea\n","import { type IChartDimensionDomain } from '@/library'\nimport AxiomPlotRoot from '../../Plots/PlotRoot'\nimport type AxiomRadialChart from '../AxiomRadialChart'\nimport * as d3 from 'd3'\nimport { type INumericDataAccessor, type IDataResult, type IDataRow } from '@axdspub/axiom-ui-data-services'\n\ninterface Stack {\n minDirection: number\n [maxSpeed: string]: number\n}\n\nclass AxiomRadialRose extends AxiomPlotRoot {\n data: IDataResult | undefined = undefined\n numBins = 16\n speedBins = d3.range(1, 8, 1)\n stacks: Stack[] | undefined = undefined\n directionMode: 'to' | 'from' = 'from'\n\n private async setStackedData (): Promise<void> {\n let parsedData: IDataRow[] = []\n if (this.data === undefined) {\n this.data = await this.getData()\n parsedData = this.data.parsed?.data ?? []\n }\n const y = this.data.parsed?.accessors.y\n if (this.stacks === undefined && y !== undefined) {\n this.stacks = this.getStackedData(parsedData, y)\n }\n }\n\n public async getDomain (_axis: string): Promise<IChartDimensionDomain> {\n await this.setStackedData()\n if (this.stacks === undefined) return [0, 10]\n return [0, this.getMaxStackTotal(this.stacks)]\n }\n\n private getStackedData (parsedData: IDataRow[], yAccessor: INumericDataAccessor): Stack[] {\n const degreesPerBin = 360 / this.numBins\n const directionBins = d3.range(0, 360, degreesPerBin)\n const values = parsedData.map(d => d.value)\n this.speedBins = d3.ticks(d3.min(values), d3.max(values), 5)\n const stacks: Stack[] = []\n\n directionBins.forEach(direction => {\n const newBin: Stack = {\n minDirection: direction\n }\n this.speedBins.forEach(bin => { newBin[bin] = 0 })\n stacks.push(newBin)\n })\n\n parsedData.forEach(row => {\n const directionBinIndex = Math.floor(row.direction / degreesPerBin)\n const stack = stacks[directionBinIndex]\n if (Number(yAccessor(row)) < this.speedBins[this.speedBins.length - 1]) {\n const speedBin = Math.floor(Number(yAccessor(row)))\n stack[speedBin] += 1\n }\n })\n\n return stacks\n }\n\n private getMaxStackTotal (stacks: Stack[]): number {\n return d3.max(stacks, stack => {\n return this.speedBins.reduce((sum, current) => sum + stack[current], 0)\n }) ?? 0\n }\n\n public async draw (): Promise<void> {\n const xAccessors = this.getAccessorsAtAxis('x')\n const xAccessor = this.getAccessorAtAxis('x')\n const x0Accessor = xAccessors.x0\n const x1Accessor = xAccessors.x1\n\n const yAccessors = this.getAccessorsAtAxis('y')\n const yAccessor = this.getAccessorAtAxis('y')\n const y0Accessor = yAccessors.y0\n const y1Accessor = yAccessors.y1\n\n await this.setStackedData()\n\n const chart = this.chart as AxiomRadialChart\n const chartElements = chart.getChartElements()\n\n if (chartElements === undefined || chartElements.svg === null) {\n return undefined\n }\n const svg = chartElements.svg\n\n const xAxisScale = this?.axes?.x?.scale\n const yAxisScale = this?.axes?.y?.scale\n if (\n xAxisScale === undefined ||\n yAxisScale === undefined ||\n (\n xAccessor === undefined && x0Accessor === undefined && x1Accessor === undefined\n ) ||\n (\n yAccessor === undefined && y0Accessor === undefined && y1Accessor === undefined\n )\n ) {\n console.log('Missing one of: xAxisScale, yAxisScale, parsedData, xAccessor(s), yAccessor(s)')\n return undefined\n }\n\n if (this.stacks === undefined || this.speedBins === undefined) return\n\n const maxStackTotal = this.getMaxStackTotal(this.stacks)\n\n const xScale = d3.scaleBand<number>()\n .domain(d3.range(0, 360, 360 / this.numBins))\n .range([0, 2 * Math.PI])\n\n const yScale = d3.scaleRadial()\n .domain([0, maxStackTotal])\n .range([chart.getInnerRadius(), chart.getOuterRadius()])\n\n const fillColors = this.style?.colors ?? d3.schemeTableau10\n const zScale = d3\n .scaleOrdinal()\n .range(fillColors)\n\n const data = d3.stack().keys(this.speedBins.map(bin => String(bin)))(this.stacks)\n const chartOffset = chart.getChartOffset()\n const bandwidth = 2 * Math.PI / this.numBins\n const getStartAngle = (direction: number): number => {\n const start = (xScale(direction) ?? 0) - (bandwidth / 2)\n return this.directionMode === 'from' ? start : (start + 180) % 360\n }\n const getEndAngle = (direction: number): number => {\n const start = (xScale(direction) ?? 0) + (bandwidth / 2)\n return this.directionMode === 'from' ? start : (start + 180) % 360\n }\n svg.insert('g', 'g.axis')\n .attr('transform', `translate(${chartOffset.x},${chartOffset.y})`)\n .selectAll('g')\n .data(data)\n .enter().append('g')\n .attr('fill', (d: any) => zScale(d.key) as string)\n .selectAll('path')\n .data(d => d)\n .enter().append('path')\n .on('mouseover', (event, data) => { this.onMouseScrub(event, data) })\n .on('mousemove', (event, data) => { this.onMouseScrub(event, data) })\n .on('mouseleave', () => { this.onScrubEnd() })\n .attr('d', d3.arc<any>()\n .innerRadius(d => yScale(d[0]))\n .outerRadius(d => yScale(d[1]))\n .startAngle(d => getStartAngle(d.data.minDirection))\n .endAngle(d => getEndAngle(d.data.minDirection))\n .padAngle(0.01)\n .padRadius(chart.getInnerRadius())\n )\n\n super.onLegendReady(data.map((d, i) => ({\n id: d.key,\n label: `< ${this.speedBins[i]} ${this.dimensions.z.displayUnits?.label ?? ''}`,\n style: {\n backgroundColor: zScale(d.key) as string\n }\n })))\n }\n\n private onMouseScrub (event: MouseEvent, data: any): void {\n if (this.chart.onPlotScrub === undefined) return\n this.onScrub({\n x: {\n position: event.offsetX,\n value: data.data.angle\n },\n y: {\n position: event.offsetY,\n value: { ...data }\n }\n })\n }\n}\n\nexport default AxiomRadialRose\n","import { scaleRadial } from 'd3-scale'\n\nimport AxiomChart, { type IAxiomD3AxisCall, type IAxiomChartAxisSettings, type IAxiomD3ContinuousScale, type IAxiomD3GSelection } from '../AxiomChart'\nimport { type IPlotImplementation, type IChartAxis, type IChartScale, type IPlot } from '@/Root/Types/ChartTypes'\n\nimport AxiomRadialLine from '@/Libraries/axiom/Radial/Plots/AxiomRadialLine'\nimport AxiomRadialScatter from '@/Libraries/axiom/Radial/Plots/AxiomRadialScatter'\nimport AxiomRadialArea from '@/Libraries/axiom/Radial/Plots/AxiomRadialArea'\nimport AxiomRadialRose from './Plots/AxiomRadialRose'\nimport { type RadialChartRoot } from '@/library'\n\nclass AxiomRadialChart extends AxiomChart implements RadialChartRoot {\n public getInnerRadius (): number {\n return this.getChartSize() / 5\n }\n\n public getOuterRadius (): number {\n return this.getChartSize() / 2\n }\n\n protected getXRange (_chartWidth: number): [number, number] {\n return [0, 2 * Math.PI]\n }\n\n protected getYRange (_chartHeight: number): [number, number] {\n return [this.getInnerRadius(), this.getOuterRadius()]\n }\n\n protected getYAxesWidth (): number {\n return this.settings.margin.left\n }\n\n public getChartSize (): number {\n const w: number = this.getWidth() - this.settings.margin.left - this.settings.margin.right\n const h: number = this.settings.height - this.settings.margin.top - this.settings.margin.bottom\n return Math.min(w, h)\n }\n\n public getChartWidth (): number {\n return this.getChartSize()\n }\n\n protected getChartHeight (): number {\n return this.getChartSize()\n }\n\n public getD3RadialYScale (scale: IChartScale): IAxiomD3ContinuousScale {\n return scaleRadial()\n .domain(scale.domain)\n .range(scale.range)\n }\n\n public getD3RadialXScale (scale: IChartScale, segments = 12): IAxiomD3ContinuousScale {\n const pi2 = 2 * Math.PI\n const d3Scale = super.getD3XScale(scale)\n d3Scale.range([0, pi2 - pi2 / segments])\n return d3Scale\n }\n\n public getYAxis (axis: IChartAxis, axisSettings: IAxiomChartAxisSettings, index: number): IAxiomD3AxisCall {\n if (axis.scale === undefined) {\n return g => g\n }\n const offset = this.getyAxisOffset(axis)\n const d3Scale = this.getD3RadialYScale(axis.scale)\n const tickFormat = d3Scale.tickFormat()\n\n const minTickSpace = 30\n const ySpace = d3Scale.range()[1] - d3Scale.range()[0]\n const idealTickLength = Math.floor(ySpace / minTickSpace)\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n const ticks = d3Scale.ticks(idealTickLength).map(tickFormat)\n const parseTick = (tick: string): number => Number(tick.replace(/,/g, ''))\n\n const axisCall = (g: IAxiomD3GSelection): IAxiomD3GSelection => {\n const dir = (index !== 0 && ((index % 2) !== 0) ? 1 : -1)\n g\n .attr('class', 'radial-axis')\n .attr('transform', `translate(${offset.x},${offset.y})`)\n .attr('text-anchor', 'middle')\n .selectAll()\n .data(ticks.reverse())\n .join('g')\n .attr('class', 'tick')\n .call(g => {\n if (index > 0) {\n return g\n }\n return g.append('circle')\n .attr('fill', 'none')\n .attr('stroke', 'currentColor')\n .attr('r', (tick) => {\n return d3Scale(parseTick(tick))\n })\n })\n .call(g => g.append('text')\n .attr('y', tick => dir * d3Scale(parseTick(tick)))\n .attr('dy', '0.35em')\n .attr('stroke', '#FFF')\n .attr('strokewidth', 5)\n .attr('paint-order', 'stroke')\n .attr('transform', `rotate(${index > 1 ? (index - 1) * -20 : 0})`)\n .text((x, i) => `${String(x)}`)\n )\n\n return g\n }\n return axisCall\n }\n\n public getChartOffset (): { x: number, y: number } {\n return {\n x: this.settings.margin.left + this.getChartSize() / 2,\n y: this.settings.margin.top + this.getChartSize() / 2\n }\n }\n\n public getXAxisOffset (_axis: IChartAxis): { x: number, y: number } {\n return this.getChartOffset()\n }\n\n public getyAxisOffset (_axis: IChartAxis): { x: number, y: number } {\n return this.getChartOffset()\n }\n\n public getXAxis (axis: IChartAxis, _axisSettings: IAxiomChartAxisSettings): IAxiomD3AxisCall {\n if (axis.scale === undefined) {\n return g => g\n }\n const innerRadius = this.getInnerRadius()\n const outerRadius = this.getOuterRadius()\n const offset = this.getXAxisOffset(axis)\n const d3Scale = this.getD3RadialXScale(axis.scale)\n const tickFormat = d3Scale.tickFormat()\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n const ticks: string[] = this.settings.axes?.x?.ticks ?? d3Scale.ticks().map(tickFormat)\n const rotateOffset = -90\n const getRotate = (index: number, len: number): number => {\n const r = (index * 360 / len)\n return r\n }\n\n const radialAxis = (g: IAxiomD3GSelection): IAxiomD3GSelection => {\n g\n .append('g')\n .attr('class', 'radial-axis')\n .attr('transform', `translate(${offset.x},${offset.y}) rotate(${rotateOffset})`)\n .attr('text-anchor', 'left')\n .call(g => g.selectAll('g')\n .data(ticks)\n .join('g')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n .attr('transform', (_d: string | number, i: number, arr: any[]) => `\n rotate(${getRotate(i, arr.length)})\n translate(${innerRadius},0)\n `)\n .attr('class', 'tick')\n .call(g => g.append('line')\n .attr('x1', -5)\n .attr('x2', outerRadius - innerRadius + 10)\n )\n .call(g => g.append('text')\n .attr('text-anchor', 'middle')\n .attr('transform', 'rotate(90)translate(0,16)')\n .text((d: string): string => d)))\n\n return g\n }\n\n return radialAxis\n }\n\n createPlot (plot: IPlot): IPlotImplementation {\n const props = this.getPlotImplementationProps(plot)\n if (plot.type === 'line') {\n return new AxiomRadialLine(props)\n } else if (plot.type === 'scatter') {\n return new AxiomRadialScatter(props)\n } else if (plot.type === 'area') {\n return new AxiomRadialArea(props)\n } else if (plot.type === 'windrose') {\n return new AxiomRadialRose(props)\n }\n return new AxiomRadialLine(props)\n }\n}\n\nexport default AxiomRadialChart\n","import PlotRoot from '@/Root/Plots/PlotRoot'\n\nclass Box extends PlotRoot {\n public async draw (): Promise<void> {\n console.log('line: draw method not implemented')\n }\n}\n\nexport default Box\n","import PlotRoot from '@/Root/Plots/PlotRoot'\n\nclass LineBase extends PlotRoot {\n public async draw (): Promise<void> {\n console.log('line: draw method not implemented')\n }\n}\n\nexport default LineBase\n","import Box from '@/Root/Plots/BoxBase'\nimport Line from '@/Root/Plots/LineBase'\n/* import Stacked from '@/Plots/Stacked'\nimport Scatter from '@/Plots/Scatter'\nimport Curtain from '@/Plots/Curtain'\nimport Profile from '@/Plots/Profile'\nimport Seasonal from '@/Plots/Seasonal' */\n\nconst plotsOb = {\n box: Box,\n line: Line\n /* scatter: Scatter,\n curtain: Curtain,\n profile: Profile,\n seasonal: Seasonal,\n stacked: Stacked */\n}\n\nexport default plotsOb\n","import AxiomChart from '@/Libraries/axiom/AxiomChart'\nimport AxiomRadialChart from '@/Libraries/axiom/Radial/AxiomRadialChart'\nimport AxiomLine from '@/Libraries/axiom/Plots/AxiomLine'\nimport BasePlots from '@/Root/Plots'\n\nconst axiomPlotTypes = {\n ...BasePlots,\n line: AxiomLine\n}\nconst axiomLibrary = {\n Chart: AxiomChart,\n RadialChart: AxiomRadialChart,\n plotTypes: axiomPlotTypes\n}\n\nexport default axiomLibrary\n"],"names":["line","d3Line","area","d3Area","Bar","AxiomScatter","Line","BasePlots"],"mappings":"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","x_google_ignoreList":[0,10]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../src/Root/Types/ChartTypes.ts","../../../src/Root/Plots/PlotRoot.ts","../../../src/Root/ChartRoot.ts","../../../src/Libraries/axiom/Plots/PlotRoot.ts","../../../src/Libraries/axiom/Plots/AxiomLine.ts","../../../src/Libraries/axiom/Plots/AxiomArea.ts","../../../src/Libraries/axiom/Plots/AxiomScatter.ts","../../../src/Libraries/axiom/Plots/Bar.ts","../../../src/Libraries/axiom/Plots/index.ts","../../../node_modules/style-inject/dist/style-inject.es.js","../../../src/Libraries/axiom/AxiomChart.ts","../../../src/Libraries/axiom/Radial/Plots/AxiomRadialLine.ts","../../../src/Libraries/axiom/Radial/Plots/AxiomRadialScatter.ts","../../../src/Libraries/axiom/Radial/Plots/AxiomRadialArea.ts","../../../src/Libraries/axiom/Radial/Plots/AxiomRadialRose.ts","../../../src/Libraries/axiom/Radial/AxiomRadialChart.ts","../../../src/Root/Plots/BoxBase.ts","../../../src/Root/Plots/LineBase.ts","../../../src/Root/Plots/index.ts","../../../src/Libraries/axiom/index.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","import { type IRequestItemData, type INumericDataAccessor, type IDataResult, type IRequestItemProps, type IRequestItemImplementation } from '@axdspub/axiom-ui-data-services'\n\ninterface IUnit {\n code: string\n label: string\n}\n\ninterface ILegendItem {\n id: string\n label: string\n style: React.CSSProperties\n}\n\ntype IPlotLegends = Record<PlotId, ILegendItem[]>\n\ninterface IChartAxis {\n label?: string\n unit?: IUnit\n plots: IPlot[]\n key: string\n scale?: IChartScale\n offset?: {\n x?: number\n y?: number\n }\n}\nenum EChartAxes {\n x = 'x',\n y = 'y',\n z = 'z',\n color = 'color'\n}\n\ninterface IChartAxes {\n [EChartAxes.x]?: IChartAxis\n [EChartAxes.y]?: IChartAxis\n [EChartAxes.z]?: IChartAxis\n [EChartAxes.color]?: IChartAxis\n}\n\ntype IChartDimensionParameter = string\n\ninterface IPlotAxisSetting {\n reverse?: boolean\n accessProperties?: Record<string, string>\n parameter?: IChartDimensionParameter\n}\n\ntype IPlotAxisSettings = Record<string, IPlotAxisSetting | undefined>\n\ninterface IPlotLegendSettings {\n hide?: boolean\n axis?: EChartAxes\n}\n\ninterface IPlotScrubSettings {\n enabled?: boolean\n axis?: EChartAxes\n followCursor?: boolean\n}\n\ntype IChartDimensionDomain = Array<Date | number>\ntype IChartDimensionAccessor = (row: any) => number | number[] | Record<string, number> | Date\n\ntype INumericScale = (d: any) => number\ninterface IChartScale {\n // axis: EChartAxes\n // plots: IPlotImplementation[]\n // scale: INumericScale\n range: INumericRange\n domain: IChartDimensionDomain\n // position?: (d: number | null) => number\n}\n\ntype INumericRange = number[]\ninterface IChartDimension {\n accessor?: IChartDimensionAccessor\n parameter?: IChartDimensionParameter\n domain?: IChartDimensionDomain\n range?: INumericRange\n scale?: IChartScale\n label?: string\n displayUnits?: IUnit\n sourceUnits?: IUnit\n axes?: IChartAxes\n property?: string\n properties?: string[]\n}\n\ntype IChartDimensions = Record<string, IChartDimension>\n\nenum EPlotTypes {\n line = 'line',\n area = 'area',\n scatter = 'scatter',\n box = 'box',\n bar = 'bar',\n stacked = 'stacked',\n anomaly = 'anomaly',\n curtain = 'curtain',\n curtain_anomaly = 'curtain_anomaly',\n seasonal = 'seasonal',\n radial = 'radial',\n pie = 'pie',\n windrose = 'windrose',\n}\n\ninterface IPlotStyle {\n strokeWidth?: number\n strokeColor?: string\n strokeDash?: [number, number]\n fill?: string\n radius?: number\n colors?: string[]\n}\n\n// service?: () => Promise<any>\n// parser?: (data: any) => IPlotData\ninterface IPlot extends IRequestItemProps {\n id: string\n type: EPlotTypes\n dimensions: IChartDimensions\n data?: IDataResult\n axes?: IChartAxes\n style?: IPlotStyle\n scrubbing?: boolean\n scrubSettings?: IPlotScrubSettings\n onDataLoad?: (event: IPlotDataLoadEvent) => void\n axisSettings?: IPlotAxisSettings\n legendSettings?: IPlotLegendSettings\n}\n\ninterface IPlotImplementationProps extends IPlot {\n chart: IChartImplementation\n}\n\ntype IPlotDataAccessors = { [key in EChartAxes]?: INumericDataAccessor }\ninterface IPlotData extends IRequestItemData {\n accessors: IPlotDataAccessors\n}\n\ninterface IPlotDataLoadEvent {\n plotId: string\n data: IDataResult\n properties?: any\n}\n\ninterface IScrubEvent {\n position: number\n value: any\n properties?: any\n}\n\ntype IPlotScrubEvent = {\n [key in EChartAxes]?: IScrubEvent\n}\n\ntype PlotId = string\n\ntype IPlotScrubs = Record<PlotId, IPlotScrubEvent>\n\ninterface IPlotImplementation extends IPlotImplementationProps, IRequestItemImplementation {\n chart: IChartImplementation\n draw: () => Promise<void>\n destroy: () => void\n getDomain: (axis: EChartAxes) => Promise<IChartDimensionDomain>\n getYDomain: () => Promise<IChartDimensionDomain>\n getAxisSetting: (axis: string) => IPlotAxisSetting\n runtime: any\n\n}\n\ninterface IPlotImplementationGroup {\n plots: IPlotImplementation[]\n reverse: boolean\n parameter: IChartDimensionParameter\n}\n\ntype IPlotImplementationGroups = Record<string, IPlotImplementationGroup>\n\n// interface IPlotTypes = Record<EPlotTypes.anomaly | EPlotTypes.line | EPlotTypes.scatter | EPlotTypes.curtain | EPlotTypes.line | EPlotTypes.seasonal, IPlotImplementation | undefined>\n\ntype IPlotTypes = { [key in EPlotTypes]?: ((props: IPlotImplementationProps) => IPlotImplementation) }\ninterface IChartLibrary {\n Chart: (props: IChartImplementationProps) => IChartImplementation\n RadialChart: (props: IChartImplementationProps) => IChartImplementation\n // plotTypes: IPlotTypes\n}\n\ninterface IChartSettings {\n margin: {\n left: number\n right: number\n top: number\n bottom: number\n }\n width: number | 'auto'\n height: number\n layout?: 'radial' | 'windrose' | 'timeseries' | undefined\n axes?: any\n}\n\ninterface IChart {\n settings: IChartSettings\n plots: IPlot[]\n label?: string\n description?: string\n help?: string\n onPlotDataLoad?: (event: IPlotDataLoadEvent) => void\n onPlotLegendReady?: (plotId: string, legendItems: ILegendItem[]) => void\n onPlotScrub?: (plotId: string, scrubData: IPlotScrubEvent) => void\n onPlotScrubEnd?: (plotId: string) => void\n}\n\ninterface IChartImplementationProps extends IChart {\n element?: HTMLElement\n}\n\ninterface IChartImplementation extends IChartImplementationProps {\n init: (drawImmediately: boolean) => Promise<void>\n draw: () => Promise<void>\n destroy: () => void\n}\n\nexport type {\n ILegendItem,\n IPlotLegends,\n INumericScale,\n INumericRange,\n IChartLibrary,\n IChartAxis,\n IChartAxes,\n IPlotAxisSetting,\n IPlotAxisSettings,\n IChartDimensions,\n IChartDimension,\n IChartDimensionParameter,\n IChartDimensionAccessor,\n IChartDimensionDomain,\n IChartScale,\n IChart,\n IChartSettings,\n IChartImplementation,\n IChartImplementationProps,\n IPlot,\n IPlotStyle,\n IPlotData,\n IPlotDataLoadEvent,\n IPlotTypes,\n IPlotImplementation,\n IPlotImplementationProps,\n IPlotDataAccessors,\n IPlotImplementationGroup,\n IPlotImplementationGroups,\n IPlotScrubEvent,\n IPlotScrubs,\n IPlotScrubSettings,\n IPlotLegendSettings\n}\n\nexport {\n EPlotTypes,\n EChartAxes\n}\n","import { RequestItem, type IDataResult, type IDataRow, type INumericDataAccessor, type INumericData, type INumericDomainDataAccessor } from '@axdspub/axiom-ui-data-services'\nimport { type IPlotImplementationProps, type IPlotImplementation, type IChartDimensionDomain, type IChartImplementation, type IChartDimensions, type EPlotTypes, type IChartAxes, type IPlotStyle, type IPlotAxisSetting, type IPlotAxisSettings, type IPlotDataLoadEvent, type ILegendItem, type IPlotScrubSettings, EChartAxes, type IPlotLegendSettings } from '@/Root/Types/ChartTypes'\nimport { extent } from 'd3-array'\nimport type ChartRoot from '../ChartRoot'\n\nclass PlotRoot extends RequestItem implements IPlotImplementation {\n id: string\n type: EPlotTypes\n data?: IDataResult\n axes?: IChartAxes\n axisSettings?: IPlotAxisSettings\n chart: IChartImplementation\n dimensions: IChartDimensions\n runtime: any\n style?: IPlotStyle\n scrubbing?: boolean\n onDataLoad?: (event: IPlotDataLoadEvent) => void\n scrubSettings: IPlotScrubSettings\n scrubSettingsDefaults: IPlotScrubSettings = {\n enabled: true,\n axis: EChartAxes.x\n }\n\n legendSettings: IPlotLegendSettings\n legendSettingsDefaults: IPlotLegendSettings = {\n hide: false,\n axis: EChartAxes.y\n }\n\n constructor (props: IPlotImplementationProps) {\n super(props)\n this.id = props.id\n this.type = props.type\n this.chart = props.chart\n this.dimensions = props.dimensions\n this.style = props.style\n this.scrubbing = props.scrubbing\n this.onDataLoad = props.onDataLoad\n this.axisSettings = props.axisSettings\n this.scrubSettings = { ...this.scrubSettingsDefaults, ...props.scrubSettings }\n this.legendSettings = {\n ...this.legendSettingsDefaults,\n ...props.legendSettings\n }\n this.runtime = {}\n }\n\n public getAxisSetting (axis: string): IPlotAxisSetting {\n if (this.axisSettings === undefined) {\n return {}\n }\n const axisSetting = this.axisSettings[axis]\n if (axisSetting === undefined) {\n return {}\n }\n return axisSetting\n }\n\n protected getDomainAccessor (axis: string): INumericDataAccessor | INumericDomainDataAccessor {\n const domainAccessors = this.runtime?.data?.parsed?.domainAccessors !== undefined ? this.runtime.data.parsed.domainAccessors : {}\n const accessors = this.runtime?.data?.parsed?.accessors !== undefined ? this.runtime.data.parsed.accessors : {}\n\n if (domainAccessors[axis] !== undefined) {\n return domainAccessors[axis]\n }\n if (accessors[axis] !== undefined) {\n return accessors[axis]\n }\n return (d: IDataRow) => {\n return (typeof d === 'number' || d instanceof Date || typeof d === 'string') ? d : d[axis]\n }\n }\n\n public getAvailableAccessors (): Record<string, INumericDataAccessor> {\n return this.runtime?.data?.parsed?.accessors !== undefined ? this.runtime.data.parsed.accessors : {}\n }\n\n public getAccessorsAtAxis (axis: string): Record<string, INumericDataAccessor> {\n const accessors = this.getAvailableAccessors()\n const axisSetting = this.getAxisSetting(axis)\n const accessProperties = axisSetting.accessProperties !== undefined ? axisSetting.accessProperties : {}\n const accessorKeys = Object.keys(accessors).filter(k => k.startsWith(axis))\n const accessorMap = Object.fromEntries(accessorKeys.map(k => [k, accessors[k]]))\n Object.keys(accessProperties).forEach(k => {\n const accessorKey = accessProperties[k]\n const accFn = accessors[accessorKey]\n if (accFn !== undefined) {\n accessorMap[k] = accFn\n }\n })\n\n return accessorMap\n }\n\n public getAccessorAtAxis (axis: string): INumericDataAccessor | undefined {\n const axisAccessors = this.getAccessorsAtAxis(axis)\n const accessor = axisAccessors[axis]\n if (accessor !== undefined) {\n return accessor\n }\n const allAccessors = this.getAvailableAccessors()\n if (allAccessors[axis] !== undefined) {\n return allAccessors[axis]\n }\n return undefined\n }\n\n public async getDomain (axis: string): Promise<IChartDimensionDomain> {\n const data: IDataResult = await this.getData()\n const parsedData = data?.parsed?.data !== undefined ? data.parsed.data : []\n\n const accessor: INumericDataAccessor | INumericDomainDataAccessor = this.getDomainAccessor(axis)\n const values: INumericData[] = parsedData\n .map((d) => {\n return accessor(d)\n })\n .flat()\n .filter(d => d !== undefined && d !== null)\n const domain: IChartDimensionDomain = extent(values) as IChartDimensionDomain\n return domain\n }\n\n public async getXDomain (): Promise<IChartDimensionDomain> {\n const domain = await this.getDomain('x')\n return domain\n }\n\n public async getYDomain (): Promise<IChartDimensionDomain> {\n const domain = await this.getDomain('y')\n return domain\n }\n\n /* public async getColorDomain (): IChartDimensionDomain {\n\n } */\n\n public async draw (): Promise<void> {\n this.data = await this.getData()\n }\n\n protected onLegendReady (legendItems: ILegendItem[]): void {\n const chart = this.chart as ChartRoot\n chart.emitPlotLegendReady(this.id, legendItems)\n }\n\n protected onScrub (scrubData: any): void {\n const chart = this.chart as ChartRoot\n chart.emitPlotScrub(this.id, scrubData)\n }\n\n protected onScrubEnd (): void {\n const chart = this.chart as ChartRoot\n chart.emitPlotScrubEnd(this.id)\n }\n\n public destroy (): void {\n\n }\n}\n\nexport default PlotRoot\n","import { type IPlot, type IChartImplementation, type IChartImplementationProps, type IChartSettings, type IPlotImplementation, type IPlotImplementationProps, type IChartDimensionDomain, EChartAxes, type IChartAxis, type IChartDimension, type IPlotAxisSetting, type IPlotImplementationGroup, type IPlotImplementationGroups, type IPlotDataLoadEvent, type ILegendItem, type IPlotScrubEvent } from '@/Root/Types/ChartTypes'\nimport PlotRoot from '@/Root/Plots/PlotRoot'\nimport { extent } from 'd3-array'\nimport { debounce, groupBy } from 'lodash'\n\nclass ChartRoot implements IChartImplementation {\n plots: IPlot[]\n element?: HTMLElement\n settings: IChartSettings\n plotImplementations?: IPlotImplementation[]\n onPlotDataLoad?: (event: IPlotDataLoadEvent) => void\n onPlotLegendReady?: (plotId: string, legendItems: ILegendItem[]) => void\n onPlotScrub?: (plotId: string, scrubData: IPlotScrubEvent) => void\n onPlotScrubEnd?: (plotId: string) => void\n runtime: {\n prevWidth: number\n prevHeight: number\n xDomain?: IChartDimensionDomain\n yDomain?: IChartDimensionDomain\n axisGroups?: {\n x: {\n domain: IChartDimensionDomain\n }\n y: {\n domain: IChartDimensionDomain\n }\n }\n [index: string]: any\n }\n\n constructor (props: IChartImplementationProps) {\n this.plots = props.plots.map(p => ({ ...p }))\n this.settings = props.settings\n this.element = props.element\n this.onPlotDataLoad = props.onPlotDataLoad\n this.onPlotLegendReady = props.onPlotLegendReady\n this.onPlotScrub = props.onPlotScrub\n this.onPlotScrubEnd = props.onPlotScrubEnd\n this.runtime = {\n prevWidth: 0,\n prevHeight: 0\n }\n /* if (props.element !== undefined) {\n this.element = props.element\n this.draw()\n .then(() => {\n this.onDraw()\n })\n .catch((e) => {\n this.onError(e)\n })\n } */\n }\n\n public emitPlotLegendReady (plotId: string, legendItems: ILegendItem[]): void {\n if (this.onPlotLegendReady === undefined) return\n this.onPlotLegendReady(plotId, legendItems)\n }\n\n public emitPlotScrub (plotId: string, scrubData: any): void {\n if (this.onPlotScrub === undefined) return\n this.onPlotScrub(plotId, scrubData)\n }\n\n public emitPlotScrubEnd (plotId: string): void {\n if (this.onPlotScrubEnd === undefined) return\n this.onPlotScrubEnd(plotId)\n }\n\n protected onError (e: Error): void {\n\n }\n\n public onResize (prevWidth: number, prevHeight: number): void {\n console.log('RESIZE!')\n console.log(this)\n }\n\n public getWidth (): number {\n if (this.settings.width === 'auto') {\n if (this.element != null) {\n return this.element.clientWidth\n }\n return 400\n }\n return this.settings.width\n }\n\n public onDraw (): void {\n\n }\n\n protected async getDomainForPlotImplementations (plotImplementations: IPlotImplementation[], axis: EChartAxes): Promise<IChartDimensionDomain> {\n const domains = await Promise.all(plotImplementations.map(async p => {\n const domain = await p.getDomain(axis)\n return domain\n }))\n\n return extent(domains.flat()) as IChartDimensionDomain\n }\n\n protected reversePlotAxis (plot: IPlotImplementation, axis: string): boolean {\n const axisSetting: IPlotAxisSetting = plot.getAxisSetting(axis)\n return axisSetting.reverse === true\n }\n\n protected getDimensionAxisParam (plot: IPlotImplementation, axis: string): string {\n const dimension: IChartDimension = plot.dimensions[axis]\n const axisSetting: IPlotAxisSetting = plot.getAxisSetting(axis)\n let param = axis\n if (axisSetting.parameter !== undefined) {\n param = axisSetting.parameter\n } else if (dimension !== undefined) {\n if (dimension.parameter !== undefined) {\n param = dimension.parameter\n } else if (dimension.property !== undefined) {\n param = dimension.property\n } else if (dimension.properties !== undefined) {\n param = dimension.properties.join(',')\n }\n }\n\n return param\n }\n\n protected getPlotImplementationGroups (plots: IPlotImplementation[], axis: string): IPlotImplementationGroups {\n const groups = groupBy(plots, p => {\n const param = this.getDimensionAxisParam(p, axis)\n return `${param}${this.reversePlotAxis(p, axis) ? '.reverse' : ''}`\n })\n const plotGroups: IPlotImplementationGroups = {}\n Object.keys(groups).forEach(k => {\n const plotGroup: IPlotImplementationGroup = {\n plots: groups[k],\n reverse: this.reversePlotAxis(groups[k][0], axis),\n parameter: this.getDimensionAxisParam(groups[k][0], axis)\n }\n plotGroups[k] = plotGroup\n })\n return plotGroups\n }\n\n protected getXRange (chartWidth: number): [number, number] {\n return [0, chartWidth]\n }\n\n protected getYRange (chartHeight: number): [number, number] {\n return [chartHeight, 0]\n }\n\n public getChartWidth (): number {\n const yAxesWidth = this.getYAxesWidth()\n return this.getWidth() - yAxesWidth - this.settings.margin.right\n }\n\n protected getChartHeight (): number {\n const xGroups = this.plotImplementations !== undefined ? this.getPlotImplementationGroups(this.plotImplementations, 'x') : {}\n const xGroupCount: number = Object.keys(xGroups).length\n return this.settings.height - this.settings.margin.top - (this.settings.margin.bottom * xGroupCount)\n }\n\n protected getYAxesWidth (): number {\n const yGroups = this.plotImplementations !== undefined ? this.getPlotImplementationGroups(this.plotImplementations, 'y') : {}\n return this.settings.margin.left * Object.keys(yGroups).length\n }\n\n private debouncedResize (): void {\n if (this.runtime.resizeEventHandler?.cancel !== undefined) {\n this.runtime.resizeEventHandler.cancel()\n console.log('cancel')\n }\n this.runtime.resizeEventHandler = debounce(() => { this.onResize(this.runtime.prevWidth, this.runtime.prevHeight) }, 1000)\n this.runtime.resizeEventHandler()\n }\n\n public async init (drawImmediately: boolean = false): Promise<void> {\n this.runtime.resizeEventHandler = debounce(() => { this.onResize(this.runtime.prevWidth, this.runtime.prevHeight) }, 1000)\n window.addEventListener('resize', () => { this.debouncedResize() })\n this.plotImplementations?.forEach(plot => { plot.destroy() })\n this.plotImplementations = this.createPlots()\n\n // PRELOAD ALL CHART METADATA AND DATA\n /* await Promise.all(this.plotImplementations.map(async p => {\n return await new Promise((resolve, reject) => {\n p.load()\n .then(resolve)\n .catch(e => {\n this.onError(e)\n reject(e)\n })\n })\n })) */\n\n const { margin } = this.settings\n\n const xGroups = this.getPlotImplementationGroups(this.plotImplementations, 'x')\n const chartHeight: number = this.getChartHeight()\n\n const yGroups = this.getPlotImplementationGroups(this.plotImplementations, 'y')\n\n const yAxes: IChartAxis[] = []\n const yRange = this.getYRange(chartHeight)\n\n await Promise.all(Object.keys(yGroups).map(async (key, index) => {\n const group = yGroups[key]\n const p = group.plots\n const domain = await this.getDomainForPlotImplementations(yGroups[key].plots, EChartAxes.y)\n // const scale = this.makeD3Scale(domain, yRange, domain[0])\n const axis: IChartAxis = {\n scale: {\n domain,\n range: group.reverse ? yRange.slice().reverse() : yRange\n // scale\n },\n plots: p,\n key,\n offset: {\n x: margin.left + (margin.left * index),\n y: margin.top\n }\n }\n\n p.forEach(_p => {\n _p.axes = _p.axes !== undefined ? _p.axes : {}\n _p.axes.y = axis\n })\n yAxes.push(axis)\n }))\n\n this.showYAxes(yAxes)\n\n const yAxesWidth = this.getYAxesWidth()\n const chartWidth = this.getChartWidth()\n const xRange = this.getXRange(chartWidth)\n const xAxes: IChartAxis[] = []\n\n await Promise.all(Object.keys(xGroups).map(async (key, index) => {\n const group = xGroups[key]\n const p = group.plots\n const domain = await this.getDomainForPlotImplementations(p, EChartAxes.x)\n // const scale = this.makeD3Scale(domain, yRange, domain[0])\n const axis: IChartAxis = {\n scale: {\n domain,\n range: group.reverse ? xRange.slice().reverse() : xRange\n // scale\n },\n plots: p,\n key,\n offset: {\n x: yAxesWidth,\n y: margin.top + chartHeight + (margin.bottom * index)\n }\n }\n\n p.forEach(_p => {\n _p.axes = _p.axes !== undefined ? _p.axes : {}\n _p.axes.x = axis\n })\n xAxes.push(axis)\n }))\n\n this.showXAxes(xAxes)\n\n // console.log(`${JSON.stringify(this.runtime, null, 2)}`)\n\n if (drawImmediately) {\n // now draw..\n await this.draw()\n }\n }\n\n public showAxes (xGroup: Record<string, IPlotImplementation[]>, yGroup: Record<string, IPlotImplementation[]>): void {\n\n }\n\n public showYAxes (yAxes: IChartAxis[]): void {\n\n }\n\n public showXAxes (xAxes: IChartAxis[]): void {\n\n }\n\n public adjustYAxis (): void {\n\n }\n\n public async draw (): Promise<void> {\n const plotImplementations = this.plotImplementations\n if (plotImplementations !== undefined) {\n await Promise.all(plotImplementations.map(async p => {\n await p.draw()\n }))\n }\n }\n\n public destroy (): void {\n // window.removeEventListener('resize', this.runtime.resizeEventHandler)\n }\n\n public createPlots (): IPlotImplementation[] {\n return this.plots.map(p => {\n return this.createPlot(p)\n })\n }\n\n protected getPlotImplementationProps (plot: IPlot): IPlotImplementationProps {\n return {\n ...plot,\n chart: this,\n onDataLoad: this.onPlotDataLoad\n }\n }\n\n protected createPlot (plot: IPlot): IPlotImplementation {\n return new PlotRoot(this.getPlotImplementationProps(plot))\n }\n}\n\nexport default ChartRoot\n\nexport type {\n ChartRoot as ChartRootType\n}\n","import PlotRoot from '@/Root/Plots/PlotRoot'\n\nabstract class AxiomPlotRoot extends PlotRoot {\n}\n\nexport default AxiomPlotRoot\n","import { line as d3Line } from 'd3-shape'\n\nimport AxiomPlotRoot from '@/Libraries/axiom/Plots/PlotRoot'\nimport { type INumericDataAccessor, type INumericDomainDataAccessor, type IDataRow, type IDataResult } from '@axdspub/axiom-ui-data-services'\nimport type AxiomChart from '@/Libraries/axiom/AxiomChart'\nimport { type IAxiomD3ContinuousScale } from '@/Libraries/axiom/AxiomChart'\n\nclass AxiomLine extends AxiomPlotRoot {\n xScale: IAxiomD3ContinuousScale | undefined\n yScale: IAxiomD3ContinuousScale | undefined\n parsedData: IDataRow[] | undefined\n offset: { x: number, y: number } | undefined\n\n protected getDomainAccessor (axis: string): INumericDataAccessor | INumericDomainDataAccessor {\n const accessors = this.runtime?.data?.parsed?.accessors !== undefined ? this.runtime.data.parsed.accessors : {}\n\n if (accessors[axis] !== undefined) {\n return accessors[axis]\n }\n return (d: IDataRow) => {\n return (typeof d === 'number' || d instanceof Date || typeof d === 'string') ? d : d[axis]\n }\n }\n\n public async draw (): Promise<void> {\n const style = this.style !== undefined ? this.style : {}\n if (this.parsedData === undefined) {\n const data = await this.getData()\n this.emitDataLoad(data)\n this.parsedData = data?.parsed?.data\n }\n const xAccessor = this.getAccessorAtAxis('x')\n const yAccessor = this.getAccessorAtAxis('y')\n const chart = this.chart as AxiomChart\n const ctx = chart.getCanvasContext()\n\n if (ctx === null) {\n return undefined\n }\n const xAxisScale = this?.axes?.x?.scale\n const yAxisScale = this?.axes?.y?.scale\n if (xAxisScale === undefined || yAxisScale === undefined || this.parsedData === undefined || xAccessor === undefined || yAccessor === undefined) {\n return undefined\n }\n this.offset = {\n x: this?.axes?.x?.offset?.x !== undefined ? this.axes.x.offset.x : 0,\n y: this?.axes?.y?.offset?.y !== undefined ? this.axes.y.offset.y : 0\n }\n this.xScale = chart.getD3XScale(xAxisScale)\n const xPosition = (d: IDataRow): number => {\n if (this.xScale === undefined || this.offset === undefined) return 0\n const v = xAccessor(d)\n const p = this.xScale(v)\n return p === undefined ? 0 : (p + this.offset.x)\n }\n\n this.yScale = chart.getD3YScale(yAxisScale)\n const yPosition = (d: IDataRow): number => {\n if (this.yScale === undefined || this.offset === undefined) return 0\n const v = yAccessor(d)\n const p = this.yScale(v)\n return p === undefined ? 0 : (p + this.offset.y)\n }\n\n const isDefined = (d: IDataRow): boolean => {\n const v = yAccessor(d)\n return !!((v !== undefined && v !== null && !isNaN(+v)))\n }\n\n ctx.strokeStyle = this.getStrokeStyle()\n ctx.lineWidth = this.getLineWidth()\n ctx.setLineDash([])\n ctx.lineCap = 'square'\n const line = d3Line()\n .x(xPosition)\n .y(yPosition)\n .defined(isDefined)\n line.context(ctx)\n ctx.beginPath()\n if (style?.strokeDash !== undefined) {\n ctx.setLineDash(style.strokeDash)\n }\n line(this.parsedData as unknown as Iterable<[number, number]>)\n ctx.stroke()\n\n if (\n this.legendSettings.axis !== undefined &&\n this.axes !== undefined &&\n !(this.legendSettings.hide ?? false)\n ) {\n const legendAxis = this.axes[this.legendSettings.axis]\n if (legendAxis !== undefined) {\n super.onLegendReady([{\n id: legendAxis.key,\n label: chart.getAxisLabel(legendAxis, this.legendSettings.axis) ?? legendAxis.label ?? legendAxis.key,\n style: { backgroundColor: ctx.strokeStyle }\n }])\n }\n }\n\n this.setupScrubbing()\n }\n\n private setupScrubbing (): void {\n const chartElements = (this.chart as AxiomChart).getChartElements()\n if (chartElements !== undefined) {\n chartElements.svg.node()?.addEventListener('mouseover', this.onMouseScrub)\n chartElements.svg.node()?.addEventListener('mousemove', this.onMouseScrub)\n chartElements.svg.node()?.addEventListener('mouseleave', this.onScrubEnd)\n }\n }\n\n onMouseScrub = (event: MouseEvent): void => {\n const chart = this.chart as AxiomChart\n if (chart.onPlotScrub === undefined) return\n const xAccessor = this.getAccessorAtAxis('x')\n const yAccessor = this.getAccessorAtAxis('y')\n if (\n this.scrubSettings.axis === undefined ||\n this.xScale === undefined ||\n this.yScale === undefined ||\n xAccessor === undefined ||\n yAccessor === undefined ||\n this.parsedData === undefined ||\n this.offset === undefined\n ) {\n return\n }\n const scrub = chart.getScrubEvent(\n event,\n this.scrubSettings.axis,\n this.xScale,\n this.yScale,\n xAccessor,\n yAccessor,\n this.parsedData,\n this.offset)\n if (scrub === undefined || scrub.x === undefined) return\n this.onScrub(scrub)\n chart.drawPlotScrubbing(this.id, scrub, this.style, this.scrubSettings)\n }\n\n onScrubEnd = (): void => {\n (this.chart as AxiomChart).erasePlotScrub(this.id)\n super.onScrubEnd()\n }\n\n private getStrokeStyle (): string {\n const style = this.style !== undefined ? this.style : {}\n return style.strokeColor !== undefined ? style.strokeColor : '#333'\n }\n\n private getLineWidth (): number {\n const style = this.style !== undefined ? this.style : {}\n return style.strokeWidth !== undefined ? style.strokeWidth : 1\n }\n\n private emitDataLoad (data: IDataResult): void {\n if (this.onDataLoad !== undefined) {\n this.onDataLoad({\n plotId: this.id,\n data\n })\n }\n }\n\n public destroy (): void {\n const chartElements = (this.chart as AxiomChart).getChartElements()\n if (chartElements !== undefined) {\n chartElements.svg.node()?.removeEventListener('mouseover', this.onMouseScrub)\n chartElements.svg.node()?.removeEventListener('mousemove', this.onMouseScrub)\n chartElements.svg.node()?.removeEventListener('mouseleave', this.onScrubEnd)\n }\n }\n}\n\nexport default AxiomLine\n","import { area as d3Area } from 'd3-shape'\nimport { sum } from 'd3-array'\n\nimport AxiomPlotRoot from '@/Libraries/axiom/Plots/PlotRoot'\nimport { type INumericDataAccessor, type INumericDomainDataAccessor, type IDataRow } from '@axdspub/axiom-ui-data-services'\nimport type AxiomChart from '@/Libraries/axiom/AxiomChart'\nimport { type AxisScale } from 'd3-axis'\nimport { type NumberValue } from 'd3-scale'\n\nclass AxiomArea extends AxiomPlotRoot {\n protected getMaxAccessorAtAxis (axis: string): INumericDataAccessor | undefined {\n const axisAccessors = this.getAccessorsAtAxis(axis)\n const maxAccessor = axisAccessors[`${axis}1`]\n return maxAccessor\n }\n\n protected getMinAccessorAtAxis (axis: string): INumericDataAccessor | undefined {\n const axisAccessors = this.getAccessorsAtAxis(axis)\n const minAccessor = axisAccessors[`${axis}0`]\n return minAccessor\n }\n\n protected getDomainAccessor (axis: string): INumericDataAccessor | INumericDomainDataAccessor {\n const minAccessor = this.getMinAccessorAtAxis(axis)\n const maxAccessor = this.getMaxAccessorAtAxis(axis)\n if (minAccessor !== undefined && maxAccessor !== undefined) {\n return (d) => {\n return [\n minAccessor(d),\n maxAccessor(d)\n ]\n }\n }\n\n const accessor = this.getAccessorAtAxis(axis)\n if (accessor !== undefined) {\n return accessor\n }\n\n return (d: IDataRow) => {\n return (d instanceof Date || d === null || typeof d === 'number' || typeof d === 'string') ? d : sum(Object.values(d))\n }\n }\n\n public async draw (): Promise<void> {\n const style = this.style !== undefined ? this.style : {}\n const data = await this.getData()\n const parsedData = data?.parsed?.data\n\n const xAccessors = this.getAccessorsAtAxis('x')\n const xAccessor = this.getAccessorAtAxis('x')\n const x0Accessor = xAccessors.x0\n const x1Accessor = xAccessors.x1\n\n const yAccessors = this.getAccessorsAtAxis('y')\n const yAccessor = this.getAccessorAtAxis('y')\n const y0Accessor = yAccessors.y0\n const y1Accessor = yAccessors.y1\n\n const offset = {\n x: this?.axes?.x?.offset?.x !== undefined ? this.axes.x.offset.x : 0,\n y: this?.axes?.y?.offset?.y !== undefined ? this.axes.y.offset.y : 0\n }\n\n const chart = this.chart as AxiomChart\n const ctx = chart.getCanvasContext()\n\n if (ctx === null) {\n return undefined\n }\n const xAxisScale = this?.axes?.x?.scale\n const yAxisScale = this?.axes?.y?.scale\n if (\n xAxisScale === undefined ||\n yAxisScale === undefined ||\n parsedData === undefined ||\n (\n xAccessor === undefined && x0Accessor === undefined && x1Accessor === undefined\n ) ||\n (\n yAccessor === undefined && y0Accessor === undefined && y1Accessor === undefined\n )\n ) {\n console.log('Missing one of: xAxisScale, yAxisScale, parsedData, xAccessor(s), yAccessor(s)')\n return undefined\n }\n\n const xScale = chart.getD3XScale(xAxisScale)\n const yScale = chart.getD3YScale(yAxisScale)\n\n const makePositionFn = (acc: INumericDataAccessor, d3Scale: AxisScale<Date | NumberValue>, offset: number) => {\n return (d: IDataRow): number => {\n const v = acc(d)\n const p = d3Scale(v)\n return p === undefined ? 0 : (p + offset)\n }\n }\n\n const makeDefinedFn = (acc: INumericDataAccessor) => {\n return (d: IDataRow): boolean => {\n const v = acc(d)\n return !!((v !== undefined && v !== null && !isNaN(+v)))\n }\n }\n\n ctx.fillStyle = style.fill !== undefined ? style.fill : '#EDEDED'\n\n const area = d3Area()\n if (x0Accessor !== undefined && x1Accessor !== undefined) {\n area.x0(makePositionFn(x0Accessor, xScale, offset.x))\n area.x1(makePositionFn(x1Accessor, xScale, offset.x))\n } else if (xAccessor !== undefined) {\n area.x(makePositionFn(xAccessor, xScale, offset.x))\n }\n if (y0Accessor !== undefined && y1Accessor !== undefined) {\n area.y0(makePositionFn(y0Accessor, yScale, offset.y))\n area.y1(makePositionFn(y1Accessor, yScale, offset.y))\n area.defined(makeDefinedFn(y1Accessor))\n } else if (yAccessor !== undefined) {\n area.y(makePositionFn(yAccessor, yScale, offset.y))\n }\n\n area.context(ctx)\n ctx.beginPath()\n area(parsedData as unknown as Iterable<[number, number]>)\n ctx.fill()\n\n if (this.axes?.y !== undefined && !(this.legendSettings.hide ?? false)) {\n super.onLegendReady([{\n id: this.axes.y.key,\n label: chart.getAxisLabel(this.axes.y, 'y') ?? this.axes.y.key,\n style: { backgroundColor: ctx.fillStyle }\n }])\n }\n }\n}\n\nexport default AxiomArea\n","import AxiomPlotRoot from '@/Libraries/axiom/Plots/PlotRoot'\nimport { type INumericDataAccessor, type INumericDomainDataAccessor, type IDataRow } from '@axdspub/axiom-ui-data-services'\nimport type AxiomChart from '@/Libraries/axiom/AxiomChart'\nimport { type IAxiomD3ContinuousScale } from '@/Libraries/axiom/AxiomChart'\n\nclass AxiomScatter extends AxiomPlotRoot {\n circleClass = `${this.id}-scrub-circle`\n xScale: IAxiomD3ContinuousScale | undefined\n yScale: IAxiomD3ContinuousScale | undefined\n parsedData: IDataRow[] | undefined\n offset: { x: number, y: number } | undefined\n\n protected getDomainAccessor (axis: string): INumericDataAccessor | INumericDomainDataAccessor {\n const accessors = this.runtime?.data?.parsed?.accessors !== undefined ? this.runtime.data.parsed.accessors : {}\n\n if (accessors[axis] !== undefined) {\n return accessors[axis]\n }\n return (d: IDataRow) => {\n return (typeof d === 'number' || d instanceof Date || typeof d === 'string') ? d : d[axis]\n }\n }\n\n public async draw (): Promise<void> {\n const style = this.style !== undefined ? this.style : {}\n const data = await this.getData()\n this.parsedData = data?.parsed?.data\n const xAccessor = this.getAccessorAtAxis('x')\n const yAccessor = this.getAccessorAtAxis('y')\n const chart = this.chart as AxiomChart\n const ctx = chart.getCanvasContext()\n\n if (ctx === null) {\n return undefined\n }\n const xAxisScale = this?.axes?.x?.scale\n const yAxisScale = this?.axes?.y?.scale\n if (xAxisScale === undefined || yAxisScale === undefined || this.parsedData === undefined || xAccessor === undefined || yAccessor === undefined) {\n return undefined\n }\n this.offset = {\n x: this?.axes?.x?.offset?.x !== undefined ? this.axes.x.offset.x : 0,\n y: this?.axes?.y?.offset?.y !== undefined ? this.axes.y.offset.y : 0\n }\n this.xScale = chart.getD3XScale(xAxisScale)\n const xPosition = (d: IDataRow): number => {\n if (this.xScale === undefined || this.offset === undefined) return 0\n const v = xAccessor(d)\n const p = this.xScale(v)\n return p === undefined ? 0 : (p + this.offset.x)\n }\n\n this.yScale = chart.getD3YScale(yAxisScale)\n const yPosition = (d: IDataRow): number => {\n if (this.yScale === undefined || this.offset === undefined) return 0\n const v = yAccessor(d)\n const p = this.yScale(v)\n return p === undefined ? 0 : (p + this.offset.y)\n }\n\n const isDefined = (d: IDataRow): boolean => {\n const v = yAccessor(d)\n return !!((v !== undefined && v !== null && !isNaN(+v)))\n }\n\n // .style?.strokeColor !== undefined ? settings.style.strokeColor :\n\n // .style?.strokeWidth ||\n\n ctx.strokeStyle = style.strokeColor !== undefined ? style.strokeColor : '#FFF'\n const radius = style.radius !== undefined ? style.radius : 2\n ctx.lineWidth = (style.strokeWidth !== undefined || style.strokeColor !== undefined) ? ((style.strokeWidth !== undefined ? style.strokeWidth : 1) + radius) : 0\n\n ctx.fillStyle = style.fill !== undefined ? style.fill : '#666'\n this.parsedData.forEach(d => {\n if (isDefined(d)) {\n ctx.beginPath()\n ctx.arc(xPosition(d), yPosition(d), radius, 0, 2 * Math.PI)\n ctx.stroke()\n ctx.fill()\n }\n })\n\n if (this.axes?.y !== undefined && !(this.legendSettings.hide ?? false)) {\n super.onLegendReady([{\n id: this.axes.y.key,\n label: chart.getAxisLabel(this.axes.y, 'y') ?? this.axes.y.key,\n style: {\n backgroundColor: ctx.fillStyle,\n border: `1px solid ${ctx.strokeStyle}`\n }\n }])\n }\n\n this.setupScrubbing()\n }\n\n private setupScrubbing (): void {\n const chartElements = (this.chart as AxiomChart).getChartElements()\n if (chartElements !== undefined) {\n chartElements.svg.node()?.addEventListener('mouseover', this.onMouseScrub)\n chartElements.svg.node()?.addEventListener('mousemove', this.onMouseScrub)\n chartElements.svg.node()?.addEventListener('mouseleave', this.onScrubEnd)\n }\n }\n\n onMouseScrub = (event: MouseEvent): void => {\n const chart = this.chart as AxiomChart\n if (chart.onPlotScrub === undefined) return\n const xAccessor = this.getAccessorAtAxis('x')\n const yAccessor = this.getAccessorAtAxis('y')\n if (\n this.scrubSettings.axis === undefined ||\n this.xScale === undefined ||\n this.yScale === undefined ||\n xAccessor === undefined ||\n yAccessor === undefined ||\n this.parsedData === undefined ||\n this.offset === undefined\n ) {\n return\n }\n const scrub = chart.getScrubEvent(\n event,\n this.scrubSettings.axis,\n this.xScale,\n this.yScale,\n xAccessor,\n yAccessor,\n this.parsedData,\n this.offset)\n if (scrub === undefined || scrub.x === undefined) return\n this.onScrub(scrub)\n chart.drawPlotScrubbing(this.id, scrub, this.style, this.scrubSettings)\n }\n\n onScrubEnd = (): void => {\n (this.chart as AxiomChart).erasePlotScrub(this.id)\n super.onScrubEnd()\n }\n\n public destroy (): void {\n const chartElements = (this.chart as AxiomChart).getChartElements()\n if (chartElements !== undefined) {\n chartElements.svg.node()?.removeEventListener('mouseover', this.onMouseScrub)\n chartElements.svg.node()?.removeEventListener('mousemove', this.onMouseScrub)\n chartElements.svg.node()?.removeEventListener('mouseleave', this.onScrubEnd)\n }\n }\n}\n\nexport default AxiomScatter\n","import { type IPlotImplementationProps } from '@/library'\nimport AxiomPlotRoot from './PlotRoot'\nimport * as d3 from 'd3'\nimport type AxiomChart from '../AxiomChart'\nimport { type INumericDataAccessor, type IDataRow } from '@axdspub/axiom-ui-data-services'\n\ninterface IScrubData {\n label: string\n key: string\n x: any\n value: number\n}\n\ntype YScale = d3.ScaleLinear<number, number, never>\nexport default class AxiomBar extends AxiomPlotRoot {\n legendHeight = 12\n legendPaddingTop = 8\n\n constructor (props: IPlotImplementationProps) {\n super(props)\n const chart = this.chart as AxiomChart\n const chartElements = chart.getChartElements()\n if (chartElements?.svg !== undefined) {\n chartElements.svg.style('z-index', 20)\n // TODO find better way ^. Doing this so that svg can get events.\n }\n }\n\n public async draw (): Promise<void> {\n const dataResponse = await this.getData()\n const parsedData = dataResponse?.parsed?.data\n if (parsedData === undefined) return\n\n const xAccessor = this.getAccessorAtAxis('x') as unknown as (d: any) => string\n const yAccessor = dataResponse.parsed?.accessors.y\n if (xAccessor === undefined || yAccessor === undefined) return\n const y2Accessor = dataResponse.parsed?.accessors.y2\n\n const yGroups = this.dimensions\n const yKey = yGroups.y.property\n const yLabel = yGroups.y.label\n const y2Key: string | undefined = this.dimensions.y2.property\n const y2Label: string | undefined = this.dimensions.y2.label\n\n const chart = this.chart as AxiomChart\n const chartElements = chart.getChartElements()\n if (chartElements === undefined || chartElements.svg === null || yKey === undefined || yLabel === undefined) return undefined\n if (chartElements.svg.select('g') !== undefined) chartElements.svg.select('g').remove()\n\n let { height } = chart.settings\n let width = chart.getWidth()\n width = Number(width)\n height = Number(height)\n\n const oneOrZero = y2Key === undefined ? 0 : 1 // Used to add in space for y2 if exists.\n const xAxisHeight = 48 // HOW TO GET DYNAMICALLY?\n const yAxisWidth = 36 // HOW TO GET DYNAMICALLY?\n const y2AxisWidth = yAxisWidth * oneOrZero\n const chartPaddingTop = 4\n const yLabelWidth = 24\n const y1TotalWidth = yAxisWidth + yLabelWidth\n const y2LabelWidth = yLabelWidth * oneOrZero\n const y2TotalWidth = y2AxisWidth * oneOrZero + y2LabelWidth\n const plotHeight = height - xAxisHeight - this.legendHeight - this.legendPaddingTop - chartPaddingTop\n const plotWidth = width - yAxisWidth - yLabelWidth - y2TotalWidth\n const plotXStart = width - plotWidth - y2TotalWidth\n const plotXEnd = width - y2TotalWidth\n const groups = parsedData.map(d => xAccessor(d))\n const subgroups: string[] = [yKey]\n if (y2Key !== undefined && y2Accessor !== undefined) subgroups.push(y2Key)\n\n // Colors\n const fillColors = this.style?.colors ?? d3.schemeTableau10\n const color = d3.scaleOrdinal(fillColors).domain(subgroups)\n\n const svg = chartElements.svg\n const g = svg.insert('g')\n\n const x = this.getXScale(plotXStart, plotXEnd, groups)\n const y = this.getYScale(plotHeight, chartPaddingTop, parsedData, yAccessor)\n const y2 = this.getY2Scale(plotHeight, chartPaddingTop, parsedData, y2Accessor)\n\n const subgroupScales = this.getSubgroupScales(yKey, y, y2Key, y2)\n\n const xSubgroup = d3.scaleBand()\n .domain(subgroups)\n .range([0, x.bandwidth()])\n .padding(0.05)\n\n // Make Bar Groups\n g.append('g')\n .attr('width', plotWidth)\n .attr('height', plotHeight)\n .selectAll('g')\n .data(parsedData)\n .enter()\n .append('g')\n .attr('transform', d => `translate(${Number(x(xAccessor(d)))}, 0)`)\n .selectAll('rect')\n .data(d => Object.keys(this.dimensions).filter(key => key !== 'x').map((key: string): IScrubData => {\n return {\n label: this.dimensions[key].label ?? key,\n key: this.dimensions[key].property ?? '',\n x: d[this.dimensions.x?.property ?? 'x'],\n value: d[this.dimensions[key].property ?? ''] as number\n }\n }))\n .enter()\n .append('rect')\n .attr('x', d => Number(xSubgroup(d.key)))\n .attr('y', d => Number(subgroupScales[d.key](d.value)))\n .attr('width', xSubgroup.bandwidth())\n .attr('height', d => plotHeight - Number(subgroupScales[d.key](d.value)))\n .attr('fill', d => color(d.key))\n .classed('bar', true)\n .on('mouseover', (event, data) => { this.onMouseScrub(event, data) })\n .on('mousemove', (event, data) => { this.onMouseScrub(event, data) })\n .on('mouseleave', () => { this.onScrubEnd() })\n\n // X Axis\n const xAxis = g.append('g')\n .attr('transform', `translate(0, ${plotHeight})`)\n .call(d3.axisBottom(x))\n // X Labels\n xAxis.selectAll('text')\n .attr('text-anchor', 'end')\n .attr('transform', 'rotate(-45)translate(-10, 0)')\n\n // Y Axis\n g.append('g')\n .call(d3.axisLeft(y))\n .attr('transform', `translate(${y1TotalWidth}, 0)`)\n\n if (y2 !== undefined) {\n // Y2 Axis\n g.append('g')\n .call(d3.axisRight(y2))\n .attr('transform', `translate(${width - y2TotalWidth}, 0)`)\n }\n\n // Y Label\n g.append('text')\n .attr('text-anchor', 'middle')\n .attr('transform', 'rotate(-90)')\n .attr('x', -1 * plotHeight / 2)\n .attr('y', yLabelWidth)\n .attr('font-weight', 800)\n .text(yLabel)\n\n if (y2Label !== undefined) {\n // Y2 Label\n g.append('text')\n .attr('text-anchor', 'middle')\n .attr('transform', 'rotate(90)')\n .attr('x', 1 * plotHeight / 2)\n .attr('y', -1 * (width - y2LabelWidth))\n .attr('font-weight', 800)\n .text(y2Label)\n }\n\n super.onLegendReady(Object.keys(this.dimensions).filter(key => key !== 'x').map(key => ({\n id: key,\n label: this.dimensions[key].label ?? key,\n style: { backgroundColor: this.dimensions[key].property === undefined ? '' : color(this.dimensions[key].property ?? '') }\n })))\n }\n\n private onMouseScrub (event: MouseEvent, data: any): void {\n if (this.chart.onPlotScrub === undefined) return\n this.onScrub({\n x: {\n position: event.offsetX,\n value: data.x\n },\n y: {\n position: event.offsetY,\n value: data.value\n }\n })\n }\n\n private getXScale (plotXStart: number, plotXEnd: number, groups: string[]): d3.ScaleBand<string> {\n return d3.scaleBand()\n .domain(groups)\n .range([plotXStart, plotXEnd])\n .padding(0.25)\n }\n\n private getYScale (plotHeight: number, chartPaddingTop: number, data: IDataRow[], yAccessor: INumericDataAccessor): YScale {\n return d3.scaleLinear()\n .domain([\n 0,\n Number(d3.max(data, d => yAccessor(d)))\n ])\n .range([plotHeight, chartPaddingTop])\n }\n\n private getY2Scale (plotHeight: number, chartPaddingTop: number, data: IDataRow[], y2Accessor?: INumericDataAccessor): YScale | undefined {\n if (y2Accessor === undefined) return undefined\n return this.getYScale(plotHeight, chartPaddingTop, data, y2Accessor)\n }\n\n /**\n *\n * Returns a map from Y key to Y scale. E.g.\n * {\n * \"frequency\": Y,\n * \"proportion\": Y2\n * }\n */\n private getSubgroupScales (yKey: string, y: YScale, y2Key?: string, y2?: YScale): Record<string, YScale> {\n const subgroupScales: Record<string, YScale> = {\n [yKey]: y\n }\n if (y2Key !== undefined && y2 !== undefined) {\n subgroupScales[y2Key] = y2\n }\n return subgroupScales\n }\n}\n","import AxiomLine from '@/Libraries/axiom/Plots/AxiomLine'\nimport AxiomArea from '@/Libraries/axiom/Plots/AxiomArea'\nimport AxiomScatter from '@/Libraries/axiom/Plots/AxiomScatter'\nimport Bar from '@/Libraries/axiom/Plots/Bar'\n\nconst chartTypes = {\n Line: AxiomLine,\n Area: AxiomArea,\n Scatter: AxiomScatter,\n Bar\n}\n\nexport default chartTypes\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import ChartRoot from '@/Root/ChartRoot'\nimport { create, type Selection } from 'd3-selection'\nimport { type ValueFn, type BaseType, bisector } from 'd3'\nimport { type IChartScale, type IChartAxis, type IPlotImplementation, type IPlot, EPlotTypes, type IPlotScrubEvent, type IPlotStyle, type IPlotScrubSettings, EChartAxes } from '@/Root/Types/ChartTypes'\nimport { type NumberValue, scaleUtc, scaleLinear, type ScaleLinear, type ScaleTime, type ScaleRadial } from 'd3-scale'\nimport { type AxisScale, axisLeft, axisBottom, type Axis } from 'd3-axis'\nimport PlotRoot from '@/Root/Plots/PlotRoot'\nimport chartTypes from './Plots'\n\nimport './axiom-chart.css'\nimport { type IDataRow, type INumericData, type INumericDataAccessor } from '@axdspub/axiom-ui-data-services'\n\ninterface IAxiomChartElements {\n svg: Selection<SVGSVGElement, undefined, null, undefined>\n canvas: Selection<HTMLCanvasElement, undefined, null, undefined>\n}\n\ninterface IAxiomChartAxisSettings {\n ticks?: Array<string | number>\n tickFormat?: (domainValue: Date | NumberValue, index: number) => string\n tickSpace?: number\n fontSize?: number | string\n}\n\ntype IAxiomD3GSelection = Selection<SVGGElement, undefined, null, undefined>\n\ntype IAxiomD3AxisCall = (g: IAxiomD3GSelection) => IAxiomD3GSelection\n\ntype IAxiomD3ContinuousScale = ScaleTime<number, number, never> | ScaleLinear<number, number, never> | ScaleRadial<number, number, never>\n\ntype IAxiomSelectionValueFn = ValueFn<SVGGElement | BaseType, string, string | number | boolean | ReadonlyArray<string | number> | null>\n\nclass AxiomChart extends ChartRoot {\n chartElements?: IAxiomChartElements\n\n updateD3AxisSettings (axis: Axis<Date | NumberValue>, axisSettings: IAxiomChartAxisSettings): void {\n if (axisSettings.ticks !== undefined) {\n axis.ticks(axisSettings.ticks)\n }\n if (axisSettings.tickFormat !== undefined) {\n axis.tickFormat(axisSettings.tickFormat)\n }\n }\n\n protected getD3Scale (scale: IChartScale): IAxiomD3ContinuousScale {\n const d3Scale = scale.domain[0] instanceof Date\n ? scaleUtc().domain(scale.domain).range(scale.range)\n : scaleLinear().domain(scale.domain).range(scale.range)\n return d3Scale\n }\n\n public getD3YScale (scale: IChartScale): IAxiomD3ContinuousScale {\n return this.getD3Scale(scale)\n }\n\n public getD3XScale (scale: IChartScale): IAxiomD3ContinuousScale {\n return this.getD3Scale(scale)\n }\n\n public getYAxis (axis: IChartAxis, axisSettings: IAxiomChartAxisSettings, index: number): IAxiomD3AxisCall {\n if (axis.scale === undefined) {\n return (g) => g\n }\n const d3Scale: AxisScale<Date | NumberValue> = this.getD3YScale(axis.scale)\n const d3Axis = axisLeft(d3Scale)\n this.updateD3AxisSettings(d3Axis, axisSettings)\n\n const axisSpace = axis.scale.range[1] - axis.scale.range[0]\n const minAxisSpace = Math.min(axisSpace / 2, axisSettings.tickSpace !== undefined ? axisSettings.tickSpace : 50)\n d3Axis.ticks(Math.floor(axisSpace / minAxisSpace))\n\n const offset = this.getyAxisOffset(axis)\n const axisG = (g: IAxiomD3GSelection): IAxiomD3GSelection => {\n const o = g\n .attr('transform', `translate(${offset.x},${offset.y})`)\n .call(d3Axis)\n o.select('.domain').remove()\n return o\n }\n return axisG\n }\n\n public getXAxis (axis: IChartAxis, axisSettings: IAxiomChartAxisSettings): IAxiomD3AxisCall {\n if (axis.scale === undefined) {\n return (g) => g\n }\n const d3Scale: AxisScale<Date | NumberValue> = this.getD3XScale(axis.scale)\n const d3Axis = axisBottom(d3Scale)\n this.updateD3AxisSettings(d3Axis, axisSettings)\n\n const axisSpace = axis.scale.range[1] - axis.scale.range[0]\n const minAxisSpace = Math.min(axisSpace / 2, axisSettings.tickSpace !== undefined ? axisSettings.tickSpace : 50)\n d3Axis.ticks(Math.floor(axisSpace / minAxisSpace))\n\n const offset = this.getXAxisOffset(axis)\n const axisG = (g: IAxiomD3GSelection): IAxiomD3GSelection => {\n const o = g\n .attr('transform', `translate(${offset.x},${offset.y + 1})`)\n .call(d3Axis)\n o\n .select('.domain')\n .remove()\n return o\n }\n return axisG\n }\n\n public adjustYAxis (): void {\n console.log('here')\n const chartElements = this.getChartElements()\n if (chartElements === undefined) return\n const { svg, canvas } = chartElements\n let node = svg.selectAll('.y-axis').nodes()[0]\n if (node === null || node === undefined) return\n node = (node as Element)\n // const yAxisWidth = node.getBoundingClientRect()\n console.log(node)\n svg.selectAll('.y-axis').attr('translate', 'transform(100px, 100px)').attr('width', 100)\n canvas.attr('width', this.getWidth() - 45.7)\n canvas.attr('transform', `translate(${45.7}, 0)`)\n }\n\n public showYAxes (axes: IChartAxis[]): void {\n const chartElements = this.getChartElements()\n if (chartElements === undefined) {\n return undefined\n }\n const { svg } = chartElements\n axes.forEach((axis, index) => {\n const axisSettings = {}\n if (axis?.scale !== undefined) {\n const axisG = this.getYAxis(\n axis,\n axisSettings,\n index\n )\n const axisSelection = svg.select('.y-axis').size() > 0 ? svg.select('.y-axis') : svg.append('g').attr('class', 'y-axis axis')\n axisSelection.append('g').call(axisG)\n }\n })\n if (this.settings.layout === 'timeseries') {\n this.showYLabelsForTimeSeries(axes, this.plots)\n }\n }\n\n public getAxisLabel (axis: IChartAxis, dimensionKey: string): string | undefined {\n return axis.plots[0]?.dimensions[dimensionKey].label\n }\n\n public showYLabelsForTimeSeries (axes: IChartAxis[], plots: IPlot[]): void {\n const yLabelsAreSupportedForPlotType = [EPlotTypes.line, EPlotTypes.scatter, EPlotTypes.seasonal, EPlotTypes.area]\n .find(type => type === plots[0].type) !== undefined\n if (plots.length === 0 || !yLabelsAreSupportedForPlotType) {\n return\n }\n\n const chartElements = this.getChartElements()\n if (chartElements === undefined) {\n return\n }\n const { svg } = chartElements\n const axisSelection = svg.select('.y-axis').size() > 0 ? svg.select('.y-axis') : svg.append('g').attr('class', 'y-axis axis')\n\n // TODO: Don't hardcode these two vars\n const axisWidth = 24\n const labelMargin = 3\n axes.forEach(axis => {\n axisSelection.append('text')\n .attr('class', 'y-label')\n .attr('transform', 'rotate(-90)')\n .style('text-anchor', 'middle')\n .attr('x', -1 * Math.floor(this.getChartHeight() / 2))\n .attr('y', `${this.getyAxisOffset(axis).x - axisWidth - labelMargin}`)\n .attr('font-size', '.75rem')\n .text(this.getAxisLabel(axis, 'y') ?? '')\n })\n }\n\n public getXAxisOffset (axis: IChartAxis): { x: number, y: number } {\n return {\n x: this.settings.margin.left,\n y: this.settings.height - this.settings.margin.bottom,\n ...axis.offset\n }\n }\n\n public getyAxisOffset (axis: IChartAxis): { x: number, y: number } {\n return {\n x: this.settings.margin.left,\n y: this.settings.margin.top,\n ...axis.offset\n }\n }\n\n public showXAxes (axes: IChartAxis[]): void {\n const chartElements = this.getChartElements()\n if (chartElements === undefined) {\n return undefined\n }\n const { svg } = chartElements\n axes.forEach((axis, index) => {\n const axisSettings = {}\n if (axis?.scale !== undefined) {\n const axisG = this.getXAxis(\n axis,\n axisSettings\n )\n const axisSelection = svg.select('.x-axis').size() > 0 ? svg.select('.x-axis') : svg.append('g').attr('class', 'x-axis axis')\n axisSelection.append('g').call(axisG)\n }\n })\n }\n\n public getCanvasContext (): CanvasRenderingContext2D | null {\n if (this.chartElements !== undefined) {\n const { canvas } = this.chartElements\n const node = canvas.node()\n if (node !== undefined && node !== null) {\n return node.getContext('2d')\n }\n }\n return null\n }\n\n public onResize (prevWidth: number, prevHeight: number): void {\n if (this.settings.width === 'auto') {\n const { height } = this.settings\n const width = this.getWidth()\n const ctx = this.getCanvasContext()\n if (this.runtime.busy !== true && ctx !== null && this.chartElements !== undefined && ctx !== undefined && (prevWidth !== width || prevHeight !== height)) {\n this.runtime.busy = true\n const { svg, canvas } = this.chartElements\n svg.selectAll('*').remove()\n svg.attr('viewBox', [0, 0, width, height])\n .attr('width', width)\n ctx.clearRect(0, 0, +canvas.attr('width'), +canvas.attr('height'))\n canvas\n .attr('width', width)\n .attr('height', height)\n this.init(true).then(() => {\n this.runtime.busy = false\n console.log('drawn')\n }).catch(e => {\n this.onError(e)\n })\n } else {\n console.log('skipping resize!')\n }\n }\n }\n\n public getChartElements (): IAxiomChartElements | undefined {\n if (this.chartElements !== undefined) {\n return this.chartElements\n }\n const { height } = this.settings\n const width = this.getWidth()\n const svg: Selection<SVGSVGElement, undefined, null, undefined> = create('svg')\n .attr('viewBox', [0, 0, width, height])\n .attr('width', width)\n .attr('height', height)\n .style('position', 'absolute')\n .style('z-index', 20)\n\n const canvas: Selection<HTMLCanvasElement, undefined, null, undefined> = create('canvas')\n .attr('width', width)\n .attr('height', height)\n .style('position', 'absolute')\n\n if (canvas !== null && svg !== null) {\n this.chartElements = {\n canvas,\n svg\n }\n const context = this.getCanvasContext()\n if (context !== null) {\n context.imageSmoothingQuality = 'high'\n }\n }\n return this.chartElements\n }\n\n public drawPlotScrubbing (plotId: string, scrubPosition: IPlotScrubEvent, style?: IPlotStyle, scrubSettings?: IPlotScrubSettings): void {\n const chartElements = this.getChartElements()\n if (chartElements === undefined) return\n if (scrubPosition === undefined || scrubPosition.x === undefined || scrubPosition.y === undefined) return\n const { x, y } = scrubPosition\n this.drawScrubLine(plotId, scrubPosition, chartElements.svg, style, scrubSettings)\n this.drawPlotScrubCircle(plotId, x?.position, y?.position, chartElements.svg, style)\n }\n\n private drawScrubLine (plotId: string, scrubPosition: IPlotScrubEvent, svg: IAxiomChartElements['svg'], style?: IPlotStyle, scrubSettings?: IPlotScrubSettings): void {\n const scrubLineClass = this.getPlotScrubLineClass(plotId)\n svg.select(`.${scrubLineClass}`).remove()\n const line = svg.insert('line')\n .classed(scrubLineClass, true)\n if (scrubSettings?.axis === EChartAxes.x) {\n const lineLength = this.settings.height - this.settings.margin.bottom\n line.attr('x1', scrubPosition.x?.position ?? 0)\n .attr('y1', 0)\n .attr('x2', scrubPosition.x?.position ?? 0)\n .attr('y2', lineLength)\n .attr('stroke', this.getPlotStrokeColor(style))\n .style('stroke-width', this.getPlotStrokeWidth(style))\n } else {\n const width = this.getChartWidth()\n const left = this.settings.margin.left\n const lineLength = width - left\n line.attr('x1', this.settings.margin.left)\n .attr('y1', scrubPosition.y?.position ?? 0)\n .attr('x2', width + lineLength)\n .attr('y2', scrubPosition.y?.position ?? 0)\n .attr('stroke', this.getPlotStrokeColor(style))\n .style('stroke-width', this.getPlotStrokeWidth(style))\n }\n }\n\n private drawPlotScrubCircle (plotId: string, x: number, y: number, svg: IAxiomChartElements['svg'], style?: IPlotStyle): void {\n svg.select(`.${this.getPlotScrubCircleClass(plotId)}`).remove()\n svg.insert('circle')\n .classed(this.getPlotScrubCircleClass(plotId), true)\n .attr('r', 6)\n .attr('cx', x)\n .attr('cy', y)\n .style('stroke', this.getPlotStrokeColor(style))\n .style('stroke-width', this.getPlotStrokeWidth(style))\n .style('fill-opacity', '0')\n }\n\n public erasePlotScrub (plotId: string): void {\n if (this.chartElements === undefined) return\n this.chartElements.svg.select(`.${this.getPlotScrubCircleClass(plotId)}`).remove()\n this.chartElements.svg.select(`.${this.getPlotScrubLineClass(plotId)}`).remove()\n }\n\n public getScrubEvent (\n event: MouseEvent,\n scrubAxis: EChartAxes,\n xScale: IAxiomD3ContinuousScale,\n yScale: IAxiomD3ContinuousScale,\n xAccessor: INumericDataAccessor,\n yAccessor: INumericDataAccessor,\n rows: IDataRow[],\n offsetSettings: { x: number, y: number }): IPlotScrubEvent {\n let mousePosition: number\n let offset: number\n let scrubbingScale: IAxiomD3ContinuousScale\n let scrubbingAccessor: (row: IDataRow) => INumericData\n let valueAccessor: (row: IDataRow) => INumericData\n if (scrubAxis === EChartAxes.x) {\n mousePosition = event.offsetX\n offset = offsetSettings.x\n scrubbingScale = xScale\n scrubbingAccessor = xAccessor\n valueAccessor = yAccessor\n } else {\n mousePosition = event.offsetY\n offset = offsetSettings.y\n scrubbingScale = yScale\n scrubbingAccessor = yAccessor\n valueAccessor = xAccessor\n }\n\n const scrubValue = scrubbingScale.invert(mousePosition - offset)\n\n const bisect = bisector((row: IDataRow) => scrubbingAccessor(row)).center\n const bisectIndex = bisect(rows, scrubValue)\n\n const nearestRow = this.getDataRowNearestToScrub(bisectIndex, scrubValue, rows, valueAccessor, scrubbingAccessor)\n\n const bisected = nearestRow\n const xValue = xAccessor(bisected)\n const xPosition = xScale(xValue) + offsetSettings.x\n\n const yValue = yAccessor(nearestRow)\n const yPosition = yScale(yValue) + offsetSettings.y\n\n return {\n x: {\n position: xPosition,\n value: xValue\n },\n y: {\n position: yPosition,\n value: yValue\n }\n }\n }\n\n private getDataRowNearestToScrub (\n bisectIndex: number,\n scrubValue: number | Date,\n parsedData: IDataRow[],\n valueAccessor: (row: IDataRow) => INumericData,\n scrubbingAccessor: (row: IDataRow) => INumericData\n ): IDataRow {\n const nonEmptyRows = parsedData.filter(row => valueAccessor(row) !== null && valueAccessor(row) !== undefined)\n let minDistance = Number.MAX_VALUE\n let nearestRow = parsedData[bisectIndex]\n for (let i = 0; i < nonEmptyRows.length; i += 1) {\n const current = scrubbingAccessor(nonEmptyRows[i])\n const distance = Math.abs(+current - +scrubValue)\n if (distance < minDistance) {\n minDistance = distance\n nearestRow = nonEmptyRows[i]\n }\n }\n return nearestRow\n }\n\n private getPlotStrokeColor (style?: IPlotStyle): string {\n return style?.strokeColor ?? '#333'\n }\n\n private getPlotStrokeWidth (style?: IPlotStyle): number {\n return style?.strokeWidth ?? 1\n }\n\n private getPlotScrubCircleClass (plotId: string): string {\n return `${plotId}-scrub-circle`\n }\n\n private getPlotScrubLineClass (plotId: string): string {\n return `${plotId}-scrub-line`\n }\n\n protected attachChartElements (): void {\n const chartElements = this.getChartElements()\n if (this.element !== undefined && chartElements !== undefined) {\n const { svg, canvas } = chartElements\n const svgNode = svg?.node()\n const canvasNode = canvas?.node()\n if (svgNode !== null && canvasNode !== null) {\n this.element.innerHTML = ''\n this.element.append(svgNode)\n this.element.append(canvasNode)\n }\n }\n }\n\n protected createPlot (plot: IPlot): IPlotImplementation {\n const props = this.getPlotImplementationProps(plot)\n if (plot.type === EPlotTypes.line) {\n return new chartTypes.Line(props)\n } else if (plot.type === EPlotTypes.area) {\n return new chartTypes.Area(props)\n } else if (plot.type === EPlotTypes.scatter) {\n return new chartTypes.Scatter(props)\n } else if (plot.type === EPlotTypes.bar) {\n return new chartTypes.Bar(props)\n }\n return new PlotRoot(props)\n }\n\n public clearCanvas (): void {\n const ctx = this.getCanvasContext()\n if (ctx !== null) {\n ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height)\n }\n }\n\n public async init (drawImmediately: boolean = false): Promise<void> {\n await super.init(drawImmediately)\n this.attachChartElements()\n // this.adjustYAxis()\n }\n\n public destroy (): void {\n console.log('destroy')\n this.chartElements = undefined\n super.destroy()\n }\n}\n\nexport default AxiomChart\n\nexport type {\n IAxiomChartAxisSettings,\n IAxiomChartElements,\n IAxiomD3GSelection,\n IAxiomD3AxisCall,\n IAxiomD3ContinuousScale,\n IAxiomSelectionValueFn\n}\n","import { lineRadial, curveLinearClosed } from 'd3-shape'\nimport AxiomLine from '@/Libraries/axiom/Plots/AxiomLine'\nimport { type IDataRow } from '@axdspub/axiom-ui-data-services'\nimport type AxiomRadialChart from '@/Libraries/axiom/Radial/AxiomRadialChart'\n\nclass AxiomRadialLine extends AxiomLine {\n public async draw (): Promise<void> {\n const style = this.style !== undefined ? this.style : {}\n const data = await this.getData()\n const parsedData = data?.parsed?.data\n const xAccessor = this.getAccessorAtAxis('x')\n const yAccessor = this.getAccessorAtAxis('y')\n const chart = this.chart as AxiomRadialChart\n const chartElements = chart.getChartElements()\n\n if (chartElements === undefined || chartElements.svg === null) {\n return undefined\n }\n const svg = chartElements.svg\n const xAxisScale = this?.axes?.x?.scale\n const yAxisScale = this?.axes?.y?.scale\n if (xAxisScale === undefined || yAxisScale === undefined || parsedData === undefined || xAccessor === undefined || yAccessor === undefined) {\n return undefined\n }\n /* const offset = {\n x: (this?.axes?.x?.offset?.x !== undefined ? this.axes.x.offset.x : 0),\n y: (this?.axes?.y?.offset?.y !== undefined ? this.axes.y.offset.y : 0)\n } */\n\n const xScale = chart.getD3RadialXScale(xAxisScale)\n const xPosition = (d: IDataRow): number => {\n const v = xAccessor(d)\n const p = xScale(v)\n return p === undefined ? 0 : p\n }\n\n const yScale = chart.getD3RadialYScale(yAxisScale)\n const yPosition = (d: IDataRow): number => {\n const v = yAccessor(d)\n const p = yScale(v)\n return p === undefined ? 0 : p\n }\n\n /* const isDefined = (d: IDataRow): boolean => {\n const v = yAccessor(d)\n return !!((v !== undefined && v !== null && !isNaN(+v)))\n } */\n\n const line = lineRadial()\n .angle(xPosition)\n .radius(yPosition)\n .curve(curveLinearClosed)\n\n const radialData = parsedData.slice()\n const chartOffset = chart.getChartOffset()\n\n const stroke = style.strokeColor !== undefined ? style.strokeColor : '#333'\n svg.append('g')\n .attr('transform', `translate(${chartOffset.x},${chartOffset.y})`)\n .attr('class', 'radial-line')\n .append('path')\n .attr('fill', 'none')\n .attr('stroke', stroke)\n .attr('stroke-width', style.strokeWidth !== undefined ? style.strokeWidth : 1)\n .attr('d', line(radialData as unknown as Iterable<[number, number]>))\n\n if (this.axes?.y !== undefined && !(this.legendSettings.hide ?? false)) {\n super.onLegendReady([{\n id: this.axes.y.key,\n label: chart.getAxisLabel(this.axes.y, 'y') ?? this.axes.y.key,\n style: { backgroundColor: stroke }\n }])\n }\n }\n}\n\nexport default AxiomRadialLine\n","import { pointRadial } from 'd3-shape'\nimport AxiomScatter from '@/Libraries/axiom/Plots/AxiomLine'\nimport { type IDataRow } from '@axdspub/axiom-ui-data-services'\nimport type AxiomRadialChart from '@/Libraries/axiom/Radial/AxiomRadialChart'\n\nclass AxiomRadialScatter extends AxiomScatter {\n public async draw (): Promise<void> {\n // const style = this.style !== undefined ? this.style : {}\n const data = await this.getData()\n const parsedData = data?.parsed?.data\n const xAccessor = this.getAccessorAtAxis('x')\n const yAccessor = this.getAccessorAtAxis('y')\n const chart = this.chart as AxiomRadialChart\n const chartElements = chart.getChartElements()\n\n if (chartElements === undefined || chartElements.svg === null) {\n return undefined\n }\n const svg = chartElements.svg\n const xAxisScale = this?.axes?.x?.scale\n const yAxisScale = this?.axes?.y?.scale\n if (xAxisScale === undefined || yAxisScale === undefined || parsedData === undefined || xAccessor === undefined || yAccessor === undefined) {\n return undefined\n }\n /* const offset = {\n x: (this?.axes?.x?.offset?.x !== undefined ? this.axes.x.offset.x : 0),\n y: (this?.axes?.y?.offset?.y !== undefined ? this.axes.y.offset.y : 0)\n } */\n\n const xScale = chart.getD3RadialXScale(xAxisScale)\n\n const xPosition = (d: IDataRow): number => {\n const v = xAccessor(d)\n const p = xScale(v)\n return p === undefined ? 0 : p\n }\n\n const yScale = chart.getD3RadialYScale(yAxisScale)\n const yPosition = (d: IDataRow): number => {\n const v = yAccessor(d)\n const p = yScale(v)\n return p === undefined ? 0 : p\n }\n\n const g = svg.append('g')\n .attr('transform', `translate(${chart.getChartSize() / 2},${chart.getChartSize() / 2})`)\n .attr('class', 'radial-scatter')\n\n const style = this.style !== undefined ? this.style : {}\n const radius = style.radius !== undefined ? style.radius : 2\n\n const fill = style.fill !== undefined ? style.fill : '#333'\n const stroke = style.strokeColor !== undefined ? style.strokeColor : '#CCC'\n parsedData.forEach(d => {\n const pt = pointRadial(xPosition(d), yPosition(d))\n g.append('circle')\n .attr('r', radius * 2)\n .attr('fill', fill)\n .attr('stroke', stroke)\n .attr('stroke-width', (style.strokeWidth !== undefined || style.strokeColor !== undefined) ? ((style.strokeWidth !== undefined ? style.strokeWidth : 1)) : 0)\n .attr('cx', pt[0] + chart.settings.margin.left)\n .attr('cy', pt[1] + chart.settings.margin.top)\n })\n\n if (this.axes?.y !== undefined && !(this.legendSettings.hide ?? false)) {\n super.onLegendReady([{\n id: this.axes.y.key,\n label: chart.getAxisLabel(this.axes.y, 'y') ?? this.axes.y.key,\n style: {\n backgroundColor: fill,\n border: `1px solid ${stroke}`\n }\n }])\n }\n }\n}\n\nexport default AxiomRadialScatter\n","import { areaRadial, curveLinearClosed } from 'd3-shape'\nimport AxiomArea from '@/Libraries/axiom/Plots/AxiomArea'\nimport { type INumericDataAccessor, type IDataRow } from '@axdspub/axiom-ui-data-services'\nimport type AxiomRadialChart from '@/Libraries/axiom/Radial/AxiomRadialChart'\nimport { type IAxiomD3ContinuousScale } from '@/Libraries/axiom/AxiomChart'\n\nclass AxiomRadialArea extends AxiomArea {\n public async draw (): Promise<void> {\n const style = this.style !== undefined ? this.style : {}\n const data = await this.getData()\n const parsedData = data?.parsed?.data\n\n const xAccessors = this.getAccessorsAtAxis('x')\n const xAccessor = this.getAccessorAtAxis('x')\n const x0Accessor = xAccessors.x0\n const x1Accessor = xAccessors.x1\n\n const yAccessors = this.getAccessorsAtAxis('y')\n const yAccessor = this.getAccessorAtAxis('y')\n const y0Accessor = yAccessors.y0\n const y1Accessor = yAccessors.y1\n\n const chart = this.chart as AxiomRadialChart\n const chartElements = chart.getChartElements()\n\n if (chartElements === undefined || chartElements.svg === null) {\n return undefined\n }\n const svg = chartElements.svg\n\n const xAxisScale = this?.axes?.x?.scale\n const yAxisScale = this?.axes?.y?.scale\n if (\n xAxisScale === undefined ||\n yAxisScale === undefined ||\n parsedData === undefined ||\n (\n xAccessor === undefined && x0Accessor === undefined && x1Accessor === undefined\n ) ||\n (\n yAccessor === undefined && y0Accessor === undefined && y1Accessor === undefined\n )\n ) {\n console.log('Missing one of: xAxisScale, yAxisScale, parsedData, xAccessor(s), yAccessor(s)')\n return undefined\n }\n\n const xScale = chart.getD3RadialXScale(xAxisScale)\n const yScale = chart.getD3RadialYScale(yAxisScale)\n\n const makePositionFn = (acc: INumericDataAccessor, d3Scale: IAxiomD3ContinuousScale) => {\n return (d: IDataRow): number => {\n const v = acc(d)\n const p = d3Scale(v)\n return p === undefined ? 0 : p\n }\n }\n\n const makeDefinedFn = (acc: INumericDataAccessor) => {\n return (d: IDataRow): boolean => {\n const v = acc(d)\n return !!((v !== undefined && v !== null && !isNaN(+v)))\n }\n }\n\n if (xAccessor === undefined || y0Accessor === undefined || y1Accessor === undefined) {\n return undefined\n }\n\n const area = areaRadial()\n .angle(makePositionFn(xAccessor, xScale))\n .innerRadius(makePositionFn(y0Accessor, yScale))\n .outerRadius(makePositionFn(y1Accessor, yScale))\n .defined(makeDefinedFn(y1Accessor))\n .curve(curveLinearClosed)\n\n const radialData = parsedData.slice()\n const chartOffset = chart.getChartOffset()\n\n const fill = style.fill !== undefined ? style.fill : '#EDEDED99'\n svg.insert('g', 'g.axis')\n .attr('transform', `translate(${chartOffset.x},${chartOffset.y})`)\n .attr('class', 'radial-area')\n .append('path')\n .attr('fill', fill)\n .attr('stroke-width', style.strokeWidth !== undefined ? style.strokeWidth : 1)\n .attr('d', area(radialData as unknown as Iterable<[number, number]>))\n\n if (this.axes?.y !== undefined && !(this.legendSettings.hide ?? false)) {\n super.onLegendReady([{\n id: this.axes.y.key,\n label: chart.getAxisLabel(this.axes.y, 'y') ?? this.axes.y.key,\n style: { backgroundColor: fill }\n }])\n }\n }\n}\n\nexport default AxiomRadialArea\n","import { type IChartDimensionDomain } from '@/library'\nimport AxiomPlotRoot from '../../Plots/PlotRoot'\nimport type AxiomRadialChart from '../AxiomRadialChart'\nimport * as d3 from 'd3'\nimport { type INumericDataAccessor, type IDataResult, type IDataRow } from '@axdspub/axiom-ui-data-services'\n\ninterface Stack {\n minDirection: number\n [maxSpeed: string]: number\n}\n\nclass AxiomRadialRose extends AxiomPlotRoot {\n data: IDataResult | undefined = undefined\n numBins = 16\n speedBins = d3.range(1, 8, 1)\n stacks: Stack[] | undefined = undefined\n directionMode: 'to' | 'from' = 'to'\n\n private async setStackedData (): Promise<void> {\n let parsedData: IDataRow[] = []\n if (this.data === undefined) {\n this.data = await this.getData()\n parsedData = this.data.parsed?.data ?? []\n }\n const y = this.data.parsed?.accessors.y\n if (this.stacks === undefined && y !== undefined) {\n this.stacks = this.getStackedData(parsedData, y)\n }\n }\n\n public async getDomain (_axis: string): Promise<IChartDimensionDomain> {\n await this.setStackedData()\n if (this.stacks === undefined) return [0, 10]\n return [0, this.getMaxStackTotal(this.stacks)]\n }\n\n private getStackedData (parsedData: IDataRow[], yAccessor: INumericDataAccessor): Stack[] {\n const degreesPerBin = 360 / this.numBins\n const directionBins = d3.range(0, 360, degreesPerBin)\n const values = parsedData.map(d => d.value)\n this.speedBins = d3.ticks(d3.min(values), d3.max(values), 5)\n const stacks: Stack[] = []\n\n directionBins.forEach(direction => {\n const newBin: Stack = {\n minDirection: direction\n }\n this.speedBins.forEach(bin => { newBin[bin] = 0 })\n stacks.push(newBin)\n })\n\n parsedData.forEach(row => {\n const directionBinIndex = Math.floor(row.direction / degreesPerBin)\n const stack = stacks[directionBinIndex]\n if (Number(yAccessor(row)) < this.speedBins[this.speedBins.length - 1]) {\n const speedBin = Math.floor(Number(yAccessor(row)))\n stack[speedBin] += 1\n }\n })\n\n return stacks\n }\n\n private getMaxStackTotal (stacks: Stack[]): number {\n return d3.max(stacks, stack => {\n return this.speedBins.reduce((sum, current) => sum + stack[current], 0)\n }) ?? 0\n }\n\n public async draw (): Promise<void> {\n const xAccessors = this.getAccessorsAtAxis('x')\n const xAccessor = this.getAccessorAtAxis('x')\n const x0Accessor = xAccessors.x0\n const x1Accessor = xAccessors.x1\n\n const yAccessors = this.getAccessorsAtAxis('y')\n const yAccessor = this.getAccessorAtAxis('y')\n const y0Accessor = yAccessors.y0\n const y1Accessor = yAccessors.y1\n\n await this.setStackedData()\n\n const chart = this.chart as AxiomRadialChart\n const chartElements = chart.getChartElements()\n\n if (chartElements === undefined || chartElements.svg === null) {\n return undefined\n }\n const svg = chartElements.svg\n\n const xAxisScale = this?.axes?.x?.scale\n const yAxisScale = this?.axes?.y?.scale\n if (\n xAxisScale === undefined ||\n yAxisScale === undefined ||\n (\n xAccessor === undefined && x0Accessor === undefined && x1Accessor === undefined\n ) ||\n (\n yAccessor === undefined && y0Accessor === undefined && y1Accessor === undefined\n )\n ) {\n console.log('Missing one of: xAxisScale, yAxisScale, parsedData, xAccessor(s), yAccessor(s)')\n return undefined\n }\n\n if (this.stacks === undefined || this.speedBins === undefined) return\n\n const maxStackTotal = this.getMaxStackTotal(this.stacks)\n\n const xScale = d3.scaleBand<number>()\n .domain(d3.range(0, 360, 360 / this.numBins))\n .range([0, 2 * Math.PI])\n\n const yScale = d3.scaleRadial()\n .domain([0, maxStackTotal])\n .range([chart.getInnerRadius(), chart.getOuterRadius()])\n\n const fillColors = this.style?.colors ?? d3.schemeTableau10\n const zScale = d3\n .scaleOrdinal()\n .range(fillColors)\n\n const data = d3.stack().keys(this.speedBins.map(bin => String(bin)))(this.stacks)\n const chartOffset = chart.getChartOffset()\n const bandwidth = 2 * Math.PI / this.numBins\n const getStartAngle = (direction: number): number => {\n const start = this.directionMode === 'from' ? xScale(direction) : xScale((direction + 180) % 360)\n return (start ?? 0) - (bandwidth / 2)\n }\n const getEndAngle = (direction: number): number => {\n const end = this.directionMode === 'from' ? xScale(direction) : xScale((direction + 180) % 360)\n return (end ?? 0) + (bandwidth / 2)\n }\n svg.insert('g', 'g.axis')\n .attr('transform', `translate(${chartOffset.x},${chartOffset.y})`)\n .selectAll('g')\n .data(data)\n .enter().append('g')\n .attr('fill', (d: any) => zScale(d.key) as string)\n .selectAll('path')\n .data(d => d)\n .enter().append('path')\n .on('mouseover', (event, data) => { this.onMouseScrub(event, data) })\n .on('mousemove', (event, data) => { this.onMouseScrub(event, data) })\n .on('mouseleave', () => { this.onScrubEnd() })\n .attr('d', d3.arc<any>()\n .innerRadius(d => yScale(d[0]))\n .outerRadius(d => yScale(d[1]))\n .startAngle(d => getStartAngle(d.data.minDirection))\n .endAngle(d => getEndAngle(d.data.minDirection))\n .padAngle(0.01)\n .padRadius(chart.getInnerRadius())\n )\n\n super.onLegendReady(data.map((d, i) => ({\n id: d.key,\n label: `< ${this.speedBins[i]} ${this.dimensions.z.displayUnits?.label ?? ''}`,\n style: {\n backgroundColor: zScale(d.key) as string\n }\n })))\n }\n\n private onMouseScrub (event: MouseEvent, data: any): void {\n if (this.chart.onPlotScrub === undefined) return\n this.onScrub({\n x: {\n position: event.offsetX,\n value: data.data.angle\n },\n y: {\n position: event.offsetY,\n value: { ...data }\n }\n })\n }\n}\n\nexport default AxiomRadialRose\n","import { scaleRadial } from 'd3-scale'\n\nimport AxiomChart, { type IAxiomD3AxisCall, type IAxiomChartAxisSettings, type IAxiomD3ContinuousScale, type IAxiomD3GSelection } from '../AxiomChart'\nimport { type IPlotImplementation, type IChartAxis, type IChartScale, type IPlot } from '@/Root/Types/ChartTypes'\n\nimport AxiomRadialLine from '@/Libraries/axiom/Radial/Plots/AxiomRadialLine'\nimport AxiomRadialScatter from '@/Libraries/axiom/Radial/Plots/AxiomRadialScatter'\nimport AxiomRadialArea from '@/Libraries/axiom/Radial/Plots/AxiomRadialArea'\nimport AxiomRadialRose from './Plots/AxiomRadialRose'\nimport { type RadialChartRoot } from '@/library'\n\nclass AxiomRadialChart extends AxiomChart implements RadialChartRoot {\n public getInnerRadius (): number {\n return this.getChartSize() / 5\n }\n\n public getOuterRadius (): number {\n return this.getChartSize() / 2\n }\n\n protected getXRange (_chartWidth: number): [number, number] {\n return [0, 2 * Math.PI]\n }\n\n protected getYRange (_chartHeight: number): [number, number] {\n return [this.getInnerRadius(), this.getOuterRadius()]\n }\n\n protected getYAxesWidth (): number {\n return this.settings.margin.left\n }\n\n public getChartSize (): number {\n const w: number = this.getWidth() - this.settings.margin.left - this.settings.margin.right\n const h: number = this.settings.height - this.settings.margin.top - this.settings.margin.bottom\n return Math.min(w, h)\n }\n\n public getChartWidth (): number {\n return this.getChartSize()\n }\n\n protected getChartHeight (): number {\n return this.getChartSize()\n }\n\n public getD3RadialYScale (scale: IChartScale): IAxiomD3ContinuousScale {\n return scaleRadial()\n .domain(scale.domain)\n .range(scale.range)\n }\n\n public getD3RadialXScale (scale: IChartScale, segments = 12): IAxiomD3ContinuousScale {\n const pi2 = 2 * Math.PI\n const d3Scale = super.getD3XScale(scale)\n d3Scale.range([0, pi2 - pi2 / segments])\n return d3Scale\n }\n\n public getYAxis (axis: IChartAxis, axisSettings: IAxiomChartAxisSettings, index: number): IAxiomD3AxisCall {\n if (axis.scale === undefined) {\n return g => g\n }\n const offset = this.getyAxisOffset(axis)\n const d3Scale = this.getD3RadialYScale(axis.scale)\n const tickFormat = d3Scale.tickFormat()\n\n const minTickSpace = 30\n const ySpace = d3Scale.range()[1] - d3Scale.range()[0]\n const idealTickLength = Math.floor(ySpace / minTickSpace)\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n const ticks = d3Scale.ticks(idealTickLength).map(tickFormat)\n const parseTick = (tick: string): number => Number(tick.replace(/,/g, ''))\n\n const axisCall = (g: IAxiomD3GSelection): IAxiomD3GSelection => {\n const dir = (index !== 0 && ((index % 2) !== 0) ? 1 : -1)\n g\n .attr('class', 'radial-axis')\n .attr('transform', `translate(${offset.x},${offset.y})`)\n .attr('text-anchor', 'middle')\n .selectAll()\n .data(ticks.reverse())\n .join('g')\n .attr('class', 'tick')\n .call(g => {\n if (index > 0) {\n return g\n }\n return g.append('circle')\n .attr('fill', 'none')\n .attr('stroke', 'currentColor')\n .attr('r', (tick) => {\n return d3Scale(parseTick(tick))\n })\n })\n .call(g => g.append('text')\n .attr('y', tick => dir * d3Scale(parseTick(tick)))\n .attr('dy', '0.35em')\n .attr('stroke', '#FFF')\n .attr('strokewidth', 5)\n .attr('paint-order', 'stroke')\n .attr('transform', `rotate(${index > 1 ? (index - 1) * -20 : 0})`)\n .text((x, i) => `${String(x)}`)\n )\n\n return g\n }\n return axisCall\n }\n\n public getChartOffset (): { x: number, y: number } {\n return {\n x: this.settings.margin.left + this.getChartSize() / 2,\n y: this.settings.margin.top + this.getChartSize() / 2\n }\n }\n\n public getXAxisOffset (_axis: IChartAxis): { x: number, y: number } {\n return this.getChartOffset()\n }\n\n public getyAxisOffset (_axis: IChartAxis): { x: number, y: number } {\n return this.getChartOffset()\n }\n\n public getXAxis (axis: IChartAxis, _axisSettings: IAxiomChartAxisSettings): IAxiomD3AxisCall {\n if (axis.scale === undefined) {\n return g => g\n }\n const innerRadius = this.getInnerRadius()\n const outerRadius = this.getOuterRadius()\n const offset = this.getXAxisOffset(axis)\n const d3Scale = this.getD3RadialXScale(axis.scale)\n const tickFormat = d3Scale.tickFormat()\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n const ticks: string[] = this.settings.axes?.x?.ticks ?? d3Scale.ticks().map(tickFormat)\n const rotateOffset = -90\n const getRotate = (index: number, len: number): number => {\n const r = (index * 360 / len)\n return r\n }\n\n const radialAxis = (g: IAxiomD3GSelection): IAxiomD3GSelection => {\n g\n .append('g')\n .attr('class', 'radial-axis')\n .attr('transform', `translate(${offset.x},${offset.y}) rotate(${rotateOffset})`)\n .attr('text-anchor', 'left')\n .call(g => g.selectAll('g')\n .data(ticks)\n .join('g')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n .attr('transform', (_d: string | number, i: number, arr: any[]) => `\n rotate(${getRotate(i, arr.length)})\n translate(${innerRadius},0)\n `)\n .attr('class', 'tick')\n .call(g => g.append('line')\n .attr('x1', -5)\n .attr('x2', outerRadius - innerRadius + 10)\n )\n .call(g => g.append('text')\n .attr('text-anchor', 'middle')\n .attr('transform', 'rotate(90)translate(0,16)')\n .text((d: string): string => d)))\n\n return g\n }\n\n return radialAxis\n }\n\n createPlot (plot: IPlot): IPlotImplementation {\n const props = this.getPlotImplementationProps(plot)\n if (plot.type === 'line') {\n return new AxiomRadialLine(props)\n } else if (plot.type === 'scatter') {\n return new AxiomRadialScatter(props)\n } else if (plot.type === 'area') {\n return new AxiomRadialArea(props)\n } else if (plot.type === 'windrose') {\n return new AxiomRadialRose(props)\n }\n return new AxiomRadialLine(props)\n }\n}\n\nexport default AxiomRadialChart\n","import PlotRoot from '@/Root/Plots/PlotRoot'\n\nclass Box extends PlotRoot {\n public async draw (): Promise<void> {\n console.log('line: draw method not implemented')\n }\n}\n\nexport default Box\n","import PlotRoot from '@/Root/Plots/PlotRoot'\n\nclass LineBase extends PlotRoot {\n public async draw (): Promise<void> {\n console.log('line: draw method not implemented')\n }\n}\n\nexport default LineBase\n","import Box from '@/Root/Plots/BoxBase'\nimport Line from '@/Root/Plots/LineBase'\n/* import Stacked from '@/Plots/Stacked'\nimport Scatter from '@/Plots/Scatter'\nimport Curtain from '@/Plots/Curtain'\nimport Profile from '@/Plots/Profile'\nimport Seasonal from '@/Plots/Seasonal' */\n\nconst plotsOb = {\n box: Box,\n line: Line\n /* scatter: Scatter,\n curtain: Curtain,\n profile: Profile,\n seasonal: Seasonal,\n stacked: Stacked */\n}\n\nexport default plotsOb\n","import AxiomChart from '@/Libraries/axiom/AxiomChart'\nimport AxiomRadialChart from '@/Libraries/axiom/Radial/AxiomRadialChart'\nimport AxiomLine from '@/Libraries/axiom/Plots/AxiomLine'\nimport BasePlots from '@/Root/Plots'\n\nconst axiomPlotTypes = {\n ...BasePlots,\n line: AxiomLine\n}\nconst axiomLibrary = {\n Chart: AxiomChart,\n RadialChart: AxiomRadialChart,\n plotTypes: axiomPlotTypes\n}\n\nexport default axiomLibrary\n"],"names":["line","d3Line","area","d3Area","Bar","AxiomScatter","Line","BasePlots"],"mappings":"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","x_google_ignoreList":[0,10]}
|