@axdspub/axiom-charts 0.0.15 → 0.0.16

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.
@@ -630,6 +630,7 @@ var AxiomLine = /** @class */ (function (_super) {
630
630
  ctx.strokeStyle = this.getStrokeStyle();
631
631
  ctx.lineWidth = this.getLineWidth();
632
632
  ctx.setLineDash([]);
633
+ ctx.lineCap = 'square';
633
634
  line$1 = line()
634
635
  .x(xPosition)
635
636
  .y(yPosition)
@@ -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/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/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\") 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,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __createBinding,\r\n __exportStar,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n __classPrivateFieldIn,\r\n __addDisposableResource,\r\n __disposeResources,\r\n};\r\n","import { type IRequestItemData, type INumericDataAccessor, type IDataResult, type IRequestItemProps, type IRequestItemImplementation, type INumericData } from '@axdspub/axiom-ui-data-services'\n\ninterface IUnit {\n code: string\n label: string\n}\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\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\n}\n\ninterface IPlotStyle {\n strokeWidth?: number\n strokeColor?: string\n strokeDash?: [number, number]\n fill?: string\n radius?: number\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 axisSettings?: IPlotAxisSettings\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 IPlotScrubPosition {\n xPosition: number\n yPosition: number\n xValue: number | Date | string\n yValue: INumericData\n}\n\ntype PlotId = string\n\ntype IPlotScrubPositions = Record<PlotId, IPlotScrubPosition>\n\ninterface IPlotImplementation extends IPlotImplementationProps, IRequestItemImplementation {\n chart: IChartImplementation\n draw: () => Promise<void>\n drawScrubbing: (mouseX: number) => void\n destroy: () => void\n getDomain: (axis: EChartAxes) => Promise<IChartDimensionDomain>\n getYDomain: () => Promise<IChartDimensionDomain>\n getAxisSetting: (axis: string) => IPlotAxisSetting\n getScrubPosition: (mouseX: number) => IPlotScrubPosition | undefined\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' | 'timeseries' | undefined\n}\n\ninterface IChart {\n settings: IChartSettings\n plots: IPlot[]\n label?: string\n description?: string\n help?: string\n onScrub?: (scrubPositions: IPlotScrubPositions) => void\n onScrubEnd?: () => 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 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 IPlotTypes,\n IPlotImplementation,\n IPlotImplementationProps,\n IPlotDataAccessors,\n IPlotImplementationGroup,\n IPlotImplementationGroups,\n IPlotScrubPosition,\n IPlotScrubPositions\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 IPlotScrubPosition } from '@/Root/Types/ChartTypes'\nimport { extent } from 'd3-array'\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\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.axisSettings = props.axisSettings\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 public drawScrubbing (mouseX: number): void {\n console.log('drawScrubbing not implemented')\n }\n\n public getScrubPosition (mouseX: number): IPlotScrubPosition | undefined {\n console.log('getScrubPosition not implemented')\n return undefined\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 IPlotScrubPositions } 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 onScrub?: (scrubPositions: IPlotScrubPositions) => void\n onScrubEnd?: () => 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.onScrub = props.onScrub\n this.onScrubEnd = props.onScrubEnd\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 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 protected 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 public async init (drawImmediately: boolean = false): Promise<void> {\n this.runtime.resizeEventHandler = debounce(() => {\n this.onResize(this.runtime.prevWidth, this.runtime.prevHeight)\n }, 1000, {\n leading: true,\n trailing: true\n })\n // window.addEventListener('resize', this.runtime.resizeEventHandler)\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 }\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'\nimport { type IPlotScrubPosition } from '@/Root/Types/ChartTypes'\n\nabstract class AxiomPlotRoot extends PlotRoot {\n public abstract getScrubPosition (mouseX: number): IPlotScrubPosition | undefined\n public abstract drawScrubbing (mouseX: number): void\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 INumericData } from '@axdspub/axiom-ui-data-services'\nimport type AxiomChart from '@/Libraries/axiom/AxiomChart'\nimport { bisector } from 'd3-array'\nimport { type IAxiomD3ContinuousScale } from '@/Libraries/axiom/AxiomChart'\nimport { type IPlotScrubPosition } from '@/Root/Types/ChartTypes'\n\nclass AxiomLine extends AxiomPlotRoot {\n addedScrubbingListener = false\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.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 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\n public getScrubPosition (mouseX: number): IPlotScrubPosition | undefined {\n if (this.xScale === undefined || this.yScale === undefined || this.parsedData === undefined || this.offset === undefined) {\n return undefined\n }\n const xAccessor = this.getAccessorAtAxis('x')\n const yAccessor = this.getAccessorAtAxis('y')\n if (xAccessor === undefined || yAccessor === undefined) {\n return undefined\n }\n\n const scrubValue = this.xScale.invert(mouseX - this.offset.x)\n\n const bisect = bisector((row: IDataRow) => xAccessor(row)).center\n const bisectIndex = bisect(this.parsedData, scrubValue)\n\n const nearestRow = this.getNearestRow(bisectIndex, scrubValue, this.parsedData, xAccessor, yAccessor)\n\n const bisected = nearestRow\n const xValue = xAccessor(bisected)\n const xPosition = this.xScale(xValue) + this.offset.x\n\n const yValue = yAccessor(nearestRow)\n const yPosition = this.yScale(yValue) + this.offset.y\n\n return {\n xPosition,\n xValue,\n yPosition,\n yValue\n }\n }\n\n private getNearestRow (bisectIndex: number, scrubValue: number | Date, parsedData: IDataRow[], xAccessor: (row: IDataRow) => INumericData, yAccessor: (row: IDataRow) => INumericData): IDataRow {\n const nonEmptyRows = parsedData.filter(row => yAccessor(row) !== null && yAccessor(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 = xAccessor(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 public drawScrubbing (mouseX: number): void {\n const chart = this.chart as AxiomChart\n const ctx = chart.getCanvasContext()\n if (ctx === null) {\n return undefined\n }\n const scrubPosition = this.getScrubPosition(mouseX)\n if (scrubPosition === undefined) return\n const { xPosition, yPosition } = scrubPosition\n this.drawScrubCircle(xPosition, yPosition, ctx)\n this.drawScrubLine(xPosition, ctx)\n }\n\n private drawScrubCircle (x: number, y: number, ctx: CanvasRenderingContext2D): void {\n ctx.beginPath()\n ctx.setLineDash([])\n ctx.arc(x, y, 6, 0, 2 * Math.PI, true)\n ctx.strokeStyle = this.getStrokeStyle()\n ctx.lineWidth = this.getLineWidth()\n ctx.stroke()\n }\n\n private drawScrubLine (x: number, ctx: CanvasRenderingContext2D): void {\n const lineHeight = this.chart.settings.height - this.chart.settings.margin.bottom\n ctx.setLineDash([1, 1])\n ctx.beginPath()\n ctx.moveTo(x, 0)\n ctx.lineTo(x, lineHeight)\n ctx.stroke()\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\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'\nimport { type IPlotScrubPosition } from '@/library'\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\n public drawScrubbing (mouseX: number): void {\n console.error('AxiomArea.drawScrubbing not implemented')\n }\n\n public getScrubPosition (mouseX: number): IPlotScrubPosition | undefined {\n console.error('AxiomArea.getScrubPosition not implemented')\n return undefined\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 IPlotScrubPosition } from '@/library'\n\nclass AxiomScatter extends AxiomPlotRoot {\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 const 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 || 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 const xScale = chart.getD3XScale(xAxisScale)\n const xPosition = (d: IDataRow): number => {\n const v = xAccessor(d)\n const p = xScale(v)\n return p === undefined ? 0 : (p + offset.x)\n }\n\n const yScale = chart.getD3YScale(yAxisScale)\n const yPosition = (d: IDataRow): number => {\n const v = yAccessor(d)\n const p = yScale(v)\n return p === undefined ? 0 : (p + 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 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\n public getScrubPosition (mouseX: number): IPlotScrubPosition | undefined {\n throw new Error('Method not implemented.')\n }\n\n public drawScrubbing (mouseX: number): void {\n throw new Error('Method not implemented.')\n }\n}\n\nexport default AxiomScatter\n","import AxiomLine from '@/Libraries/axiom/Plots/AxiomLine'\nimport AxiomArea from '@/Libraries/axiom/Plots/AxiomArea'\nimport AxiomScatter from '@/Libraries/axiom/Plots/AxiomScatter'\n\nconst chartTypes = {\n Line: AxiomLine,\n Area: AxiomArea,\n Scatter: AxiomScatter\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 } from 'd3'\nimport { type IChartScale, type IChartAxis, type IPlotImplementation, type IPlot, EPlotTypes, type IPlotScrubPosition } 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'\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\ntype PlotId = string\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 this.showYLabels(axes, this.plots)\n }\n\n private getAxisLabel (axis: IChartAxis, dimensionKey: string): string | undefined {\n return axis.plots[0]?.dimensions[dimensionKey].label\n }\n\n public showYLabels (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\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 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 // TODO: conditional\n this.addScrubbing()\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 }\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 protected addScrubbing (): void {\n const ctx = this.getCanvasContext()\n if (ctx === null) {\n return\n }\n ctx.canvas.addEventListener('touchmove', event => {\n const touch = event.touches[0]\n const touchOffset = 20 // TODO: figure out why touch.clientX is always off to the right\n this.onScrubTriggered(touch.clientX - touchOffset)\n })\n ctx.canvas.addEventListener('touchend', event => { this.onScrubEndTriggered() })\n ctx.canvas.addEventListener('mousemove', event => { this.onScrubTriggered(event.offsetX) })\n ctx.canvas.addEventListener('mouseleave', event => { this.onScrubEndTriggered() })\n }\n\n protected onScrubTriggered (cursorX: number): void {\n if (this.plotImplementations === undefined) return\n const plotsWithScrubbingEnabled = this.plotImplementations.filter(plot => {\n return plot.scrubbing !== undefined && plot.scrubbing && plot.type === EPlotTypes.line\n })\n const plotScrubPositions: Record<PlotId, IPlotScrubPosition> = this.getScrubPositions(cursorX, plotsWithScrubbingEnabled)\n\n if (this.onScrub !== undefined) {\n this.onScrub(plotScrubPositions)\n }\n this.runtime.busy = true\n this.clearCanvas()\n\n const drawPromises = this.plotImplementations.map(async plot => { await plot.draw() })\n Promise.all(drawPromises).then(() => {\n plotsWithScrubbingEnabled.forEach(plot => {\n const position = plotScrubPositions[plot.id]\n plot.drawScrubbing(position.xPosition)\n })\n this.runtime.busy = false\n }).catch(error => {\n console.error(error)\n })\n }\n\n protected onScrubEndTriggered (): void {\n this.removeScrubbers()\n if (this.onScrubEnd !== undefined) {\n this.onScrubEnd()\n }\n }\n\n protected removeScrubbers (): void {\n if (this.plotImplementations === undefined) return\n this.runtime.busy = true\n this.clearCanvas()\n const drawPromises = this.plotImplementations.map(async plot => { await plot.draw() })\n void Promise.all(drawPromises)\n }\n\n private getScrubPositions (mouseX: number, plots: IPlotImplementation[]): Record<string, IPlotScrubPosition> {\n const plotScrubPositions: Record<PlotId, IPlotScrubPosition> = {}\n\n plots.forEach(plot => {\n const scrubPosition = plot.getScrubPosition(mouseX)\n if (scrubPosition !== undefined) {\n plotScrubPositions[plot.id] = scrubPosition\n }\n })\n\n return plotScrubPositions\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 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 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', style.strokeColor !== undefined ? style.strokeColor : '#333')\n .attr('stroke-width', style.strokeWidth !== undefined ? style.strokeWidth : 1)\n .attr('d', line(radialData as unknown as Iterable<[number, number]>))\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 parsedData.forEach(d => {\n const pt = pointRadial(xPosition(d), yPosition(d))\n g.append('circle')\n .attr('r', radius * 2)\n .attr('fill', style.fill !== undefined ? style.fill : '#333')\n .attr('stroke', style.strokeColor !== undefined ? style.strokeColor : '#CCC')\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}\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'\nimport { type IPlotScrubPosition } from '@/library'\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 svg.insert('g', 'g.axis')\n .attr('transform', `translate(${chartOffset.x},${chartOffset.y})`)\n .attr('class', 'radial-area')\n .append('path')\n .attr('fill', style.fill !== undefined ? style.fill : '#EDEDED99')\n .attr('stroke-width', style.strokeWidth !== undefined ? style.strokeWidth : 1)\n .attr('d', area(radialData as unknown as Iterable<[number, number]>))\n }\n\n public drawScrubbing (mouseX: number): void {\n console.error('AxiomRadialArea.drawScrubbing not implemented')\n }\n\n public getScrubPosition (mouseX: number): IPlotScrubPosition | undefined {\n console.error('AxiomRadialArea.getScrubPosition not implemented')\n return undefined\n }\n}\n\nexport default AxiomRadialArea\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'\n\nclass AxiomRadialChart extends AxiomChart {\n protected getInnerRadius (): number {\n return this.getChartSize() / 5\n }\n\n protected 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 protected 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\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', (d) => {\n return d3Scale(+d)\n })\n })\n .call(g => g.append('text')\n .attr('y', d => dir * d3Scale(+d))\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 = 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('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 }\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","AxiomScatter","Line","BasePlots"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE;AACnC,IAAI,aAAa,GAAG,MAAM,CAAC,cAAc;AACzC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;AACpF,QAAQ,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1G,IAAI,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC;AACF;AACO,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE;AAChC,IAAI,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;AAC7C,QAAQ,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;AAClG,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxB,IAAI,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACzF,CAAC;AACD;AACO,IAAI,QAAQ,GAAG,WAAW;AACjC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAE;AACrD,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7D,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC7B,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzF,SAAS;AACT,QAAQ,OAAO,CAAC,CAAC;AACjB,MAAK;AACL,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC3C,EAAC;AAyED;AACO,SAAS,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;AAC7D,IAAI,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAChH,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;AAC/D,QAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AACnG,QAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AACtG,QAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;AACtH,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9E,KAAK,CAAC,CAAC;AACP,CAAC;AACD;AACO,SAAS,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE;AAC3C,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACrH,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7J,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACtE,IAAI,SAAS,IAAI,CAAC,EAAE,EAAE;AACtB,QAAQ,IAAI,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;AACtE,QAAQ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI;AACtD,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACzK,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AACpD,YAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;AACzB,gBAAgB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM;AAC9C,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACxE,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;AACjE,gBAAgB,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;AACjE,gBAAgB;AAChB,oBAAoB,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;AAChI,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAC1G,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;AACzF,oBAAoB,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE;AACvF,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC1C,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;AAC3C,aAAa;AACb,YAAY,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACvC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AAClE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACzF,KAAK;AACL,CAAC;AAoKD;AACuB,OAAO,eAAe,KAAK,UAAU,GAAG,eAAe,GAAG,UAAU,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE;AACvH,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC/B,IAAI,OAAO,CAAC,CAAC,IAAI,GAAG,iBAAiB,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC;AACrF;;AC5SA,IAAK,UAKJ,CAAA;AALD,CAAA,UAAK,UAAU,EAAA;AACb,IAAA,UAAA,CAAA,GAAA,CAAA,GAAA,GAAO,CAAA;AACP,IAAA,UAAA,CAAA,GAAA,CAAA,GAAA,GAAO,CAAA;AACP,IAAA,UAAA,CAAA,GAAA,CAAA,GAAA,GAAO,CAAA;AACP,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EALI,UAAU,KAAV,UAAU,GAKd,EAAA,CAAA,CAAA,CAAA;AAiDD,IAAK,UAcJ,CAAA;AAdD,CAAA,UAAK,UAAU,EAAA;AACb,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,UAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,UAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,UAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,UAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AAEb,CAAC,EAdI,UAAU,KAAV,UAAU,GAcd,EAAA,CAAA,CAAA;;AClFD,IAAA,QAAA,kBAAA,UAAA,MAAA,EAAA;IAAuB,SAAW,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;AAYhC,IAAA,SAAA,QAAA,CAAa,KAA+B,EAAA;QAA5C,IACE,KAAA,GAAA,MAAA,CAAA,IAAA,CAAA,IAAA,EAAM,KAAK,CAAC,IASb,IAAA,CAAA;AARC,QAAA,KAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAA;AAClB,QAAA,KAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;AACtB,QAAA,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;AACxB,QAAA,KAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;AAClC,QAAA,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;AACxB,QAAA,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;AAChC,QAAA,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;AACtC,QAAA,KAAI,CAAC,OAAO,GAAG,EAAE,CAAA;;KAClB;IAEM,QAAc,CAAA,SAAA,CAAA,cAAA,GAArB,UAAuB,IAAY,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;AACnC,YAAA,OAAO,EAAE,CAAA;AACV,SAAA;QACD,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAC3C,IAAI,WAAW,KAAK,SAAS,EAAE;AAC7B,YAAA,OAAO,EAAE,CAAA;AACV,SAAA;AACD,QAAA,OAAO,WAAW,CAAA;KACnB,CAAA;IAES,QAAiB,CAAA,SAAA,CAAA,iBAAA,GAA3B,UAA6B,IAAY,EAAA;;AACvC,QAAA,IAAM,eAAe,GAAG,CAAA,CAAA,EAAA,GAAA,MAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,0CAAE,eAAe,MAAK,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,EAAE,CAAA;AACjI,QAAA,IAAM,SAAS,GAAG,CAAA,CAAA,EAAA,GAAA,MAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,0CAAE,SAAS,MAAK,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,EAAE,CAAA;AAE/G,QAAA,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;AACvC,YAAA,OAAO,eAAe,CAAC,IAAI,CAAC,CAAA;AAC7B,SAAA;AACD,QAAA,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;AACjC,YAAA,OAAO,SAAS,CAAC,IAAI,CAAC,CAAA;AACvB,SAAA;AACD,QAAA,OAAO,UAAC,CAAW,EAAA;YACjB,OAAO,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,YAAY,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;AAC5F,SAAC,CAAA;KACF,CAAA;AAEM,IAAA,QAAA,CAAA,SAAA,CAAA,qBAAqB,GAA5B,YAAA;;AACE,QAAA,OAAO,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,MAAK,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,EAAE,CAAA;KACrG,CAAA;IAEM,QAAkB,CAAA,SAAA,CAAA,kBAAA,GAAzB,UAA2B,IAAY,EAAA;AACrC,QAAA,IAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAA;QAC9C,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;AAC7C,QAAA,IAAM,gBAAgB,GAAG,WAAW,CAAC,gBAAgB,KAAK,SAAS,GAAG,WAAW,CAAC,gBAAgB,GAAG,EAAE,CAAA;QACvG,IAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA,EAAA,CAAC,CAAA;QAC3E,IAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAjB,EAAiB,CAAC,CAAC,CAAA;QAChF,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,UAAA,CAAC,EAAA;AACrC,YAAA,IAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;AACvC,YAAA,IAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAA;YACpC,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,gBAAA,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;AACvB,aAAA;AACH,SAAC,CAAC,CAAA;AAEF,QAAA,OAAO,WAAW,CAAA;KACnB,CAAA;IAEM,QAAiB,CAAA,SAAA,CAAA,iBAAA,GAAxB,UAA0B,IAAY,EAAA;QACpC,IAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;AACnD,QAAA,IAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC1B,YAAA,OAAO,QAAQ,CAAA;AAChB,SAAA;AACD,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAA;AACjD,QAAA,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;AACpC,YAAA,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;AAC1B,SAAA;AACD,QAAA,OAAO,SAAS,CAAA;KACjB,CAAA;IAEY,QAAS,CAAA,SAAA,CAAA,SAAA,GAAtB,UAAwB,IAAY,EAAA;;;;;;AACR,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,OAAO,EAAE,CAAA,CAAA;;AAAxC,wBAAA,IAAI,GAAgB,EAAoB,CAAA,IAAA,EAAA,CAAA;wBACxC,UAAU,GAAG,CAAA,CAAA,EAAA,GAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,MAAK,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAA;AAErE,wBAAA,QAAQ,GAAsD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;AAC1F,wBAAA,MAAM,GAAmB,UAAU;6BACtC,GAAG,CAAC,UAAC,CAAC,EAAA;AACL,4BAAA,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAA;AACpB,yBAAC,CAAC;AACD,6BAAA,IAAI,EAAE;AACN,6BAAA,MAAM,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAA7B,EAA6B,CAAC,CAAA;AACvC,wBAAA,MAAM,GAA0B,MAAM,CAAC,MAAM,CAA0B,CAAA;AAC7E,wBAAA,OAAA,CAAA,CAAA,aAAO,MAAM,CAAA,CAAA;;;;AACd,KAAA,CAAA;AAEY,IAAA,QAAA,CAAA,SAAA,CAAA,UAAU,GAAvB,YAAA;;;;;AACiB,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,CAAA;;AAAlC,wBAAA,MAAM,GAAG,EAAyB,CAAA,IAAA,EAAA,CAAA;AACxC,wBAAA,OAAA,CAAA,CAAA,aAAO,MAAM,CAAA,CAAA;;;;AACd,KAAA,CAAA;AAEY,IAAA,QAAA,CAAA,SAAA,CAAA,UAAU,GAAvB,YAAA;;;;;AACiB,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,CAAA;;AAAlC,wBAAA,MAAM,GAAG,EAAyB,CAAA,IAAA,EAAA,CAAA;AACxC,wBAAA,OAAA,CAAA,CAAA,aAAO,MAAM,CAAA,CAAA;;;;AACd,KAAA,CAAA;AAED;;AAEI;AAES,IAAA,QAAA,CAAA,SAAA,CAAA,IAAI,GAAjB,YAAA;;;;;;AACE,wBAAA,EAAA,GAAA,IAAI,CAAA;AAAQ,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,OAAO,EAAE,CAAA,CAAA;;wBAAhC,EAAK,CAAA,IAAI,GAAG,EAAA,CAAA,IAAA,EAAoB,CAAA;;;;;AACjC,KAAA,CAAA;IAEM,QAAa,CAAA,SAAA,CAAA,aAAA,GAApB,UAAsB,MAAc,EAAA;AAClC,QAAA,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;KAC7C,CAAA;IAEM,QAAgB,CAAA,SAAA,CAAA,gBAAA,GAAvB,UAAyB,MAAc,EAAA;AACrC,QAAA,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAA;AAC/C,QAAA,OAAO,SAAS,CAAA;KACjB,CAAA;AAEM,IAAA,QAAA,CAAA,SAAA,CAAA,OAAO,GAAd,YAAA;KAEC,CAAA;IACH,OAAC,QAAA,CAAA;AAAD,CAjIA,CAAuB,WAAW,CAiIjC,CAAA;;AChID,IAAA,SAAA,kBAAA,YAAA;AAuBE,IAAA,SAAA,SAAA,CAAa,KAAgC,EAAA;AAC3C,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA,EAAI,QAAM,QAAA,CAAA,EAAA,EAAA,CAAC,GAAP,EAAU,CAAC,CAAA;AAC7C,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;AAC5B,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;QAClC,IAAI,CAAC,OAAO,GAAG;AACb,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,UAAU,EAAE,CAAC;SACd,CAAA;AACD;;;;;;;;;AASI;KACL;IAES,SAAO,CAAA,SAAA,CAAA,OAAA,GAAjB,UAAmB,CAAQ,EAAA;KAE1B,CAAA;AAEM,IAAA,SAAA,CAAA,SAAA,CAAA,QAAQ,GAAf,UAAiB,SAAiB,EAAE,UAAkB,EAAA;AACpD,QAAA,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;AACtB,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;KAClB,CAAA;AAEM,IAAA,SAAA,CAAA,SAAA,CAAA,QAAQ,GAAf,YAAA;AACE,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,MAAM,EAAE;AAClC,YAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;AACxB,gBAAA,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAA;AAChC,aAAA;AACD,YAAA,OAAO,GAAG,CAAA;AACX,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAA;KAC3B,CAAA;AAEM,IAAA,SAAA,CAAA,SAAA,CAAA,MAAM,GAAb,YAAA;KAEC,CAAA;AAEe,IAAA,SAAA,CAAA,SAAA,CAAA,+BAA+B,GAA/C,UAAiD,mBAA0C,EAAE,IAAgB,EAAA;;;;;;4BAC3F,OAAM,CAAA,CAAA,YAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAM,CAAC,EAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;AAChD,oCAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA,CAAA;;AAAhC,wCAAA,MAAM,GAAG,EAAuB,CAAA,IAAA,EAAA,CAAA;AACtC,wCAAA,OAAA,CAAA,CAAA,aAAO,MAAM,CAAA,CAAA;;;AACd,yBAAA,CAAA,CAAA,EAAA,CAAC,CAAC,CAAA,CAAA;;AAHG,wBAAA,OAAO,GAAG,EAGb,CAAA,IAAA,EAAA,CAAA;AAEH,wBAAA,OAAA,CAAA,CAAA,aAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAA0B,CAAA,CAAA;;;;AACvD,KAAA,CAAA;AAES,IAAA,SAAA,CAAA,SAAA,CAAA,eAAe,GAAzB,UAA2B,IAAyB,EAAE,IAAY,EAAA;QAChE,IAAM,WAAW,GAAqB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;AAC/D,QAAA,OAAO,WAAW,CAAC,OAAO,KAAK,IAAI,CAAA;KACpC,CAAA;AAES,IAAA,SAAA,CAAA,SAAA,CAAA,qBAAqB,GAA/B,UAAiC,IAAyB,EAAE,IAAY,EAAA;QACtE,IAAM,SAAS,GAAoB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACxD,IAAM,WAAW,GAAqB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QAC/D,IAAI,KAAK,GAAG,IAAI,CAAA;AAChB,QAAA,IAAI,WAAW,CAAC,SAAS,KAAK,SAAS,EAAE;AACvC,YAAA,KAAK,GAAG,WAAW,CAAC,SAAS,CAAA;AAC9B,SAAA;aAAM,IAAI,SAAS,KAAK,SAAS,EAAE;AAClC,YAAA,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,EAAE;AACrC,gBAAA,KAAK,GAAG,SAAS,CAAC,SAAS,CAAA;AAC5B,aAAA;AAAM,iBAAA,IAAI,SAAS,CAAC,QAAQ,KAAK,SAAS,EAAE;AAC3C,gBAAA,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAA;AAC3B,aAAA;AAAM,iBAAA,IAAI,SAAS,CAAC,UAAU,KAAK,SAAS,EAAE;gBAC7C,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACvC,aAAA;AACF,SAAA;AAED,QAAA,OAAO,KAAK,CAAA;KACb,CAAA;AAES,IAAA,SAAA,CAAA,SAAA,CAAA,2BAA2B,GAArC,UAAuC,KAA4B,EAAE,IAAY,EAAA;QAAjF,IAeC,KAAA,GAAA,IAAA,CAAA;AAdC,QAAA,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,UAAA,CAAC,EAAA;YAC7B,IAAM,KAAK,GAAG,KAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YACjD,OAAO,EAAA,CAAA,MAAA,CAAG,KAAK,CAAG,CAAA,MAAA,CAAA,KAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,UAAU,GAAG,EAAE,CAAE,CAAA;AACrE,SAAC,CAAC,CAAA;QACF,IAAM,UAAU,GAA8B,EAAE,CAAA;QAChD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAA,CAAC,EAAA;AAC3B,YAAA,IAAM,SAAS,GAA6B;AAC1C,gBAAA,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAChB,gBAAA,OAAO,EAAE,KAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AACjD,gBAAA,SAAS,EAAE,KAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;aAC1D,CAAA;AACD,YAAA,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;AAC3B,SAAC,CAAC,CAAA;AACF,QAAA,OAAO,UAAU,CAAA;KAClB,CAAA;IAES,SAAS,CAAA,SAAA,CAAA,SAAA,GAAnB,UAAqB,UAAkB,EAAA;AACrC,QAAA,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;KACvB,CAAA;IAES,SAAS,CAAA,SAAA,CAAA,SAAA,GAAnB,UAAqB,WAAmB,EAAA;AACtC,QAAA,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;KACxB,CAAA;AAES,IAAA,SAAA,CAAA,SAAA,CAAA,aAAa,GAAvB,YAAA;AACE,QAAA,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;AACvC,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAA;KACjE,CAAA;AAES,IAAA,SAAA,CAAA,SAAA,CAAA,cAAc,GAAxB,YAAA;QACE,IAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,KAAK,SAAS,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,GAAG,EAAE,CAAA;QAC7H,IAAM,WAAW,GAAW,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAA;QACvD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC,CAAA;KACrG,CAAA;AAES,IAAA,SAAA,CAAA,SAAA,CAAA,aAAa,GAAvB,YAAA;QACE,IAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,KAAK,SAAS,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,GAAG,EAAE,CAAA;AAC7H,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAA;KAC/D,CAAA;IAEY,SAAI,CAAA,SAAA,CAAA,IAAA,GAAjB,UAAmB,eAAgC,EAAA;AAAhC,QAAA,IAAA,eAAA,KAAA,KAAA,CAAA,EAAA,EAAA,eAAgC,GAAA,KAAA,CAAA,EAAA;;;;;;;AACjD,wBAAA,IAAI,CAAC,OAAO,CAAC,kBAAkB,GAAG,QAAQ,CAAC,YAAA;AACzC,4BAAA,KAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;yBAC/D,EAAE,IAAI,EAAE;AACP,4BAAA,OAAO,EAAE,IAAI;AACb,4BAAA,QAAQ,EAAE,IAAI;AACf,yBAAA,CAAC,CAAA;;AAEF,wBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;AAcrC,wBAAA,MAAM,GAAK,IAAI,CAAC,QAAQ,OAAlB,CAAkB;wBAE1B,OAAO,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAA;AACzE,wBAAA,WAAW,GAAW,IAAI,CAAC,cAAc,EAAE,CAAA;wBAE3C,OAAO,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAA;wBAEzE,KAAK,GAAiB,EAAE,CAAA;AACxB,wBAAA,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;AAE1C,wBAAA,OAAA,CAAA,CAAA,YAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAO,GAAG,EAAE,KAAK,EAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;;AACpD,4CAAA,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;AACpB,4CAAA,CAAC,GAAG,KAAK,CAAC,KAAK,CAAA;AACN,4CAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,+BAA+B,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;;AAAA,6CAAA,CAAA;;AAArF,4CAAA,MAAM,GAAG,EAA4E,CAAA,IAAA,EAAA,CAAA;AAErF,4CAAA,IAAI,GAAe;AACvB,gDAAA,KAAK,EAAE;AACL,oDAAA,MAAM,EAAA,MAAA;AACN,oDAAA,KAAK,EAAE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,GAAG,MAAM;;AAEzD,iDAAA;AACD,gDAAA,KAAK,EAAE,CAAC;AACR,gDAAA,GAAG,EAAA,GAAA;AACH,gDAAA,MAAM,EAAE;oDACN,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;oDACtC,CAAC,EAAE,MAAM,CAAC,GAAG;AACd,iDAAA;6CACF,CAAA;AAED,4CAAA,CAAC,CAAC,OAAO,CAAC,UAAA,EAAE,EAAA;AACV,gDAAA,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,KAAK,SAAS,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAA;AAC9C,gDAAA,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAA;AAClB,6CAAC,CAAC,CAAA;AACF,4CAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;;;;AACjB,6BAAA,CAAA,CAAA,EAAA,CAAC,CAAC,CAAA,CAAA;;AAxBH,wBAAA,EAAA,CAAA,IAAA,EAwBG,CAAA;AAEH,wBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;AAEf,wBAAA,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;AACjC,wBAAA,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;AACjC,wBAAA,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;wBACnC,KAAK,GAAiB,EAAE,CAAA;AAE9B,wBAAA,OAAA,CAAA,CAAA,YAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAO,GAAG,EAAE,KAAK,EAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;;AACpD,4CAAA,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;AACpB,4CAAA,CAAC,GAAG,KAAK,CAAC,KAAK,CAAA;4CACN,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,+BAA+B,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;;AAAA,6CAAA,CAAA;;AAApE,4CAAA,MAAM,GAAG,EAA2D,CAAA,IAAA,EAAA,CAAA;AAEpE,4CAAA,IAAI,GAAe;AACvB,gDAAA,KAAK,EAAE;AACL,oDAAA,MAAM,EAAA,MAAA;AACN,oDAAA,KAAK,EAAE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,GAAG,MAAM;;AAEzD,iDAAA;AACD,gDAAA,KAAK,EAAE,CAAC;AACR,gDAAA,GAAG,EAAA,GAAA;AACH,gDAAA,MAAM,EAAE;AACN,oDAAA,CAAC,EAAE,UAAU;AACb,oDAAA,CAAC,EAAE,MAAM,CAAC,GAAG,GAAG,WAAW,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;AACtD,iDAAA;6CACF,CAAA;AAED,4CAAA,CAAC,CAAC,OAAO,CAAC,UAAA,EAAE,EAAA;AACV,gDAAA,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,KAAK,SAAS,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAA;AAC9C,gDAAA,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAA;AAClB,6CAAC,CAAC,CAAA;AACF,4CAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;;;;AACjB,6BAAA,CAAA,CAAA,EAAA,CAAC,CAAC,CAAA,CAAA;;AAxBH,wBAAA,EAAA,CAAA,IAAA,EAwBG,CAAA;AAEH,wBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;AAIjB,wBAAA,IAAA,CAAA,eAAe,EAAf,OAAe,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;;AAEjB,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,EAAE,CAAA,CAAA;;;AAAjB,wBAAA,EAAA,CAAA,IAAA,EAAiB,CAAA;;;;;;AAEpB,KAAA,CAAA;AAEM,IAAA,SAAA,CAAA,SAAA,CAAA,QAAQ,GAAf,UAAiB,MAA6C,EAAE,MAA6C,EAAA;KAE5G,CAAA;IAEM,SAAS,CAAA,SAAA,CAAA,SAAA,GAAhB,UAAkB,KAAmB,EAAA;KAEpC,CAAA;IAEM,SAAS,CAAA,SAAA,CAAA,SAAA,GAAhB,UAAkB,KAAmB,EAAA;KAEpC,CAAA;AAEM,IAAA,SAAA,CAAA,SAAA,CAAA,WAAW,GAAlB,YAAA;KAEC,CAAA;AAEY,IAAA,SAAA,CAAA,SAAA,CAAA,IAAI,GAAjB,YAAA;;;;;;;AACQ,wBAAA,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAA;AAChD,wBAAA,IAAA,EAAA,mBAAmB,KAAK,SAAS,CAAA,EAAjC,OAAiC,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;wBACnC,OAAM,CAAA,CAAA,YAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAM,CAAC,EAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;AAC/C,wCAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,CAAC,CAAC,IAAI,EAAE,CAAA,CAAA;;AAAd,4CAAA,EAAA,CAAA,IAAA,EAAc,CAAA;;;;AACf,6BAAA,CAAA,CAAA,EAAA,CAAC,CAAC,CAAA,CAAA;;AAFH,wBAAA,EAAA,CAAA,IAAA,EAEG,CAAA;;;;;;AAEN,KAAA,CAAA;AAEM,IAAA,SAAA,CAAA,SAAA,CAAA,OAAO,GAAd,YAAA;;KAEC,CAAA;AAEM,IAAA,SAAA,CAAA,SAAA,CAAA,WAAW,GAAlB,YAAA;QAAA,IAIC,KAAA,GAAA,IAAA,CAAA;AAHC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA;AACrB,YAAA,OAAO,KAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;AAC3B,SAAC,CAAC,CAAA;KACH,CAAA;IAES,SAA0B,CAAA,SAAA,CAAA,0BAAA,GAApC,UAAsC,IAAW,EAAA;AAC/C,QAAA,OAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EACK,IAAI,CAAA,EAAA,EACP,KAAK,EAAE,IAAI,EACZ,CAAA,CAAA;KACF,CAAA;IAES,SAAU,CAAA,SAAA,CAAA,UAAA,GAApB,UAAsB,IAAW,EAAA;QAC/B,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAA;KAC3D,CAAA;IACH,OAAC,SAAA,CAAA;AAAD,CAAC,EAAA,CAAA;;AClSD,IAAA,aAAA,kBAAA,UAAA,MAAA,EAAA;IAAqC,SAAQ,CAAA,aAAA,EAAA,MAAA,CAAA,CAAA;AAA7C,IAAA,SAAA,aAAA,GAAA;;KAGC;IAAD,OAAC,aAAA,CAAA;AAAD,CAHA,CAAqC,QAAQ,CAG5C,CAAA;;ACGD,IAAA,SAAA,kBAAA,UAAA,MAAA,EAAA;IAAwB,SAAa,CAAA,SAAA,EAAA,MAAA,CAAA,CAAA;AAArC,IAAA,SAAA,SAAA,GAAA;QAAA,IAqKC,KAAA,GAAA,MAAA,KAAA,IAAA,IAAA,MAAA,CAAA,KAAA,CAAA,IAAA,EAAA,SAAA,CAAA,IAAA,IAAA,CAAA;QApKC,KAAsB,CAAA,sBAAA,GAAG,KAAK,CAAA;;KAoK/B;IA9JW,SAAiB,CAAA,SAAA,CAAA,iBAAA,GAA3B,UAA6B,IAAY,EAAA;;AACvC,QAAA,IAAM,SAAS,GAAG,CAAA,CAAA,EAAA,GAAA,MAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,0CAAE,SAAS,MAAK,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,EAAE,CAAA;AAE/G,QAAA,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;AACjC,YAAA,OAAO,SAAS,CAAC,IAAI,CAAC,CAAA;AACvB,SAAA;AACD,QAAA,OAAO,UAAC,CAAW,EAAA;YACjB,OAAO,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,YAAY,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;AAC5F,SAAC,CAAA;KACF,CAAA;AAEY,IAAA,SAAA,CAAA,SAAA,CAAA,IAAI,GAAjB,YAAA;;;;;;;;AACQ,wBAAA,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;AACpD,wBAAA,IAAA,EAAA,IAAI,CAAC,UAAU,KAAK,SAAS,CAAA,EAA7B,OAA6B,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;AAClB,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,OAAO,EAAE,CAAA,CAAA;;AAA3B,wBAAA,IAAI,GAAG,EAAoB,CAAA,IAAA,EAAA,CAAA;AACjC,wBAAA,IAAI,CAAC,UAAU,GAAG,CAAA,EAAA,GAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAA;;;AAEhC,wBAAA,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;AACvC,wBAAA,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;AACvC,wBAAA,KAAK,GAAG,IAAI,CAAC,KAAmB,CAAA;AAChC,wBAAA,GAAG,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAA;wBAEpC,IAAI,GAAG,KAAK,IAAI,EAAE;AAChB,4BAAA,OAAA,CAAA,CAAA,aAAO,SAAS,CAAA,CAAA;AACjB,yBAAA;AACK,wBAAA,UAAU,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAA;AACjC,wBAAA,UAAU,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAA;wBACvC,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE;AAC/I,4BAAA,OAAA,CAAA,CAAA,aAAO,SAAS,CAAA,CAAA;AACjB,yBAAA;wBACD,IAAI,CAAC,MAAM,GAAG;AACZ,4BAAA,CAAC,EAAE,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,CAAC,0CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,CAAC,MAAK,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC;AACpE,4BAAA,CAAC,EAAE,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,CAAC,0CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,CAAC,MAAK,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC;yBACrE,CAAA;wBACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;wBACrC,SAAS,GAAG,UAAC,CAAW,EAAA;4BAC5B,IAAI,KAAI,CAAC,MAAM,KAAK,SAAS,IAAI,KAAI,CAAC,MAAM,KAAK,SAAS;AAAE,gCAAA,OAAO,CAAC,CAAA;AACpE,4BAAA,IAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;4BACtB,IAAM,CAAC,GAAG,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AACxB,4BAAA,OAAO,CAAC,KAAK,SAAS,GAAG,CAAC,IAAI,CAAC,GAAG,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAClD,yBAAC,CAAA;wBAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;wBACrC,SAAS,GAAG,UAAC,CAAW,EAAA;4BAC5B,IAAI,KAAI,CAAC,MAAM,KAAK,SAAS,IAAI,KAAI,CAAC,MAAM,KAAK,SAAS;AAAE,gCAAA,OAAO,CAAC,CAAA;AACpE,4BAAA,IAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;4BACtB,IAAM,CAAC,GAAG,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AACxB,4BAAA,OAAO,CAAC,KAAK,SAAS,GAAG,CAAC,IAAI,CAAC,GAAG,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAClD,yBAAC,CAAA;wBAEK,SAAS,GAAG,UAAC,CAAW,EAAA;AAC5B,4BAAA,IAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;4BACtB,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC1D,yBAAC,CAAA;AAED,wBAAA,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;AACvC,wBAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;AACnC,wBAAA,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;wBACbA,MAAI,GAAGC,IAAM,EAAE;6BAClB,CAAC,CAAC,SAAS,CAAC;6BACZ,CAAC,CAAC,SAAS,CAAC;6BACZ,OAAO,CAAC,SAAS,CAAC,CAAA;AACrB,wBAAAD,MAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;wBACjB,GAAG,CAAC,SAAS,EAAE,CAAA;wBACf,IAAI,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAL,KAAK,CAAE,UAAU,MAAK,SAAS,EAAE;AACnC,4BAAA,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;AAClC,yBAAA;AACD,wBAAAA,MAAI,CAAC,IAAI,CAAC,UAAmD,CAAC,CAAA;wBAC9D,GAAG,CAAC,MAAM,EAAE,CAAA;;;;;AACb,KAAA,CAAA;IAEM,SAAgB,CAAA,SAAA,CAAA,gBAAA,GAAvB,UAAyB,MAAc,EAAA;QACrC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;AACxH,YAAA,OAAO,SAAS,CAAA;AACjB,SAAA;QACD,IAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;QAC7C,IAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;AAC7C,QAAA,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE;AACtD,YAAA,OAAO,SAAS,CAAA;AACjB,SAAA;AAED,QAAA,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAE7D,QAAA,IAAM,MAAM,GAAG,QAAQ,CAAC,UAAC,GAAa,EAAK,EAAA,OAAA,SAAS,CAAC,GAAG,CAAC,CAAA,EAAA,CAAC,CAAC,MAAM,CAAA;QACjE,IAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;AAEvD,QAAA,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;QAErG,IAAM,QAAQ,GAAG,UAAU,CAAA;AAC3B,QAAA,IAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;AAClC,QAAA,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;AAErD,QAAA,IAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAAA;AACpC,QAAA,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;QAErD,OAAO;AACL,YAAA,SAAS,EAAA,SAAA;AACT,YAAA,MAAM,EAAA,MAAA;AACN,YAAA,SAAS,EAAA,SAAA;AACT,YAAA,MAAM,EAAA,MAAA;SACP,CAAA;KACF,CAAA;IAEO,SAAa,CAAA,SAAA,CAAA,aAAA,GAArB,UAAuB,WAAmB,EAAE,UAAyB,EAAE,UAAsB,EAAE,SAA0C,EAAE,SAA0C,EAAA;QACnL,IAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,UAAA,GAAG,EAAA,EAAI,OAAA,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,SAAS,CAAA,EAAA,CAAC,CAAA;AACtG,QAAA,IAAI,WAAW,GAAG,MAAM,CAAC,SAAS,CAAA;AAClC,QAAA,IAAI,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;AACxC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAC/C,IAAM,OAAO,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1C,YAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,UAAU,CAAC,CAAA;YACjD,IAAI,QAAQ,GAAG,WAAW,EAAE;gBAC1B,WAAW,GAAG,QAAQ,CAAA;AACtB,gBAAA,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;AAC7B,aAAA;AACF,SAAA;AACD,QAAA,OAAO,UAAU,CAAA;KAClB,CAAA;IAEM,SAAa,CAAA,SAAA,CAAA,aAAA,GAApB,UAAsB,MAAc,EAAA;AAClC,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,KAAmB,CAAA;AACtC,QAAA,IAAM,GAAG,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAA;QACpC,IAAI,GAAG,KAAK,IAAI,EAAE;AAChB,YAAA,OAAO,SAAS,CAAA;AACjB,SAAA;QACD,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACnD,IAAI,aAAa,KAAK,SAAS;YAAE,OAAM;QAC/B,IAAA,SAAS,GAAgB,aAAa,CAAA,SAA7B,EAAE,SAAS,GAAK,aAAa,CAAA,SAAlB,CAAkB;QAC9C,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,CAAA;AAC/C,QAAA,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;KACnC,CAAA;AAEO,IAAA,SAAA,CAAA,SAAA,CAAA,eAAe,GAAvB,UAAyB,CAAS,EAAE,CAAS,EAAE,GAA6B,EAAA;QAC1E,GAAG,CAAC,SAAS,EAAE,CAAA;AACf,QAAA,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;AACnB,QAAA,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;AACtC,QAAA,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;AACvC,QAAA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QACnC,GAAG,CAAC,MAAM,EAAE,CAAA;KACb,CAAA;AAEO,IAAA,SAAA,CAAA,SAAA,CAAA,aAAa,GAArB,UAAuB,CAAS,EAAE,GAA6B,EAAA;AAC7D,QAAA,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAA;QACjF,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACvB,GAAG,CAAC,SAAS,EAAE,CAAA;AACf,QAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAChB,QAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;QACzB,GAAG,CAAC,MAAM,EAAE,CAAA;KACb,CAAA;AAEO,IAAA,SAAA,CAAA,SAAA,CAAA,cAAc,GAAtB,YAAA;AACE,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;AACxD,QAAA,OAAO,KAAK,CAAC,WAAW,KAAK,SAAS,GAAG,KAAK,CAAC,WAAW,GAAG,MAAM,CAAA;KACpE,CAAA;AAEO,IAAA,SAAA,CAAA,SAAA,CAAA,YAAY,GAApB,YAAA;AACE,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;AACxD,QAAA,OAAO,KAAK,CAAC,WAAW,KAAK,SAAS,GAAG,KAAK,CAAC,WAAW,GAAG,CAAC,CAAA;KAC/D,CAAA;IACH,OAAC,SAAA,CAAA;AAAD,CArKA,CAAwB,aAAa,CAqKpC,CAAA;;ACpKD,IAAA,SAAA,kBAAA,UAAA,MAAA,EAAA;IAAwB,SAAa,CAAA,SAAA,EAAA,MAAA,CAAA,CAAA;AAArC,IAAA,SAAA,SAAA,GAAA;;KA+HC;IA9HW,SAAoB,CAAA,SAAA,CAAA,oBAAA,GAA9B,UAAgC,IAAY,EAAA;QAC1C,IAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACnD,IAAM,WAAW,GAAG,aAAa,CAAC,UAAG,IAAI,EAAA,GAAA,CAAG,CAAC,CAAA;AAC7C,QAAA,OAAO,WAAW,CAAA;KACnB,CAAA;IAES,SAAoB,CAAA,SAAA,CAAA,oBAAA,GAA9B,UAAgC,IAAY,EAAA;QAC1C,IAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACnD,IAAM,WAAW,GAAG,aAAa,CAAC,UAAG,IAAI,EAAA,GAAA,CAAG,CAAC,CAAA;AAC7C,QAAA,OAAO,WAAW,CAAA;KACnB,CAAA;IAES,SAAiB,CAAA,SAAA,CAAA,iBAAA,GAA3B,UAA6B,IAAY,EAAA;QACvC,IAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;QACnD,IAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;AACnD,QAAA,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,EAAE;AAC1D,YAAA,OAAO,UAAC,CAAC,EAAA;gBACP,OAAO;oBACL,WAAW,CAAC,CAAC,CAAC;oBACd,WAAW,CAAC,CAAC,CAAC;iBACf,CAAA;AACH,aAAC,CAAA;AACF,SAAA;QAED,IAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAC7C,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC1B,YAAA,OAAO,QAAQ,CAAA;AAChB,SAAA;AAED,QAAA,OAAO,UAAC,CAAW,EAAA;AACjB,YAAA,OAAO,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AACxH,SAAC,CAAA;KACF,CAAA;AAEY,IAAA,SAAA,CAAA,SAAA,CAAA,IAAI,GAAjB,YAAA;;;;;;;AACQ,wBAAA,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;AAC3C,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,OAAO,EAAE,CAAA,CAAA;;AAA3B,wBAAA,IAAI,GAAG,EAAoB,CAAA,IAAA,EAAA,CAAA;wBAC3B,UAAU,GAAG,CAAA,EAAA,GAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,CAAA;AAE/B,wBAAA,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;AACzC,wBAAA,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;AACvC,wBAAA,UAAU,GAAG,UAAU,CAAC,EAAE,CAAA;AAC1B,wBAAA,UAAU,GAAG,UAAU,CAAC,EAAE,CAAA;AAE1B,wBAAA,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;AACzC,wBAAA,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;AACvC,wBAAA,UAAU,GAAG,UAAU,CAAC,EAAE,CAAA;AAC1B,wBAAA,UAAU,GAAG,UAAU,CAAC,EAAE,CAAA;AAE1B,wBAAA,MAAM,GAAG;AACb,4BAAA,CAAC,EAAE,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,CAAC,0CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,CAAC,MAAK,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC;AACpE,4BAAA,CAAC,EAAE,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,CAAC,0CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,CAAC,MAAK,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC;yBACrE,CAAA;AAEK,wBAAA,KAAK,GAAG,IAAI,CAAC,KAAmB,CAAA;AAChC,wBAAA,GAAG,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAA;wBAEpC,IAAI,GAAG,KAAK,IAAI,EAAE;AAChB,4BAAA,OAAA,CAAA,CAAA,aAAO,SAAS,CAAA,CAAA;AACjB,yBAAA;AACK,wBAAA,UAAU,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAA;AACjC,wBAAA,UAAU,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAA;wBACvC,IACE,UAAU,KAAK,SAAS;AACxB,4BAAA,UAAU,KAAK,SAAS;AACxB,4BAAA,UAAU,KAAK,SAAS;6BAEtB,SAAS,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,CAChF;AACD,6BACE,SAAS,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,CAChF,EACD;AACA,4BAAA,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAA;AAC7F,4BAAA,OAAA,CAAA,CAAA,aAAO,SAAS,CAAA,CAAA;AACjB,yBAAA;AAEK,wBAAA,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;AACtC,wBAAA,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;AAEtC,wBAAA,cAAc,GAAG,UAAC,GAAyB,EAAE,OAAsC,EAAE,MAAc,EAAA;AACvG,4BAAA,OAAO,UAAC,CAAW,EAAA;AACjB,gCAAA,IAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;AAChB,gCAAA,IAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AACpB,gCAAA,OAAO,CAAC,KAAK,SAAS,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAA;AAC3C,6BAAC,CAAA;AACH,yBAAC,CAAA;wBAEK,aAAa,GAAG,UAAC,GAAyB,EAAA;AAC9C,4BAAA,OAAO,UAAC,CAAW,EAAA;AACjB,gCAAA,IAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;gCAChB,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC1D,6BAAC,CAAA;AACH,yBAAC,CAAA;AAED,wBAAA,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,GAAG,KAAK,CAAC,IAAI,GAAG,SAAS,CAAA;wBAE3DE,MAAI,GAAGC,IAAM,EAAE,CAAA;AACrB,wBAAA,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE;AACxD,4BAAAD,MAAI,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AACrD,4BAAAA,MAAI,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AACtD,yBAAA;6BAAM,IAAI,SAAS,KAAK,SAAS,EAAE;AAClC,4BAAAA,MAAI,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AACpD,yBAAA;AACD,wBAAA,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE;AACxD,4BAAAA,MAAI,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AACrD,4BAAAA,MAAI,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;4BACrDA,MAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAA;AACxC,yBAAA;6BAAM,IAAI,SAAS,KAAK,SAAS,EAAE;AAClC,4BAAAA,MAAI,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AACpD,yBAAA;AAED,wBAAAA,MAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;wBACjB,GAAG,CAAC,SAAS,EAAE,CAAA;wBACfA,MAAI,CAAC,UAAmD,CAAC,CAAA;wBACzD,GAAG,CAAC,IAAI,EAAE,CAAA;;;;;AACX,KAAA,CAAA;IAEM,SAAa,CAAA,SAAA,CAAA,aAAA,GAApB,UAAsB,MAAc,EAAA;AAClC,QAAA,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAA;KACzD,CAAA;IAEM,SAAgB,CAAA,SAAA,CAAA,gBAAA,GAAvB,UAAyB,MAAc,EAAA;AACrC,QAAA,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAA;AAC3D,QAAA,OAAO,SAAS,CAAA;KACjB,CAAA;IACH,OAAC,SAAA,CAAA;AAAD,CA/HA,CAAwB,aAAa,CA+HpC,CAAA;;ACpID,IAAA,YAAA,kBAAA,UAAA,MAAA,EAAA;IAA2B,SAAa,CAAA,YAAA,EAAA,MAAA,CAAA,CAAA;AAAxC,IAAA,SAAA,YAAA,GAAA;;KA8EC;IA7EW,YAAiB,CAAA,SAAA,CAAA,iBAAA,GAA3B,UAA6B,IAAY,EAAA;;AACvC,QAAA,IAAM,SAAS,GAAG,CAAA,CAAA,EAAA,GAAA,MAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,0CAAE,SAAS,MAAK,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,EAAE,CAAA;AAE/G,QAAA,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;AACjC,YAAA,OAAO,SAAS,CAAC,IAAI,CAAC,CAAA;AACvB,SAAA;AACD,QAAA,OAAO,UAAC,CAAW,EAAA;YACjB,OAAO,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,YAAY,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;AAC5F,SAAC,CAAA;KACF,CAAA;AAEY,IAAA,YAAA,CAAA,SAAA,CAAA,IAAI,GAAjB,YAAA;;;;;;;AACQ,wBAAA,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;AAC3C,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,OAAO,EAAE,CAAA,CAAA;;AAA3B,wBAAA,IAAI,GAAG,EAAoB,CAAA,IAAA,EAAA,CAAA;wBAC3B,UAAU,GAAG,CAAA,EAAA,GAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,CAAA;AAC/B,wBAAA,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;AACvC,wBAAA,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;AACvC,wBAAA,KAAK,GAAG,IAAI,CAAC,KAAmB,CAAA;AAChC,wBAAA,GAAG,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAA;wBAEpC,IAAI,GAAG,KAAK,IAAI,EAAE;AAChB,4BAAA,OAAA,CAAA,CAAA,aAAO,SAAS,CAAA,CAAA;AACjB,yBAAA;AACK,wBAAA,UAAU,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAA;AACjC,wBAAA,UAAU,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAA;AACvC,wBAAA,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE;AAC1I,4BAAA,OAAA,CAAA,CAAA,aAAO,SAAS,CAAA,CAAA;AACjB,yBAAA;AACK,wBAAA,MAAM,GAAG;AACb,4BAAA,CAAC,EAAE,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,CAAC,0CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,CAAC,MAAK,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC;AACpE,4BAAA,CAAC,EAAE,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,CAAC,0CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,CAAC,MAAK,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC;yBACrE,CAAA;AACK,wBAAA,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;wBACtC,SAAS,GAAG,UAAC,CAAW,EAAA;AAC5B,4BAAA,IAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;AACtB,4BAAA,IAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AACnB,4BAAA,OAAO,CAAC,KAAK,SAAS,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAC7C,yBAAC,CAAA;AAEK,wBAAA,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;wBACtC,SAAS,GAAG,UAAC,CAAW,EAAA;AAC5B,4BAAA,IAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;AACtB,4BAAA,IAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AACnB,4BAAA,OAAO,CAAC,KAAK,SAAS,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAC7C,yBAAC,CAAA;wBAEK,SAAS,GAAG,UAAC,CAAW,EAAA;AAC5B,4BAAA,IAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;4BACtB,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC1D,yBAAC,CAAA;;;AAMD,wBAAA,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,KAAK,SAAS,GAAG,KAAK,CAAC,WAAW,GAAG,MAAM,CAAA;AACxE,wBAAA,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;wBAC5D,GAAG,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,KAAK,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,GAAG,KAAK,CAAC,WAAW,GAAG,CAAC,IAAI,MAAM,IAAI,CAAC,CAAA;AAE/J,wBAAA,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,GAAG,KAAK,CAAC,IAAI,GAAG,MAAM,CAAA;AAC9D,wBAAA,UAAU,CAAC,OAAO,CAAC,UAAA,CAAC,EAAA;AAClB,4BAAA,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE;gCAChB,GAAG,CAAC,SAAS,EAAE,CAAA;gCACf,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAA;gCAC3D,GAAG,CAAC,MAAM,EAAE,CAAA;gCACZ,GAAG,CAAC,IAAI,EAAE,CAAA;AACX,6BAAA;AACH,yBAAC,CAAC,CAAA;;;;;AACH,KAAA,CAAA;IAEM,YAAgB,CAAA,SAAA,CAAA,gBAAA,GAAvB,UAAyB,MAAc,EAAA;AACrC,QAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;KAC3C,CAAA;IAEM,YAAa,CAAA,SAAA,CAAA,aAAA,GAApB,UAAsB,MAAc,EAAA;AAClC,QAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;KAC3C,CAAA;IACH,OAAC,YAAA,CAAA;AAAD,CA9EA,CAA2B,aAAa,CA8EvC,CAAA;;AC/ED,IAAM,UAAU,GAAG;AACjB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,OAAO,EAAE,YAAY;CACtB;;ACRD,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE;AAC/B,EAAE,KAAK,GAAG,KAAK,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AACjC,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;AAC9B;AACA,EAAE,IAAI,CAAC,GAAG,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,EAAE,OAAO,EAAE;AAC1D;AACA,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,EAAE,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC9C,EAAE,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;AAC1B;AACA,EAAE,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC1B,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAChD,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5B,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE;AACxB,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,GAAG;AACH;;;;;ACQA,IAAA,UAAA,kBAAA,UAAA,MAAA,EAAA;IAAyB,SAAS,CAAA,UAAA,EAAA,MAAA,CAAA,CAAA;AAAlC,IAAA,SAAA,UAAA,GAAA;;KAwWC;AArWC,IAAA,UAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,UAAsB,IAA8B,EAAE,YAAqC,EAAA;AACzF,QAAA,IAAI,YAAY,CAAC,KAAK,KAAK,SAAS,EAAE;AACpC,YAAA,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;AAC/B,SAAA;AACD,QAAA,IAAI,YAAY,CAAC,UAAU,KAAK,SAAS,EAAE;AACzC,YAAA,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;AACzC,SAAA;KACF,CAAA;IAES,UAAU,CAAA,SAAA,CAAA,UAAA,GAApB,UAAsB,KAAkB,EAAA;QACtC,IAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,IAAI;AAC7C,cAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;AACpD,cAAE,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AACzD,QAAA,OAAO,OAAO,CAAA;KACf,CAAA;IAEM,UAAW,CAAA,SAAA,CAAA,WAAA,GAAlB,UAAoB,KAAkB,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;KAC9B,CAAA;IAEM,UAAW,CAAA,SAAA,CAAA,WAAA,GAAlB,UAAoB,KAAkB,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;KAC9B,CAAA;AAEM,IAAA,UAAA,CAAA,SAAA,CAAA,QAAQ,GAAf,UAAiB,IAAgB,EAAE,YAAqC,EAAE,KAAa,EAAA;AACrF,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;AAC5B,YAAA,OAAO,UAAC,CAAC,EAAA,EAAK,OAAA,CAAC,CAAA,EAAA,CAAA;AAChB,SAAA;QACD,IAAM,OAAO,GAAkC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC3E,QAAA,IAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;AAChC,QAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;AAE/C,QAAA,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC3D,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,YAAY,CAAC,SAAS,KAAK,SAAS,GAAG,YAAY,CAAC,SAAS,GAAG,EAAE,CAAC,CAAA;AAChH,QAAA,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC,CAAA;QAElD,IAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QACxC,IAAM,KAAK,GAAG,UAAC,CAAqB,EAAA;YAClC,IAAM,CAAC,GAAG,CAAC;AACR,iBAAA,IAAI,CAAC,WAAW,EAAE,YAAA,CAAA,MAAA,CAAa,MAAM,CAAC,CAAC,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,MAAM,CAAC,CAAC,EAAA,GAAA,CAAG,CAAC;iBACvD,IAAI,CAAC,MAAM,CAAC,CAAA;YACf,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAA;AAC5B,YAAA,OAAO,CAAC,CAAA;AACV,SAAC,CAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACb,CAAA;AAEM,IAAA,UAAA,CAAA,SAAA,CAAA,QAAQ,GAAf,UAAiB,IAAgB,EAAE,YAAqC,EAAA;AACtE,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;AAC5B,YAAA,OAAO,UAAC,CAAC,EAAA,EAAK,OAAA,CAAC,CAAA,EAAA,CAAA;AAChB,SAAA;QACD,IAAM,OAAO,GAAkC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC3E,QAAA,IAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;AAClC,QAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;AAE/C,QAAA,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC3D,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,YAAY,CAAC,SAAS,KAAK,SAAS,GAAG,YAAY,CAAC,SAAS,GAAG,EAAE,CAAC,CAAA;AAChH,QAAA,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC,CAAA;QAElD,IAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QACxC,IAAM,KAAK,GAAG,UAAC,CAAqB,EAAA;YAClC,IAAM,CAAC,GAAG,CAAC;AACR,iBAAA,IAAI,CAAC,WAAW,EAAE,YAAA,CAAA,MAAA,CAAa,MAAM,CAAC,CAAC,EAAI,GAAA,CAAA,CAAA,MAAA,CAAA,MAAM,CAAC,CAAC,GAAG,CAAC,MAAG,CAAC;iBAC3D,IAAI,CAAC,MAAM,CAAC,CAAA;YACf,CAAC;iBACE,MAAM,CAAC,SAAS,CAAC;AACjB,iBAAA,MAAM,EAAE,CAAA;AACX,YAAA,OAAO,CAAC,CAAA;AACV,SAAC,CAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACb,CAAA;AAEM,IAAA,UAAA,CAAA,SAAA,CAAA,WAAW,GAAlB,YAAA;AACE,QAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AACnB,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAC7C,IAAI,aAAa,KAAK,SAAS;YAAE,OAAM;QAC/B,IAAA,GAAG,GAAa,aAAa,CAAA,GAA1B,EAAE,MAAM,GAAK,aAAa,CAAA,MAAlB,CAAkB;AACrC,QAAA,IAAI,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;AAC9C,QAAA,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;YAAE,OAAM;QAC/C,IAAI,GAAI,IAAgB,CAAA;;AAExB,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACjB,QAAA,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;AACxF,QAAA,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAA;QAC5C,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,YAAa,CAAA,MAAA,CAAA,IAAI,EAAM,MAAA,CAAA,CAAC,CAAA;KAClD,CAAA;IAEM,UAAS,CAAA,SAAA,CAAA,SAAA,GAAhB,UAAkB,IAAkB,EAAA;QAApC,IAmBC,KAAA,GAAA,IAAA,CAAA;AAlBC,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAC7C,IAAI,aAAa,KAAK,SAAS,EAAE;AAC/B,YAAA,OAAO,SAAS,CAAA;AACjB,SAAA;AACO,QAAA,IAAA,GAAG,GAAK,aAAa,CAAA,GAAlB,CAAkB;AAC7B,QAAA,IAAI,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK,EAAA;YACvB,IAAM,YAAY,GAAG,EAAE,CAAA;YACvB,IAAI,CAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,KAAK,MAAK,SAAS,EAAE;AAC7B,gBAAA,IAAM,KAAK,GAAG,KAAI,CAAC,QAAQ,CACzB,IAAI,EACJ,YAAY,EACZ,KAAK,CACN,CAAA;AACD,gBAAA,IAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;gBAC7H,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACtC,aAAA;AACH,SAAC,CAAC,CAAA;QACF,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;KACnC,CAAA;AAEO,IAAA,UAAA,CAAA,SAAA,CAAA,YAAY,GAApB,UAAsB,IAAgB,EAAE,YAAoB,EAAA;;AAC1D,QAAA,OAAO,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,UAAU,CAAC,YAAY,CAAA,CAAE,KAAK,CAAA;KACrD,CAAA;AAEM,IAAA,UAAA,CAAA,SAAA,CAAA,WAAW,GAAlB,UAAoB,IAAkB,EAAE,KAAc,EAAA;QAAtD,IA2BC,KAAA,GAAA,IAAA,CAAA;AA1BC,QAAA,IAAM,8BAA8B,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;AAC/G,aAAA,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA,EAAA,CAAC,KAAK,SAAS,CAAA;QACrD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,8BAA8B,EAAE;YACzD,OAAM;AACP,SAAA;AAED,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAC7C,IAAI,aAAa,KAAK,SAAS,EAAE;YAC/B,OAAM;AACP,SAAA;AACO,QAAA,IAAA,GAAG,GAAK,aAAa,CAAA,GAAlB,CAAkB;AAC7B,QAAA,IAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;;QAG7H,IAAM,SAAS,GAAG,EAAE,CAAA;QACpB,IAAM,WAAW,GAAG,CAAC,CAAA;AACrB,QAAA,IAAI,CAAC,OAAO,CAAC,UAAA,IAAI,EAAA;;AACf,YAAA,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC;AACzB,iBAAA,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;AACxB,iBAAA,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC;AAChC,iBAAA,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC;AAC9B,iBAAA,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC;AACrD,iBAAA,IAAI,CAAC,GAAG,EAAE,EAAG,CAAA,MAAA,CAAA,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,WAAW,CAAE,CAAC;AACrE,iBAAA,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;AAC3B,iBAAA,IAAI,CAAC,CAAA,EAAA,GAAA,KAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC,CAAA;AAC7C,SAAC,CAAC,CAAA;KACH,CAAA;IAEM,UAAc,CAAA,SAAA,CAAA,cAAA,GAArB,UAAuB,IAAgB,EAAA;AACrC,QAAA,OAAA,QAAA,CAAA,EACE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAC5B,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAA,EAClD,IAAI,CAAC,MAAM,CACf,CAAA;KACF,CAAA;IAEM,UAAc,CAAA,SAAA,CAAA,cAAA,GAArB,UAAuB,IAAgB,EAAA;QACrC,OACE,QAAA,CAAA,EAAA,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAC5B,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EACxB,EAAA,IAAI,CAAC,MAAM,CACf,CAAA;KACF,CAAA;IAEM,UAAS,CAAA,SAAA,CAAA,SAAA,GAAhB,UAAkB,IAAkB,EAAA;QAApC,IAiBC,KAAA,GAAA,IAAA,CAAA;AAhBC,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAC7C,IAAI,aAAa,KAAK,SAAS,EAAE;AAC/B,YAAA,OAAO,SAAS,CAAA;AACjB,SAAA;AACO,QAAA,IAAA,GAAG,GAAK,aAAa,CAAA,GAAlB,CAAkB;AAC7B,QAAA,IAAI,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK,EAAA;YACvB,IAAM,YAAY,GAAG,EAAE,CAAA;YACvB,IAAI,CAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,KAAK,MAAK,SAAS,EAAE;gBAC7B,IAAM,KAAK,GAAG,KAAI,CAAC,QAAQ,CACzB,IAAI,EACJ,YAAY,CACb,CAAA;AACD,gBAAA,IAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;gBAC7H,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACtC,aAAA;AACH,SAAC,CAAC,CAAA;KACH,CAAA;AAEM,IAAA,UAAA,CAAA,SAAA,CAAA,gBAAgB,GAAvB,YAAA;AACE,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;AAC5B,YAAA,IAAA,MAAM,GAAK,IAAI,CAAC,aAAa,OAAvB,CAAuB;AACrC,YAAA,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;AAC1B,YAAA,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE;AACvC,gBAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AAC7B,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACZ,CAAA;AAEM,IAAA,UAAA,CAAA,SAAA,CAAA,QAAQ,GAAf,UAAiB,SAAiB,EAAE,UAAkB,EAAA;QAAtD,IAyBC,KAAA,GAAA,IAAA,CAAA;AAxBC,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,MAAM,EAAE;AAC1B,YAAA,IAAA,MAAM,GAAK,IAAI,CAAC,QAAQ,OAAlB,CAAkB;AAChC,YAAA,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;AAC7B,YAAA,IAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;AACnC,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,KAAK,SAAS,KAAK,KAAK,IAAI,UAAU,KAAK,MAAM,CAAC,EAAE;AACzJ,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;gBAClB,IAAA,EAAA,GAAkB,IAAI,CAAC,aAAa,EAAlC,GAAG,GAAA,EAAA,CAAA,GAAA,EAAE,MAAM,GAAA,EAAA,CAAA,MAAuB,CAAA;gBAC1C,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAA;AAC3B,gBAAA,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACvC,qBAAA,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;gBACvB,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;gBAClE,MAAM;AACH,qBAAA,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;AACpB,qBAAA,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;AACzB,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAA;AACnB,oBAAA,KAAI,CAAC,OAAO,CAAC,IAAI,GAAG,KAAK,CAAA;AACzB,oBAAA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AACtB,iBAAC,CAAC,CAAC,KAAK,CAAC,UAAA,CAAC,EAAA;AACR,oBAAA,KAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AACjB,iBAAC,CAAC,CAAA;AACH,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;AAChC,aAAA;AACF,SAAA;KACF,CAAA;AAEM,IAAA,UAAA,CAAA,SAAA,CAAA,gBAAgB,GAAvB,YAAA;AACE,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;YACpC,OAAO,IAAI,CAAC,aAAa,CAAA;AAC1B,SAAA;AACO,QAAA,IAAA,MAAM,GAAK,IAAI,CAAC,QAAQ,OAAlB,CAAkB;AAChC,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;AAC7B,QAAA,IAAM,GAAG,GAAyD,MAAM,CAAC,KAAK,CAAC;AAC5E,aAAA,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACtC,aAAA,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;AACpB,aAAA,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;AACtB,aAAA,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;AAEhC,QAAA,IAAM,MAAM,GAA6D,MAAM,CAAC,QAAQ,CAAC;AACtF,aAAA,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;AACpB,aAAA,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;AACtB,aAAA,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;AAEhC,QAAA,IAAI,MAAM,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,IAAI,CAAC,aAAa,GAAG;AACnB,gBAAA,MAAM,EAAA,MAAA;AACN,gBAAA,GAAG,EAAA,GAAA;aACJ,CAAA;AACD,YAAA,IAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;YACvC,IAAI,OAAO,KAAK,IAAI,EAAE;AACpB,gBAAA,OAAO,CAAC,qBAAqB,GAAG,MAAM,CAAA;AACvC,aAAA;AACF,SAAA;QACD,OAAO,IAAI,CAAC,aAAa,CAAA;KAC1B,CAAA;AAES,IAAA,UAAA,CAAA,SAAA,CAAA,mBAAmB,GAA7B,YAAA;AACE,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAC7C,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,EAAE;YACrD,IAAA,GAAG,GAAa,aAAa,CAAA,GAA1B,EAAE,MAAM,GAAK,aAAa,CAAA,MAAlB,CAAkB;YACrC,IAAM,OAAO,GAAG,GAAG,KAAH,IAAA,IAAA,GAAG,uBAAH,GAAG,CAAE,IAAI,EAAE,CAAA;YAC3B,IAAM,UAAU,GAAG,MAAM,KAAN,IAAA,IAAA,MAAM,uBAAN,MAAM,CAAE,IAAI,EAAE,CAAA;AACjC,YAAA,IAAI,OAAO,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI,EAAE;AAC3C,gBAAA,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAA;AAC3B,gBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AAC5B,gBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;AAChC,aAAA;AACF,SAAA;;QAED,IAAI,CAAC,YAAY,EAAE,CAAA;KACpB,CAAA;IAES,UAAU,CAAA,SAAA,CAAA,UAAA,GAApB,UAAsB,IAAW,EAAA;QAC/B,IAAM,KAAK,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAA;AACnD,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,EAAE;AACjC,YAAA,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAClC,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,EAAE;AACxC,YAAA,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAClC,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,OAAO,EAAE;AAC3C,YAAA,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AACrC,SAAA;AACD,QAAA,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAA;KAC3B,CAAA;AAEM,IAAA,UAAA,CAAA,SAAA,CAAA,WAAW,GAAlB,YAAA;AACE,QAAA,IAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACnC,IAAI,GAAG,KAAK,IAAI,EAAE;AAChB,YAAA,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AACzD,SAAA;KACF,CAAA;AAES,IAAA,UAAA,CAAA,SAAA,CAAA,YAAY,GAAtB,YAAA;QAAA,IAaC,KAAA,GAAA,IAAA,CAAA;AAZC,QAAA,IAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACnC,IAAI,GAAG,KAAK,IAAI,EAAE;YAChB,OAAM;AACP,SAAA;QACD,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAA,KAAK,EAAA;YAC5C,IAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAC9B,YAAA,IAAM,WAAW,GAAG,EAAE,CAAA;YACtB,KAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,CAAA;AACpD,SAAC,CAAC,CAAA;AACF,QAAA,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAA,KAAK,EAAM,EAAA,KAAI,CAAC,mBAAmB,EAAE,CAAA,EAAE,CAAC,CAAA;QAChF,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAA,KAAK,EAAM,EAAA,KAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA,EAAE,CAAC,CAAA;AAC3F,QAAA,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,UAAA,KAAK,EAAM,EAAA,KAAI,CAAC,mBAAmB,EAAE,CAAA,EAAE,CAAC,CAAA;KACnF,CAAA;IAES,UAAgB,CAAA,SAAA,CAAA,gBAAA,GAA1B,UAA4B,OAAe,EAAA;QAA3C,IAuBC,KAAA,GAAA,IAAA,CAAA;AAtBC,QAAA,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS;YAAE,OAAM;QAClD,IAAM,yBAAyB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAA,IAAI,EAAA;AACpE,YAAA,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAA;AACxF,SAAC,CAAC,CAAA;QACF,IAAM,kBAAkB,GAAuC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAA;AAEzH,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;AAC9B,YAAA,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;AACjC,SAAA;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;QACxB,IAAI,CAAC,WAAW,EAAE,CAAA;QAElB,IAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAM,IAAI,EAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA,EAAA,OAAA,WAAA,CAAA,IAAA,EAAA,UAAA,EAAA,EAAA;;AAAM,gBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,EAAE,CAAA,CAAA;;AAAjB,oBAAA,EAAA,CAAA,IAAA,EAAiB,CAAA;;;AAAE,SAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAC,CAAA;AACtF,QAAA,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,YAAA;AAC7B,YAAA,yBAAyB,CAAC,OAAO,CAAC,UAAA,IAAI,EAAA;gBACpC,IAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC5C,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;AACxC,aAAC,CAAC,CAAA;AACF,YAAA,KAAI,CAAC,OAAO,CAAC,IAAI,GAAG,KAAK,CAAA;AAC3B,SAAC,CAAC,CAAC,KAAK,CAAC,UAAA,KAAK,EAAA;AACZ,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AACtB,SAAC,CAAC,CAAA;KACH,CAAA;AAES,IAAA,UAAA,CAAA,SAAA,CAAA,mBAAmB,GAA7B,YAAA;QACE,IAAI,CAAC,eAAe,EAAE,CAAA;AACtB,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;YACjC,IAAI,CAAC,UAAU,EAAE,CAAA;AAClB,SAAA;KACF,CAAA;AAES,IAAA,UAAA,CAAA,SAAA,CAAA,eAAe,GAAzB,YAAA;QAAA,IAMC,KAAA,GAAA,IAAA,CAAA;AALC,QAAA,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS;YAAE,OAAM;AAClD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;QACxB,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,IAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAM,IAAI,EAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA,EAAA,OAAA,WAAA,CAAA,IAAA,EAAA,UAAA,EAAA,EAAA;;AAAM,gBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,EAAE,CAAA,CAAA;;AAAjB,oBAAA,EAAA,CAAA,IAAA,EAAiB,CAAA;;;AAAE,SAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAC,CAAA;AACtF,QAAA,KAAK,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;KAC/B,CAAA;AAEO,IAAA,UAAA,CAAA,SAAA,CAAA,iBAAiB,GAAzB,UAA2B,MAAc,EAAE,KAA4B,EAAA;QACrE,IAAM,kBAAkB,GAAuC,EAAE,CAAA;AAEjE,QAAA,KAAK,CAAC,OAAO,CAAC,UAAA,IAAI,EAAA;YAChB,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;YACnD,IAAI,aAAa,KAAK,SAAS,EAAE;AAC/B,gBAAA,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,aAAa,CAAA;AAC5C,aAAA;AACH,SAAC,CAAC,CAAA;AAEF,QAAA,OAAO,kBAAkB,CAAA;KAC1B,CAAA;IAEY,UAAI,CAAA,SAAA,CAAA,IAAA,GAAjB,UAAmB,eAAgC,EAAA;AAAhC,QAAA,IAAA,eAAA,KAAA,KAAA,CAAA,EAAA,EAAA,eAAgC,GAAA,KAAA,CAAA,EAAA;;;;AACjD,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,MAAM,CAAA,SAAA,CAAA,IAAI,CAAC,IAAA,CAAA,IAAA,EAAA,eAAe,CAAC,CAAA,CAAA;;AAAjC,wBAAA,EAAA,CAAA,IAAA,EAAiC,CAAA;wBACjC,IAAI,CAAC,mBAAmB,EAAE,CAAA;;;;;AAE3B,KAAA,CAAA;AAEM,IAAA,UAAA,CAAA,SAAA,CAAA,OAAO,GAAd,YAAA;AACE,QAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;QAC9B,MAAM,CAAA,SAAA,CAAA,OAAO,WAAE,CAAA;KAChB,CAAA;IACH,OAAC,UAAA,CAAA;AAAD,CAxWA,CAAyB,SAAS,CAwWjC,CAAA;;ACpYD,IAAA,eAAA,kBAAA,UAAA,MAAA,EAAA;IAA8B,SAAS,CAAA,eAAA,EAAA,MAAA,CAAA,CAAA;AAAvC,IAAA,SAAA,eAAA,GAAA;;KA4DC;AA3Dc,IAAA,eAAA,CAAA,SAAA,CAAA,IAAI,GAAjB,YAAA;;;;;;;AACQ,wBAAA,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;AAC3C,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,OAAO,EAAE,CAAA,CAAA;;AAA3B,wBAAA,IAAI,GAAG,EAAoB,CAAA,IAAA,EAAA,CAAA;wBAC3B,UAAU,GAAG,CAAA,EAAA,GAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,CAAA;AAC/B,wBAAA,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;AACvC,wBAAA,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;AACvC,wBAAA,KAAK,GAAG,IAAI,CAAC,KAAyB,CAAA;AACtC,wBAAA,aAAa,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAA;wBAE9C,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,GAAG,KAAK,IAAI,EAAE;AAC7D,4BAAA,OAAA,CAAA,CAAA,aAAO,SAAS,CAAA,CAAA;AACjB,yBAAA;AACK,wBAAA,GAAG,GAAG,aAAa,CAAC,GAAG,CAAA;AACvB,wBAAA,UAAU,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAA;AACjC,wBAAA,UAAU,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAA;AACvC,wBAAA,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE;AAC1I,4BAAA,OAAA,CAAA,CAAA,aAAO,SAAS,CAAA,CAAA;AACjB,yBAAA;AAMK,wBAAA,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;wBAC5C,SAAS,GAAG,UAAC,CAAW,EAAA;AAC5B,4BAAA,IAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;AACtB,4BAAA,IAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;4BACnB,OAAO,CAAC,KAAK,SAAS,GAAG,CAAC,GAAG,CAAC,CAAA;AAChC,yBAAC,CAAA;AAEK,wBAAA,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;wBAC5C,SAAS,GAAG,UAAC,CAAW,EAAA;AAC5B,4BAAA,IAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;AACtB,4BAAA,IAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;4BACnB,OAAO,CAAC,KAAK,SAAS,GAAG,CAAC,GAAG,CAAC,CAAA;AAChC,yBAAC,CAAA;wBAOK,IAAI,GAAG,UAAU,EAAE;6BACtB,KAAK,CAAC,SAAS,CAAC;6BAChB,MAAM,CAAC,SAAS,CAAC;6BACjB,KAAK,CAAC,iBAAiB,CAAC,CAAA;AAErB,wBAAA,UAAU,GAAG,UAAU,CAAC,KAAK,EAAE,CAAA;AAC/B,wBAAA,WAAW,GAAG,KAAK,CAAC,cAAc,EAAE,CAAA;AAE1C,wBAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;AACZ,6BAAA,IAAI,CAAC,WAAW,EAAE,YAAA,CAAA,MAAA,CAAa,WAAW,CAAC,CAAC,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,WAAW,CAAC,CAAC,EAAA,GAAA,CAAG,CAAC;AACjE,6BAAA,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;6BAC5B,MAAM,CAAC,MAAM,CAAC;AACd,6BAAA,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;AACpB,6BAAA,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,KAAK,SAAS,GAAG,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC;AAC5E,6BAAA,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,KAAK,SAAS,GAAG,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;6BAC7E,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAmD,CAAC,CAAC,CAAA;;;;;AACxE,KAAA,CAAA;IACH,OAAC,eAAA,CAAA;AAAD,CA5DA,CAA8B,SAAS,CA4DtC,CAAA;;AC5DD,IAAA,kBAAA,kBAAA,UAAA,MAAA,EAAA;IAAiC,SAAY,CAAA,kBAAA,EAAA,MAAA,CAAA,CAAA;AAA7C,IAAA,SAAA,kBAAA,GAAA;;KAyDC;AAxDc,IAAA,kBAAA,CAAA,SAAA,CAAA,IAAI,GAAjB,YAAA;;;;;;AAEe,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,OAAO,EAAE,CAAA,CAAA;;AAA3B,wBAAA,IAAI,GAAG,EAAoB,CAAA,IAAA,EAAA,CAAA;wBAC3B,UAAU,GAAG,CAAA,EAAA,GAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,CAAA;AAC/B,wBAAA,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;AACvC,wBAAA,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;AACvC,wBAAA,KAAK,GAAG,IAAI,CAAC,KAAyB,CAAA;AACtC,wBAAA,aAAa,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAA;wBAE9C,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,GAAG,KAAK,IAAI,EAAE;AAC7D,4BAAA,OAAA,CAAA,CAAA,aAAO,SAAS,CAAA,CAAA;AACjB,yBAAA;AACK,wBAAA,GAAG,GAAG,aAAa,CAAC,GAAG,CAAA;AACvB,wBAAA,UAAU,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAA;AACjC,wBAAA,UAAU,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAA;AACvC,wBAAA,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE;AAC1I,4BAAA,OAAA,CAAA,CAAA,aAAO,SAAS,CAAA,CAAA;AACjB,yBAAA;AAMK,wBAAA,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;wBAE5C,SAAS,GAAG,UAAC,CAAW,EAAA;AAC5B,4BAAA,IAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;AACtB,4BAAA,IAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;4BACnB,OAAO,CAAC,KAAK,SAAS,GAAG,CAAC,GAAG,CAAC,CAAA;AAChC,yBAAC,CAAA;AAEK,wBAAA,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;wBAC5C,SAAS,GAAG,UAAC,CAAW,EAAA;AAC5B,4BAAA,IAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;AACtB,4BAAA,IAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;4BACnB,OAAO,CAAC,KAAK,SAAS,GAAG,CAAC,GAAG,CAAC,CAAA;AAChC,yBAAC,CAAA;AAEK,wBAAA,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;AACtB,6BAAA,IAAI,CAAC,WAAW,EAAE,oBAAa,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,MAAG,CAAC;AACvF,6BAAA,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAA;AAE5B,wBAAA,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;AAClD,wBAAA,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;AAE5D,wBAAA,UAAU,CAAC,OAAO,CAAC,UAAA,CAAC,EAAA;AAClB,4BAAA,IAAM,EAAE,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;AAClD,4BAAA,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;AACf,iCAAA,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC;AACrB,iCAAA,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,GAAG,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;AAC5D,iCAAA,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,KAAK,SAAS,GAAG,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC;AAC5E,iCAAA,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,MAAM,KAAK,CAAC,WAAW,KAAK,SAAS,GAAG,KAAK,CAAC,WAAW,GAAG,CAAC,KAAK,CAAC,CAAC;AAC5J,iCAAA,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;AAC9C,iCAAA,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AAClD,yBAAC,CAAC,CAAA;;;;;AACH,KAAA,CAAA;IACH,OAAC,kBAAA,CAAA;AAAD,CAzDA,CAAiCE,SAAY,CAyD5C,CAAA;;ACvDD,IAAA,eAAA,kBAAA,UAAA,MAAA,EAAA;IAA8B,SAAS,CAAA,eAAA,EAAA,MAAA,CAAA,CAAA;AAAvC,IAAA,SAAA,eAAA,GAAA;;KA0FC;AAzFc,IAAA,eAAA,CAAA,SAAA,CAAA,IAAI,GAAjB,YAAA;;;;;;;AACQ,wBAAA,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;AAC3C,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,OAAO,EAAE,CAAA,CAAA;;AAA3B,wBAAA,IAAI,GAAG,EAAoB,CAAA,IAAA,EAAA,CAAA;wBAC3B,UAAU,GAAG,CAAA,EAAA,GAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,CAAA;AAE/B,wBAAA,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;AACzC,wBAAA,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;AACvC,wBAAA,UAAU,GAAG,UAAU,CAAC,EAAE,CAAA;AAC1B,wBAAA,UAAU,GAAG,UAAU,CAAC,EAAE,CAAA;AAE1B,wBAAA,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;AACzC,wBAAA,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;AACvC,wBAAA,UAAU,GAAG,UAAU,CAAC,EAAE,CAAA;AAC1B,wBAAA,UAAU,GAAG,UAAU,CAAC,EAAE,CAAA;AAE1B,wBAAA,KAAK,GAAG,IAAI,CAAC,KAAyB,CAAA;AACtC,wBAAA,aAAa,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAA;wBAE9C,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,GAAG,KAAK,IAAI,EAAE;AAC7D,4BAAA,OAAA,CAAA,CAAA,aAAO,SAAS,CAAA,CAAA;AACjB,yBAAA;AACK,wBAAA,GAAG,GAAG,aAAa,CAAC,GAAG,CAAA;AAEvB,wBAAA,UAAU,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAA;AACjC,wBAAA,UAAU,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAA;wBACvC,IACE,UAAU,KAAK,SAAS;AACxB,4BAAA,UAAU,KAAK,SAAS;AACxB,4BAAA,UAAU,KAAK,SAAS;6BAEtB,SAAS,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,CAChF;AACD,6BACE,SAAS,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,CAChF,EACD;AACA,4BAAA,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAA;AAC7F,4BAAA,OAAA,CAAA,CAAA,aAAO,SAAS,CAAA,CAAA;AACjB,yBAAA;AAEK,wBAAA,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;AAC5C,wBAAA,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;AAE5C,wBAAA,cAAc,GAAG,UAAC,GAAyB,EAAE,OAAgC,EAAA;AACjF,4BAAA,OAAO,UAAC,CAAW,EAAA;AACjB,gCAAA,IAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;AAChB,gCAAA,IAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;gCACpB,OAAO,CAAC,KAAK,SAAS,GAAG,CAAC,GAAG,CAAC,CAAA;AAChC,6BAAC,CAAA;AACH,yBAAC,CAAA;wBAEK,aAAa,GAAG,UAAC,GAAyB,EAAA;AAC9C,4BAAA,OAAO,UAAC,CAAW,EAAA;AACjB,gCAAA,IAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;gCAChB,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC1D,6BAAC,CAAA;AACH,yBAAC,CAAA;wBAED,IAAI,SAAS,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE;AACnF,4BAAA,OAAA,CAAA,CAAA,aAAO,SAAS,CAAA,CAAA;AACjB,yBAAA;wBAEK,IAAI,GAAG,UAAU,EAAE;AACtB,6BAAA,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACxC,6BAAA,WAAW,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAC/C,6BAAA,WAAW,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAC/C,6BAAA,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;6BAClC,KAAK,CAAC,iBAAiB,CAAC,CAAA;AAErB,wBAAA,UAAU,GAAG,UAAU,CAAC,KAAK,EAAE,CAAA;AAC/B,wBAAA,WAAW,GAAG,KAAK,CAAC,cAAc,EAAE,CAAA;AAE1C,wBAAA,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC;AACtB,6BAAA,IAAI,CAAC,WAAW,EAAE,YAAA,CAAA,MAAA,CAAa,WAAW,CAAC,CAAC,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,WAAW,CAAC,CAAC,EAAA,GAAA,CAAG,CAAC;AACjE,6BAAA,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;6BAC5B,MAAM,CAAC,MAAM,CAAC;AACd,6BAAA,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,GAAG,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC;AACjE,6BAAA,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,KAAK,SAAS,GAAG,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;6BAC7E,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAmD,CAAC,CAAC,CAAA;;;;;AACxE,KAAA,CAAA;IAEM,eAAa,CAAA,SAAA,CAAA,aAAA,GAApB,UAAsB,MAAc,EAAA;AAClC,QAAA,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAA;KAC/D,CAAA;IAEM,eAAgB,CAAA,SAAA,CAAA,gBAAA,GAAvB,UAAyB,MAAc,EAAA;AACrC,QAAA,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAA;AACjE,QAAA,OAAO,SAAS,CAAA;KACjB,CAAA;IACH,OAAC,eAAA,CAAA;AAAD,CA1FA,CAA8B,SAAS,CA0FtC,CAAA;;ACxFD,IAAA,gBAAA,kBAAA,UAAA,MAAA,EAAA;IAA+B,SAAU,CAAA,gBAAA,EAAA,MAAA,CAAA,CAAA;AAAzC,IAAA,SAAA,gBAAA,GAAA;;KA6KC;AA5KW,IAAA,gBAAA,CAAA,SAAA,CAAA,cAAc,GAAxB,YAAA;AACE,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;KAC/B,CAAA;AAES,IAAA,gBAAA,CAAA,SAAA,CAAA,cAAc,GAAxB,YAAA;AACE,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;KAC/B,CAAA;IAES,gBAAS,CAAA,SAAA,CAAA,SAAA,GAAnB,UAAqB,WAAmB,EAAA;QACtC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAA;KACxB,CAAA;IAES,gBAAS,CAAA,SAAA,CAAA,SAAA,GAAnB,UAAqB,YAAoB,EAAA;QACvC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAA;KACtD,CAAA;AAES,IAAA,gBAAA,CAAA,SAAA,CAAA,aAAa,GAAvB,YAAA;AACE,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAA;KACjC,CAAA;AAEM,IAAA,gBAAA,CAAA,SAAA,CAAA,YAAY,GAAnB,YAAA;QACE,IAAM,CAAC,GAAW,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAA;QAC1F,IAAM,CAAC,GAAW,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAA;QAC/F,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;KACtB,CAAA;AAES,IAAA,gBAAA,CAAA,SAAA,CAAA,aAAa,GAAvB,YAAA;AACE,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAA;KAC3B,CAAA;AAES,IAAA,gBAAA,CAAA,SAAA,CAAA,cAAc,GAAxB,YAAA;AACE,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAA;KAC3B,CAAA;IAEM,gBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAxB,UAA0B,KAAkB,EAAA;AAC1C,QAAA,OAAO,WAAW,EAAE;AACjB,aAAA,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;AACpB,aAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;KACtB,CAAA;AAEM,IAAA,gBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAxB,UAA0B,KAAkB,EAAE,QAAa,EAAA;AAAb,QAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAa,GAAA,EAAA,CAAA,EAAA;AACzD,QAAA,IAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAA;AACvB,QAAA,IAAM,OAAO,GAAG,MAAA,CAAA,SAAA,CAAM,WAAW,CAAC,IAAA,CAAA,IAAA,EAAA,KAAK,CAAC,CAAA;AACxC,QAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAA;AACxC,QAAA,OAAO,OAAO,CAAA;KACf,CAAA;AAEM,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAf,UAAiB,IAAgB,EAAE,YAAqC,EAAE,KAAa,EAAA;AACrF,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;AAC5B,YAAA,OAAO,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAA,EAAA,CAAA;AACd,SAAA;QACD,IAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QACxC,IAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAClD,QAAA,IAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAA;QAEvC,IAAM,YAAY,GAAG,EAAE,CAAA;AACvB,QAAA,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;QACtD,IAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,CAAA;;;AAGzD,QAAA,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAE5D,IAAM,QAAQ,GAAG,UAAC,CAAqB,EAAA;YACrC,IAAM,GAAG,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACzD,CAAC;AACE,iBAAA,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;AAC5B,iBAAA,IAAI,CAAC,WAAW,EAAE,YAAA,CAAA,MAAA,CAAa,MAAM,CAAC,CAAC,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,MAAM,CAAC,CAAC,EAAA,GAAA,CAAG,CAAC;AACvD,iBAAA,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;AAC7B,iBAAA,SAAS,EAAE;AACX,iBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;iBACrB,IAAI,CAAC,GAAG,CAAC;AACT,iBAAA,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;iBACrB,IAAI,CAAC,UAAA,CAAC,EAAA;gBACL,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,oBAAA,OAAO,CAAC,CAAA;AACT,iBAAA;AACD,gBAAA,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;AACtB,qBAAA,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;AACpB,qBAAA,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC;AAC9B,qBAAA,IAAI,CAAC,GAAG,EAAE,UAAC,CAAC,EAAA;AACX,oBAAA,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AACpB,iBAAC,CAAC,CAAA;AACN,aAAC,CAAC;iBACD,IAAI,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;AACxB,iBAAA,IAAI,CAAC,GAAG,EAAE,UAAA,CAAC,IAAI,OAAA,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA,EAAA,CAAC;AACjC,iBAAA,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;AACpB,iBAAA,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;AACtB,iBAAA,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AACtB,iBAAA,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;iBAC7B,IAAI,CAAC,WAAW,EAAE,SAAA,CAAA,MAAA,CAAU,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAA,GAAA,CAAG,CAAC;AACjE,iBAAA,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,EAAA,EAAK,OAAA,EAAG,CAAA,MAAA,CAAA,MAAM,CAAC,CAAC,CAAC,CAAE,CAAd,EAAc,CAAC,CAPtB,EAOsB,CAChC,CAAA;AAEH,YAAA,OAAO,CAAC,CAAA;AACV,SAAC,CAAA;AACD,QAAA,OAAO,QAAQ,CAAA;KAChB,CAAA;AAEM,IAAA,gBAAA,CAAA,SAAA,CAAA,cAAc,GAArB,YAAA;QACE,OAAO;AACL,YAAA,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC;AACtD,YAAA,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC;SACtD,CAAA;KACF,CAAA;IAEM,gBAAc,CAAA,SAAA,CAAA,cAAA,GAArB,UAAuB,KAAiB,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,cAAc,EAAE,CAAA;KAC7B,CAAA;IAEM,gBAAc,CAAA,SAAA,CAAA,cAAA,GAArB,UAAuB,KAAiB,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,cAAc,EAAE,CAAA;KAC7B,CAAA;AAEM,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAf,UAAiB,IAAgB,EAAE,aAAsC,EAAA;AACvE,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;AAC5B,YAAA,OAAO,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAA,EAAA,CAAA;AACd,SAAA;AACD,QAAA,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;AACzC,QAAA,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QACzC,IAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QACxC,IAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAClD,QAAA,IAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAA;;;QAGvC,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;AAC7C,QAAA,IAAM,YAAY,GAAG,CAAC,EAAE,CAAA;AACxB,QAAA,IAAM,SAAS,GAAG,UAAC,KAAa,EAAE,GAAW,EAAA;YAC3C,IAAM,CAAC,IAAI,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC,CAAA;AAC7B,YAAA,OAAO,CAAC,CAAA;AACV,SAAC,CAAA;QAED,IAAM,UAAU,GAAG,UAAC,CAAqB,EAAA;YACvC,CAAC;iBACE,MAAM,CAAC,GAAG,CAAC;AACX,iBAAA,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;AAC5B,iBAAA,IAAI,CAAC,WAAW,EAAE,YAAA,CAAA,MAAA,CAAa,MAAM,CAAC,CAAC,EAAI,GAAA,CAAA,CAAA,MAAA,CAAA,MAAM,CAAC,CAAC,EAAY,WAAA,CAAA,CAAA,MAAA,CAAA,YAAY,MAAG,CAAC;AAC/E,iBAAA,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;iBAC3B,IAAI,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;iBACxB,IAAI,CAAC,KAAK,CAAC;iBACX,IAAI,CAAC,GAAG,CAAC;;;iBAGT,IAAI,CAAC,WAAW,EAAE,UAAC,EAAmB,EAAE,CAAS,EAAE,GAAU,EAAA,EAAK,OAAA,uBAAA,CAAA,MAAA,CACxD,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAAA,2BAAA,CAAA,CAAA,MAAA,CACrB,WAAW,EAAA,iBAAA,CACxB,CAHkE,EAGlE,CAAC;AACD,iBAAA,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;iBACrB,IAAI,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;AACxB,iBAAA,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;iBACd,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,GAAG,EAAE,CAAC,CAFlC,EAEkC,CAC5C;iBACA,IAAI,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;AACxB,iBAAA,IAAI,CAAC,WAAW,EAAE,2BAA2B,CAAC;AAC9C,iBAAA,IAAI,CAAC,UAAC,CAAS,EAAA,EAAa,OAAA,CAAC,CAAA,EAAA,CAAC,GAAA,CAAC,CAhBzB,EAgByB,CAAC,CAAA;AAEvC,YAAA,OAAO,CAAC,CAAA;AACV,SAAC,CAAA;AAED,QAAA,OAAO,UAAU,CAAA;KAClB,CAAA;IAED,gBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAY,IAAW,EAAA;QACrB,IAAM,KAAK,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAA;AACnD,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACxB,YAAA,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,CAAA;AAClC,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;AAClC,YAAA,OAAO,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAA;AACrC,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AAC/B,YAAA,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,CAAA;AAClC,SAAA;AACD,QAAA,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,CAAA;KAClC,CAAA;IACH,OAAC,gBAAA,CAAA;AAAD,CA7KA,CAA+B,UAAU,CA6KxC,CAAA;;ACpLD,IAAA,GAAA,kBAAA,UAAA,MAAA,EAAA;IAAkB,SAAQ,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,GAAA,GAAA;;KAIC;AAHc,IAAA,GAAA,CAAA,SAAA,CAAA,IAAI,GAAjB,YAAA;;;AACE,gBAAA,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAA;;;;AACjD,KAAA,CAAA;IACH,OAAC,GAAA,CAAA;AAAD,CAJA,CAAkB,QAAQ,CAIzB,CAAA;;ACJD,IAAA,QAAA,kBAAA,UAAA,MAAA,EAAA;IAAuB,SAAQ,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,QAAA,GAAA;;KAIC;AAHc,IAAA,QAAA,CAAA,SAAA,CAAA,IAAI,GAAjB,YAAA;;;AACE,gBAAA,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAA;;;;AACjD,KAAA,CAAA;IACH,OAAC,QAAA,CAAA;AAAD,CAJA,CAAuB,QAAQ,CAI9B,CAAA;;ACJD;;;;AAI0C;AAE1C,IAAM,OAAO,GAAG;AACd,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,IAAI,EAAEC,QAAI;AACV;;;;AAImB;CACpB;;ACXD,IAAM,cAAc,yBACfC,OAAS,CAAA,EAAA,EACZ,IAAI,EAAE,SAAS,GAChB,CAAA;AACD,IAAM,YAAY,GAAG;AACnB,IAAA,KAAK,EAAE,UAAU;AACjB,IAAA,WAAW,EAAE,gBAAgB;AAC7B,IAAA,SAAS,EAAE,cAAc;;;;;","x_google_ignoreList":[0,9]}
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/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/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\") 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,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __createBinding,\r\n __exportStar,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n __classPrivateFieldIn,\r\n __addDisposableResource,\r\n __disposeResources,\r\n};\r\n","import { type IRequestItemData, type INumericDataAccessor, type IDataResult, type IRequestItemProps, type IRequestItemImplementation, type INumericData } from '@axdspub/axiom-ui-data-services'\n\ninterface IUnit {\n code: string\n label: string\n}\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\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\n}\n\ninterface IPlotStyle {\n strokeWidth?: number\n strokeColor?: string\n strokeDash?: [number, number]\n fill?: string\n radius?: number\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 axisSettings?: IPlotAxisSettings\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 IPlotScrubPosition {\n xPosition: number\n yPosition: number\n xValue: number | Date | string\n yValue: INumericData\n}\n\ntype PlotId = string\n\ntype IPlotScrubPositions = Record<PlotId, IPlotScrubPosition>\n\ninterface IPlotImplementation extends IPlotImplementationProps, IRequestItemImplementation {\n chart: IChartImplementation\n draw: () => Promise<void>\n drawScrubbing: (mouseX: number) => void\n destroy: () => void\n getDomain: (axis: EChartAxes) => Promise<IChartDimensionDomain>\n getYDomain: () => Promise<IChartDimensionDomain>\n getAxisSetting: (axis: string) => IPlotAxisSetting\n getScrubPosition: (mouseX: number) => IPlotScrubPosition | undefined\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' | 'timeseries' | undefined\n}\n\ninterface IChart {\n settings: IChartSettings\n plots: IPlot[]\n label?: string\n description?: string\n help?: string\n onScrub?: (scrubPositions: IPlotScrubPositions) => void\n onScrubEnd?: () => 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 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 IPlotTypes,\n IPlotImplementation,\n IPlotImplementationProps,\n IPlotDataAccessors,\n IPlotImplementationGroup,\n IPlotImplementationGroups,\n IPlotScrubPosition,\n IPlotScrubPositions\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 IPlotScrubPosition } from '@/Root/Types/ChartTypes'\nimport { extent } from 'd3-array'\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\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.axisSettings = props.axisSettings\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 public drawScrubbing (mouseX: number): void {\n console.log('drawScrubbing not implemented')\n }\n\n public getScrubPosition (mouseX: number): IPlotScrubPosition | undefined {\n console.log('getScrubPosition not implemented')\n return undefined\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 IPlotScrubPositions } 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 onScrub?: (scrubPositions: IPlotScrubPositions) => void\n onScrubEnd?: () => 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.onScrub = props.onScrub\n this.onScrubEnd = props.onScrubEnd\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 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 protected 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 public async init (drawImmediately: boolean = false): Promise<void> {\n this.runtime.resizeEventHandler = debounce(() => {\n this.onResize(this.runtime.prevWidth, this.runtime.prevHeight)\n }, 1000, {\n leading: true,\n trailing: true\n })\n // window.addEventListener('resize', this.runtime.resizeEventHandler)\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 }\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'\nimport { type IPlotScrubPosition } from '@/Root/Types/ChartTypes'\n\nabstract class AxiomPlotRoot extends PlotRoot {\n public abstract getScrubPosition (mouseX: number): IPlotScrubPosition | undefined\n public abstract drawScrubbing (mouseX: number): void\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 INumericData } from '@axdspub/axiom-ui-data-services'\nimport type AxiomChart from '@/Libraries/axiom/AxiomChart'\nimport { bisector } from 'd3-array'\nimport { type IAxiomD3ContinuousScale } from '@/Libraries/axiom/AxiomChart'\nimport { type IPlotScrubPosition } from '@/Root/Types/ChartTypes'\n\nclass AxiomLine extends AxiomPlotRoot {\n addedScrubbingListener = false\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.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\n public getScrubPosition (mouseX: number): IPlotScrubPosition | undefined {\n if (this.xScale === undefined || this.yScale === undefined || this.parsedData === undefined || this.offset === undefined) {\n return undefined\n }\n const xAccessor = this.getAccessorAtAxis('x')\n const yAccessor = this.getAccessorAtAxis('y')\n if (xAccessor === undefined || yAccessor === undefined) {\n return undefined\n }\n\n const scrubValue = this.xScale.invert(mouseX - this.offset.x)\n\n const bisect = bisector((row: IDataRow) => xAccessor(row)).center\n const bisectIndex = bisect(this.parsedData, scrubValue)\n\n const nearestRow = this.getNearestRow(bisectIndex, scrubValue, this.parsedData, xAccessor, yAccessor)\n\n const bisected = nearestRow\n const xValue = xAccessor(bisected)\n const xPosition = this.xScale(xValue) + this.offset.x\n\n const yValue = yAccessor(nearestRow)\n const yPosition = this.yScale(yValue) + this.offset.y\n\n return {\n xPosition,\n xValue,\n yPosition,\n yValue\n }\n }\n\n private getNearestRow (bisectIndex: number, scrubValue: number | Date, parsedData: IDataRow[], xAccessor: (row: IDataRow) => INumericData, yAccessor: (row: IDataRow) => INumericData): IDataRow {\n const nonEmptyRows = parsedData.filter(row => yAccessor(row) !== null && yAccessor(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 = xAccessor(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 public drawScrubbing (mouseX: number): void {\n const chart = this.chart as AxiomChart\n const ctx = chart.getCanvasContext()\n if (ctx === null) {\n return undefined\n }\n const scrubPosition = this.getScrubPosition(mouseX)\n if (scrubPosition === undefined) return\n const { xPosition, yPosition } = scrubPosition\n this.drawScrubCircle(xPosition, yPosition, ctx)\n this.drawScrubLine(xPosition, ctx)\n }\n\n private drawScrubCircle (x: number, y: number, ctx: CanvasRenderingContext2D): void {\n ctx.beginPath()\n ctx.setLineDash([])\n ctx.arc(x, y, 6, 0, 2 * Math.PI, true)\n ctx.strokeStyle = this.getStrokeStyle()\n ctx.lineWidth = this.getLineWidth()\n ctx.stroke()\n }\n\n private drawScrubLine (x: number, ctx: CanvasRenderingContext2D): void {\n const lineHeight = this.chart.settings.height - this.chart.settings.margin.bottom\n ctx.setLineDash([1, 1])\n ctx.beginPath()\n ctx.moveTo(x, 0)\n ctx.lineTo(x, lineHeight)\n ctx.stroke()\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\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'\nimport { type IPlotScrubPosition } from '@/library'\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\n public drawScrubbing (mouseX: number): void {\n console.error('AxiomArea.drawScrubbing not implemented')\n }\n\n public getScrubPosition (mouseX: number): IPlotScrubPosition | undefined {\n console.error('AxiomArea.getScrubPosition not implemented')\n return undefined\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 IPlotScrubPosition } from '@/library'\n\nclass AxiomScatter extends AxiomPlotRoot {\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 const 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 || 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 const xScale = chart.getD3XScale(xAxisScale)\n const xPosition = (d: IDataRow): number => {\n const v = xAccessor(d)\n const p = xScale(v)\n return p === undefined ? 0 : (p + offset.x)\n }\n\n const yScale = chart.getD3YScale(yAxisScale)\n const yPosition = (d: IDataRow): number => {\n const v = yAccessor(d)\n const p = yScale(v)\n return p === undefined ? 0 : (p + 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 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\n public getScrubPosition (mouseX: number): IPlotScrubPosition | undefined {\n throw new Error('Method not implemented.')\n }\n\n public drawScrubbing (mouseX: number): void {\n throw new Error('Method not implemented.')\n }\n}\n\nexport default AxiomScatter\n","import AxiomLine from '@/Libraries/axiom/Plots/AxiomLine'\nimport AxiomArea from '@/Libraries/axiom/Plots/AxiomArea'\nimport AxiomScatter from '@/Libraries/axiom/Plots/AxiomScatter'\n\nconst chartTypes = {\n Line: AxiomLine,\n Area: AxiomArea,\n Scatter: AxiomScatter\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 } from 'd3'\nimport { type IChartScale, type IChartAxis, type IPlotImplementation, type IPlot, EPlotTypes, type IPlotScrubPosition } 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'\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\ntype PlotId = string\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 this.showYLabels(axes, this.plots)\n }\n\n private getAxisLabel (axis: IChartAxis, dimensionKey: string): string | undefined {\n return axis.plots[0]?.dimensions[dimensionKey].label\n }\n\n public showYLabels (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\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 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 // TODO: conditional\n this.addScrubbing()\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 }\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 protected addScrubbing (): void {\n const ctx = this.getCanvasContext()\n if (ctx === null) {\n return\n }\n ctx.canvas.addEventListener('touchmove', event => {\n const touch = event.touches[0]\n const touchOffset = 20 // TODO: figure out why touch.clientX is always off to the right\n this.onScrubTriggered(touch.clientX - touchOffset)\n })\n ctx.canvas.addEventListener('touchend', event => { this.onScrubEndTriggered() })\n ctx.canvas.addEventListener('mousemove', event => { this.onScrubTriggered(event.offsetX) })\n ctx.canvas.addEventListener('mouseleave', event => { this.onScrubEndTriggered() })\n }\n\n protected onScrubTriggered (cursorX: number): void {\n if (this.plotImplementations === undefined) return\n const plotsWithScrubbingEnabled = this.plotImplementations.filter(plot => {\n return plot.scrubbing !== undefined && plot.scrubbing && plot.type === EPlotTypes.line\n })\n const plotScrubPositions: Record<PlotId, IPlotScrubPosition> = this.getScrubPositions(cursorX, plotsWithScrubbingEnabled)\n\n if (this.onScrub !== undefined) {\n this.onScrub(plotScrubPositions)\n }\n this.runtime.busy = true\n this.clearCanvas()\n\n const drawPromises = this.plotImplementations.map(async plot => { await plot.draw() })\n Promise.all(drawPromises).then(() => {\n plotsWithScrubbingEnabled.forEach(plot => {\n const position = plotScrubPositions[plot.id]\n plot.drawScrubbing(position.xPosition)\n })\n this.runtime.busy = false\n }).catch(error => {\n console.error(error)\n })\n }\n\n protected onScrubEndTriggered (): void {\n this.removeScrubbers()\n if (this.onScrubEnd !== undefined) {\n this.onScrubEnd()\n }\n }\n\n protected removeScrubbers (): void {\n if (this.plotImplementations === undefined) return\n this.runtime.busy = true\n this.clearCanvas()\n const drawPromises = this.plotImplementations.map(async plot => { await plot.draw() })\n void Promise.all(drawPromises)\n }\n\n private getScrubPositions (mouseX: number, plots: IPlotImplementation[]): Record<string, IPlotScrubPosition> {\n const plotScrubPositions: Record<PlotId, IPlotScrubPosition> = {}\n\n plots.forEach(plot => {\n const scrubPosition = plot.getScrubPosition(mouseX)\n if (scrubPosition !== undefined) {\n plotScrubPositions[plot.id] = scrubPosition\n }\n })\n\n return plotScrubPositions\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 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 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', style.strokeColor !== undefined ? style.strokeColor : '#333')\n .attr('stroke-width', style.strokeWidth !== undefined ? style.strokeWidth : 1)\n .attr('d', line(radialData as unknown as Iterable<[number, number]>))\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 parsedData.forEach(d => {\n const pt = pointRadial(xPosition(d), yPosition(d))\n g.append('circle')\n .attr('r', radius * 2)\n .attr('fill', style.fill !== undefined ? style.fill : '#333')\n .attr('stroke', style.strokeColor !== undefined ? style.strokeColor : '#CCC')\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}\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'\nimport { type IPlotScrubPosition } from '@/library'\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 svg.insert('g', 'g.axis')\n .attr('transform', `translate(${chartOffset.x},${chartOffset.y})`)\n .attr('class', 'radial-area')\n .append('path')\n .attr('fill', style.fill !== undefined ? style.fill : '#EDEDED99')\n .attr('stroke-width', style.strokeWidth !== undefined ? style.strokeWidth : 1)\n .attr('d', area(radialData as unknown as Iterable<[number, number]>))\n }\n\n public drawScrubbing (mouseX: number): void {\n console.error('AxiomRadialArea.drawScrubbing not implemented')\n }\n\n public getScrubPosition (mouseX: number): IPlotScrubPosition | undefined {\n console.error('AxiomRadialArea.getScrubPosition not implemented')\n return undefined\n }\n}\n\nexport default AxiomRadialArea\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'\n\nclass AxiomRadialChart extends AxiomChart {\n protected getInnerRadius (): number {\n return this.getChartSize() / 5\n }\n\n protected 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 protected 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\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', (d) => {\n return d3Scale(+d)\n })\n })\n .call(g => g.append('text')\n .attr('y', d => dir * d3Scale(+d))\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 = 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('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 }\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","AxiomScatter","Line","BasePlots"],"mappings":"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","x_google_ignoreList":[0,9]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axdspub/axiom-charts",
3
- "version": "0.0.15",
3
+ "version": "0.0.16",
4
4
  "private": false,
5
5
  "main": "./library/index.js",
6
6
  "typings": "./library/axiom-charts.d.ts",