@hpcc-js/timeline 2.53.1 → 3.0.0

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.
Files changed (39) hide show
  1. package/dist/index.js +31 -1633
  2. package/dist/index.js.map +7 -1
  3. package/package.json +34 -37
  4. package/src/MiniGantt.ts +10 -9
  5. package/src/ReactAxisGantt.ts +8 -1
  6. package/src/ReactAxisGanttSeries.ts +2 -2
  7. package/src/ReactGantt.ts +4 -0
  8. package/src/ReactTimeline.ts +10 -10
  9. package/src/ReactTimelineSeries.ts +8 -8
  10. package/src/__package__.ts +2 -2
  11. package/src/index.ts +7 -7
  12. package/types/MiniGantt.d.ts +4 -5
  13. package/types/ReactAxisGantt.d.ts +2 -2
  14. package/types/ReactAxisGanttSeries.d.ts +2 -3
  15. package/types/ReactGantt.d.ts +1 -1
  16. package/types/ReactTimeline.d.ts +2 -3
  17. package/types/ReactTimelineSeries.d.ts +1 -2
  18. package/types/__package__.d.ts +2 -3
  19. package/types/index.d.ts +7 -8
  20. package/dist/index.es6.js +0 -1625
  21. package/dist/index.es6.js.map +0 -1
  22. package/dist/index.min.js +0 -2
  23. package/dist/index.min.js.map +0 -1
  24. package/types/MiniGantt.d.ts.map +0 -1
  25. package/types/ReactAxisGantt.d.ts.map +0 -1
  26. package/types/ReactAxisGanttSeries.d.ts.map +0 -1
  27. package/types/ReactGantt.d.ts.map +0 -1
  28. package/types/ReactTimeline.d.ts.map +0 -1
  29. package/types/ReactTimelineSeries.d.ts.map +0 -1
  30. package/types/__package__.d.ts.map +0 -1
  31. package/types/index.d.ts.map +0 -1
  32. package/types-3.4/MiniGantt.d.ts +0 -106
  33. package/types-3.4/ReactAxisGantt.d.ts +0 -83
  34. package/types-3.4/ReactAxisGanttSeries.d.ts +0 -82
  35. package/types-3.4/ReactGantt.d.ts +0 -135
  36. package/types-3.4/ReactTimeline.d.ts +0 -18
  37. package/types-3.4/ReactTimelineSeries.d.ts +0 -18
  38. package/types-3.4/__package__.d.ts +0 -4
  39. package/types-3.4/index.d.ts +0 -8
package/dist/index.js.map CHANGED
@@ -1 +1,7 @@
1
- {"version":3,"file":"index.js","sources":["../src/__package__.ts","../../../node_modules/tslib/tslib.es6.mjs","../../../node_modules/style-inject/dist/style-inject.es.js","../src/MiniGantt.ts","../src/ReactGantt.ts","../src/ReactAxisGantt.ts","../src/ReactAxisGanttSeries.ts","../src/ReactTimeline.ts","../src/ReactTimelineSeries.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/timeline\";\nexport const PKG_VERSION = \"2.53.1\";\nexport const BUILD_VERSION = \"2.106.4\";\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\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; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\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\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\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\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\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 { ITooltip } from \"@hpcc-js/api\";\nimport { Axis } from \"@hpcc-js/chart\";\nimport { d3Event, EntityPin, EntityRect, local as d3Local, select as d3Select, SVGWidget, Utility } from \"@hpcc-js/common\";\nimport { extent as d3Extent } from \"d3-array\";\nimport { scaleBand as d3ScaleBand } from \"d3-scale\";\nimport { timeFormat as d3TimeFormat, timeParse as d3TimeParse } from \"d3-time-format\";\nimport { zoom as d3Zoom, zoomIdentity as d3ZoomIdentity } from \"d3-zoom\";\n\nimport \"../src/MiniGantt.css\";\n\nexport class MiniGantt extends SVGWidget {\n protected tlAxis: Axis;\n protected brAxis: Axis;\n protected verticalBands;\n protected _zoom;\n protected gUpperContent;\n protected gUpperAxis;\n protected gMiddleContent;\n protected gLowerAxis;\n protected gLowerContent;\n private localRect = d3Local<EntityRect>();\n private localEntityPin = d3Local<EntityPin>();\n private tooltipFormatter: (date: Date) => string;\n private _dateCache;\n\n protected rootExtent;\n protected _title_idx = 0;\n protected _startDate_idx = 1;\n protected _endDate_idx = 2;\n protected _icon_idx = -1;\n protected _color_idx = -1;\n protected _yoffset_idx = -1;\n\n constructor() {\n super();\n ITooltip.call(this);\n Utility.SimpleSelectionMixin.call(this);\n\n this._drawStartPos = \"origin\";\n this.tooltipHTML((d: any) => `<center>${d[this._title_idx]}</center><br>${this.tooltipFormatter(this.brAxis.parse(d[this._startDate_idx]))} -> ${this.tooltipFormatter(this.brAxis.parse(d[this._endDate_idx]))}`);\n\n this.tlAxis = new Axis()\n .type(\"time\")\n ;\n this.brAxis = new Axis()\n .type(\"time\")\n ;\n this.verticalBands = d3ScaleBand()\n .paddingOuter(0.2)\n .paddingInner(0.2)\n ;\n }\n\n isHorizontal(): boolean {\n return this.orientation() === \"horizontal\";\n }\n\n fullExtent() {\n const data = [...this.data().map(d => d[this._startDate_idx]), ...this.data().filter(d => !!d[this._endDate_idx]).map(d => d[this._endDate_idx])];\n return d3Extent(data);\n }\n\n extent() {\n const extent = this.rootExtent ? [this.rootExtent[1], this.rootExtent[2]] : this.fullExtent();\n if (extent[0] !== undefined && extent[1] !== undefined) {\n if (extent[0] === extent[1] || this.centerOnMostRecent()) {\n const parser = d3TimeParse(this.timePattern());\n const formatter = d3TimeFormat(this.timePattern());\n const date1 = parser(extent[0]);\n const date2 = parser(extent[1]);\n if (extent[0] === extent[1]) {\n extent[0] = formatter(new Date(date1.setFullYear(date1.getFullYear() - 1)));\n extent[1] = formatter(new Date(date1.setFullYear(date1.getFullYear() + 2)));\n } else {\n const time1 = date1.getTime();\n const timeDiff = date2.getTime() - time1;\n extent[0] = formatter(date1);\n extent[1] = formatter(new Date(time1 + (timeDiff * 2)));\n }\n }\n }\n return extent;\n }\n\n dataStartPos(d) {\n if(typeof this._dateCache[d[this._startDate_idx]] !== \"undefined\"){\n return this._dateCache[d[this._startDate_idx]];\n }\n const pos = this.brAxis.scalePos(d[this._startDate_idx]);\n this._dateCache[d[this._startDate_idx]] = pos;\n return pos;\n }\n\n dataEndPos(d) {\n if(typeof this._dateCache[d[this._endDate_idx]] !== \"undefined\"){\n return this._dateCache[d[this._endDate_idx]];\n }\n const pos = this.brAxis.scalePos(d[this._endDate_idx]);\n this._dateCache[d[this._endDate_idx]] = pos;\n return pos;\n }\n\n dataWidth(d) {\n return this.dataEndPos(d) - this.dataStartPos(d);\n }\n\n private transform;\n resetZoom() {\n // Triggers a \"zoomed\" event ---\n this._zoom.transform(this.element(), d3ZoomIdentity.translate(0, this.isHorizontal() ? 0 : this.height()));\n }\n\n zoomed() {\n this.transform = d3Event().transform;\n this.render();\n }\n\n private background;\n enter(domNode, element) {\n super.enter(domNode, element);\n this._zoom = d3Zoom()\n .scaleExtent([0, this.maxZoom()])\n .on(\"zoom\", () => {\n this.zoomed();\n })\n ;\n\n this.background = element.append(\"rect\")\n .attr(\"fill\", \"white\")\n .attr(\"opacity\", 0)\n .on(\"dblclick\", () => {\n d3Event().stopPropagation();\n delete this.rootExtent;\n this.resetZoom();\n })\n ;\n this.gUpperContent = element.append(\"g\").attr(\"class\", \"gUpperContent\");\n this.gUpperAxis = element.append(\"g\").attr(\"class\", \"gUpperAxis\");\n this.gMiddleContent = element.append(\"g\").attr(\"class\", \"gMiddleContent\");\n this.gLowerAxis = element.append(\"g\").attr(\"class\", \"gLowerAxis\");\n this.gLowerContent = element.append(\"g\").attr(\"class\", \"gLowerContent\");\n this.tlAxis\n .target(this.gUpperAxis.node())\n .tickFormat(this.tickFormat())\n .guideTarget(this.gUpperAxis.append(\"g\").node())\n .shrinkToFit(\"none\")\n .overlapMode(this.tickFormat_exists() ? \"stagger\" : \"none\")\n .extend(0.1)\n ;\n this.brAxis\n .target(this.gLowerAxis.node())\n .tickFormat(this.tickFormat())\n .guideTarget(this.gLowerAxis.append(\"g\").node())\n .shrinkToFit(\"none\")\n .overlapMode(this.tickFormat_exists() ? \"stagger\" : \"none\")\n .extend(0.1)\n ;\n\n element.call(this._zoom);\n this._selection.widgetElement(this.gMiddleContent);\n }\n\n private _prevIsHorizontal;\n update(domNode, element) {\n super.update(domNode, element);\n\n this._dateCache = {};\n\n this._title_idx = this.titleColumn() !== null ? this.columns().indexOf(this.titleColumn()) : this._title_idx;\n this._startDate_idx = this.startDateColumn() !== null ? this.columns().indexOf(this.startDateColumn()) : this._startDate_idx;\n this._endDate_idx = this.endDateColumn() !== null ? this.columns().indexOf(this.endDateColumn()) : this._endDate_idx;\n this._icon_idx = this.iconColumn() !== null ? this.columns().indexOf(this.iconColumn()) : this._icon_idx;\n this._color_idx = this.colorColumn() !== null ? this.columns().indexOf(this.colorColumn()) : this._color_idx;\n this._yoffset_idx = this.yOffsetColumn() !== null ? this.columns().indexOf(this.yOffsetColumn()) : this._yoffset_idx;\n\n if (this._prevIsHorizontal !== this.isHorizontal()) {\n this._prevIsHorizontal = this.isHorizontal();\n this.resetZoom();\n return;\n }\n\n this.tooltipFormatter = d3TimeFormat(this.tooltipTimeFormat());\n\n const width = this.width();\n const height = this.height();\n\n this.background\n .attr(\"x\", 0)\n .attr(\"y\", 0)\n .attr(\"width\", width)\n .attr(\"height\", height)\n ;\n\n const extent = this.extent();\n this.tlAxis\n .x(width / 2)\n .orientation(this.isHorizontal() ? \"top\" : \"left\")\n .reverse(!this.isHorizontal())\n .timePattern(this.timePattern()) // \"%Y-%m-%dT%H:%M:%S.%LZ\"\n .width(width - 1)\n .low(extent[0])\n .high(extent[1])\n .updateScale()\n ;\n\n this.brAxis\n .x(width / 2)\n .y(height / 2)\n .orientation(this.isHorizontal() ? \"bottom\" : \"right\")\n .reverse(!this.isHorizontal())\n .timePattern(this.timePattern()) // \"%Y-%m-%dT%H:%M:%S.%LZ\"\n .width(width - 1)\n .height(height)\n .low(extent[0])\n .high(extent[1])\n .updateScale()\n ;\n\n if (this.transform) {\n let low;\n let hi;\n if (this.isHorizontal()) {\n low = this.tlAxis.parseInvert(this.tlAxis.invert(this.transform.invertX(0)));\n hi = this.tlAxis.parseInvert(this.tlAxis.invert(this.transform.invertX(width - 1)));\n } else {\n low = this.tlAxis.parseInvert(this.tlAxis.invert(- this.transform.invertY(0)));\n hi = this.tlAxis.parseInvert(this.tlAxis.invert(- this.transform.invertY(height - 1)));\n }\n this.tlAxis\n .low(low)\n .high(hi)\n .updateScale()\n ;\n this.brAxis\n .low(low)\n .high(hi)\n .updateScale()\n ;\n }\n\n const data = this.data().sort(this.isHorizontal() ? (l, r) => {\n const retVal = this.brAxis.scalePos(l[1]) - this.brAxis.scalePos(r[1]);\n if (retVal === 0) {\n return (\"\" + l[0]).localeCompare(\"\" + r[0]);\n }\n return retVal;\n } : (l, r) => {\n return this.brAxis.scalePos(r[1]) - this.brAxis.scalePos(l[1]);\n });\n const events = data.filter(d => !d[this._endDate_idx]);\n const ranges = data.filter(d => !!d[this._endDate_idx]);\n\n this.tlAxis\n .render()\n ;\n this.brAxis\n .render()\n ;\n const brAxisBBox = this.brAxis.getBBox();\n\n let upperContentHeight = this.updateEntityPins(events);\n const lowerAxisHeight = brAxisBBox.height;\n let lowerHeight = height - upperContentHeight;\n const minYOffset = this._yoffset_idx !== -1 ? Math.min.apply(undefined, this.data().filter(row => !isNaN(row[this._yoffset_idx])).map(row => row[this._yoffset_idx])) : 0;\n if (events.length > 0 && ranges.length === 0) {\n // ONLY EVENTS\n this.tlAxis.visible(false);\n let y_offset = upperContentHeight / 4;\n if (y_offset > (height / 2) - lowerAxisHeight) {\n y_offset = (height / 2) - lowerAxisHeight;\n }\n const upperContentYOffset = (height / 2) + y_offset;\n const lowerAxisYOffset = ((height / 2) - lowerAxisHeight - y_offset) * -1;\n const halfMinYOffset = minYOffset !== 0 ? minYOffset / 2 : 0;\n this.gUpperContent.attr(\"transform\", `translate(0, ${upperContentYOffset - halfMinYOffset})`);\n this.gLowerAxis.attr(\"transform\", `translate(0, ${lowerAxisYOffset - halfMinYOffset})`);\n } else if (events.length === 0 && ranges.length > 0) {\n // ONLY RANGES\n this.tlAxis.visible(true);\n this.gUpperContent.attr(\"transform\", `translate(0, ${upperContentHeight})`);\n this.gUpperAxis.attr(\"transform\", `translate(0, ${upperContentHeight})`);\n } else {\n upperContentHeight -= minYOffset;\n lowerHeight += minYOffset;\n // BOTH\n this.tlAxis.visible(true);\n this.gUpperContent.attr(\"transform\", `translate(0, ${upperContentHeight})`);\n this.gUpperAxis.attr(\"transform\", `translate(0, ${upperContentHeight})`);\n this.gMiddleContent.attr(\"transform\", `translate(0, ${upperContentHeight})`);\n }\n this.tlAxis\n .render()\n ;\n const tlAxisBBox = this.tlAxis.getBBox();\n interface BucketInfo {\n endPos: number;\n }\n const bucketData: BucketInfo[] = [];\n const bucketIndex = {};\n for (const range of ranges) {\n for (let i = 0; i < bucketData.length; ++i) {\n const bucket = bucketData[i];\n if (bucket.endPos + this.overlapTolerence() <= this.dataStartPos(range)) {\n bucketIndex[range] = i;\n bucket.endPos = this.dataEndPos(range);\n break;\n }\n }\n\n if (bucketIndex[range] === undefined) {\n bucketIndex[range] = bucketData.length;\n bucketData.push({\n endPos: this.dataEndPos(range)\n });\n }\n }\n\n const vbLower = this.isHorizontal() ? 0 + tlAxisBBox.height : 0 + tlAxisBBox.width;\n const vbHigher = this.isHorizontal() ? lowerHeight - brAxisBBox.height : width - brAxisBBox.width;\n this.verticalBands\n .range([vbLower, vbHigher])\n .domain(bucketData.map((_d, i) => i))\n ;\n\n if (ranges.length > 0) {\n this.updateEventRanges(events, ranges, bucketIndex, lowerHeight, tlAxisBBox, brAxisBBox, width);\n }\n }\n\n updateEntityPins(events) {\n let event_height = 0;\n const context = this;\n const entityPins = this.gUpperContent.selectAll(\".entity_pin\").data(events, d => d[0] + \":\" + d[1]);\n const eventFontColor_idx = this.eventFontColorColumn() ? this.columns().indexOf(this.eventFontColorColumn()) : -1;\n const eventBorderColor_idx = this.eventBorderColorColumn() ? this.columns().indexOf(this.eventBorderColorColumn()) : -1;\n const eventBackgroundColor_idx = this.eventBackgroundColorColumn() ? this.columns().indexOf(this.eventBackgroundColorColumn()) : -1;\n const title_counts = {};\n for (const d of events) {\n const type = typeof d[context._title_idx] !== \"undefined\" ? d[context._title_idx] : d[0];\n title_counts[type] = title_counts[type] ? title_counts[type] + 1 : 1;\n }\n const title_types = Object.keys(title_counts);\n const title_group_offset = context.eventGroupOffset();\n const entityPinsEnter = entityPins.enter().append(\"g\")\n .attr(\"class\", \"entity_pin\");\n entityPinsEnter.append(\"line\")\n .attr(\"class\", \"entity_line\");\n\n entityPinsEnter\n .on(\"mouseover\", function (d) {\n d3Select(this).raise();\n })\n .each(function (d, i) {\n const entityPin = new EntityPin()\n .target(this)\n .icon(\"\")\n .iconOnlyShowOnHover(context.hideIconWhenCollapsed())\n .titleOnlyShowOnHover(context.hideTitleWhenCollapsed())\n .descriptionOnlyShowOnHover(context.hideDescriptionWhenCollapsed())\n .annotationOnlyShowOnHover(context.hideAnnotationsWhenCollapsed())\n .iconDiameter(18)\n .iconPaddingPercent(1)\n .titleFontSize(14)\n .descriptionColor(\"#333\")\n .descriptionFontSize(15)\n .iconColor(eventFontColor_idx === -1 ? \"#333\" : d[eventFontColor_idx])\n .titleColor(eventFontColor_idx === -1 ? \"#333\" : d[eventFontColor_idx])\n .descriptionColor(eventFontColor_idx === -1 ? \"#333\" : d[eventFontColor_idx])\n .backgroundShape(\"pin\")\n .backgroundColorFill(eventFontColor_idx === -1 ? \"#f8f8f8\" : d[eventBackgroundColor_idx])\n .backgroundColorStroke(eventFontColor_idx === -1 ? \"#ccc\" : d[eventBorderColor_idx])\n .cornerRadius(5)\n .arrowHeight(10)\n .arrowWidth(16)\n ;\n context.localEntityPin.set(this, entityPin);\n })\n .merge(entityPins)\n .each(function (d, i) {\n const entityPin = context.localEntityPin.get(this);\n const _title = typeof d[context._title_idx] !== \"undefined\" ? d[context._title_idx] : entityPin.title();\n const x_offset = context.dataStartPos(d) - 0;\n let y_offset = ((title_types.indexOf(_title) % context.eventGroupMod()) * title_group_offset) - 5;\n if (typeof d[context._yoffset_idx] !== \"undefined\") y_offset += d[context._yoffset_idx] ? d[context._yoffset_idx] : 0;\n if (d[context._title_idx] !== entityPin.title() && d[context._startDate_idx] !== entityPin.description()) {\n const parsed_start_time = context.brAxis.parse(d[context._startDate_idx]);\n const formatted_start_time = context.tooltipFormatter(parsed_start_time);\n entityPin\n .x(x_offset)\n .y(y_offset)\n .iconOnlyShowOnHover(context.hideIconWhenCollapsed())\n .titleOnlyShowOnHover(context.hideTitleWhenCollapsed())\n .descriptionOnlyShowOnHover(context.hideDescriptionWhenCollapsed())\n .annotationOnlyShowOnHover(context.hideAnnotationsWhenCollapsed())\n .icon(typeof d[context._icon_idx] !== \"undefined\" ? d[context._icon_idx] : entityPin.icon())\n .title(_title)\n .description(formatted_start_time)\n .animationFrameRender()\n ;\n } else {\n entityPin.move({ x: x_offset, y: y_offset });\n }\n const calc_height = entityPin.calcHeight();\n if (event_height < calc_height) event_height = calc_height;\n\n d3Select(this).selectAll(\".entity_line\")\n .attr(\"x1\", x_offset)\n .attr(\"x2\", x_offset)\n .attr(\"y1\", 0)\n .attr(\"y2\", y_offset)\n .style(\"stroke\", eventFontColor_idx === -1 ? \"#ccc\" : d[eventBorderColor_idx])\n .style(\"stroke-width\", 1)\n ;\n })\n ;\n entityPins.exit()\n .each(function (d, i) {\n const entityPin = context.localEntityPin.get(this);\n entityPin.target(null);\n\n })\n .remove();\n const event_offset = Math.abs(Math.min(events.length, context.eventGroupMod()) * context.eventGroupOffset());\n return event_height + event_offset;\n }\n\n updateEventRanges(events, ranges, bucketIndex, eventRangeHeight, tlAxisBBox, brAxisBBox, width) {\n const context = this;\n\n const lines = this.gMiddleContent.selectAll(\".line\").data(events, d => {\n return d[context._title_idx];\n });\n lines.enter().append(\"line\")\n .attr(\"class\", \"line\")\n .merge(lines)\n .attr(this.isHorizontal() ? \"x1\" : \"y1\", d => this.dataStartPos(d) - 0)\n .attr(this.isHorizontal() ? \"x2\" : \"y2\", d => this.dataStartPos(d) - 0)\n .attr(this.isHorizontal() ? \"y1\" : \"x1\", this.isHorizontal() ? tlAxisBBox.height : tlAxisBBox.width)\n .attr(this.isHorizontal() ? \"y2\" : \"x2\", this.isHorizontal() ? eventRangeHeight - brAxisBBox.height : width - brAxisBBox.width)\n ;\n lines.exit().remove();\n const buckets = this.gMiddleContent.selectAll(\".buckets\").data(ranges, d => d[context._title_idx]);\n buckets.enter().append(\"g\")\n .attr(\"class\", \"buckets\")\n .call(this._selection.enter.bind(this._selection))\n .each(function (d) {\n const entityRect = new EntityRect()\n .target(this)\n .iconDiameter(28)\n .iconPaddingPercent(0)\n .titleFontSize(28)\n .titleColor(context.rangeFontColor())\n .descriptionColor(context.rangeFontColor())\n .iconColor(context.rangeFontColor())\n .backgroundShape(\"rect\")\n .backgroundColorFill(d[context._color_idx])\n ;\n context.localRect.set(this, entityRect);\n context.enterEntityRect(entityRect, d);\n })\n .on(\"click\", function (d) {\n context.click(context.rowToObj(d), \"range\", context._selection.selected(this));\n }, false)\n .on(\"dblclick\", function (d) {\n context.rootExtent = d;\n context.resetZoom();\n context.dblclick(context.rowToObj(d), \"range\", context._selection.selected(this));\n }, true)\n .on(\"mouseout.tooltip\", this.tooltip.hide)\n .on(\"mousemove.tooltip\", this.tooltip.show)\n .merge(buckets)\n .attr(\"transform\", d => context.isHorizontal() ?\n `translate(${this.dataStartPos(d)}, ${this.verticalBands(bucketIndex[d])}) ` :\n `translate(${this.verticalBands(bucketIndex[d])}, ${this.dataStartPos(d)}) `)\n .each(function (d) {\n const textBox = context.localRect.get(this);\n const x = context.dataWidth(d) / 2;\n const y = context.verticalBands.bandwidth() / 2;\n const rectWidth = Math.max(context.dataWidth(d), 2);\n const rectHeight = Math.max(context.verticalBands.bandwidth(), 2);\n const fontHeightRatio = 0.618;\n const paddingRatio = ((1 - fontHeightRatio) / 2);\n const paddingSize = paddingRatio * rectHeight;\n const fontSize = rectHeight * fontHeightRatio;\n const iconSize = fontSize;\n textBox\n .pos(context.isHorizontal() ? { x, y } : { x: y, y: x })\n .fixedHeight(context.isHorizontal() ? rectHeight : rectWidth)\n .fixedWidth(context.isHorizontal() ? rectWidth : rectHeight)\n .icon(typeof d[context._icon_idx] !== \"undefined\" ? d[context._icon_idx] : \"\")\n .title(typeof d[context._title_idx] !== \"undefined\" ? d[context._title_idx] : \"\")\n .padding(paddingSize)\n .iconDiameter(iconSize)\n .titleFontSize(fontSize)\n ;\n if (iconSize * 1.5 > rectWidth) {\n textBox.icon(null);\n }\n context.updateEntityRect(textBox, d[context._icon_idx]);\n textBox\n .render()\n ;\n });\n buckets.exit().remove();\n }\n\n exit(domNode, element) {\n this.brAxis.target(null);\n this.tlAxis.target(null);\n super.exit(domNode, element);\n }\n\n // Events ---\n click(row, col, sel) {\n }\n\n dblclick(row, col, sel) {\n }\n\n enterEntityRect(textbox: EntityRect, d) {\n }\n\n updateEntityRect(textbox: EntityRect, d) {\n }\n\n // ITooltip ---\n tooltip;\n tooltipHTML: (_) => string;\n tooltipFormat: (_) => string;\n\n // SimpleSelectionMixin\n _selection;\n}\nMiniGantt.prototype._class += \" timeline_MiniGantt\";\nMiniGantt.prototype.implements(ITooltip.prototype);\nMiniGantt.prototype.mixin(Utility.SimpleSelectionMixin);\n\nexport interface MiniGantt {\n timePattern(): string;\n timePattern(_: string): this;\n tickFormat(): string;\n tickFormat(_: string): this;\n tickFormat_exists(): boolean;\n tooltipTimeFormat(): string;\n tooltipTimeFormat(_: string): this;\n overlapTolerence(): number;\n overlapTolerence(_: number): this;\n orientation(): string;\n orientation(_: string): this;\n rangeFontColor(): string;\n rangeFontColor(_: string): this;\n titleColumn(): string;\n titleColumn(_: string): this;\n startDateColumn(): string;\n startDateColumn(_: string): this;\n endDateColumn(): string;\n endDateColumn(_: string): this;\n iconColumn(): string;\n iconColumn(_: string): this;\n colorColumn(): string;\n colorColumn(_: string): this;\n yOffsetColumn(): string;\n yOffsetColumn(_: string): this;\n maxZoom(): number;\n maxZoom(_: number): this;\n eventGroupMod(): number;\n eventGroupMod(_: number): this;\n eventGroupOffset(): number;\n eventGroupOffset(_: number): this;\n eventFontColorColumn(): string;\n eventFontColorColumn(_: string): this;\n eventBorderColorColumn(): string;\n eventBorderColorColumn(_: string): this;\n eventBackgroundColorColumn(): string;\n eventBackgroundColorColumn(_: string): this;\n hideIconWhenCollapsed(): boolean;\n hideIconWhenCollapsed(_: boolean): this;\n hideTitleWhenCollapsed(): boolean;\n hideTitleWhenCollapsed(_: boolean): this;\n hideDescriptionWhenCollapsed(): boolean;\n hideDescriptionWhenCollapsed(_: boolean): this;\n hideAnnotationsWhenCollapsed(): boolean;\n hideAnnotationsWhenCollapsed(_: boolean): this;\n centerOnMostRecent(): boolean;\n centerOnMostRecent(_: boolean): this;\n\n}\n\nMiniGantt.prototype.publish(\"timePattern\", \"%Y-%m-%d\", \"string\", \"timePattern\");\nMiniGantt.prototype.publish(\"tickFormat\", null, \"string\", \"tickFormat\", undefined, { optional: true });\nMiniGantt.prototype.publish(\"tooltipTimeFormat\", \"%Y-%m-%d\", \"string\", \"tooltipTimeFormat\");\nMiniGantt.prototype.publish(\"overlapTolerence\", 2, \"number\", \"overlapTolerence\");\nMiniGantt.prototype.publish(\"orientation\", \"horizontal\", \"set\", \"orientation\", [\"horizontal\", \"vertical\"]);\nMiniGantt.prototype.publish(\"rangeFontColor\", \"#ecf0f1\", \"html-color\", \"rangeFontColor\");\nMiniGantt.prototype.publish(\"titleColumn\", null, \"string\", \"titleColumn\");\nMiniGantt.prototype.publish(\"startDateColumn\", null, \"string\", \"startDateColumn\");\nMiniGantt.prototype.publish(\"endDateColumn\", null, \"string\", \"endDateColumn\");\nMiniGantt.prototype.publish(\"iconColumn\", null, \"string\", \"iconColumn\");\nMiniGantt.prototype.publish(\"colorColumn\", null, \"string\", \"colorColumn\");\nMiniGantt.prototype.publish(\"yOffsetColumn\", null, \"string\", \"yOffsetColumn\");\nMiniGantt.prototype.publish(\"maxZoom\", 16, \"number\", \"maxZoom\");\nMiniGantt.prototype.publish(\"eventGroupOffset\", -50, \"number\", \"eventGroupOffset\");\nMiniGantt.prototype.publish(\"eventGroupMod\", 5, \"number\", \"eventGroupMod\");\nMiniGantt.prototype.publish(\"eventFontColorColumn\", null, \"string\", \"eventFontColorColumn\");\nMiniGantt.prototype.publish(\"eventBorderColorColumn\", null, \"string\", \"eventBorderColorColumn\");\nMiniGantt.prototype.publish(\"eventBackgroundColorColumn\", null, \"string\", \"eventBackgroundColorColumn\");\nMiniGantt.prototype.publish(\"hideIconWhenCollapsed\", false, \"boolean\", \"hideIconWhenCollapsed\");\nMiniGantt.prototype.publish(\"hideTitleWhenCollapsed\", false, \"boolean\", \"hideTitleWhenCollapsed\");\nMiniGantt.prototype.publish(\"hideDescriptionWhenCollapsed\", false, \"boolean\", \"hideDescriptionWhenCollapsed\");\nMiniGantt.prototype.publish(\"hideAnnotationsWhenCollapsed\", true, \"boolean\", \"hideAnnotationsWhenCollapsed\");\nMiniGantt.prototype.publish(\"centerOnMostRecent\", false, \"boolean\", \"If true, the timeline will be centered on the most recent data point\");\n","import { d3Event, select as d3Select, SVGZoomWidget, Utility } from \"@hpcc-js/common\";\nimport { HTMLTooltip } from \"@hpcc-js/html\";\nimport { scaleLinear as d3ScaleLinear } from \"d3-scale\";\nimport { React, render, LabelledRect } from \"@hpcc-js/react\";\n\nexport type IGanttData = [string, number, number, any?];\n\nexport interface IRangeOptions {\n rangePadding: number;\n fontFamily: string;\n fontSize: number;\n strokeWidth?: number;\n fill: string;\n stroke: string;\n textFill: string;\n cornerRadius: number;\n}\n\nexport class ReactGantt extends SVGZoomWidget {\n\n protected _selection = new Utility.Selection(this);\n\n protected _buckets;\n protected _interpolateX;\n protected _interpolateY;\n\n protected _bucketsBySeries;\n protected _dataBySeries;\n protected _origIdxMap;\n private _seriesBackgrounds;\n\n protected _maxFontSize;\n\n public _tooltip;\n\n public _minStart: number;\n public _maxEnd: number;\n\n protected _title_idx = 0;\n protected _startDate_idx = 1;\n protected _endDate_idx = 2;\n protected _icon_idx = -1;\n protected _color_idx = -1;\n protected _series_idx = -1;\n protected _bucket_idx = -1;\n protected _yoffset_idx = -1;\n\n protected _maxX: number;\n protected _maxY: number;\n\n private _rangeOptions: IRangeOptions = {\n rangePadding: 2,\n fontFamily: \"Verdana\",\n fontSize: 12,\n fill: \"white\",\n stroke: \"black\",\n textFill: \"black\",\n cornerRadius: 3,\n strokeWidth: 0\n };\n\n constructor(drawStartPosition: \"origin\" | \"center\" = \"origin\") {\n super();\n this._drawStartPos = drawStartPosition;\n\n this.showToolbar_default(false);\n\n this._tooltip = new HTMLTooltip();\n this._tooltip\n .tooltipHTML(d => {\n return `<div style=\"text-align:center;\">${d[0]}<br/><br/>${d[1]} -&gt; ${d[2]}</div>`;\n });\n this._tooltip\n .followCursor(true)\n ;\n }\n\n selection(_: any[]): this;\n selection(): any[];\n selection(_?: any[]): any[] | this {\n if (!arguments.length) return this._selection.get();\n this._selection.set(_);\n return this;\n }\n\n private _rangeRenderer: React.FunctionComponent = LabelledRect;\n rangeRenderer(): React.FunctionComponent;\n rangeRenderer(_: React.FunctionComponent): this;\n rangeRenderer(_?: React.FunctionComponent): this | React.FunctionComponent {\n if (!arguments.length) return this._rangeRenderer;\n this._rangeRenderer = _;\n return this._rangeRenderer;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n\n const context = this;\n element\n .on(\"click\", function (this: SVGElement, d) {\n context._selection.clear();\n });\n\n this._tooltip.target(domNode);\n }\n update(domNode, element) {\n super.update(domNode, element);\n\n this.zoomExtent([0.05, this.maxZoom()]);\n\n this._title_idx = this.titleColumn() !== null ? this.columns().indexOf(this.titleColumn()) : this._title_idx;\n this._startDate_idx = this.startDateColumn() !== null ? this.columns().indexOf(this.startDateColumn()) : this._startDate_idx;\n this._endDate_idx = this.endDateColumn() !== null ? this.columns().indexOf(this.endDateColumn()) : this._endDate_idx;\n this._icon_idx = this.iconColumn() !== null ? this.columns().indexOf(this.iconColumn()) : this._icon_idx;\n this._color_idx = this.colorColumn() !== null ? this.columns().indexOf(this.colorColumn()) : this._color_idx;\n this._series_idx = this.seriesColumn() !== null ? this.columns().indexOf(this.seriesColumn()) : this._series_idx;\n this._bucket_idx = this.bucketColumn() !== null ? this.columns().indexOf(this.bucketColumn()) : -1;\n\n const context = this;\n const w = this.width();\n\n const x0 = 0;\n const x1 = w;\n\n this._interpolateX = d3ScaleLinear()\n .domain([this._minStart, this._maxEnd])\n .range([x0, x1])\n ;\n\n this.data().sort((a, b) => a[1] - b[1]);\n\n if (this._series_idx > -1) {\n this._origIdxMap = {};\n this._dataBySeries = {};\n this._bucketsBySeries = {};\n this.data().forEach((dataRow, origIdx) => {\n const seriesKey = dataRow[this._series_idx];\n if (!this._dataBySeries[seriesKey]) {\n this._origIdxMap[seriesKey] = {};\n this._dataBySeries[seriesKey] = [];\n }\n this._dataBySeries[seriesKey].push({\n dataRow,\n origIdx\n });\n });\n const gutter = this.gutter();\n let bucketOffset = 0;\n const seriesKeys = Object.keys(this._dataBySeries);\n seriesKeys.forEach(seriesKey => {\n this._dataBySeries[seriesKey].sort((a, b) => a.dataRow[1] - b.dataRow[1]);\n this._bucketsBySeries[seriesKey] = this.calcBuckets(this._dataBySeries[seriesKey].map(n => n.dataRow), 1, 2);\n this._bucketsBySeries[seriesKey].bucketHeight = this.bucketHeight();\n this._bucketsBySeries[seriesKey].bucketOffset = bucketOffset;\n bucketOffset += (this._bucketsBySeries[seriesKey].bucketHeight + this.strokeWidth() + this.gutter()) * (this._bucketsBySeries[seriesKey].maxBucket + 1);\n this._dataBySeries[seriesKey].forEach((n, i) => {\n this._origIdxMap[seriesKey][n.origIdx] = i;\n });\n });\n this._seriesBackgrounds = this._renderElement.selectAll(\".series-background\")\n .data(seriesKeys.map(key => {\n return this._bucketsBySeries[key];\n }))\n ;\n this._seriesBackgrounds\n .join(\n enter => enter.append(\"rect\")\n .attr(\"class\", \"series-background\"),\n update => update,\n exit => exit\n .each(function (d) {\n delete d.element;\n })\n .remove()\n )\n .attr(\"opacity\", d => d.props && d.props.hidden ? 0 : 1)\n .each(function (this: SVGGElement, d, i) {\n d3Select(this)\n .attr(\"x\", 0)\n .attr(\"y\", d.bucketOffset - (gutter / 2))\n .attr(\"width\", w)\n .attr(\"height\", ((d.bucketHeight + gutter) * (d.maxBucket + 1)) + gutter)\n .attr(\"fill\", i % 2 ? context.oddSeriesBackground() : context.evenSeriesBackground())\n ;\n });\n } else {\n if (this._bucket_idx !== -1) {\n this._buckets = this.calcBuckets(this.data(), this._startDate_idx, this._endDate_idx, this._bucket_idx);\n } else {\n this._buckets = this.calcBuckets(this.data(), this._startDate_idx, this._endDate_idx);\n }\n }\n const interpedStart = this._interpolateX(this._minStart);\n\n this.zoomTo(\n [interpedStart, 0],\n 1\n );\n\n const bucketHeight = this.bucketHeight();\n\n this.setRangeOptions();\n\n this._maxFontScale = (bucketHeight - (this.rangePadding() * 2));\n this.measureDataText();\n\n const itemSelection = this._renderElement.selectAll(\".item\")\n .data(this.data())\n ;\n const borderOffset1 = this.strokeWidth();\n const borderOffset2 = borderOffset1 * 2;\n itemSelection\n .join(\n enter => enter.append(\"g\")\n .attr(\"class\", \"item\")\n .on(\"click.selectionBag\", function (d, i) {\n const _id = d.id === undefined ? i : d.id;\n if (context._selection.isSelected({ _id, element: d.element })) {\n context._selection.clear();\n } else {\n context._selection.click(\n {\n _id,\n element: () => d.element\n },\n d3Event\n );\n }\n context.selectionChanged();\n d3Event().stopPropagation();\n })\n .on(\"click\", function (this: SVGElement, d) {\n const selected = d.element.classed(\"selected\");\n if (d[context.columns().length]) {\n d.__lparam = d[context.columns().length];\n }\n context.click(d, \"\", selected);\n })\n .on(\"dblclick\", function (this: SVGElement, d) {\n const selected = d.element.classed(\"selected\");\n if (d[context.columns().length]) {\n d.__lparam = d[context.columns().length];\n }\n context.click(d, \"\", selected);\n })\n .on(\"mousein\", function (d) {\n context.highlightItem(d3Select(this), d);\n const selected = d.element.classed(\"selected\");\n context.mousein(d, \"\", selected);\n })\n .on(\"mouseover\", function (d) {\n const d3evt = d3Event();\n context._tooltip._triggerElement = d.element;\n context._tooltip._cursorLoc = [\n d3evt.clientX,\n d3evt.clientY\n ];\n context._tooltip\n .data(d)\n .visible(true)\n .fitContent(true)\n .render()\n ;\n context.highlightItem(d3Select(this), d);\n const selected = d.element.classed(\"selected\");\n context.mouseover(d, \"\", selected);\n })\n .on(\"mouseout\", function (d) {\n context._tooltip\n .visible(false)\n .render()\n ;\n context.highlightItem(null, null);\n const selected = d.element.classed(\"selected\");\n context.mouseout(d, \"\", selected);\n })\n .each(function (d, i) {\n d.that = this;\n d.element = d3Select(this);\n d.x = context._interpolateX(d[1]);\n const endX = context._interpolateX(d[2]);\n if (context._series_idx > -1) {\n const seriesKey = d[context._series_idx];\n const bucket = context._bucketsBySeries[seriesKey].bucketMap[context._origIdxMap[seriesKey][i]];\n d.y = context._bucketsBySeries[seriesKey].interpolateY(bucket) + context._bucketsBySeries[seriesKey].bucketOffset;\n } else {\n const _i = context._bucket_idx === -1 ? i : d[context._bucket_idx];\n d.y = context._buckets.interpolateY(context._buckets.bucketMap[_i]);\n }\n d.props = {\n ...d[3],\n text: d[0]\n };\n d.props.width = endX - d.x;\n d.props.height = bucketHeight;\n d.x += borderOffset1;\n d.y += borderOffset1;\n d.props.width -= borderOffset2;\n d.props.height -= borderOffset2;\n d.element.attr(\"transform\", `translate(${d.x + (d.props.width / 2)} ${d.y + (d.props.height / 2)})`);\n }),\n update => update,\n exit => exit\n .each(function (d) {\n delete d.element;\n })\n .remove()\n )\n .attr(\"opacity\", d => d.props && d.props.hidden ? 0 : 1)\n .each(function (this: SVGGElement, d, i) {\n d.that = this;\n if (context._series_idx > -1) {\n const seriesKey = d[context._series_idx];\n d.x = context.renderRangeElement(d, i, false, context._rangeOptions, seriesKey);\n } else {\n d.x = context.renderRangeElement(d, i, false, context._rangeOptions);\n }\n })\n .on(\"dblclick.zoom\", d => {\n const x1 = this._interpolateX(d[1]);\n const x2 = this._interpolateX(d[2]);\n const xRange = x2 - x1;\n const xScale = w / xRange;\n this.zoomTo(\n [\n -x1 * xScale,\n 0\n ],\n xScale\n );\n })\n ;\n element.on(\"dblclick.zoom\", null);\n }\n renderRangeElement(d, i, transformEach = false, options: any = {}, seriesKey?: string) {\n const borderOffset1 = options.strokeWidth;\n const borderOffset2 = borderOffset1 * 2;\n const padding = options.rangePadding;\n let endX;\n const x = isNaN(this._transform.x) ? 0 : this._transform.x;\n const k = isNaN(this._transform.k) ? 1 : this._transform.k;\n let b;\n const bucketHeight = this.bucketHeight();\n d.that.setAttribute(\"data-series\", seriesKey);\n\n if (this._color_idx > -1) {\n d.that.setAttribute(\"data-color\", d[this._color_idx]);\n }\n\n if (seriesKey !== undefined) {\n b = this._bucketsBySeries[seriesKey].bucketMap[this._origIdxMap[seriesKey][i]];\n d.that.setAttribute(\"data-b\", b);\n d.that.setAttribute(\"data-bucketOffset\", this._bucketsBySeries[seriesKey].bucketOffset);\n d.y = this._bucketsBySeries[seriesKey].interpolateY(b) + this._bucketsBySeries[seriesKey].bucketOffset;\n d.that.setAttribute(\"data-dy\", d.y);\n } else {\n b = this._buckets.bucketMap[i];\n d.y = this._buckets.interpolateY(b);\n }\n if (this._color_idx > -1) {\n options.fill = d[this._color_idx];\n }\n if (!transformEach) {\n d.x = this._interpolateX(d[1]);\n endX = this._interpolateX(d[2]);\n d.props = {\n ...d[3],\n text: d[0]\n };\n d.props.width = (endX - d.x) / k;\n } else {\n d.x = this._interpolateX(d[1]) * k;\n endX = this._interpolateX(d[2]) * k;\n d.props = {\n ...d[3],\n text: d[0]\n };\n d.props.width = (endX - d.x) / k;\n d.x += x;\n d.props.width *= k;\n }\n d.props.height = bucketHeight;\n if (seriesKey === undefined && this._buckets.bucketScale < 1) {\n d.props.height = this._buckets.bucketScale * bucketHeight;\n }\n if (d.element === undefined && d.that) {\n d.element = d3Select(d.that);\n }\n d.element.attr(\"transform\", `translate(${d.x + (d.props.width / 2)} ${d.y + (d.props.height / 2)})`);\n\n d.x += borderOffset1;\n d.y += borderOffset1;\n d.props.width -= borderOffset2;\n d.props.height -= borderOffset2;\n d.props.width = d.props.width < 1 ? 1 : d.props.width;\n d.props.height = d.props.height < 1 ? 1 : d.props.height;\n\n let text = this.truncateText(d.props.text, d.props.width - padding, this._maxFontScale);\n\n if (text !== d.props.text) {\n text = this.truncateText(d.props.text, d.props.width - padding);\n } else {\n d.props.fontSize = this._maxFontScale * options.fontSize;\n }\n if (seriesKey === undefined && this._buckets.bucketScale < 1) {\n d.props.fontSize = Math.min(this._maxFontScale, this._buckets.bucketScale) * options.fontSize;\n }\n if (!this._maxY || this._maxY < d.y + d.props.height) {\n this._maxY = d.y + d.props.height;\n }\n if (!this._maxX || this._maxX < d.x + d.props.width) {\n this._maxX = d.x + d.props.width;\n }\n render(\n this._rangeRenderer,\n {\n ...options,\n ...d.props,\n text,\n },\n d.that\n );\n }\n\n setRangeOptions() {\n this._rangeOptions = {\n rangePadding: this.rangePadding(),\n fontFamily: this.fontFamily(),\n fontSize: this.fontSize(),\n strokeWidth: this.strokeWidth(),\n fill: this.fill(),\n stroke: this.stroke(),\n textFill: this.rangeFontColor(),\n cornerRadius: this.cornerRadius(),\n };\n }\n\n public _transform = { k: 1, x: 0, y: 0 };\n zoomed(transform) {\n this._transform = transform;\n switch (this.renderMode()) {\n case \"scale-all\":\n this._zoomScale = transform.k;\n this._zoomTranslate = [transform.x, 0];\n this._zoomG.attr(\"transform\", `translate(${transform.x} ${0})scale(${transform.k} 1)`);\n break;\n default:\n const options = this._rangeOptions;\n this.data().forEach((d, i) => {\n if (this._color_idx > -1) {\n options.fill = d[this._color_idx];\n }\n if (this._series_idx > -1) {\n const seriesKey = d[this._series_idx];\n this.renderRangeElement(d, i, true, options, seriesKey);\n } else {\n this.renderRangeElement(d, i, true, options);\n }\n });\n }\n\n this.zoomedHook(transform);\n }\n\n zoomedHook(transform) {\n\n }\n\n private calcBuckets(data, startKey: string | number, endKey: string | number, bucketKey?: string | number) {\n const bucketMap = {};\n const bucketKeyMap = {};\n const tol = this.overlapTolerence();\n const buckets = [{ end: -Infinity }];\n let maxBucket = 0;\n if (bucketKey !== undefined) {\n data.forEach((d, i) => {\n bucketMap[i] = d[bucketKey];\n bucketKeyMap[d[bucketKey]] = true;\n });\n maxBucket = Object.keys(bucketKeyMap).length;\n } else {\n data.forEach((d, i) => {\n for (let i2 = 0; i2 < buckets.length; ++i2) {\n if (i === 0 || buckets[i2][endKey] + tol <= d[startKey]) {\n bucketMap[i] = i2;\n if (maxBucket < i2) maxBucket = i2;\n buckets[i2][endKey] = d[endKey];\n break;\n }\n }\n if (bucketMap[i] === undefined) {\n bucketMap[i] = buckets.length;\n const b = {};\n b[endKey] = d[endKey];\n buckets.push(b as any);\n }\n\n if (maxBucket < bucketMap[i]) maxBucket = bucketMap[i];\n });\n }\n const height = (maxBucket + 1) * (this.bucketHeight() + this.gutter());\n return {\n bucketMap,\n maxBucket,\n bucketScale: this.height() / height,\n interpolateY: d3ScaleLinear()\n .domain([0, maxBucket + 1])\n .range([0, Math.min(this.height(), height)])\n };\n }\n\n data(): IGanttData[];\n data(_: IGanttData[]): this;\n data(_?: IGanttData[]): this | IGanttData[] {\n const retVal = super.data.apply(this, arguments);\n if (arguments.length > 0) {\n this._minStart = Math.min(...this.data().map(n => n[1])) ?? 0;\n this._maxEnd = Math.max(...this.data().map(n => n[2])) ?? 1;\n this.measureDataText(true);\n }\n return retVal;\n }\n\n protected _textWidths;\n protected _maxFontScale;\n protected _characterWidths;\n protected _prevFontFamily;\n protected _prevFontSize;\n measureDataText(forceMeasure = false) {\n const textWidths = {};\n const characterWidths = {};\n const fontFamily = this.fontFamily();\n const fontSize = this.fontSize();\n const bucketHeight = this.bucketHeight();\n\n if (bucketHeight) {\n this._maxFontScale = (bucketHeight - (this.rangePadding() * 2)) / fontSize;\n }\n\n if (forceMeasure || this._prevFontFamily !== fontFamily || this._prevFontSize !== fontSize) {\n characterWidths[\".\"] = Utility.textSize(\".\", fontFamily, fontSize).width;\n this.data().forEach(d => {\n if (!textWidths[d[0]]) {\n textWidths[d[0]] = Utility.textSize(d[0], fontFamily, fontSize).width;\n }\n d[0].split(\"\").forEach(char => {\n if (!characterWidths[char]) {\n characterWidths[char] = Utility.textSize(char, fontFamily, fontSize).width;\n }\n });\n });\n this._textWidths = textWidths;\n this._characterWidths = characterWidths;\n }\n this._prevFontFamily = fontFamily;\n this._prevFontSize = fontSize;\n }\n\n truncateText(text, width, scale = 1) {\n const textFits = this._textWidths[text] * scale < width;\n if (textFits) {\n return text;\n }\n let ret = \"\";\n let sum = 0;\n const _width = width - (this._characterWidths[\".\"] * 3);\n for (const char of text) {\n sum += this._characterWidths[char];\n if (sum < _width) {\n ret += char;\n } else {\n break;\n }\n }\n return _width < 0 ? \"\" : ret + \"...\";\n }\n\n resize(_size?: { width: number, height: number }) {\n let retVal;\n if (this.fitWidthToContent() || this.fitHeightToContent()) {\n retVal = super.resize.call(this, {\n width: _size.width,\n height: this._maxY\n });\n } else {\n retVal = super.resize.apply(this, arguments);\n }\n return retVal;\n }\n\n selectionChanged() {\n\n }\n\n highlightItem(_element, d) {\n\n }\n\n click(row, _col, sel) {\n\n }\n\n dblclick(row, _col, sel) {\n\n }\n\n mousein(row, _col, sel) {\n }\n\n mouseover(row, _col, sel) {\n }\n\n mouseout(row, _col, sel) {\n }\n}\nReactGantt.prototype._class += \" timeline_ReactGantt\";\n\nexport interface ReactGantt {\n titleColumn(): string;\n titleColumn(_: string): this;\n startDateColumn(): string;\n startDateColumn(_: string): this;\n endDateColumn(): string;\n endDateColumn(_: string): this;\n iconColumn(): string;\n iconColumn(_: string): this;\n colorColumn(): string;\n colorColumn(_: string): this;\n seriesColumn(): string;\n seriesColumn(_: string): this;\n bucketColumn(): string;\n bucketColumn(_: string): this;\n overlapTolerence(): number;\n overlapTolerence(_: number): this;\n smallestRangeWidth(): number;\n smallestRangeWidth(_: number): this;\n bucketHeight(): number;\n bucketHeight(_: number): this;\n gutter(): number;\n gutter(_: number): this;\n showToolbar_default(_: boolean): this;\n fontSize(): number;\n fontSize(_: number): this;\n fontFamily(): string;\n fontFamily(_: string): this;\n strokeWidth(): number;\n strokeWidth(_: number): this;\n stroke(): string;\n stroke(_: string): this;\n cornerRadius(): number;\n cornerRadius(_: number): this;\n fill(): string;\n fill(_: string): this;\n rangeFontColor(): string;\n rangeFontColor(_: string): this;\n rangePadding(): number;\n rangePadding(_: number): this;\n renderMode(): \"default\" | \"scale-all\";\n renderMode(_: \"default\" | \"scale-all\"): this;\n maxZoom(): number;\n maxZoom(_: number): this;\n fitWidthToContent(): boolean;\n fitWidthToContent(_: boolean): this;\n fitHeightToContent(): boolean;\n fitHeightToContent(_: boolean): this;\n evenSeriesBackground(): string;\n evenSeriesBackground(_: string): this;\n oddSeriesBackground(): string;\n oddSeriesBackground(_: string): this;\n}\n\nReactGantt.prototype.publish(\"fitWidthToContent\", false, \"boolean\", \"If true, resize will simply reapply the bounding box width\");\nReactGantt.prototype.publish(\"fitHeightToContent\", false, \"boolean\", \"If true, resize will simply reapply the bounding box height\");\nReactGantt.prototype.publish(\"titleColumn\", null, \"string\", \"Column name to for the title\");\nReactGantt.prototype.publish(\"startDateColumn\", null, \"string\", \"Column name to for the start date\");\nReactGantt.prototype.publish(\"endDateColumn\", null, \"string\", \"Column name to for the end date\");\nReactGantt.prototype.publish(\"iconColumn\", null, \"string\", \"Column name to for the icon\");\nReactGantt.prototype.publish(\"colorColumn\", null, \"string\", \"Column name to for the color\");\nReactGantt.prototype.publish(\"seriesColumn\", null, \"string\", \"Column name to for the series identifier\");\nReactGantt.prototype.publish(\"bucketColumn\", null, \"string\", \"Column name to for the bucket identifier\");\nReactGantt.prototype.publish(\"renderMode\", \"default\", \"set\", \"Render modes vary in features and performance\", [\"default\", \"scale-all\"]);\nReactGantt.prototype.publish(\"rangePadding\", 3, \"number\", \"Padding within each range rectangle (pixels)\");\nReactGantt.prototype.publish(\"fill\", \"#1f77b4\", \"string\", \"Background color of range rectangle\");\nReactGantt.prototype.publish(\"stroke\", null, \"string\", \"Color of range rectangle border\");\nReactGantt.prototype.publish(\"strokeWidth\", null, \"number\", \"Width of range rectangle border (pixels)\");\nReactGantt.prototype.publish(\"cornerRadius\", 3, \"number\", \"Space between range buckets (pixels)\");\nReactGantt.prototype.publish(\"fontFamily\", null, \"string\", \"Font family within range rectangle\", null, { optional: true });\nReactGantt.prototype.publish(\"fontSize\", 10, \"number\", \"Size of font within range rectangle (pixels)\");\nReactGantt.prototype.publish(\"rangeFontColor\", \"#ecf0f1\", \"html-color\", \"rangeFontColor\");\nReactGantt.prototype.publish(\"overlapTolerence\", 2, \"number\", \"overlapTolerence\");\nReactGantt.prototype.publish(\"smallestRangeWidth\", 10, \"number\", \"Width of the shortest range (pixels)\");\nReactGantt.prototype.publish(\"bucketHeight\", 100, \"number\", \"Max height of range element (pixels)\");\nReactGantt.prototype.publish(\"gutter\", 2, \"number\", \"Space between range buckets (pixels)\");\nReactGantt.prototype.publish(\"maxZoom\", 16, \"number\", \"Maximum zoom\");\nReactGantt.prototype.publish(\"evenSeriesBackground\", \"#FFFFFF\", \"html-color\", \"Background color of even series rows\");\nReactGantt.prototype.publish(\"oddSeriesBackground\", \"#DDDDDD\", \"html-color\", \"Background color of odd series rows\");\n","import { Axis } from \"@hpcc-js/chart\";\nimport { SVGWidget } from \"@hpcc-js/common\";\nimport { ReactGantt } from \"./ReactGantt\";\n\nexport type IAxisGanttData = [string, number | string, number | string, any?] | any[];\n\nexport class ReactAxisGantt extends SVGWidget {\n\n protected _topAxis: Axis = new Axis(\"center\")\n .orientation(\"top\")\n .type(\"linear\")\n .shrinkToFit(\"none\")\n .overlapMode(\"hide\")\n .extend(0)\n .tickFormat(\"d\")\n ;\n protected _gantt: ReactGantt = new ReactGantt(\"center\")\n .stroke(\"#000000\")\n ;\n protected _bottomAxis: Axis = new Axis(\"center\")\n .orientation(\"bottom\")\n .type(\"linear\")\n .shrinkToFit(\"none\")\n .overlapMode(\"hide\")\n .extend(0)\n .tickFormat(\"d\")\n ;\n\n protected _topAxisElement;\n protected _contentElement;\n protected _bottomAxisElement;\n protected _topRect;\n protected _contentRect;\n protected _bottomRect;\n\n protected rangeRenderer;\n\n constructor() {\n super();\n this._drawStartPos = \"origin\";\n this.rangeRenderer = function () {\n const ret = this._gantt.rangeRenderer.apply(this._gantt, arguments);\n if (!arguments.length) return ret;\n return this;\n };\n }\n\n selection(_: any[]): this;\n selection(): any[];\n selection(_?: any[]): any[] | this {\n if (!arguments.length) return this._gantt.selection();\n this._gantt.selection(_);\n return this;\n }\n\n resizeWrappers() {\n\n const w = this.width();\n const h = this.height();\n\n const axisHeight = this.axisHeight(); //TODO: Dynamic scaling to allow for small resolutions?\n\n const contentHeight = (h - (axisHeight * 2));\n const borderOffset1 = this.strokeWidth();\n this._topRect\n .attr(\"height\", axisHeight)\n .attr(\"width\", w)\n .attr(\"fill\", \"transparent\")\n ;\n this._topAxisElement.attr(\"transform\", \"translate(0 0)\");\n this._topAxis.resize({ height: axisHeight, width: w });\n this._contentRect\n .attr(\"height\", contentHeight)\n .attr(\"width\", w)\n .attr(\"fill\", \"transparent\")\n ;\n this._contentElement.attr(\"transform\", `translate(0 ${axisHeight + borderOffset1})`);\n this._gantt.resize({ height: contentHeight, width: w });\n this._bottomRect\n .attr(\"height\", axisHeight)\n .attr(\"width\", w)\n .attr(\"fill\", \"transparent\")\n ;\n this._bottomAxisElement.attr(\"transform\", `translate(0 ${axisHeight + contentHeight + borderOffset1})`);\n this._bottomAxis.resize({ height: axisHeight, width: w });\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n\n this._gantt.click = (row, col, sel) => {\n this.click(row, col, sel);\n };\n\n this._gantt.dblclick = (row, col, sel) => {\n this.dblclick(row, col, sel);\n };\n\n this._topAxisElement = element.append(\"g\")\n .attr(\"class\", \"top-axis-wrapper\")\n ;\n this._topRect = this._topAxisElement.append(\"rect\")\n .attr(\"class\", \"top-axis-rect\")\n ;\n this._contentElement = element.append(\"g\")\n .attr(\"class\", \"content-wrapper\")\n ;\n this._contentRect = this._contentElement.append(\"rect\")\n .attr(\"class\", \"content-rect\")\n ;\n this._bottomAxisElement = element.append(\"g\")\n .attr(\"class\", \"bottom-axis-wrapper\")\n ;\n this._bottomRect = this._bottomAxisElement.append(\"rect\")\n .attr(\"class\", \"top-axis-rect\")\n ;\n this._topAxis.target(this._topAxisElement.node());\n this._gantt.target(this._contentElement.node()).bucketHeight(30);\n this._bottomAxis.target(this._bottomAxisElement.node());\n\n this.resizeWrappers();\n\n this._gantt.zoomedHook = (transform) => {\n this.onzoom(transform);\n };\n }\n\n onzoom(transform) {\n\n const w = this.width();\n const low = this._gantt._minStart;\n const high = this._gantt._maxEnd;\n const range = high - low;\n const wpp = range / w;\n const nextLow = Math.floor(low - (wpp * (transform.x / transform.k)));\n const nextHigh = Math.ceil((range / transform.k) + nextLow);\n\n this._topAxis\n .fontFamily(this.axisFontFamily())\n .fontSize(this.axisFontSize())\n .tickLength(this.axisTickLength())\n .low(nextLow)\n .high(nextHigh)\n .render()\n ;\n this._bottomAxis\n .fontFamily(this.axisFontFamily())\n .fontSize(this.axisFontSize())\n .tickLength(this.axisTickLength())\n .low(nextLow)\n .high(nextHigh)\n .render()\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n this._topAxis.tickFormat(this.tickFormat()).render();\n this._bottomAxis.tickFormat(this.tickFormat()).render();\n this._gantt.render();\n }\n\n columns(): string[];\n columns(_: string[]): this;\n columns(_?: string[]): this | string[] {\n const retVal = super.columns.apply(this, arguments);\n if (arguments.length > 0) {\n this._gantt.columns(_);\n }\n return retVal;\n }\n\n data(): IAxisGanttData[];\n data(_: IAxisGanttData[]): this;\n data(_?: IAxisGanttData[]): this | IAxisGanttData[] {\n const retVal = super.data.apply(this, arguments);\n if (arguments.length > 0) {\n const ganttData: any[] = this.data().map(n => {\n const ret = [...n];\n ret[1] = isNaN(n[1] as any) ? new Date(n[1]).getTime() : Number(n[1]);\n ret[2] = isNaN(n[2] as any) ? new Date(n[2]).getTime() : Number(n[2]);\n return ret;\n });\n this._gantt._minStart = Math.min(...ganttData.map(n => n[1])) ?? 0;\n this._gantt._maxEnd = Math.max(...ganttData.map(n => n[2])) ?? 1;\n this._gantt.data(ganttData);\n }\n return retVal;\n }\n\n resize(_size?: { width: number, height: number }) {\n const retVal = super.resize.apply(this, arguments);\n\n if (this._topAxisElement) {\n this.resizeWrappers();\n }\n\n return retVal;\n }\n\n click(row, col, sel) {\n\n }\n\n dblclick(row, col, sel) {\n\n }\n\n tooltip() {\n return this._gantt._tooltip;\n }\n}\nReactAxisGantt.prototype._class += \" timeline_ReactAxisGantt\";\n\nexport interface ReactAxisGantt {\n tickFormat(): string;\n tickFormat(_: string): this;\n tickFormat_exists(): boolean;\n overlapTolerence(): number;\n overlapTolerence(_: number): this;\n smallestRangeWidth(): number;\n smallestRangeWidth(_: number): this;\n scaleMode(): boolean;\n scaleMode(_: boolean): this;\n fontSize(): number;\n fontSize(_: number): this;\n fontFamily(): string;\n fontFamily(_: string): this;\n strokeWidth(): number;\n strokeWidth(_: number): this;\n stroke(): string;\n stroke(_: string): this;\n cornerRadius(): number;\n cornerRadius(_: number): this;\n axisFontSize(): number;\n axisFontSize(_: number): this;\n axisFontFamily(): string;\n axisFontFamily(_: string): this;\n axisTickLength(): number;\n axisTickLength(_: number): this;\n axisHeight(): number;\n axisHeight(_: number): this;\n titleColumn(): string;\n titleColumn(_: string): this;\n startDateColumn(): string;\n startDateColumn(_: string): this;\n endDateColumn(): string;\n endDateColumn(_: string): this;\n iconColumn(): string;\n iconColumn(_: string): this;\n colorColumn(): string;\n colorColumn(_: string): this;\n bucketColumn(): string;\n bucketColumn(_: string): this;\n maxZoom(): number;\n maxZoom(_: number): this;\n}\nReactAxisGantt.prototype.publish(\"tickFormat\", null, \"string\", \"Format rule applied to axis tick labels\", undefined, { optional: true });\nReactAxisGantt.prototype.publish(\"axisHeight\", 22, \"number\", \"Height of axes (pixels)\");\nReactAxisGantt.prototype.publish(\"overlapTolerence\", 2, \"number\", \"overlapTolerence\");\nReactAxisGantt.prototype.publish(\"smallestRangeWidth\", 10, \"number\", \"Width of the shortest range (pixels)\");\nReactAxisGantt.prototype.publish(\"axisFontSize\", null, \"number\", \"Font size of axis tick labels\");\nReactAxisGantt.prototype.publish(\"axisFontFamily\", null, \"string\", \"Font family of axis tick labels\");\nReactAxisGantt.prototype.publish(\"axisTickLength\", null, \"number\", \"Length of axis ticks\");\nReactAxisGantt.prototype.publishProxy(\"gutter\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"renderMode\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"strokeWidth\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"fontSize\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"fontFamily\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"stroke\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"cornerRadius\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"titleColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"startDateColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"endDateColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"iconColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"colorColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"bucketColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"maxZoom\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"bucketHeight\", \"_gantt\");\n","import { min as d3Min, max as d3Max } from \"d3-array\";\nimport { Axis } from \"@hpcc-js/chart\";\nimport { Border2 } from \"@hpcc-js/layout\";\nimport { ReactGantt } from \"./ReactGantt\";\nimport { IAxisGanttData } from \"./ReactAxisGantt\";\nimport { React } from \"@hpcc-js/react\";\n\nexport class ReactAxisGanttSeries extends Border2 {\n\n protected _topAxis: Axis = new Axis(\"origin\")\n .orientation(\"top\")\n .type(\"linear\")\n .shrinkToFit(\"none\")\n .overlapMode(\"hide\")\n .extend(0)\n .tickFormat(\"d\")\n ;\n protected _gantt: ReactGantt = new ReactGantt(\"origin\")\n .stroke(\"#000000\")\n .fitHeightToContent(true)\n ;\n protected _bottomAxis: Axis = new Axis(\"origin\")\n .orientation(\"bottom\")\n .type(\"linear\")\n .shrinkToFit(\"none\")\n .overlapMode(\"hide\")\n .extend(0)\n .tickFormat(\"d\")\n ;\n\n protected _topAxisElement;\n protected _contentElement;\n protected _bottomAxisElement;\n protected _topRect;\n protected _contentRect;\n protected _bottomRect;\n\n constructor() {\n super();\n this.centerOverflowX_default(\"hidden\");\n this.centerOverflowY_default(\"auto\");\n }\n\n selection(_: any[]): this;\n selection(): any[];\n selection(_?: any[]): any[] | this {\n if (!arguments.length) return this._gantt.selection();\n this._gantt.selection(_);\n return this;\n }\n\n rangeRenderer(): React.FunctionComponent;\n rangeRenderer(_: React.FunctionComponent): this;\n rangeRenderer(_?: React.FunctionComponent): this | React.FunctionComponent {\n const ret = this._gantt.rangeRenderer.apply(this._gantt, arguments);\n if (!arguments.length) return ret;\n return this;\n }\n\n resizeWrappers() {\n\n const w = this.width();\n const h = this.height();\n\n const axisHeight = this.axisHeight(); //TODO: Dynamic scaling to allow for small resolutions?\n const contentHeight = (h - (axisHeight * 2));\n\n this.bottomHeight(axisHeight);\n\n this._topWA.resize({\n width: w,\n height: axisHeight\n });\n this._centerWA.resize({\n width: w,\n height: contentHeight\n });\n this._bottomWA.resize({\n width: w,\n height: axisHeight\n });\n this.top().render();\n this.bottom().render();\n this.center().render();\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n\n this._gantt.click = (row, col, sel) => {\n this.click(row, col, sel);\n };\n\n this._gantt.dblclick = (row, col, sel) => {\n this.dblclick(row, col, sel);\n };\n\n this.top(this._topAxis);\n this.center(this._gantt);\n this.bottom(this._bottomAxis);\n\n this.resizeWrappers();\n\n this._gantt.zoomedHook = (transform) => {\n this.onzoom(transform);\n };\n }\n\n onzoom(transform) {\n const w = this.width();\n const low = this._gantt._minStart;\n const high = this._gantt._maxEnd;\n const range = high - low;\n const wpp = range / w;\n const nextLow = Math.floor(low - (wpp * (transform.x / transform.k)));\n const nextHigh = Math.ceil((range / transform.k) + nextLow);\n\n this._topAxis\n .fontFamily(this.axisFontFamily())\n .fontSize(this.axisFontSize())\n .tickLength(this.axisTickLength())\n .low(nextLow)\n .high(nextHigh)\n .lazyRender()\n ;\n this._bottomAxis\n .fontFamily(this.axisFontFamily())\n .fontSize(this.axisFontSize())\n .tickLength(this.axisTickLength())\n .low(nextLow)\n .high(nextHigh)\n .lazyRender()\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n this._topAxis.tickFormat(this.tickFormat()).render();\n this._bottomAxis.tickFormat(this.tickFormat()).render();\n this._gantt.render();\n }\n\n columns(): string[];\n columns(_: string[]): this;\n columns(_?: string[]): this | string[] {\n const retVal = super.columns.apply(this, arguments);\n if (arguments.length > 0) {\n this._gantt.columns(_);\n }\n return retVal;\n }\n\n data(): IAxisGanttData[];\n data(_: IAxisGanttData[]): this;\n data(_?: IAxisGanttData[]): this | IAxisGanttData[] {\n const retVal = super.data.apply(this, arguments);\n if (arguments.length > 0) {\n const ganttData: any[] = this.data().map(n => {\n const ret = [...n];\n ret[1] = isNaN(n[1] as any) ? new Date(n[1]).getTime() : Number(n[1]);\n ret[2] = isNaN(n[2] as any) ? new Date(n[2]).getTime() : Number(n[2]);\n return ret;\n });\n\n this._gantt._minStart = d3Min(ganttData, n => n[1]);\n this._gantt._maxEnd = d3Max(ganttData, n => n[2]);\n this._gantt.data(ganttData);\n }\n return retVal;\n }\n\n resize(_size?: { width: number, height: number }) {\n const retVal = super.resize.apply(this, arguments);\n\n if (this._topAxisElement) {\n this.resizeWrappers();\n }\n\n return retVal;\n }\n\n click(row, col, sel) {\n\n }\n\n dblclick(row, col, sel) {\n\n }\n\n tooltip() {\n return this._gantt._tooltip;\n }\n}\nReactAxisGanttSeries.prototype._class += \" timeline_ReactAxisGanttSeries\";\n\nexport interface ReactAxisGanttSeries {\n tickFormat(): string;\n tickFormat(_: string): this;\n tickFormat_exists(): boolean;\n overlapTolerence(): number;\n overlapTolerence(_: number): this;\n smallestRangeWidth(): number;\n smallestRangeWidth(_: number): this;\n scaleMode(): boolean;\n scaleMode(_: boolean): this;\n fontSize(): number;\n fontSize(_: number): this;\n fontFamily(): string;\n fontFamily(_: string): this;\n strokeWidth(): number;\n strokeWidth(_: number): this;\n stroke(): string;\n stroke(_: string): this;\n cornerRadius(): number;\n cornerRadius(_: number): this;\n axisFontSize(): number;\n axisFontSize(_: number): this;\n axisFontFamily(): string;\n axisFontFamily(_: string): this;\n axisTickLength(): number;\n axisTickLength(_: number): this;\n axisHeight(): number;\n axisHeight(_: number): this;\n titleColumn(): string;\n titleColumn(_: string): this;\n startDateColumn(): string;\n startDateColumn(_: string): this;\n endDateColumn(): string;\n endDateColumn(_: string): this;\n iconColumn(): string;\n iconColumn(_: string): this;\n colorColumn(): string;\n colorColumn(_: string): this;\n seriesColumn(): string;\n seriesColumn(_: string): this;\n bucketColumn(): string;\n bucketColumn(_: string): this;\n maxZoom(): number;\n maxZoom(_: number): this;\n}\nReactAxisGanttSeries.prototype.publish(\"tickFormat\", null, \"string\", \"Format rule applied to axis tick labels\", undefined, { optional: true });\nReactAxisGanttSeries.prototype.publish(\"axisHeight\", 22, \"number\", \"Height of axes (pixels)\");\nReactAxisGanttSeries.prototype.publish(\"overlapTolerence\", 2, \"number\", \"overlapTolerence\");\nReactAxisGanttSeries.prototype.publish(\"smallestRangeWidth\", 10, \"number\", \"Width of the shortest range (pixels)\");\nReactAxisGanttSeries.prototype.publish(\"axisFontSize\", null, \"number\", \"Font size of axis tick labels\");\nReactAxisGanttSeries.prototype.publish(\"axisFontFamily\", null, \"string\", \"Font family of axis tick labels\");\nReactAxisGanttSeries.prototype.publish(\"axisTickLength\", null, \"number\", \"Length of axis ticks\");\nReactAxisGanttSeries.prototype.publishProxy(\"gutter\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"renderMode\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"strokeWidth\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"fontSize\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"fontFamily\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"stroke\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"cornerRadius\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"titleColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"startDateColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"endDateColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"iconColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"colorColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"seriesColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"bucketColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"maxZoom\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"evenSeriesBackground\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"oddSeriesBackground\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"bucketHeight\", \"_gantt\");\n","import { timeFormat as d3TimeFormat, timeParse as d3TimeParse } from \"d3-time-format\";\nimport { ReactAxisGantt } from \"./ReactAxisGantt\";\n\nexport class ReactTimeline extends ReactAxisGantt {\n\n protected _axisLabelFormatter;//TODO: add a type to this? d3 time formatting function type?\n\n constructor(){\n super();\n this._drawStartPos = \"origin\";\n this._topAxis.type(\"time\");\n this._bottomAxis.type(\"time\");\n\n this.tooltipHTML((d: any) => {\n const parser = d3TimeParse(\"%Q\");\n const startTime = parser(d[1]);\n const endTime = parser(d[2]);\n\n const formatter = d3TimeFormat(this.tooltipTimeFormat());\n return `<div style=\"text-align:center;\">${d[0]}<br/><br/>${formatter(startTime)} -&gt; ${formatter(endTime)}</div>`;\n });\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n if(this.timePattern_exists()) {\n\n let minTimestamp = Infinity;\n let maxTimestamp = -Infinity;\n let lowDateStr = \"\";\n let highDateStr = \"\";\n this.data().map(n=>{\n const start = new Date(n[1]).getTime();\n const end = new Date(n[2]).getTime();\n if(minTimestamp > start){\n minTimestamp = start;\n lowDateStr = \"\" + n[1];\n }\n if(maxTimestamp < end){\n maxTimestamp = end;\n highDateStr = \"\" + n[2];\n }\n });\n this._topAxis\n .type(\"time\")\n .timePattern(this.timePattern())\n .overlapMode(\"none\")\n .tickFormat(this._axisLabelFormatter)\n .low(lowDateStr)\n .high(highDateStr)\n ;\n this._bottomAxis\n .type(\"time\")\n .timePattern(this.timePattern())\n .overlapMode(\"none\")\n .tickFormat(this._axisLabelFormatter)\n .low(lowDateStr)\n .high(highDateStr)\n ;\n this._gantt._minStart = minTimestamp;\n this._gantt._maxEnd = maxTimestamp;\n }\n }\n\n tooltipHTML(callback) {\n this._tooltipHTML = callback;\n this.tooltip().tooltipHTML(this._tooltipHTML);\n return this;\n }\n\n parseAxisValue(v) {\n const parseTime = d3TimeParse(\"%Q\");\n const parsedTime = parseTime(v);\n\n const formatTime = d3TimeFormat(this.timePattern());\n return formatTime(parsedTime);\n }\n\n onzoom(transform) {\n \n const w = this.width();\n const low = this._gantt._minStart;\n const high = this._gantt._maxEnd;\n const range = high - low;\n const wpp = range / w;\n const nextLow = Math.floor(low - (wpp * (transform.x / transform.k)));\n const nextHigh = Math.ceil((range / transform.k) + nextLow);\n\n this._topAxis\n .low(this.parseAxisValue(nextLow))\n .high(this.parseAxisValue(nextHigh))\n .render()\n ;\n this._bottomAxis\n .low(this.parseAxisValue(nextLow))\n .high(this.parseAxisValue(nextHigh))\n .render()\n ;\n }\n\n _tooltipHTML: (_) => string;\n}\nReactTimeline.prototype._class += \" timeline_ReactTimeline\";\n\nexport interface ReactTimeline {\n timePattern(): string;\n timePattern(_: string): this;\n timePattern_exists(): boolean;\n tooltipTimeFormat(): string;\n tooltipTimeFormat(_: string): this;\n}\nReactTimeline.prototype.publish(\"timePattern\", \"%Y-%m-%d\", \"string\", \"Time pattern used for parsing datetime strings on each data row\", null, {optional:true});\nReactTimeline.prototype.publish(\"tooltipTimeFormat\", \"%Y-%m-%d\", \"string\", \"Time format used in the default html tooltip\");\n\n","import { timeFormat as d3TimeFormat, timeParse as d3TimeParse } from \"d3-time-format\";\nimport { ReactAxisGanttSeries } from \"./ReactAxisGanttSeries\";\n\nconst parseTime = d3TimeParse(\"%Q\");\nexport class ReactTimelineSeries extends ReactAxisGanttSeries {\n\n protected _axisLabelFormatter;//TODO: add a type to this? d3 time formatting function type?\n\n constructor(){\n super();\n this._topAxis.type(\"time\");\n this._bottomAxis.type(\"time\");\n\n this.tooltipHTML((d: any) => {\n const startTime = parseTime(d[1]);\n const endTime = parseTime(d[2]);\n\n const formatter = d3TimeFormat(this.tooltipTimeFormat());\n return `<div style=\"text-align:center;\">${d[0]}<br/><br/>${formatter(startTime)} -&gt; ${formatter(endTime)}</div>`;\n });\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n if(this.timePattern_exists()) {\n\n let minTimestamp = Infinity;\n let maxTimestamp = -Infinity;\n let lowDateStr = \"\";\n let highDateStr = \"\";\n this.data().forEach(n=>{\n const start = new Date(n[1]).getTime();\n const end = new Date(n[2]).getTime();\n if(minTimestamp > start){\n minTimestamp = start;\n lowDateStr = \"\" + n[1];\n }\n if(maxTimestamp < end){\n maxTimestamp = end;\n highDateStr = \"\" + n[2];\n }\n });\n this._topAxis\n .type(\"time\")\n .timePattern(this.timePattern())\n .overlapMode(\"none\")\n .tickFormat(this._axisLabelFormatter)\n .low(lowDateStr)\n .high(highDateStr)\n ;\n this._bottomAxis\n .type(\"time\")\n .timePattern(this.timePattern())\n .overlapMode(\"none\")\n .tickFormat(this._axisLabelFormatter)\n .low(lowDateStr)\n .high(highDateStr)\n ;\n this._gantt._minStart = minTimestamp;\n this._gantt._maxEnd = maxTimestamp;\n }\n }\n\n tooltipHTML(callback) {\n this._tooltipHTML = callback;\n this.tooltip().tooltipHTML(this._tooltipHTML);\n return this;\n }\n\n parseAxisValue(v) {\n const parsedTime = parseTime(v);\n\n const formatTime = d3TimeFormat(this.timePattern());\n return formatTime(parsedTime);\n }\n\n onzoom(transform) {\n \n const w = this.width();\n const low = this._gantt._minStart;\n const high = this._gantt._maxEnd;\n const range = high - low;\n const wpp = range / w;\n const nextLow = Math.floor(low - (wpp * (transform.x / transform.k)));\n const nextHigh = Math.ceil((range / transform.k) + nextLow);\n\n this._topAxis\n .low(this.parseAxisValue(nextLow))\n .high(this.parseAxisValue(nextHigh))\n .render()\n ;\n this._bottomAxis\n .low(this.parseAxisValue(nextLow))\n .high(this.parseAxisValue(nextHigh))\n .render()\n ;\n }\n\n _tooltipHTML: (_) => string;\n}\nReactTimelineSeries.prototype._class += \" timeline_ReactTimelineSeries\";\n\nexport interface ReactTimelineSeries {\n timePattern(): string;\n timePattern(_: string): this;\n timePattern_exists(): boolean;\n tooltipTimeFormat(): string;\n tooltipTimeFormat(_: string): this;\n}\nReactTimelineSeries.prototype.publish(\"timePattern\", \"%Y-%m-%d\", \"string\", \"Time pattern used for parsing datetime strings on each data row\", null, {optional:true});\nReactTimelineSeries.prototype.publish(\"tooltipTimeFormat\", \"%Y-%m-%d\", \"string\", \"Time format used in the default html tooltip\");\n\n"],"names":["d3Local","ITooltip","Utility","Axis","d3ScaleBand","d3Extent","d3TimeParse","d3TimeFormat","d3ZoomIdentity","d3Event","d3Zoom","d3Select","EntityPin","EntityRect","SVGWidget","LabelledRect","HTMLTooltip","d3ScaleLinear","render","SVGZoomWidget","d3Min","d3Max","Border2"],"mappings":"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","x_google_ignoreList":[1,2]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/__package__.ts", "../src/MiniGantt.ts", "../src/MiniGantt.css", "../src/ReactGantt.ts", "../src/ReactAxisGantt.ts", "../src/ReactAxisGanttSeries.ts", "../src/ReactTimeline.ts", "../src/ReactTimelineSeries.ts"],
4
+ "sourcesContent": ["export const PKG_NAME = \"@hpcc-js/timeline\";\nexport const PKG_VERSION = \"3.0.0\";\nexport const BUILD_VERSION = \"3.2.0\";\n", "import { ITooltip } from \"@hpcc-js/api\";\nimport { Axis } from \"@hpcc-js/chart\";\nimport { d3Event, EntityPin, EntityRect, local as d3Local, select as d3Select, SVGWidget, Utility } from \"@hpcc-js/common\";\nimport { extent as d3Extent } from \"d3-array\";\nimport { scaleBand as d3ScaleBand } from \"d3-scale\";\nimport { timeFormat as d3TimeFormat, timeParse as d3TimeParse } from \"d3-time-format\";\nimport { zoom as d3Zoom, zoomIdentity as d3ZoomIdentity } from \"d3-zoom\";\n\nimport \"../src/MiniGantt.css\";\n\nexport class MiniGantt extends SVGWidget {\n protected tlAxis: Axis;\n protected brAxis: Axis;\n protected verticalBands;\n protected _zoom;\n protected gUpperContent;\n protected gUpperAxis;\n protected gMiddleContent;\n protected gLowerAxis;\n protected gLowerContent;\n private localRect = d3Local<EntityRect>();\n private localEntityPin = d3Local<EntityPin>();\n private tooltipFormatter: (date: Date) => string;\n private _dateCache;\n\n protected rootExtent;\n protected _title_idx = 0;\n protected _startDate_idx = 1;\n protected _endDate_idx = 2;\n protected _icon_idx = -1;\n protected _color_idx = -1;\n protected _yoffset_idx = -1;\n\n constructor() {\n super();\n ITooltip.call(this);\n Utility.SimpleSelectionMixin.call(this);\n\n this._drawStartPos = \"origin\";\n this.tooltipHTML((d: any) => `<center>${d[this._title_idx]}</center><br>${this.tooltipFormatter(this.brAxis.parse(d[this._startDate_idx]))} -> ${this.tooltipFormatter(this.brAxis.parse(d[this._endDate_idx]))}`);\n\n this.tlAxis = new Axis()\n .type(\"time\")\n ;\n this.brAxis = new Axis()\n .type(\"time\")\n ;\n this.verticalBands = d3ScaleBand()\n .paddingOuter(0.2)\n .paddingInner(0.2)\n ;\n }\n\n isHorizontal(): boolean {\n return this.orientation() === \"horizontal\";\n }\n\n fullExtent() {\n const data = [...this.data().map(d => d[this._startDate_idx]), ...this.data().filter(d => !!d[this._endDate_idx]).map(d => d[this._endDate_idx])];\n return d3Extent(data);\n }\n\n extent() {\n const extent = this.rootExtent ? [this.rootExtent[1], this.rootExtent[2]] : this.fullExtent();\n if (extent[0] !== undefined && extent[1] !== undefined) {\n if (extent[0] === extent[1] || this.centerOnMostRecent()) {\n const parser = d3TimeParse(this.timePattern());\n const formatter = d3TimeFormat(this.timePattern());\n const date1 = parser(extent[0]);\n const date2 = parser(extent[1]);\n if (extent[0] === extent[1]) {\n extent[0] = formatter(new Date(date1.setFullYear(date1.getFullYear() - 1)));\n extent[1] = formatter(new Date(date1.setFullYear(date1.getFullYear() + 2)));\n } else {\n const time1 = date1.getTime();\n const timeDiff = date2.getTime() - time1;\n extent[0] = formatter(date1);\n extent[1] = formatter(new Date(time1 + (timeDiff * 2)));\n }\n }\n }\n return extent;\n }\n\n dataStartPos(d) {\n if (typeof this._dateCache[d[this._startDate_idx]] !== \"undefined\") {\n return this._dateCache[d[this._startDate_idx]];\n }\n const pos = this.brAxis.scalePos(d[this._startDate_idx]);\n this._dateCache[d[this._startDate_idx]] = pos;\n return pos;\n }\n\n dataEndPos(d) {\n if (typeof this._dateCache[d[this._endDate_idx]] !== \"undefined\") {\n return this._dateCache[d[this._endDate_idx]];\n }\n const pos = this.brAxis.scalePos(d[this._endDate_idx]);\n this._dateCache[d[this._endDate_idx]] = pos;\n return pos;\n }\n\n dataWidth(d) {\n return this.dataEndPos(d) - this.dataStartPos(d);\n }\n\n private transform;\n resetZoom() {\n // Triggers a \"zoomed\" event ---\n this._zoom.transform(this.element(), d3ZoomIdentity.translate(0, this.isHorizontal() ? 0 : this.height()));\n }\n\n zoomed() {\n this.transform = d3Event().transform;\n this.render();\n }\n\n private background;\n enter(domNode, element) {\n super.enter(domNode, element);\n this._zoom = d3Zoom()\n .scaleExtent([0, this.maxZoom()])\n .on(\"zoom\", () => {\n this.zoomed();\n })\n ;\n\n this.background = element.append(\"rect\")\n .attr(\"fill\", \"white\")\n .attr(\"opacity\", 0)\n .on(\"dblclick\", () => {\n d3Event().stopPropagation();\n delete this.rootExtent;\n this.resetZoom();\n })\n ;\n this.gUpperContent = element.append(\"g\").attr(\"class\", \"gUpperContent\");\n this.gUpperAxis = element.append(\"g\").attr(\"class\", \"gUpperAxis\");\n this.gMiddleContent = element.append(\"g\").attr(\"class\", \"gMiddleContent\");\n this.gLowerAxis = element.append(\"g\").attr(\"class\", \"gLowerAxis\");\n this.gLowerContent = element.append(\"g\").attr(\"class\", \"gLowerContent\");\n this.tlAxis\n .target(this.gUpperAxis.node())\n .tickFormat(this.tickFormat())\n .guideTarget(this.gUpperAxis.append(\"g\").node())\n .shrinkToFit(\"none\")\n .overlapMode(this.tickFormat_exists() ? \"stagger\" : \"none\")\n .extend(0.1)\n ;\n this.brAxis\n .target(this.gLowerAxis.node())\n .tickFormat(this.tickFormat())\n .guideTarget(this.gLowerAxis.append(\"g\").node())\n .shrinkToFit(\"none\")\n .overlapMode(this.tickFormat_exists() ? \"stagger\" : \"none\")\n .extend(0.1)\n ;\n\n element.call(this._zoom);\n this._selection.widgetElement(this.gMiddleContent);\n }\n\n private _prevIsHorizontal;\n update(domNode, element) {\n super.update(domNode, element);\n\n this._dateCache = {};\n\n this._title_idx = this.titleColumn() !== null ? this.columns().indexOf(this.titleColumn()) : this._title_idx;\n this._startDate_idx = this.startDateColumn() !== null ? this.columns().indexOf(this.startDateColumn()) : this._startDate_idx;\n this._endDate_idx = this.endDateColumn() !== null ? this.columns().indexOf(this.endDateColumn()) : this._endDate_idx;\n this._icon_idx = this.iconColumn() !== null ? this.columns().indexOf(this.iconColumn()) : this._icon_idx;\n this._color_idx = this.colorColumn() !== null ? this.columns().indexOf(this.colorColumn()) : this._color_idx;\n this._yoffset_idx = this.yOffsetColumn() !== null ? this.columns().indexOf(this.yOffsetColumn()) : this._yoffset_idx;\n\n if (this._prevIsHorizontal !== this.isHorizontal()) {\n this._prevIsHorizontal = this.isHorizontal();\n this.resetZoom();\n return;\n }\n\n this.tooltipFormatter = d3TimeFormat(this.tooltipTimeFormat());\n\n const width = this.width();\n const height = this.height();\n\n this.background\n .attr(\"x\", 0)\n .attr(\"y\", 0)\n .attr(\"width\", width)\n .attr(\"height\", height)\n ;\n\n const extent = this.extent();\n this.tlAxis\n .x(width / 2)\n .orientation(this.isHorizontal() ? \"top\" : \"left\")\n .reverse(!this.isHorizontal())\n .timePattern(this.timePattern()) // \"%Y-%m-%dT%H:%M:%S.%LZ\"\n .width(width - 1)\n .low(extent[0])\n .high(extent[1])\n .updateScale()\n ;\n\n this.brAxis\n .x(width / 2)\n .y(height / 2)\n .orientation(this.isHorizontal() ? \"bottom\" : \"right\")\n .reverse(!this.isHorizontal())\n .timePattern(this.timePattern()) // \"%Y-%m-%dT%H:%M:%S.%LZ\"\n .width(width - 1)\n .height(height)\n .low(extent[0])\n .high(extent[1])\n .updateScale()\n ;\n\n if (this.transform) {\n let low;\n let hi;\n if (this.isHorizontal()) {\n low = this.tlAxis.parseInvert(this.tlAxis.invert(this.transform.invertX(0)));\n hi = this.tlAxis.parseInvert(this.tlAxis.invert(this.transform.invertX(width - 1)));\n } else {\n low = this.tlAxis.parseInvert(this.tlAxis.invert(- this.transform.invertY(0)));\n hi = this.tlAxis.parseInvert(this.tlAxis.invert(- this.transform.invertY(height - 1)));\n }\n this.tlAxis\n .low(low)\n .high(hi)\n .updateScale()\n ;\n this.brAxis\n .low(low)\n .high(hi)\n .updateScale()\n ;\n }\n\n const data = this.data().sort(this.isHorizontal() ? (l, r) => {\n const retVal = this.brAxis.scalePos(l[1]) - this.brAxis.scalePos(r[1]);\n if (retVal === 0) {\n return (\"\" + l[0]).localeCompare(\"\" + r[0]);\n }\n return retVal;\n } : (l, r) => {\n return this.brAxis.scalePos(r[1]) - this.brAxis.scalePos(l[1]);\n });\n const events = data.filter(d => !d[this._endDate_idx]);\n const ranges = data.filter(d => !!d[this._endDate_idx]);\n\n this.tlAxis\n .render()\n ;\n this.brAxis\n .render()\n ;\n const brAxisBBox = this.brAxis.getBBox();\n\n let upperContentHeight = this.updateEntityPins(events);\n const lowerAxisHeight = brAxisBBox.height;\n let lowerHeight = height - upperContentHeight;\n const minYOffset = this._yoffset_idx !== -1 ? Math.min.apply(undefined, this.data().filter(row => !isNaN(row[this._yoffset_idx])).map(row => row[this._yoffset_idx])) : 0;\n if (events.length > 0 && ranges.length === 0) {\n // ONLY EVENTS\n this.tlAxis.visible(false);\n let y_offset = upperContentHeight / 4;\n if (y_offset > (height / 2) - lowerAxisHeight) {\n y_offset = (height / 2) - lowerAxisHeight;\n }\n const upperContentYOffset = (height / 2) + y_offset;\n const lowerAxisYOffset = ((height / 2) - lowerAxisHeight - y_offset) * -1;\n const halfMinYOffset = minYOffset !== 0 ? minYOffset / 2 : 0;\n this.gUpperContent.attr(\"transform\", `translate(0, ${upperContentYOffset - halfMinYOffset})`);\n this.gLowerAxis.attr(\"transform\", `translate(0, ${lowerAxisYOffset - halfMinYOffset})`);\n } else if (events.length === 0 && ranges.length > 0) {\n // ONLY RANGES\n this.tlAxis.visible(true);\n this.gUpperContent.attr(\"transform\", `translate(0, ${upperContentHeight})`);\n this.gUpperAxis.attr(\"transform\", `translate(0, ${upperContentHeight})`);\n } else {\n upperContentHeight -= minYOffset;\n lowerHeight += minYOffset;\n // BOTH\n this.tlAxis.visible(true);\n this.gUpperContent.attr(\"transform\", `translate(0, ${upperContentHeight})`);\n this.gUpperAxis.attr(\"transform\", `translate(0, ${upperContentHeight})`);\n this.gMiddleContent.attr(\"transform\", `translate(0, ${upperContentHeight})`);\n }\n this.tlAxis\n .render()\n ;\n const tlAxisBBox = this.tlAxis.getBBox();\n interface BucketInfo {\n endPos: number;\n }\n const bucketData: BucketInfo[] = [];\n const bucketIndex = {};\n for (const range of ranges) {\n for (let i = 0; i < bucketData.length; ++i) {\n const bucket = bucketData[i];\n if (bucket.endPos + this.overlapTolerence() <= this.dataStartPos(range)) {\n bucketIndex[range] = i;\n bucket.endPos = this.dataEndPos(range);\n break;\n }\n }\n\n if (bucketIndex[range] === undefined) {\n bucketIndex[range] = bucketData.length;\n bucketData.push({\n endPos: this.dataEndPos(range)\n });\n }\n }\n\n const vbLower = this.isHorizontal() ? 0 + tlAxisBBox.height : 0 + tlAxisBBox.width;\n const vbHigher = this.isHorizontal() ? lowerHeight - brAxisBBox.height : width - brAxisBBox.width;\n this.verticalBands\n .range([vbLower, vbHigher])\n .domain(bucketData.map((_d, i) => i))\n ;\n\n if (ranges.length > 0) {\n this.updateEventRanges(events, ranges, bucketIndex, lowerHeight, tlAxisBBox, brAxisBBox, width);\n }\n }\n\n updateEntityPins(events) {\n let event_height = 0;\n const context = this;\n const entityPins = this.gUpperContent.selectAll(\".entity_pin\").data(events, d => d[0] + \":\" + d[1]);\n const eventFontColor_idx = this.eventFontColorColumn() ? this.columns().indexOf(this.eventFontColorColumn()) : -1;\n const eventBorderColor_idx = this.eventBorderColorColumn() ? this.columns().indexOf(this.eventBorderColorColumn()) : -1;\n const eventBackgroundColor_idx = this.eventBackgroundColorColumn() ? this.columns().indexOf(this.eventBackgroundColorColumn()) : -1;\n const title_counts = {};\n for (const d of events) {\n const type = typeof d[context._title_idx] !== \"undefined\" ? d[context._title_idx] : d[0];\n title_counts[type] = title_counts[type] ? title_counts[type] + 1 : 1;\n }\n const title_types = Object.keys(title_counts);\n const title_group_offset = context.eventGroupOffset();\n const entityPinsEnter = entityPins.enter().append(\"g\")\n .attr(\"class\", \"entity_pin\");\n entityPinsEnter.append(\"line\")\n .attr(\"class\", \"entity_line\");\n\n entityPinsEnter\n .on(\"mouseover\", function (d) {\n d3Select(this).raise();\n })\n .each(function (d, i) {\n const entityPin = new EntityPin()\n .target(this)\n .icon(\"\uF024\")\n .iconOnlyShowOnHover(context.hideIconWhenCollapsed())\n .titleOnlyShowOnHover(context.hideTitleWhenCollapsed())\n .descriptionOnlyShowOnHover(context.hideDescriptionWhenCollapsed())\n .annotationOnlyShowOnHover(context.hideAnnotationsWhenCollapsed())\n .iconDiameter(18)\n .iconPaddingPercent(1)\n .titleFontSize(14)\n .descriptionColor(\"#333\")\n .descriptionFontSize(15)\n .iconColor(eventFontColor_idx === -1 ? \"#333\" : d[eventFontColor_idx])\n .titleColor(eventFontColor_idx === -1 ? \"#333\" : d[eventFontColor_idx])\n .descriptionColor(eventFontColor_idx === -1 ? \"#333\" : d[eventFontColor_idx])\n .backgroundShape(\"pin\")\n .backgroundColorFill(eventFontColor_idx === -1 ? \"#f8f8f8\" : d[eventBackgroundColor_idx])\n .backgroundColorStroke(eventFontColor_idx === -1 ? \"#ccc\" : d[eventBorderColor_idx])\n .cornerRadius(5)\n .arrowHeight(10)\n .arrowWidth(16)\n ;\n context.localEntityPin.set(this, entityPin);\n })\n .merge(entityPins)\n .each(function (d, i) {\n const entityPin = context.localEntityPin.get(this);\n const _title = typeof d[context._title_idx] !== \"undefined\" ? d[context._title_idx] : entityPin.title();\n const x_offset = context.dataStartPos(d) - 0;\n let y_offset = ((title_types.indexOf(_title) % context.eventGroupMod()) * title_group_offset) - 5;\n if (typeof d[context._yoffset_idx] !== \"undefined\") y_offset += d[context._yoffset_idx] ? d[context._yoffset_idx] : 0;\n if (d[context._title_idx] !== entityPin.title() && d[context._startDate_idx] !== entityPin.description()) {\n const parsed_start_time = context.brAxis.parse(d[context._startDate_idx]);\n const formatted_start_time = context.tooltipFormatter(parsed_start_time);\n entityPin\n .x(x_offset)\n .y(y_offset)\n .iconOnlyShowOnHover(context.hideIconWhenCollapsed())\n .titleOnlyShowOnHover(context.hideTitleWhenCollapsed())\n .descriptionOnlyShowOnHover(context.hideDescriptionWhenCollapsed())\n .annotationOnlyShowOnHover(context.hideAnnotationsWhenCollapsed())\n .icon(typeof d[context._icon_idx] !== \"undefined\" ? d[context._icon_idx] : entityPin.icon())\n .title(_title)\n .description(formatted_start_time)\n .animationFrameRender()\n ;\n } else {\n entityPin.move({ x: x_offset, y: y_offset });\n }\n const calc_height = entityPin.calcHeight();\n if (event_height < calc_height) event_height = calc_height;\n\n d3Select(this).selectAll(\".entity_line\")\n .attr(\"x1\", x_offset)\n .attr(\"x2\", x_offset)\n .attr(\"y1\", 0)\n .attr(\"y2\", y_offset)\n .style(\"stroke\", eventFontColor_idx === -1 ? \"#ccc\" : d[eventBorderColor_idx])\n .style(\"stroke-width\", 1)\n ;\n })\n ;\n entityPins.exit()\n .each(function (d, i) {\n const entityPin = context.localEntityPin.get(this);\n entityPin.target(null);\n\n })\n .remove();\n const event_offset = Math.abs(Math.min(events.length, context.eventGroupMod()) * context.eventGroupOffset());\n return event_height + event_offset;\n }\n\n updateEventRanges(events, ranges, bucketIndex, eventRangeHeight, tlAxisBBox, brAxisBBox, width) {\n const context = this;\n\n const lines = this.gMiddleContent.selectAll(\".line\").data(events, d => {\n return d[context._title_idx];\n });\n lines.enter().append(\"line\")\n .attr(\"class\", \"line\")\n .merge(lines)\n .attr(this.isHorizontal() ? \"x1\" : \"y1\", d => this.dataStartPos(d) - 0)\n .attr(this.isHorizontal() ? \"x2\" : \"y2\", d => this.dataStartPos(d) - 0)\n .attr(this.isHorizontal() ? \"y1\" : \"x1\", this.isHorizontal() ? tlAxisBBox.height : tlAxisBBox.width)\n .attr(this.isHorizontal() ? \"y2\" : \"x2\", this.isHorizontal() ? eventRangeHeight - brAxisBBox.height : width - brAxisBBox.width)\n ;\n lines.exit().remove();\n const buckets = this.gMiddleContent.selectAll(\".buckets\").data(ranges, d => d[context._title_idx]);\n buckets.enter().append(\"g\")\n .attr(\"class\", \"buckets\")\n .call(this._selection.enter.bind(this._selection))\n .each(function (d) {\n const entityRect = new EntityRect()\n .target(this)\n .iconDiameter(28)\n .iconPaddingPercent(0)\n .titleFontSize(28)\n .titleColor(context.rangeFontColor())\n .descriptionColor(context.rangeFontColor())\n .iconColor(context.rangeFontColor())\n .backgroundShape(\"rect\")\n .backgroundColorFill(d[context._color_idx])\n ;\n context.localRect.set(this, entityRect);\n context.enterEntityRect(entityRect, d);\n })\n .on(\"click\", function (d) {\n context.click(context.rowToObj(d), \"range\", context._selection.selected(this));\n }, false)\n .on(\"dblclick\", function (d) {\n context.rootExtent = d;\n context.resetZoom();\n context.dblclick(context.rowToObj(d), \"range\", context._selection.selected(this));\n }, true)\n .on(\"mouseout.tooltip\", this.tooltip.hide)\n .on(\"mousemove.tooltip\", this.tooltip.show)\n .merge(buckets)\n .attr(\"transform\", d => context.isHorizontal() ?\n `translate(${this.dataStartPos(d)}, ${this.verticalBands(bucketIndex[d])}) ` :\n `translate(${this.verticalBands(bucketIndex[d])}, ${this.dataStartPos(d)}) `)\n .each(function (d) {\n const textBox = context.localRect.get(this);\n const x = context.dataWidth(d) / 2;\n const y = context.verticalBands.bandwidth() / 2;\n const rectWidth = Math.max(context.dataWidth(d), 2);\n const rectHeight = Math.max(context.verticalBands.bandwidth(), 2);\n const fontHeightRatio = 0.618;\n const paddingRatio = ((1 - fontHeightRatio) / 2);\n const paddingSize = paddingRatio * rectHeight;\n const fontSize = rectHeight * fontHeightRatio;\n const iconSize = fontSize;\n textBox\n .pos(context.isHorizontal() ? { x, y } : { x: y, y: x })\n .fixedHeight(context.isHorizontal() ? rectHeight : rectWidth)\n .fixedWidth(context.isHorizontal() ? rectWidth : rectHeight)\n .icon(typeof d[context._icon_idx] !== \"undefined\" ? d[context._icon_idx] : \"\")\n .title(typeof d[context._title_idx] !== \"undefined\" ? d[context._title_idx] : \"\")\n .padding(paddingSize)\n .iconDiameter(iconSize)\n .titleFontSize(fontSize)\n ;\n if (iconSize * 1.5 > rectWidth) {\n textBox.icon(null);\n }\n context.updateEntityRect(textBox, d[context._icon_idx]);\n textBox\n .render()\n ;\n });\n buckets.exit().remove();\n }\n\n exit(domNode, element) {\n this.brAxis.target(null);\n this.tlAxis.target(null);\n super.exit(domNode, element);\n }\n\n // Events ---\n click(row, col, sel) {\n }\n\n dblclick(row, col, sel) {\n }\n\n enterEntityRect(textbox: EntityRect, d) {\n }\n\n updateEntityRect(textbox: EntityRect, d) {\n }\n}\nMiniGantt.prototype._class += \" timeline_MiniGantt\";\nMiniGantt.prototype.implements(ITooltip.prototype);\nMiniGantt.prototype.mixin(Utility.SimpleSelectionMixin);\n\nexport interface MiniGantt {\n // ITooltip ---\n tooltip;\n tooltipHTML(_): string;\n tooltipFormat(_): string;\n\n // SimpleSelectionMixin\n _selection;\n\n // Properties ---\n timePattern(): string;\n timePattern(_: string): this;\n tickFormat(): string;\n tickFormat(_: string): this;\n tickFormat_exists(): boolean;\n tooltipTimeFormat(): string;\n tooltipTimeFormat(_: string): this;\n overlapTolerence(): number;\n overlapTolerence(_: number): this;\n orientation(): string;\n orientation(_: string): this;\n rangeFontColor(): string;\n rangeFontColor(_: string): this;\n titleColumn(): string;\n titleColumn(_: string): this;\n startDateColumn(): string;\n startDateColumn(_: string): this;\n endDateColumn(): string;\n endDateColumn(_: string): this;\n iconColumn(): string;\n iconColumn(_: string): this;\n colorColumn(): string;\n colorColumn(_: string): this;\n yOffsetColumn(): string;\n yOffsetColumn(_: string): this;\n maxZoom(): number;\n maxZoom(_: number): this;\n eventGroupMod(): number;\n eventGroupMod(_: number): this;\n eventGroupOffset(): number;\n eventGroupOffset(_: number): this;\n eventFontColorColumn(): string;\n eventFontColorColumn(_: string): this;\n eventBorderColorColumn(): string;\n eventBorderColorColumn(_: string): this;\n eventBackgroundColorColumn(): string;\n eventBackgroundColorColumn(_: string): this;\n hideIconWhenCollapsed(): boolean;\n hideIconWhenCollapsed(_: boolean): this;\n hideTitleWhenCollapsed(): boolean;\n hideTitleWhenCollapsed(_: boolean): this;\n hideDescriptionWhenCollapsed(): boolean;\n hideDescriptionWhenCollapsed(_: boolean): this;\n hideAnnotationsWhenCollapsed(): boolean;\n hideAnnotationsWhenCollapsed(_: boolean): this;\n centerOnMostRecent(): boolean;\n centerOnMostRecent(_: boolean): this;\n\n}\n\nMiniGantt.prototype.publish(\"timePattern\", \"%Y-%m-%d\", \"string\", \"timePattern\");\nMiniGantt.prototype.publish(\"tickFormat\", null, \"string\", \"tickFormat\", undefined, { optional: true });\nMiniGantt.prototype.publish(\"tooltipTimeFormat\", \"%Y-%m-%d\", \"string\", \"tooltipTimeFormat\");\nMiniGantt.prototype.publish(\"overlapTolerence\", 2, \"number\", \"overlapTolerence\");\nMiniGantt.prototype.publish(\"orientation\", \"horizontal\", \"set\", \"orientation\", [\"horizontal\", \"vertical\"]);\nMiniGantt.prototype.publish(\"rangeFontColor\", \"#ecf0f1\", \"html-color\", \"rangeFontColor\");\nMiniGantt.prototype.publish(\"titleColumn\", null, \"string\", \"titleColumn\");\nMiniGantt.prototype.publish(\"startDateColumn\", null, \"string\", \"startDateColumn\");\nMiniGantt.prototype.publish(\"endDateColumn\", null, \"string\", \"endDateColumn\");\nMiniGantt.prototype.publish(\"iconColumn\", null, \"string\", \"iconColumn\");\nMiniGantt.prototype.publish(\"colorColumn\", null, \"string\", \"colorColumn\");\nMiniGantt.prototype.publish(\"yOffsetColumn\", null, \"string\", \"yOffsetColumn\");\nMiniGantt.prototype.publish(\"maxZoom\", 16, \"number\", \"maxZoom\");\nMiniGantt.prototype.publish(\"eventGroupOffset\", -50, \"number\", \"eventGroupOffset\");\nMiniGantt.prototype.publish(\"eventGroupMod\", 5, \"number\", \"eventGroupMod\");\nMiniGantt.prototype.publish(\"eventFontColorColumn\", null, \"string\", \"eventFontColorColumn\");\nMiniGantt.prototype.publish(\"eventBorderColorColumn\", null, \"string\", \"eventBorderColorColumn\");\nMiniGantt.prototype.publish(\"eventBackgroundColorColumn\", null, \"string\", \"eventBackgroundColorColumn\");\nMiniGantt.prototype.publish(\"hideIconWhenCollapsed\", false, \"boolean\", \"hideIconWhenCollapsed\");\nMiniGantt.prototype.publish(\"hideTitleWhenCollapsed\", false, \"boolean\", \"hideTitleWhenCollapsed\");\nMiniGantt.prototype.publish(\"hideDescriptionWhenCollapsed\", false, \"boolean\", \"hideDescriptionWhenCollapsed\");\nMiniGantt.prototype.publish(\"hideAnnotationsWhenCollapsed\", true, \"boolean\", \"hideAnnotationsWhenCollapsed\");\nMiniGantt.prototype.publish(\"centerOnMostRecent\", false, \"boolean\", \"If true, the timeline will be centered on the most recent data point\");\n", "(function(){\n if (!document.getElementById('815a87be')) {\n var e = document.createElement('style');\n e.id = '815a87be';\n e.textContent = `.timeline_MiniGantt .line {\n fill: none;\n stroke: lightgrey;\n opacity: 0.7;\n}\n\n.timeline_MiniGantt .common_TextBox .rect {\n fill: lightskyblue;\n stroke: blue;\n opacity: 0.5;\n}\n\n.timeline_MiniGantt .buckets .entity_shape rect {\n stroke: #333;\n}\n\n.timeline_MiniGantt .buckets.selected .common_EntityRect .common_Shape > rect {\n stroke: red;\n}\n\n.timeline_MiniGantt .common_TextBox .rect text {\n fill: black;\n stroke: none;\n}\n.timeline_MiniGantt .over {\n stroke: transparent;\n opacity: 0.8;\n}\n.timeline_MiniGantt rect {\n shape-rendering: crispEdges;\n}`;\n document.head.appendChild(e);\n }\n })();", "import { d3Event, select as d3Select, SVGZoomWidget, Utility } from \"@hpcc-js/common\";\nimport { HTMLTooltip } from \"@hpcc-js/html\";\nimport { scaleLinear as d3ScaleLinear } from \"d3-scale\";\nimport { React, render, LabelledRect } from \"@hpcc-js/react\";\n\nexport type IGanttData = [string, number, number, any?];\n\nexport interface IRangeOptions {\n rangePadding: number;\n fontFamily: string;\n fontSize: number;\n strokeWidth?: number;\n fill: string;\n stroke: string;\n textFill: string;\n cornerRadius: number;\n}\n\nexport class ReactGantt extends SVGZoomWidget {\n\n protected _selection = new Utility.Selection(this);\n\n protected _buckets;\n protected _interpolateX;\n protected _interpolateY;\n\n protected _bucketsBySeries;\n protected _dataBySeries;\n protected _origIdxMap;\n private _seriesBackgrounds;\n\n protected _maxFontSize;\n\n public _tooltip;\n\n public _minStart: number;\n public _maxEnd: number;\n\n protected _title_idx = 0;\n protected _startDate_idx = 1;\n protected _endDate_idx = 2;\n protected _icon_idx = -1;\n protected _color_idx = -1;\n protected _series_idx = -1;\n protected _bucket_idx = -1;\n protected _yoffset_idx = -1;\n\n protected _maxX: number;\n protected _maxY: number;\n\n private _rangeOptions: IRangeOptions = {\n rangePadding: 2,\n fontFamily: \"Verdana\",\n fontSize: 12,\n fill: \"white\",\n stroke: \"black\",\n textFill: \"black\",\n cornerRadius: 3,\n strokeWidth: 0\n };\n\n constructor(drawStartPosition: \"origin\" | \"center\" = \"origin\") {\n super();\n this._drawStartPos = drawStartPosition;\n\n this.showToolbar_default(false);\n\n this._tooltip = new HTMLTooltip();\n this._tooltip\n .tooltipHTML(d => {\n return `<div style=\"text-align:center;\">${d[0]}<br/><br/>${d[1]} -&gt; ${d[2]}</div>`;\n });\n this._tooltip\n .followCursor(true)\n ;\n }\n\n selection(_: any[]): this;\n selection(): any[];\n selection(_?: any[]): any[] | this {\n if (!arguments.length) return this._selection.get();\n this._selection.set(_);\n return this;\n }\n\n private _rangeRenderer: React.FunctionComponent = LabelledRect;\n rangeRenderer(): React.FunctionComponent;\n rangeRenderer(_: React.FunctionComponent): this;\n rangeRenderer(_?: React.FunctionComponent): this | React.FunctionComponent {\n if (!arguments.length) return this._rangeRenderer;\n this._rangeRenderer = _;\n return this._rangeRenderer;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n\n const context = this;\n element\n .on(\"click\", function (this: SVGElement, d) {\n context._selection.clear();\n });\n\n this._tooltip.target(domNode);\n }\n update(domNode, element) {\n super.update(domNode, element);\n\n this.zoomExtent([0.05, this.maxZoom()]);\n\n this._title_idx = this.titleColumn() !== null ? this.columns().indexOf(this.titleColumn()) : this._title_idx;\n this._startDate_idx = this.startDateColumn() !== null ? this.columns().indexOf(this.startDateColumn()) : this._startDate_idx;\n this._endDate_idx = this.endDateColumn() !== null ? this.columns().indexOf(this.endDateColumn()) : this._endDate_idx;\n this._icon_idx = this.iconColumn() !== null ? this.columns().indexOf(this.iconColumn()) : this._icon_idx;\n this._color_idx = this.colorColumn() !== null ? this.columns().indexOf(this.colorColumn()) : this._color_idx;\n this._series_idx = this.seriesColumn() !== null ? this.columns().indexOf(this.seriesColumn()) : this._series_idx;\n this._bucket_idx = this.bucketColumn() !== null ? this.columns().indexOf(this.bucketColumn()) : -1;\n\n const context = this;\n const w = this.width();\n\n const x0 = 0;\n const x1 = w;\n\n this._interpolateX = d3ScaleLinear()\n .domain([this._minStart, this._maxEnd])\n .range([x0, x1])\n ;\n\n this.data().sort((a, b) => a[1] - b[1]);\n\n if (this._series_idx > -1) {\n this._origIdxMap = {};\n this._dataBySeries = {};\n this._bucketsBySeries = {};\n this.data().forEach((dataRow, origIdx) => {\n const seriesKey = dataRow[this._series_idx];\n if (!this._dataBySeries[seriesKey]) {\n this._origIdxMap[seriesKey] = {};\n this._dataBySeries[seriesKey] = [];\n }\n this._dataBySeries[seriesKey].push({\n dataRow,\n origIdx\n });\n });\n const gutter = this.gutter();\n let bucketOffset = 0;\n const seriesKeys = Object.keys(this._dataBySeries);\n seriesKeys.forEach(seriesKey => {\n this._dataBySeries[seriesKey].sort((a, b) => a.dataRow[1] - b.dataRow[1]);\n this._bucketsBySeries[seriesKey] = this.calcBuckets(this._dataBySeries[seriesKey].map(n => n.dataRow), 1, 2);\n this._bucketsBySeries[seriesKey].bucketHeight = this.bucketHeight();\n this._bucketsBySeries[seriesKey].bucketOffset = bucketOffset;\n bucketOffset += (this._bucketsBySeries[seriesKey].bucketHeight + this.strokeWidth() + this.gutter()) * (this._bucketsBySeries[seriesKey].maxBucket + 1);\n this._dataBySeries[seriesKey].forEach((n, i) => {\n this._origIdxMap[seriesKey][n.origIdx] = i;\n });\n });\n this._seriesBackgrounds = this._renderElement.selectAll(\".series-background\")\n .data(seriesKeys.map(key => {\n return this._bucketsBySeries[key];\n }))\n ;\n this._seriesBackgrounds\n .join(\n enter => enter.append(\"rect\")\n .attr(\"class\", \"series-background\"),\n update => update,\n exit => exit\n .each(function (d) {\n delete d.element;\n })\n .remove()\n )\n .attr(\"opacity\", d => d.props && d.props.hidden ? 0 : 1)\n .each(function (this: SVGGElement, d, i) {\n d3Select(this)\n .attr(\"x\", 0)\n .attr(\"y\", d.bucketOffset - (gutter / 2))\n .attr(\"width\", w)\n .attr(\"height\", ((d.bucketHeight + gutter) * (d.maxBucket + 1)) + gutter)\n .attr(\"fill\", i % 2 ? context.oddSeriesBackground() : context.evenSeriesBackground())\n ;\n });\n } else {\n if (this._bucket_idx !== -1) {\n this._buckets = this.calcBuckets(this.data(), this._startDate_idx, this._endDate_idx, this._bucket_idx);\n } else {\n this._buckets = this.calcBuckets(this.data(), this._startDate_idx, this._endDate_idx);\n }\n }\n const interpedStart = this._interpolateX(this._minStart);\n\n this.zoomTo(\n [interpedStart, 0],\n 1\n );\n\n const bucketHeight = this.bucketHeight();\n\n this.setRangeOptions();\n\n this._maxFontScale = (bucketHeight - (this.rangePadding() * 2));\n this.measureDataText();\n\n const itemSelection = this._renderElement.selectAll(\".item\")\n .data(this.data())\n ;\n const borderOffset1 = this.strokeWidth();\n const borderOffset2 = borderOffset1 * 2;\n itemSelection\n .join(\n enter => enter.append(\"g\")\n .attr(\"class\", \"item\")\n .on(\"click.selectionBag\", function (d, i) {\n const _id = d.id === undefined ? i : d.id;\n if (context._selection.isSelected({ _id, element: d.element })) {\n context._selection.clear();\n } else {\n context._selection.click(\n {\n _id,\n element: () => d.element\n },\n d3Event\n );\n }\n context.selectionChanged();\n d3Event().stopPropagation();\n })\n .on(\"click\", function (this: SVGElement, d) {\n const selected = d.element.classed(\"selected\");\n if (d[context.columns().length]) {\n d.__lparam = d[context.columns().length];\n }\n context.click(d, \"\", selected);\n })\n .on(\"dblclick\", function (this: SVGElement, d) {\n const selected = d.element.classed(\"selected\");\n if (d[context.columns().length]) {\n d.__lparam = d[context.columns().length];\n }\n context.click(d, \"\", selected);\n })\n .on(\"mousein\", function (d) {\n context.highlightItem(d3Select(this), d);\n const selected = d.element.classed(\"selected\");\n context.mousein(d, \"\", selected);\n })\n .on(\"mouseover\", function (d) {\n const d3evt = d3Event();\n context._tooltip._triggerElement = d.element;\n context._tooltip._cursorLoc = [\n d3evt.clientX,\n d3evt.clientY\n ];\n context._tooltip\n .data(d)\n .visible(true)\n .fitContent(true)\n .render()\n ;\n context.highlightItem(d3Select(this), d);\n const selected = d.element.classed(\"selected\");\n context.mouseover(d, \"\", selected);\n })\n .on(\"mouseout\", function (d) {\n context._tooltip\n .visible(false)\n .render()\n ;\n context.highlightItem(null, null);\n const selected = d.element.classed(\"selected\");\n context.mouseout(d, \"\", selected);\n })\n .each(function (d, i) {\n d.that = this;\n d.element = d3Select(this);\n d.x = context._interpolateX(d[1]);\n const endX = context._interpolateX(d[2]);\n if (context._series_idx > -1) {\n const seriesKey = d[context._series_idx];\n const bucket = context._bucketsBySeries[seriesKey].bucketMap[context._origIdxMap[seriesKey][i]];\n d.y = context._bucketsBySeries[seriesKey].interpolateY(bucket) + context._bucketsBySeries[seriesKey].bucketOffset;\n } else {\n const _i = context._bucket_idx === -1 ? i : d[context._bucket_idx];\n d.y = context._buckets.interpolateY(context._buckets.bucketMap[_i]);\n }\n d.props = {\n ...d[3],\n text: d[0]\n };\n d.props.width = endX - d.x;\n d.props.height = bucketHeight;\n d.x += borderOffset1;\n d.y += borderOffset1;\n d.props.width -= borderOffset2;\n d.props.height -= borderOffset2;\n d.element.attr(\"transform\", `translate(${d.x + (d.props.width / 2)} ${d.y + (d.props.height / 2)})`);\n }),\n update => update,\n exit => exit\n .each(function (d) {\n delete d.element;\n })\n .remove()\n )\n .attr(\"opacity\", d => d.props && d.props.hidden ? 0 : 1)\n .each(function (this: SVGGElement, d, i) {\n d.that = this;\n if (context._series_idx > -1) {\n const seriesKey = d[context._series_idx];\n d.x = context.renderRangeElement(d, i, false, context._rangeOptions, seriesKey);\n } else {\n d.x = context.renderRangeElement(d, i, false, context._rangeOptions);\n }\n })\n .on(\"dblclick.zoom\", d => {\n const x1 = this._interpolateX(d[1]);\n const x2 = this._interpolateX(d[2]);\n const xRange = x2 - x1;\n const xScale = w / xRange;\n this.zoomTo(\n [\n -x1 * xScale,\n 0\n ],\n xScale\n );\n })\n ;\n element.on(\"dblclick.zoom\", null);\n }\n exit(domNode, element) {\n this._tooltip.target(null);\n super.exit(domNode, element);\n }\n renderRangeElement(d, i, transformEach = false, options: any = {}, seriesKey?: string) {\n const borderOffset1 = options.strokeWidth;\n const borderOffset2 = borderOffset1 * 2;\n const padding = options.rangePadding;\n let endX;\n const x = isNaN(this._transform.x) ? 0 : this._transform.x;\n const k = isNaN(this._transform.k) ? 1 : this._transform.k;\n let b;\n const bucketHeight = this.bucketHeight();\n d.that.setAttribute(\"data-series\", seriesKey);\n\n if (this._color_idx > -1) {\n d.that.setAttribute(\"data-color\", d[this._color_idx]);\n }\n\n if (seriesKey !== undefined) {\n b = this._bucketsBySeries[seriesKey].bucketMap[this._origIdxMap[seriesKey][i]];\n d.that.setAttribute(\"data-b\", b);\n d.that.setAttribute(\"data-bucketOffset\", this._bucketsBySeries[seriesKey].bucketOffset);\n d.y = this._bucketsBySeries[seriesKey].interpolateY(b) + this._bucketsBySeries[seriesKey].bucketOffset;\n d.that.setAttribute(\"data-dy\", d.y);\n } else {\n b = this._buckets.bucketMap[i];\n d.y = this._buckets.interpolateY(b);\n }\n if (this._color_idx > -1) {\n options.fill = d[this._color_idx];\n }\n if (!transformEach) {\n d.x = this._interpolateX(d[1]);\n endX = this._interpolateX(d[2]);\n d.props = {\n ...d[3],\n text: d[0]\n };\n d.props.width = (endX - d.x) / k;\n } else {\n d.x = this._interpolateX(d[1]) * k;\n endX = this._interpolateX(d[2]) * k;\n d.props = {\n ...d[3],\n text: d[0]\n };\n d.props.width = (endX - d.x) / k;\n d.x += x;\n d.props.width *= k;\n }\n d.props.height = bucketHeight;\n if (seriesKey === undefined && this._buckets.bucketScale < 1) {\n d.props.height = this._buckets.bucketScale * bucketHeight;\n }\n if (d.element === undefined && d.that) {\n d.element = d3Select(d.that);\n }\n d.element.attr(\"transform\", `translate(${d.x + (d.props.width / 2)} ${d.y + (d.props.height / 2)})`);\n\n d.x += borderOffset1;\n d.y += borderOffset1;\n d.props.width -= borderOffset2;\n d.props.height -= borderOffset2;\n d.props.width = d.props.width < 1 ? 1 : d.props.width;\n d.props.height = d.props.height < 1 ? 1 : d.props.height;\n\n let text = this.truncateText(d.props.text, d.props.width - padding, this._maxFontScale);\n\n if (text !== d.props.text) {\n text = this.truncateText(d.props.text, d.props.width - padding);\n } else {\n d.props.fontSize = this._maxFontScale * options.fontSize;\n }\n if (seriesKey === undefined && this._buckets.bucketScale < 1) {\n d.props.fontSize = Math.min(this._maxFontScale, this._buckets.bucketScale) * options.fontSize;\n }\n if (!this._maxY || this._maxY < d.y + d.props.height) {\n this._maxY = d.y + d.props.height;\n }\n if (!this._maxX || this._maxX < d.x + d.props.width) {\n this._maxX = d.x + d.props.width;\n }\n render(\n this._rangeRenderer,\n {\n ...options,\n ...d.props,\n text,\n },\n d.that\n );\n }\n\n setRangeOptions() {\n this._rangeOptions = {\n rangePadding: this.rangePadding(),\n fontFamily: this.fontFamily(),\n fontSize: this.fontSize(),\n strokeWidth: this.strokeWidth(),\n fill: this.fill(),\n stroke: this.stroke(),\n textFill: this.rangeFontColor(),\n cornerRadius: this.cornerRadius(),\n };\n }\n\n public _transform = { k: 1, x: 0, y: 0 };\n zoomed(transform) {\n this._transform = transform;\n switch (this.renderMode()) {\n case \"scale-all\":\n this._zoomScale = transform.k;\n this._zoomTranslate = [transform.x, 0];\n this._zoomG.attr(\"transform\", `translate(${transform.x} ${0})scale(${transform.k} 1)`);\n break;\n default:\n const options = this._rangeOptions;\n this.data().forEach((d, i) => {\n if (this._color_idx > -1) {\n options.fill = d[this._color_idx];\n }\n if (this._series_idx > -1) {\n const seriesKey = d[this._series_idx];\n this.renderRangeElement(d, i, true, options, seriesKey);\n } else {\n this.renderRangeElement(d, i, true, options);\n }\n });\n }\n\n this.zoomedHook(transform);\n }\n\n zoomedHook(transform) {\n\n }\n\n private calcBuckets(data, startKey: string | number, endKey: string | number, bucketKey?: string | number) {\n const bucketMap = {};\n const bucketKeyMap = {};\n const tol = this.overlapTolerence();\n const buckets = [{ end: -Infinity }];\n let maxBucket = 0;\n if (bucketKey !== undefined) {\n data.forEach((d, i) => {\n bucketMap[i] = d[bucketKey];\n bucketKeyMap[d[bucketKey]] = true;\n });\n maxBucket = Object.keys(bucketKeyMap).length;\n } else {\n data.forEach((d, i) => {\n for (let i2 = 0; i2 < buckets.length; ++i2) {\n if (i === 0 || buckets[i2][endKey] + tol <= d[startKey]) {\n bucketMap[i] = i2;\n if (maxBucket < i2) maxBucket = i2;\n buckets[i2][endKey] = d[endKey];\n break;\n }\n }\n if (bucketMap[i] === undefined) {\n bucketMap[i] = buckets.length;\n const b = {};\n b[endKey] = d[endKey];\n buckets.push(b as any);\n }\n\n if (maxBucket < bucketMap[i]) maxBucket = bucketMap[i];\n });\n }\n const height = (maxBucket + 1) * (this.bucketHeight() + this.gutter());\n return {\n bucketMap,\n maxBucket,\n bucketScale: this.height() / height,\n interpolateY: d3ScaleLinear()\n .domain([0, maxBucket + 1])\n .range([0, Math.min(this.height(), height)])\n };\n }\n\n data(): IGanttData[];\n data(_: IGanttData[]): this;\n data(_?: IGanttData[]): this | IGanttData[] {\n const retVal = super.data.apply(this, arguments);\n if (arguments.length > 0) {\n this._minStart = Math.min(...this.data().map(n => n[1])) ?? 0;\n this._maxEnd = Math.max(...this.data().map(n => n[2])) ?? 1;\n this.measureDataText(true);\n }\n return retVal;\n }\n\n protected _textWidths;\n protected _maxFontScale;\n protected _characterWidths;\n protected _prevFontFamily;\n protected _prevFontSize;\n measureDataText(forceMeasure = false) {\n const textWidths = {};\n const characterWidths = {};\n const fontFamily = this.fontFamily();\n const fontSize = this.fontSize();\n const bucketHeight = this.bucketHeight();\n\n if (bucketHeight) {\n this._maxFontScale = (bucketHeight - (this.rangePadding() * 2)) / fontSize;\n }\n\n if (forceMeasure || this._prevFontFamily !== fontFamily || this._prevFontSize !== fontSize) {\n characterWidths[\".\"] = Utility.textSize(\".\", fontFamily, fontSize).width;\n this.data().forEach(d => {\n if (!textWidths[d[0]]) {\n textWidths[d[0]] = Utility.textSize(d[0], fontFamily, fontSize).width;\n }\n d[0].split(\"\").forEach(char => {\n if (!characterWidths[char]) {\n characterWidths[char] = Utility.textSize(char, fontFamily, fontSize).width;\n }\n });\n });\n this._textWidths = textWidths;\n this._characterWidths = characterWidths;\n }\n this._prevFontFamily = fontFamily;\n this._prevFontSize = fontSize;\n }\n\n truncateText(text, width, scale = 1) {\n const textFits = this._textWidths[text] * scale < width;\n if (textFits) {\n return text;\n }\n let ret = \"\";\n let sum = 0;\n const _width = width - (this._characterWidths[\".\"] * 3);\n for (const char of text) {\n sum += this._characterWidths[char];\n if (sum < _width) {\n ret += char;\n } else {\n break;\n }\n }\n return _width < 0 ? \"\" : ret + \"...\";\n }\n\n resize(_size?: { width: number, height: number }) {\n let retVal;\n if (this.fitWidthToContent() || this.fitHeightToContent()) {\n retVal = super.resize.call(this, {\n width: _size.width,\n height: this._maxY\n });\n } else {\n retVal = super.resize.apply(this, arguments);\n }\n return retVal;\n }\n\n selectionChanged() {\n\n }\n\n highlightItem(_element, d) {\n\n }\n\n click(row, _col, sel) {\n\n }\n\n dblclick(row, _col, sel) {\n\n }\n\n mousein(row, _col, sel) {\n }\n\n mouseover(row, _col, sel) {\n }\n\n mouseout(row, _col, sel) {\n }\n}\nReactGantt.prototype._class += \" timeline_ReactGantt\";\n\nexport interface ReactGantt {\n titleColumn(): string;\n titleColumn(_: string): this;\n startDateColumn(): string;\n startDateColumn(_: string): this;\n endDateColumn(): string;\n endDateColumn(_: string): this;\n iconColumn(): string;\n iconColumn(_: string): this;\n colorColumn(): string;\n colorColumn(_: string): this;\n seriesColumn(): string;\n seriesColumn(_: string): this;\n bucketColumn(): string;\n bucketColumn(_: string): this;\n overlapTolerence(): number;\n overlapTolerence(_: number): this;\n smallestRangeWidth(): number;\n smallestRangeWidth(_: number): this;\n bucketHeight(): number;\n bucketHeight(_: number): this;\n gutter(): number;\n gutter(_: number): this;\n showToolbar_default(_: boolean): this;\n fontSize(): number;\n fontSize(_: number): this;\n fontFamily(): string;\n fontFamily(_: string): this;\n strokeWidth(): number;\n strokeWidth(_: number): this;\n stroke(): string;\n stroke(_: string): this;\n cornerRadius(): number;\n cornerRadius(_: number): this;\n fill(): string;\n fill(_: string): this;\n rangeFontColor(): string;\n rangeFontColor(_: string): this;\n rangePadding(): number;\n rangePadding(_: number): this;\n renderMode(): \"default\" | \"scale-all\";\n renderMode(_: \"default\" | \"scale-all\"): this;\n maxZoom(): number;\n maxZoom(_: number): this;\n fitWidthToContent(): boolean;\n fitWidthToContent(_: boolean): this;\n fitHeightToContent(): boolean;\n fitHeightToContent(_: boolean): this;\n evenSeriesBackground(): string;\n evenSeriesBackground(_: string): this;\n oddSeriesBackground(): string;\n oddSeriesBackground(_: string): this;\n}\n\nReactGantt.prototype.publish(\"fitWidthToContent\", false, \"boolean\", \"If true, resize will simply reapply the bounding box width\");\nReactGantt.prototype.publish(\"fitHeightToContent\", false, \"boolean\", \"If true, resize will simply reapply the bounding box height\");\nReactGantt.prototype.publish(\"titleColumn\", null, \"string\", \"Column name to for the title\");\nReactGantt.prototype.publish(\"startDateColumn\", null, \"string\", \"Column name to for the start date\");\nReactGantt.prototype.publish(\"endDateColumn\", null, \"string\", \"Column name to for the end date\");\nReactGantt.prototype.publish(\"iconColumn\", null, \"string\", \"Column name to for the icon\");\nReactGantt.prototype.publish(\"colorColumn\", null, \"string\", \"Column name to for the color\");\nReactGantt.prototype.publish(\"seriesColumn\", null, \"string\", \"Column name to for the series identifier\");\nReactGantt.prototype.publish(\"bucketColumn\", null, \"string\", \"Column name to for the bucket identifier\");\nReactGantt.prototype.publish(\"renderMode\", \"default\", \"set\", \"Render modes vary in features and performance\", [\"default\", \"scale-all\"]);\nReactGantt.prototype.publish(\"rangePadding\", 3, \"number\", \"Padding within each range rectangle (pixels)\");\nReactGantt.prototype.publish(\"fill\", \"#1f77b4\", \"string\", \"Background color of range rectangle\");\nReactGantt.prototype.publish(\"stroke\", null, \"string\", \"Color of range rectangle border\");\nReactGantt.prototype.publish(\"strokeWidth\", null, \"number\", \"Width of range rectangle border (pixels)\");\nReactGantt.prototype.publish(\"cornerRadius\", 3, \"number\", \"Space between range buckets (pixels)\");\nReactGantt.prototype.publish(\"fontFamily\", null, \"string\", \"Font family within range rectangle\", null, { optional: true });\nReactGantt.prototype.publish(\"fontSize\", 10, \"number\", \"Size of font within range rectangle (pixels)\");\nReactGantt.prototype.publish(\"rangeFontColor\", \"#ecf0f1\", \"html-color\", \"rangeFontColor\");\nReactGantt.prototype.publish(\"overlapTolerence\", 2, \"number\", \"overlapTolerence\");\nReactGantt.prototype.publish(\"smallestRangeWidth\", 10, \"number\", \"Width of the shortest range (pixels)\");\nReactGantt.prototype.publish(\"bucketHeight\", 100, \"number\", \"Max height of range element (pixels)\");\nReactGantt.prototype.publish(\"gutter\", 2, \"number\", \"Space between range buckets (pixels)\");\nReactGantt.prototype.publish(\"maxZoom\", 16, \"number\", \"Maximum zoom\");\nReactGantt.prototype.publish(\"evenSeriesBackground\", \"#FFFFFF\", \"html-color\", \"Background color of even series rows\");\nReactGantt.prototype.publish(\"oddSeriesBackground\", \"#DDDDDD\", \"html-color\", \"Background color of odd series rows\");\n", "import { Axis } from \"@hpcc-js/chart\";\nimport { SVGWidget } from \"@hpcc-js/common\";\nimport { ReactGantt } from \"./ReactGantt.ts\";\n\nexport type IAxisGanttData = [string, number | string, number | string, any?] | any[];\n\nexport class ReactAxisGantt extends SVGWidget {\n\n protected _topAxis: Axis = new Axis(\"center\")\n .orientation(\"top\")\n .type(\"linear\")\n .shrinkToFit(\"none\")\n .overlapMode(\"hide\")\n .extend(0)\n .tickFormat(\"d\")\n ;\n protected _gantt: ReactGantt = new ReactGantt(\"center\")\n .stroke(\"#000000\")\n ;\n protected _bottomAxis: Axis = new Axis(\"center\")\n .orientation(\"bottom\")\n .type(\"linear\")\n .shrinkToFit(\"none\")\n .overlapMode(\"hide\")\n .extend(0)\n .tickFormat(\"d\")\n ;\n\n protected _topAxisElement;\n protected _contentElement;\n protected _bottomAxisElement;\n protected _topRect;\n protected _contentRect;\n protected _bottomRect;\n\n protected rangeRenderer;\n\n constructor() {\n super();\n this._drawStartPos = \"origin\";\n this.rangeRenderer = function () {\n const ret = this._gantt.rangeRenderer.apply(this._gantt, arguments);\n if (!arguments.length) return ret;\n return this;\n };\n }\n\n selection(_: any[]): this;\n selection(): any[];\n selection(_?: any[]): any[] | this {\n if (!arguments.length) return this._gantt.selection();\n this._gantt.selection(_);\n return this;\n }\n\n resizeWrappers() {\n\n const w = this.width();\n const h = this.height();\n\n const axisHeight = this.axisHeight(); //TODO: Dynamic scaling to allow for small resolutions?\n\n const contentHeight = (h - (axisHeight * 2));\n const borderOffset1 = this.strokeWidth();\n this._topRect\n .attr(\"height\", axisHeight)\n .attr(\"width\", w)\n .attr(\"fill\", \"transparent\")\n ;\n this._topAxisElement.attr(\"transform\", \"translate(0 0)\");\n this._topAxis.resize({ height: axisHeight, width: w });\n this._contentRect\n .attr(\"height\", contentHeight)\n .attr(\"width\", w)\n .attr(\"fill\", \"transparent\")\n ;\n this._contentElement.attr(\"transform\", `translate(0 ${axisHeight + borderOffset1})`);\n this._gantt.resize({ height: contentHeight, width: w });\n this._bottomRect\n .attr(\"height\", axisHeight)\n .attr(\"width\", w)\n .attr(\"fill\", \"transparent\")\n ;\n this._bottomAxisElement.attr(\"transform\", `translate(0 ${axisHeight + contentHeight + borderOffset1})`);\n this._bottomAxis.resize({ height: axisHeight, width: w });\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n\n this._gantt.click = (row, col, sel) => {\n this.click(row, col, sel);\n };\n\n this._gantt.dblclick = (row, col, sel) => {\n this.dblclick(row, col, sel);\n };\n\n this._topAxisElement = element.append(\"g\")\n .attr(\"class\", \"top-axis-wrapper\")\n ;\n this._topRect = this._topAxisElement.append(\"rect\")\n .attr(\"class\", \"top-axis-rect\")\n ;\n this._contentElement = element.append(\"g\")\n .attr(\"class\", \"content-wrapper\")\n ;\n this._contentRect = this._contentElement.append(\"rect\")\n .attr(\"class\", \"content-rect\")\n ;\n this._bottomAxisElement = element.append(\"g\")\n .attr(\"class\", \"bottom-axis-wrapper\")\n ;\n this._bottomRect = this._bottomAxisElement.append(\"rect\")\n .attr(\"class\", \"top-axis-rect\")\n ;\n this._topAxis.target(this._topAxisElement.node());\n this._gantt.target(this._contentElement.node()).bucketHeight(30);\n this._bottomAxis.target(this._bottomAxisElement.node());\n\n this.resizeWrappers();\n\n this._gantt.zoomedHook = (transform) => {\n this.onzoom(transform);\n };\n }\n\n onzoom(transform) {\n\n const w = this.width();\n const low = this._gantt._minStart;\n const high = this._gantt._maxEnd;\n const range = high - low;\n const wpp = range / w;\n const nextLow = Math.floor(low - (wpp * (transform.x / transform.k)));\n const nextHigh = Math.ceil((range / transform.k) + nextLow);\n\n this._topAxis\n .fontFamily(this.axisFontFamily())\n .fontSize(this.axisFontSize())\n .tickLength(this.axisTickLength())\n .low(nextLow)\n .high(nextHigh)\n .render()\n ;\n this._bottomAxis\n .fontFamily(this.axisFontFamily())\n .fontSize(this.axisFontSize())\n .tickLength(this.axisTickLength())\n .low(nextLow)\n .high(nextHigh)\n .render()\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n this._topAxis.tickFormat(this.tickFormat()).render();\n this._bottomAxis.tickFormat(this.tickFormat()).render();\n this._gantt.render();\n }\n\n exit(domNode, element) {\n this._bottomAxis.target(null);\n this._gantt.target(null);\n this._topAxis.target(null);\n super.exit(domNode, element);\n }\n\n columns(): string[];\n columns(_: string[]): this;\n columns(_?: string[]): this | string[] {\n const retVal = super.columns.apply(this, arguments);\n if (arguments.length > 0) {\n this._gantt.columns(_);\n }\n return retVal;\n }\n\n data(): IAxisGanttData[];\n data(_: IAxisGanttData[]): this;\n data(_?: IAxisGanttData[]): this | IAxisGanttData[] {\n const retVal = super.data.apply(this, arguments);\n if (arguments.length > 0) {\n const ganttData: any[] = this.data().map(n => {\n const ret = [...n];\n ret[1] = isNaN(n[1] as any) ? new Date(n[1]).getTime() : Number(n[1]);\n ret[2] = isNaN(n[2] as any) ? new Date(n[2]).getTime() : Number(n[2]);\n return ret;\n });\n this._gantt._minStart = Math.min(...ganttData.map(n => n[1])) ?? 0;\n this._gantt._maxEnd = Math.max(...ganttData.map(n => n[2])) ?? 1;\n this._gantt.data(ganttData);\n }\n return retVal;\n }\n\n resize(_size?: { width: number, height: number }) {\n const retVal = super.resize.apply(this, arguments);\n\n if (this._topAxisElement) {\n this.resizeWrappers();\n }\n\n return retVal;\n }\n\n click(row, col, sel) {\n\n }\n\n dblclick(row, col, sel) {\n\n }\n\n tooltip() {\n return this._gantt._tooltip;\n }\n}\nReactAxisGantt.prototype._class += \" timeline_ReactAxisGantt\";\n\nexport interface ReactAxisGantt {\n tickFormat(): string;\n tickFormat(_: string): this;\n tickFormat_exists(): boolean;\n overlapTolerence(): number;\n overlapTolerence(_: number): this;\n smallestRangeWidth(): number;\n smallestRangeWidth(_: number): this;\n scaleMode(): boolean;\n scaleMode(_: boolean): this;\n fontSize(): number;\n fontSize(_: number): this;\n fontFamily(): string;\n fontFamily(_: string): this;\n strokeWidth(): number;\n strokeWidth(_: number): this;\n stroke(): string;\n stroke(_: string): this;\n cornerRadius(): number;\n cornerRadius(_: number): this;\n axisFontSize(): number;\n axisFontSize(_: number): this;\n axisFontFamily(): string;\n axisFontFamily(_: string): this;\n axisTickLength(): number;\n axisTickLength(_: number): this;\n axisHeight(): number;\n axisHeight(_: number): this;\n titleColumn(): string;\n titleColumn(_: string): this;\n startDateColumn(): string;\n startDateColumn(_: string): this;\n endDateColumn(): string;\n endDateColumn(_: string): this;\n iconColumn(): string;\n iconColumn(_: string): this;\n colorColumn(): string;\n colorColumn(_: string): this;\n bucketColumn(): string;\n bucketColumn(_: string): this;\n maxZoom(): number;\n maxZoom(_: number): this;\n}\nReactAxisGantt.prototype.publish(\"tickFormat\", null, \"string\", \"Format rule applied to axis tick labels\", undefined, { optional: true });\nReactAxisGantt.prototype.publish(\"axisHeight\", 22, \"number\", \"Height of axes (pixels)\");\nReactAxisGantt.prototype.publish(\"overlapTolerence\", 2, \"number\", \"overlapTolerence\");\nReactAxisGantt.prototype.publish(\"smallestRangeWidth\", 10, \"number\", \"Width of the shortest range (pixels)\");\nReactAxisGantt.prototype.publish(\"axisFontSize\", null, \"number\", \"Font size of axis tick labels\");\nReactAxisGantt.prototype.publish(\"axisFontFamily\", null, \"string\", \"Font family of axis tick labels\");\nReactAxisGantt.prototype.publish(\"axisTickLength\", null, \"number\", \"Length of axis ticks\");\nReactAxisGantt.prototype.publishProxy(\"gutter\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"renderMode\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"strokeWidth\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"fontSize\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"fontFamily\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"stroke\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"cornerRadius\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"titleColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"startDateColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"endDateColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"iconColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"colorColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"bucketColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"maxZoom\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"bucketHeight\", \"_gantt\");\n", "import { min as d3Min, max as d3Max } from \"d3-array\";\nimport { Axis } from \"@hpcc-js/chart\";\nimport { Border2 } from \"@hpcc-js/layout\";\nimport { React } from \"@hpcc-js/react\";\nimport { ReactGantt } from \"./ReactGantt.ts\";\nimport { IAxisGanttData } from \"./ReactAxisGantt.ts\";\n\nexport class ReactAxisGanttSeries extends Border2 {\n\n protected _topAxis: Axis = new Axis(\"origin\")\n .orientation(\"top\")\n .type(\"linear\")\n .shrinkToFit(\"none\")\n .overlapMode(\"hide\")\n .extend(0)\n .tickFormat(\"d\")\n ;\n protected _gantt: ReactGantt = new ReactGantt(\"origin\")\n .stroke(\"#000000\")\n .fitHeightToContent(true)\n ;\n protected _bottomAxis: Axis = new Axis(\"origin\")\n .orientation(\"bottom\")\n .type(\"linear\")\n .shrinkToFit(\"none\")\n .overlapMode(\"hide\")\n .extend(0)\n .tickFormat(\"d\")\n ;\n\n protected _topAxisElement;\n protected _contentElement;\n protected _bottomAxisElement;\n protected _topRect;\n protected _contentRect;\n protected _bottomRect;\n\n constructor() {\n super();\n this.centerOverflowX_default(\"hidden\");\n this.centerOverflowY_default(\"auto\");\n }\n\n selection(_: any[]): this;\n selection(): any[];\n selection(_?: any[]): any[] | this {\n if (!arguments.length) return this._gantt.selection();\n this._gantt.selection(_);\n return this;\n }\n\n rangeRenderer(): React.FunctionComponent;\n rangeRenderer(_: React.FunctionComponent): this;\n rangeRenderer(_?: React.FunctionComponent): this | React.FunctionComponent {\n const ret = this._gantt.rangeRenderer.apply(this._gantt, arguments);\n if (!arguments.length) return ret;\n return this;\n }\n\n resizeWrappers() {\n\n const w = this.width();\n const h = this.height();\n\n const axisHeight = this.axisHeight(); //TODO: Dynamic scaling to allow for small resolutions?\n const contentHeight = (h - (axisHeight * 2));\n\n this.bottomHeight(axisHeight);\n\n this._topWA.resize({\n width: w,\n height: axisHeight\n });\n this._centerWA.resize({\n width: w,\n height: contentHeight\n });\n this._bottomWA.resize({\n width: w,\n height: axisHeight\n });\n this.top().render();\n this.bottom().render();\n this.center().render();\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n\n this._gantt.click = (row, col, sel) => {\n this.click(row, col, sel);\n };\n\n this._gantt.dblclick = (row, col, sel) => {\n this.dblclick(row, col, sel);\n };\n\n this.top(this._topAxis);\n this.center(this._gantt);\n this.bottom(this._bottomAxis);\n\n this.resizeWrappers();\n\n this._gantt.zoomedHook = (transform) => {\n this.onzoom(transform);\n };\n }\n\n onzoom(transform) {\n const w = this.width();\n const low = this._gantt._minStart;\n const high = this._gantt._maxEnd;\n const range = high - low;\n const wpp = range / w;\n const nextLow = Math.floor(low - (wpp * (transform.x / transform.k)));\n const nextHigh = Math.ceil((range / transform.k) + nextLow);\n\n this._topAxis\n .fontFamily(this.axisFontFamily())\n .fontSize(this.axisFontSize())\n .tickLength(this.axisTickLength())\n .low(nextLow)\n .high(nextHigh)\n .lazyRender()\n ;\n this._bottomAxis\n .fontFamily(this.axisFontFamily())\n .fontSize(this.axisFontSize())\n .tickLength(this.axisTickLength())\n .low(nextLow)\n .high(nextHigh)\n .lazyRender()\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n this._topAxis.tickFormat(this.tickFormat()).render();\n this._bottomAxis.tickFormat(this.tickFormat()).render();\n this._gantt.render();\n }\n\n columns(): string[];\n columns(_: string[]): this;\n columns(_?: string[]): this | string[] {\n const retVal = super.columns.apply(this, arguments);\n if (arguments.length > 0) {\n this._gantt.columns(_);\n }\n return retVal;\n }\n\n data(): IAxisGanttData[];\n data(_: IAxisGanttData[]): this;\n data(_?: IAxisGanttData[]): this | IAxisGanttData[] {\n const retVal = super.data.apply(this, arguments);\n if (arguments.length > 0) {\n const ganttData: any[] = this.data().map(n => {\n const ret = [...n];\n ret[1] = isNaN(n[1] as any) ? new Date(n[1]).getTime() : Number(n[1]);\n ret[2] = isNaN(n[2] as any) ? new Date(n[2]).getTime() : Number(n[2]);\n return ret;\n });\n\n this._gantt._minStart = d3Min(ganttData, n => n[1]);\n this._gantt._maxEnd = d3Max(ganttData, n => n[2]);\n this._gantt.data(ganttData);\n }\n return retVal;\n }\n\n resize(_size?: { width: number, height: number }) {\n const retVal = super.resize.apply(this, arguments);\n\n if (this._topAxisElement) {\n this.resizeWrappers();\n }\n\n return retVal;\n }\n\n click(row, col, sel) {\n\n }\n\n dblclick(row, col, sel) {\n\n }\n\n tooltip() {\n return this._gantt._tooltip;\n }\n}\nReactAxisGanttSeries.prototype._class += \" timeline_ReactAxisGanttSeries\";\n\nexport interface ReactAxisGanttSeries {\n tickFormat(): string;\n tickFormat(_: string): this;\n tickFormat_exists(): boolean;\n overlapTolerence(): number;\n overlapTolerence(_: number): this;\n smallestRangeWidth(): number;\n smallestRangeWidth(_: number): this;\n scaleMode(): boolean;\n scaleMode(_: boolean): this;\n fontSize(): number;\n fontSize(_: number): this;\n fontFamily(): string;\n fontFamily(_: string): this;\n strokeWidth(): number;\n strokeWidth(_: number): this;\n stroke(): string;\n stroke(_: string): this;\n cornerRadius(): number;\n cornerRadius(_: number): this;\n axisFontSize(): number;\n axisFontSize(_: number): this;\n axisFontFamily(): string;\n axisFontFamily(_: string): this;\n axisTickLength(): number;\n axisTickLength(_: number): this;\n axisHeight(): number;\n axisHeight(_: number): this;\n titleColumn(): string;\n titleColumn(_: string): this;\n startDateColumn(): string;\n startDateColumn(_: string): this;\n endDateColumn(): string;\n endDateColumn(_: string): this;\n iconColumn(): string;\n iconColumn(_: string): this;\n colorColumn(): string;\n colorColumn(_: string): this;\n seriesColumn(): string;\n seriesColumn(_: string): this;\n bucketColumn(): string;\n bucketColumn(_: string): this;\n maxZoom(): number;\n maxZoom(_: number): this;\n}\nReactAxisGanttSeries.prototype.publish(\"tickFormat\", null, \"string\", \"Format rule applied to axis tick labels\", undefined, { optional: true });\nReactAxisGanttSeries.prototype.publish(\"axisHeight\", 22, \"number\", \"Height of axes (pixels)\");\nReactAxisGanttSeries.prototype.publish(\"overlapTolerence\", 2, \"number\", \"overlapTolerence\");\nReactAxisGanttSeries.prototype.publish(\"smallestRangeWidth\", 10, \"number\", \"Width of the shortest range (pixels)\");\nReactAxisGanttSeries.prototype.publish(\"axisFontSize\", null, \"number\", \"Font size of axis tick labels\");\nReactAxisGanttSeries.prototype.publish(\"axisFontFamily\", null, \"string\", \"Font family of axis tick labels\");\nReactAxisGanttSeries.prototype.publish(\"axisTickLength\", null, \"number\", \"Length of axis ticks\");\nReactAxisGanttSeries.prototype.publishProxy(\"gutter\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"renderMode\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"strokeWidth\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"fontSize\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"fontFamily\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"stroke\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"cornerRadius\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"titleColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"startDateColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"endDateColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"iconColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"colorColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"seriesColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"bucketColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"maxZoom\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"evenSeriesBackground\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"oddSeriesBackground\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"bucketHeight\", \"_gantt\");\n", "import { timeFormat as d3TimeFormat, timeParse as d3TimeParse } from \"d3-time-format\";\nimport { ReactAxisGantt } from \"./ReactAxisGantt.ts\";\n\nexport class ReactTimeline extends ReactAxisGantt {\n\n protected _axisLabelFormatter;//TODO: add a type to this? d3 time formatting function type?\n\n constructor() {\n super();\n this._drawStartPos = \"origin\";\n this._topAxis.type(\"time\");\n this._bottomAxis.type(\"time\");\n\n this.tooltipHTML((d: any) => {\n const parser = d3TimeParse(\"%Q\");\n const startTime = parser(d[1]);\n const endTime = parser(d[2]);\n\n const formatter = d3TimeFormat(this.tooltipTimeFormat());\n return `<div style=\"text-align:center;\">${d[0]}<br/><br/>${formatter(startTime)} -&gt; ${formatter(endTime)}</div>`;\n });\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n if (this.timePattern_exists()) {\n\n let minTimestamp = Infinity;\n let maxTimestamp = -Infinity;\n let lowDateStr = \"\";\n let highDateStr = \"\";\n this.data().map(n => {\n const start = new Date(n[1]).getTime();\n const end = new Date(n[2]).getTime();\n if (minTimestamp > start) {\n minTimestamp = start;\n lowDateStr = \"\" + n[1];\n }\n if (maxTimestamp < end) {\n maxTimestamp = end;\n highDateStr = \"\" + n[2];\n }\n });\n this._topAxis\n .type(\"time\")\n .timePattern(this.timePattern())\n .overlapMode(\"none\")\n .tickFormat(this._axisLabelFormatter)\n .low(lowDateStr)\n .high(highDateStr)\n ;\n this._bottomAxis\n .type(\"time\")\n .timePattern(this.timePattern())\n .overlapMode(\"none\")\n .tickFormat(this._axisLabelFormatter)\n .low(lowDateStr)\n .high(highDateStr)\n ;\n this._gantt._minStart = minTimestamp;\n this._gantt._maxEnd = maxTimestamp;\n }\n }\n\n tooltipHTML(callback) {\n this._tooltipHTML = callback;\n this.tooltip().tooltipHTML(this._tooltipHTML);\n return this;\n }\n\n parseAxisValue(v) {\n const parseTime = d3TimeParse(\"%Q\");\n const parsedTime = parseTime(v);\n\n const formatTime = d3TimeFormat(this.timePattern());\n return formatTime(parsedTime);\n }\n\n onzoom(transform) {\n\n const w = this.width();\n const low = this._gantt._minStart;\n const high = this._gantt._maxEnd;\n const range = high - low;\n const wpp = range / w;\n const nextLow = Math.floor(low - (wpp * (transform.x / transform.k)));\n const nextHigh = Math.ceil((range / transform.k) + nextLow);\n\n this._topAxis\n .low(this.parseAxisValue(nextLow))\n .high(this.parseAxisValue(nextHigh))\n .render()\n ;\n this._bottomAxis\n .low(this.parseAxisValue(nextLow))\n .high(this.parseAxisValue(nextHigh))\n .render()\n ;\n }\n}\nReactTimeline.prototype._class += \" timeline_ReactTimeline\";\n\nexport interface ReactTimeline {\n _tooltipHTML(_): string;\n\n timePattern(): string;\n timePattern(_: string): this;\n timePattern_exists(): boolean;\n tooltipTimeFormat(): string;\n tooltipTimeFormat(_: string): this;\n}\nReactTimeline.prototype.publish(\"timePattern\", \"%Y-%m-%d\", \"string\", \"Time pattern used for parsing datetime strings on each data row\", null, { optional: true });\nReactTimeline.prototype.publish(\"tooltipTimeFormat\", \"%Y-%m-%d\", \"string\", \"Time format used in the default html tooltip\");\n\n", "import { timeFormat as d3TimeFormat, timeParse as d3TimeParse } from \"d3-time-format\";\nimport { ReactAxisGanttSeries } from \"./ReactAxisGanttSeries.ts\";\n\nconst parseTime = d3TimeParse(\"%Q\");\nexport class ReactTimelineSeries extends ReactAxisGanttSeries {\n\n protected _axisLabelFormatter;//TODO: add a type to this? d3 time formatting function type?\n\n constructor() {\n super();\n this._topAxis.type(\"time\");\n this._bottomAxis.type(\"time\");\n\n this.tooltipHTML((d: any) => {\n const startTime = parseTime(d[1]);\n const endTime = parseTime(d[2]);\n\n const formatter = d3TimeFormat(this.tooltipTimeFormat());\n return `<div style=\"text-align:center;\">${d[0]}<br/><br/>${formatter(startTime)} -&gt; ${formatter(endTime)}</div>`;\n });\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n if (this.timePattern_exists()) {\n\n let minTimestamp = Infinity;\n let maxTimestamp = -Infinity;\n let lowDateStr = \"\";\n let highDateStr = \"\";\n this.data().forEach(n => {\n const start = new Date(n[1]).getTime();\n const end = new Date(n[2]).getTime();\n if (minTimestamp > start) {\n minTimestamp = start;\n lowDateStr = \"\" + n[1];\n }\n if (maxTimestamp < end) {\n maxTimestamp = end;\n highDateStr = \"\" + n[2];\n }\n });\n this._topAxis\n .type(\"time\")\n .timePattern(this.timePattern())\n .overlapMode(\"none\")\n .tickFormat(this._axisLabelFormatter)\n .low(lowDateStr)\n .high(highDateStr)\n ;\n this._bottomAxis\n .type(\"time\")\n .timePattern(this.timePattern())\n .overlapMode(\"none\")\n .tickFormat(this._axisLabelFormatter)\n .low(lowDateStr)\n .high(highDateStr)\n ;\n this._gantt._minStart = minTimestamp;\n this._gantt._maxEnd = maxTimestamp;\n }\n }\n\n tooltipHTML(callback) {\n this._tooltipHTML = callback;\n this.tooltip().tooltipHTML(this._tooltipHTML);\n return this;\n }\n\n parseAxisValue(v) {\n const parsedTime = parseTime(v);\n\n const formatTime = d3TimeFormat(this.timePattern());\n return formatTime(parsedTime);\n }\n\n onzoom(transform) {\n\n const w = this.width();\n const low = this._gantt._minStart;\n const high = this._gantt._maxEnd;\n const range = high - low;\n const wpp = range / w;\n const nextLow = Math.floor(low - (wpp * (transform.x / transform.k)));\n const nextHigh = Math.ceil((range / transform.k) + nextLow);\n\n this._topAxis\n .low(this.parseAxisValue(nextLow))\n .high(this.parseAxisValue(nextHigh))\n .render()\n ;\n this._bottomAxis\n .low(this.parseAxisValue(nextLow))\n .high(this.parseAxisValue(nextHigh))\n .render()\n ;\n }\n\n _tooltipHTML: (_) => string;\n}\nReactTimelineSeries.prototype._class += \" timeline_ReactTimelineSeries\";\n\nexport interface ReactTimelineSeries {\n timePattern(): string;\n timePattern(_: string): this;\n timePattern_exists(): boolean;\n tooltipTimeFormat(): string;\n tooltipTimeFormat(_: string): this;\n}\nReactTimelineSeries.prototype.publish(\"timePattern\", \"%Y-%m-%d\", \"string\", \"Time pattern used for parsing datetime strings on each data row\", null, { optional: true });\nReactTimelineSeries.prototype.publish(\"tooltipTimeFormat\", \"%Y-%m-%d\", \"string\", \"Time format used in the default html tooltip\");\n\n"],
5
+ "mappings": "+EAAO,IAAMA,GAAW,oBACXC,GAAc,QACdC,GAAgB,QCF7B,OAAS,YAAAC,MAAgB,eACzB,OAAS,QAAAC,MAAY,iBACrB,OAAS,WAAAC,EAAS,aAAAC,EAAW,cAAAC,EAAY,SAASC,EAAS,UAAUC,EAAU,aAAAC,EAAW,WAAAC,MAAe,kBACzG,OAAS,UAAUC,MAAgB,kBACnC,OAAS,aAAaC,MAAmB,kBACzC,OAAS,cAAcC,EAAc,aAAaC,MAAmB,kBACrE,OAAS,QAAQC,GAAQ,gBAAgBC,OAAsB,mBCN9D,UAAU,CACH,GAAI,CAAC,SAAS,eAAe,UAAU,EAAG,CACtC,IAAIC,EAAI,SAAS,cAAc,OAAO,EACtCA,EAAE,GAAK,WACPA,EAAE,YAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GA+BhB,SAAS,KAAK,YAAYA,CAAC,CAC/B,CACJ,GAAG,ED3BA,IAAMC,EAAN,cAAwBC,CAAU,CAVzC,MAUyC,CAAAC,EAAA,kBAC3B,OACA,OACA,cACA,MACA,cACA,WACA,eACA,WACA,cACF,UAAYC,EAAoB,EAChC,eAAiBA,EAAmB,EACpC,iBACA,WAEE,WACA,WAAa,EACb,eAAiB,EACjB,aAAe,EACf,UAAY,GACZ,WAAa,GACb,aAAe,GAEzB,aAAc,CACV,MAAM,EACNC,EAAS,KAAK,IAAI,EAClBC,EAAQ,qBAAqB,KAAK,IAAI,EAEtC,KAAK,cAAgB,SACrB,KAAK,YAAaC,GAAW,WAAWA,EAAE,KAAK,UAAU,CAAC,gBAAgB,KAAK,iBAAiB,KAAK,OAAO,MAAMA,EAAE,KAAK,cAAc,CAAC,CAAC,CAAC,OAAO,KAAK,iBAAiB,KAAK,OAAO,MAAMA,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,EAEjN,KAAK,OAAS,IAAIC,EAAK,EAClB,KAAK,MAAM,EAEhB,KAAK,OAAS,IAAIA,EAAK,EAClB,KAAK,MAAM,EAEhB,KAAK,cAAgBC,EAAY,EAC5B,aAAa,EAAG,EAChB,aAAa,EAAG,CAEzB,CAEA,cAAwB,CACpB,OAAO,KAAK,YAAY,IAAM,YAClC,CAEA,YAAa,CACT,IAAMC,EAAO,CAAC,GAAG,KAAK,KAAK,EAAE,IAAIH,GAAKA,EAAE,KAAK,cAAc,CAAC,EAAG,GAAG,KAAK,KAAK,EAAE,OAAOA,GAAK,CAAC,CAACA,EAAE,KAAK,YAAY,CAAC,EAAE,IAAIA,GAAKA,EAAE,KAAK,YAAY,CAAC,CAAC,EAChJ,OAAOI,EAASD,CAAI,CACxB,CAEA,QAAS,CACL,IAAME,EAAS,KAAK,WAAa,CAAC,KAAK,WAAW,CAAC,EAAG,KAAK,WAAW,CAAC,CAAC,EAAI,KAAK,WAAW,EAC5F,GAAIA,EAAO,CAAC,IAAM,QAAaA,EAAO,CAAC,IAAM,SACrCA,EAAO,CAAC,IAAMA,EAAO,CAAC,GAAK,KAAK,mBAAmB,GAAG,CACtD,IAAMC,EAASC,EAAY,KAAK,YAAY,CAAC,EACvCC,EAAYC,EAAa,KAAK,YAAY,CAAC,EAC3CC,EAAQJ,EAAOD,EAAO,CAAC,CAAC,EACxBM,EAAQL,EAAOD,EAAO,CAAC,CAAC,EAC9B,GAAIA,EAAO,CAAC,IAAMA,EAAO,CAAC,EACtBA,EAAO,CAAC,EAAIG,EAAU,IAAI,KAAKE,EAAM,YAAYA,EAAM,YAAY,EAAI,CAAC,CAAC,CAAC,EAC1EL,EAAO,CAAC,EAAIG,EAAU,IAAI,KAAKE,EAAM,YAAYA,EAAM,YAAY,EAAI,CAAC,CAAC,CAAC,MACvE,CACH,IAAME,EAAQF,EAAM,QAAQ,EACtBG,EAAWF,EAAM,QAAQ,EAAIC,EACnCP,EAAO,CAAC,EAAIG,EAAUE,CAAK,EAC3BL,EAAO,CAAC,EAAIG,EAAU,IAAI,KAAKI,EAASC,EAAW,CAAE,CAAC,CAC1D,CACJ,CAEJ,OAAOR,CACX,CAEA,aAAaL,EAAG,CACZ,GAAI,OAAO,KAAK,WAAWA,EAAE,KAAK,cAAc,CAAC,EAAM,IACnD,OAAO,KAAK,WAAWA,EAAE,KAAK,cAAc,CAAC,EAEjD,IAAMc,EAAM,KAAK,OAAO,SAASd,EAAE,KAAK,cAAc,CAAC,EACvD,YAAK,WAAWA,EAAE,KAAK,cAAc,CAAC,EAAIc,EACnCA,CACX,CAEA,WAAWd,EAAG,CACV,GAAI,OAAO,KAAK,WAAWA,EAAE,KAAK,YAAY,CAAC,EAAM,IACjD,OAAO,KAAK,WAAWA,EAAE,KAAK,YAAY,CAAC,EAE/C,IAAMc,EAAM,KAAK,OAAO,SAASd,EAAE,KAAK,YAAY,CAAC,EACrD,YAAK,WAAWA,EAAE,KAAK,YAAY,CAAC,EAAIc,EACjCA,CACX,CAEA,UAAUd,EAAG,CACT,OAAO,KAAK,WAAWA,CAAC,EAAI,KAAK,aAAaA,CAAC,CACnD,CAEQ,UACR,WAAY,CAER,KAAK,MAAM,UAAU,KAAK,QAAQ,EAAGe,GAAe,UAAU,EAAG,KAAK,aAAa,EAAI,EAAI,KAAK,OAAO,CAAC,CAAC,CAC7G,CAEA,QAAS,CACL,KAAK,UAAYC,EAAQ,EAAE,UAC3B,KAAK,OAAO,CAChB,CAEQ,WACR,MAAMC,EAASC,EAAS,CACpB,MAAM,MAAMD,EAASC,CAAO,EAC5B,KAAK,MAAQC,GAAO,EACf,YAAY,CAAC,EAAG,KAAK,QAAQ,CAAC,CAAC,EAC/B,GAAG,OAAQ,IAAM,CACd,KAAK,OAAO,CAChB,CAAC,EAGL,KAAK,WAAaD,EAAQ,OAAO,MAAM,EAClC,KAAK,OAAQ,OAAO,EACpB,KAAK,UAAW,CAAC,EACjB,GAAG,WAAY,IAAM,CAClBF,EAAQ,EAAE,gBAAgB,EAC1B,OAAO,KAAK,WACZ,KAAK,UAAU,CACnB,CAAC,EAEL,KAAK,cAAgBE,EAAQ,OAAO,GAAG,EAAE,KAAK,QAAS,eAAe,EACtE,KAAK,WAAaA,EAAQ,OAAO,GAAG,EAAE,KAAK,QAAS,YAAY,EAChE,KAAK,eAAiBA,EAAQ,OAAO,GAAG,EAAE,KAAK,QAAS,gBAAgB,EACxE,KAAK,WAAaA,EAAQ,OAAO,GAAG,EAAE,KAAK,QAAS,YAAY,EAChE,KAAK,cAAgBA,EAAQ,OAAO,GAAG,EAAE,KAAK,QAAS,eAAe,EACtE,KAAK,OACA,OAAO,KAAK,WAAW,KAAK,CAAC,EAC7B,WAAW,KAAK,WAAW,CAAC,EAC5B,YAAY,KAAK,WAAW,OAAO,GAAG,EAAE,KAAK,CAAC,EAC9C,YAAY,MAAM,EAClB,YAAY,KAAK,kBAAkB,EAAI,UAAY,MAAM,EACzD,OAAO,EAAG,EAEf,KAAK,OACA,OAAO,KAAK,WAAW,KAAK,CAAC,EAC7B,WAAW,KAAK,WAAW,CAAC,EAC5B,YAAY,KAAK,WAAW,OAAO,GAAG,EAAE,KAAK,CAAC,EAC9C,YAAY,MAAM,EAClB,YAAY,KAAK,kBAAkB,EAAI,UAAY,MAAM,EACzD,OAAO,EAAG,EAGfA,EAAQ,KAAK,KAAK,KAAK,EACvB,KAAK,WAAW,cAAc,KAAK,cAAc,CACrD,CAEQ,kBACR,OAAOD,EAASC,EAAS,CAYrB,GAXA,MAAM,OAAOD,EAASC,CAAO,EAE7B,KAAK,WAAa,CAAC,EAEnB,KAAK,WAAa,KAAK,YAAY,IAAM,KAAO,KAAK,QAAQ,EAAE,QAAQ,KAAK,YAAY,CAAC,EAAI,KAAK,WAClG,KAAK,eAAiB,KAAK,gBAAgB,IAAM,KAAO,KAAK,QAAQ,EAAE,QAAQ,KAAK,gBAAgB,CAAC,EAAI,KAAK,eAC9G,KAAK,aAAe,KAAK,cAAc,IAAM,KAAO,KAAK,QAAQ,EAAE,QAAQ,KAAK,cAAc,CAAC,EAAI,KAAK,aACxG,KAAK,UAAY,KAAK,WAAW,IAAM,KAAO,KAAK,QAAQ,EAAE,QAAQ,KAAK,WAAW,CAAC,EAAI,KAAK,UAC/F,KAAK,WAAa,KAAK,YAAY,IAAM,KAAO,KAAK,QAAQ,EAAE,QAAQ,KAAK,YAAY,CAAC,EAAI,KAAK,WAClG,KAAK,aAAe,KAAK,cAAc,IAAM,KAAO,KAAK,QAAQ,EAAE,QAAQ,KAAK,cAAc,CAAC,EAAI,KAAK,aAEpG,KAAK,oBAAsB,KAAK,aAAa,EAAG,CAChD,KAAK,kBAAoB,KAAK,aAAa,EAC3C,KAAK,UAAU,EACf,MACJ,CAEA,KAAK,iBAAmBT,EAAa,KAAK,kBAAkB,CAAC,EAE7D,IAAMW,EAAQ,KAAK,MAAM,EACnBC,EAAS,KAAK,OAAO,EAE3B,KAAK,WACA,KAAK,IAAK,CAAC,EACX,KAAK,IAAK,CAAC,EACX,KAAK,QAASD,CAAK,EACnB,KAAK,SAAUC,CAAM,EAG1B,IAAMhB,EAAS,KAAK,OAAO,EAyB3B,GAxBA,KAAK,OACA,EAAEe,EAAQ,CAAC,EACX,YAAY,KAAK,aAAa,EAAI,MAAQ,MAAM,EAChD,QAAQ,CAAC,KAAK,aAAa,CAAC,EAC5B,YAAY,KAAK,YAAY,CAAC,EAC9B,MAAMA,EAAQ,CAAC,EACf,IAAIf,EAAO,CAAC,CAAC,EACb,KAAKA,EAAO,CAAC,CAAC,EACd,YAAY,EAGjB,KAAK,OACA,EAAEe,EAAQ,CAAC,EACX,EAAEC,EAAS,CAAC,EACZ,YAAY,KAAK,aAAa,EAAI,SAAW,OAAO,EACpD,QAAQ,CAAC,KAAK,aAAa,CAAC,EAC5B,YAAY,KAAK,YAAY,CAAC,EAC9B,MAAMD,EAAQ,CAAC,EACf,OAAOC,CAAM,EACb,IAAIhB,EAAO,CAAC,CAAC,EACb,KAAKA,EAAO,CAAC,CAAC,EACd,YAAY,EAGb,KAAK,UAAW,CAChB,IAAIiB,EACAC,EACA,KAAK,aAAa,GAClBD,EAAM,KAAK,OAAO,YAAY,KAAK,OAAO,OAAO,KAAK,UAAU,QAAQ,CAAC,CAAC,CAAC,EAC3EC,EAAK,KAAK,OAAO,YAAY,KAAK,OAAO,OAAO,KAAK,UAAU,QAAQH,EAAQ,CAAC,CAAC,CAAC,IAElFE,EAAM,KAAK,OAAO,YAAY,KAAK,OAAO,OAAO,CAAE,KAAK,UAAU,QAAQ,CAAC,CAAC,CAAC,EAC7EC,EAAK,KAAK,OAAO,YAAY,KAAK,OAAO,OAAO,CAAE,KAAK,UAAU,QAAQF,EAAS,CAAC,CAAC,CAAC,GAEzF,KAAK,OACA,IAAIC,CAAG,EACP,KAAKC,CAAE,EACP,YAAY,EAEjB,KAAK,OACA,IAAID,CAAG,EACP,KAAKC,CAAE,EACP,YAAY,CAErB,CAEA,IAAMpB,EAAO,KAAK,KAAK,EAAE,KAAK,KAAK,aAAa,EAAI,CAACqB,EAAGC,IAAM,CAC1D,IAAMC,EAAS,KAAK,OAAO,SAASF,EAAE,CAAC,CAAC,EAAI,KAAK,OAAO,SAASC,EAAE,CAAC,CAAC,EACrE,OAAIC,IAAW,GACH,GAAKF,EAAE,CAAC,GAAG,cAAc,GAAKC,EAAE,CAAC,CAAC,EAEvCC,CACX,EAAI,CAACF,EAAGC,IACG,KAAK,OAAO,SAASA,EAAE,CAAC,CAAC,EAAI,KAAK,OAAO,SAASD,EAAE,CAAC,CAAC,CAChE,EACKG,EAASxB,EAAK,OAAOH,GAAK,CAACA,EAAE,KAAK,YAAY,CAAC,EAC/C4B,EAASzB,EAAK,OAAOH,GAAK,CAAC,CAACA,EAAE,KAAK,YAAY,CAAC,EAEtD,KAAK,OACA,OAAO,EAEZ,KAAK,OACA,OAAO,EAEZ,IAAM6B,EAAa,KAAK,OAAO,QAAQ,EAEnCC,EAAqB,KAAK,iBAAiBH,CAAM,EAC/CI,EAAkBF,EAAW,OAC/BG,EAAcX,EAASS,EACrBG,EAAa,KAAK,eAAiB,GAAK,KAAK,IAAI,MAAM,OAAW,KAAK,KAAK,EAAE,OAAOC,GAAO,CAAC,MAAMA,EAAI,KAAK,YAAY,CAAC,CAAC,EAAE,IAAIA,GAAOA,EAAI,KAAK,YAAY,CAAC,CAAC,EAAI,EACxK,GAAIP,EAAO,OAAS,GAAKC,EAAO,SAAW,EAAG,CAE1C,KAAK,OAAO,QAAQ,EAAK,EACzB,IAAIO,EAAWL,EAAqB,EAChCK,EAAYd,EAAS,EAAKU,IAC1BI,EAAYd,EAAS,EAAKU,GAE9B,IAAMK,EAAuBf,EAAS,EAAKc,EACrCE,GAAqBhB,EAAS,EAAKU,EAAkBI,GAAY,GACjEG,EAAiBL,IAAe,EAAIA,EAAa,EAAI,EAC3D,KAAK,cAAc,KAAK,YAAa,gBAAgBG,EAAsBE,CAAc,GAAG,EAC5F,KAAK,WAAW,KAAK,YAAa,gBAAgBD,EAAmBC,CAAc,GAAG,CAC1F,MAAWX,EAAO,SAAW,GAAKC,EAAO,OAAS,GAE9C,KAAK,OAAO,QAAQ,EAAI,EACxB,KAAK,cAAc,KAAK,YAAa,gBAAgBE,CAAkB,GAAG,EAC1E,KAAK,WAAW,KAAK,YAAa,gBAAgBA,CAAkB,GAAG,IAEvEA,GAAsBG,EACtBD,GAAeC,EAEf,KAAK,OAAO,QAAQ,EAAI,EACxB,KAAK,cAAc,KAAK,YAAa,gBAAgBH,CAAkB,GAAG,EAC1E,KAAK,WAAW,KAAK,YAAa,gBAAgBA,CAAkB,GAAG,EACvE,KAAK,eAAe,KAAK,YAAa,gBAAgBA,CAAkB,GAAG,GAE/E,KAAK,OACA,OAAO,EAEZ,IAAMS,EAAa,KAAK,OAAO,QAAQ,EAIjCC,EAA2B,CAAC,EAC5BC,EAAc,CAAC,EACrB,QAAWC,KAASd,EAAQ,CACxB,QAASe,EAAI,EAAGA,EAAIH,EAAW,OAAQ,EAAEG,EAAG,CACxC,IAAMC,EAASJ,EAAWG,CAAC,EAC3B,GAAIC,EAAO,OAAS,KAAK,iBAAiB,GAAK,KAAK,aAAaF,CAAK,EAAG,CACrED,EAAYC,CAAK,EAAIC,EACrBC,EAAO,OAAS,KAAK,WAAWF,CAAK,EACrC,KACJ,CACJ,CAEID,EAAYC,CAAK,IAAM,SACvBD,EAAYC,CAAK,EAAIF,EAAW,OAChCA,EAAW,KAAK,CACZ,OAAQ,KAAK,WAAWE,CAAK,CACjC,CAAC,EAET,CAEA,IAAMG,EAAU,KAAK,aAAa,EAAI,EAAIN,EAAW,OAAS,EAAIA,EAAW,MACvEO,EAAW,KAAK,aAAa,EAAId,EAAcH,EAAW,OAAST,EAAQS,EAAW,MAC5F,KAAK,cACA,MAAM,CAACgB,EAASC,CAAQ,CAAC,EACzB,OAAON,EAAW,IAAI,CAACO,EAAIJ,IAAMA,CAAC,CAAC,EAGpCf,EAAO,OAAS,GAChB,KAAK,kBAAkBD,EAAQC,EAAQa,EAAaT,EAAaO,EAAYV,EAAYT,CAAK,CAEtG,CAEA,iBAAiBO,EAAQ,CACrB,IAAIqB,EAAe,EACbC,EAAU,KACVC,EAAa,KAAK,cAAc,UAAU,aAAa,EAAE,KAAKvB,EAAQ3B,GAAKA,EAAE,CAAC,EAAI,IAAMA,EAAE,CAAC,CAAC,EAC5FmD,EAAqB,KAAK,qBAAqB,EAAI,KAAK,QAAQ,EAAE,QAAQ,KAAK,qBAAqB,CAAC,EAAI,GACzGC,EAAuB,KAAK,uBAAuB,EAAI,KAAK,QAAQ,EAAE,QAAQ,KAAK,uBAAuB,CAAC,EAAI,GAC/GC,EAA2B,KAAK,2BAA2B,EAAI,KAAK,QAAQ,EAAE,QAAQ,KAAK,2BAA2B,CAAC,EAAI,GAC3HC,EAAe,CAAC,EACtB,QAAWtD,KAAK2B,EAAQ,CACpB,IAAM4B,EAAO,OAAOvD,EAAEiD,EAAQ,UAAU,EAAM,IAAcjD,EAAEiD,EAAQ,UAAU,EAAIjD,EAAE,CAAC,EACvFsD,EAAaC,CAAI,EAAID,EAAaC,CAAI,EAAID,EAAaC,CAAI,EAAI,EAAI,CACvE,CACA,IAAMC,EAAc,OAAO,KAAKF,CAAY,EACtCG,EAAqBR,EAAQ,iBAAiB,EAC9CS,EAAkBR,EAAW,MAAM,EAAE,OAAO,GAAG,EAChD,KAAK,QAAS,YAAY,EAC/BQ,EAAgB,OAAO,MAAM,EACxB,KAAK,QAAS,aAAa,EAEhCA,EACK,GAAG,YAAa,SAAU1D,EAAG,CAC1B2D,EAAS,IAAI,EAAE,MAAM,CACzB,CAAC,EACA,KAAK,SAAU3D,EAAG2C,EAAG,CAClB,IAAMiB,EAAY,IAAIC,EAAU,EAC3B,OAAO,IAAI,EACX,KAAK,QAAG,EACR,oBAAoBZ,EAAQ,sBAAsB,CAAC,EACnD,qBAAqBA,EAAQ,uBAAuB,CAAC,EACrD,2BAA2BA,EAAQ,6BAA6B,CAAC,EACjE,0BAA0BA,EAAQ,6BAA6B,CAAC,EAChE,aAAa,EAAE,EACf,mBAAmB,CAAC,EACpB,cAAc,EAAE,EAChB,iBAAiB,MAAM,EACvB,oBAAoB,EAAE,EACtB,UAAUE,IAAuB,GAAK,OAASnD,EAAEmD,CAAkB,CAAC,EACpE,WAAWA,IAAuB,GAAK,OAASnD,EAAEmD,CAAkB,CAAC,EACrE,iBAAiBA,IAAuB,GAAK,OAASnD,EAAEmD,CAAkB,CAAC,EAC3E,gBAAgB,KAAK,EACrB,oBAAoBA,IAAuB,GAAK,UAAYnD,EAAEqD,CAAwB,CAAC,EACvF,sBAAsBF,IAAuB,GAAK,OAASnD,EAAEoD,CAAoB,CAAC,EAClF,aAAa,CAAC,EACd,YAAY,EAAE,EACd,WAAW,EAAE,EAElBH,EAAQ,eAAe,IAAI,KAAMW,CAAS,CAC9C,CAAC,EACA,MAAMV,CAAU,EAChB,KAAK,SAAUlD,EAAG2C,EAAG,CAClB,IAAMiB,EAAYX,EAAQ,eAAe,IAAI,IAAI,EAC3Ca,EAAS,OAAO9D,EAAEiD,EAAQ,UAAU,EAAM,IAAcjD,EAAEiD,EAAQ,UAAU,EAAIW,EAAU,MAAM,EAChGG,EAAWd,EAAQ,aAAajD,CAAC,EAAI,EACvCmC,EAAaqB,EAAY,QAAQM,CAAM,EAAIb,EAAQ,cAAc,EAAKQ,EAAsB,EAEhG,GADI,OAAOzD,EAAEiD,EAAQ,YAAY,EAAM,MAAad,GAAYnC,EAAEiD,EAAQ,YAAY,EAAIjD,EAAEiD,EAAQ,YAAY,EAAI,GAChHjD,EAAEiD,EAAQ,UAAU,IAAMW,EAAU,MAAM,GAAK5D,EAAEiD,EAAQ,cAAc,IAAMW,EAAU,YAAY,EAAG,CACtG,IAAMI,EAAoBf,EAAQ,OAAO,MAAMjD,EAAEiD,EAAQ,cAAc,CAAC,EAClEgB,EAAuBhB,EAAQ,iBAAiBe,CAAiB,EACvEJ,EACK,EAAEG,CAAQ,EACV,EAAE5B,CAAQ,EACV,oBAAoBc,EAAQ,sBAAsB,CAAC,EACnD,qBAAqBA,EAAQ,uBAAuB,CAAC,EACrD,2BAA2BA,EAAQ,6BAA6B,CAAC,EACjE,0BAA0BA,EAAQ,6BAA6B,CAAC,EAChE,KAAK,OAAOjD,EAAEiD,EAAQ,SAAS,EAAM,IAAcjD,EAAEiD,EAAQ,SAAS,EAAIW,EAAU,KAAK,CAAC,EAC1F,MAAME,CAAM,EACZ,YAAYG,CAAoB,EAChC,qBAAqB,CAE9B,MACIL,EAAU,KAAK,CAAE,EAAGG,EAAU,EAAG5B,CAAS,CAAC,EAE/C,IAAM+B,EAAcN,EAAU,WAAW,EACrCZ,EAAekB,IAAalB,EAAekB,GAE/CP,EAAS,IAAI,EAAE,UAAU,cAAc,EAClC,KAAK,KAAMI,CAAQ,EACnB,KAAK,KAAMA,CAAQ,EACnB,KAAK,KAAM,CAAC,EACZ,KAAK,KAAM5B,CAAQ,EACnB,MAAM,SAAUgB,IAAuB,GAAK,OAASnD,EAAEoD,CAAoB,CAAC,EAC5E,MAAM,eAAgB,CAAC,CAEhC,CAAC,EAELF,EAAW,KAAK,EACX,KAAK,SAAUlD,EAAG2C,EAAG,CACAM,EAAQ,eAAe,IAAI,IAAI,EACvC,OAAO,IAAI,CAEzB,CAAC,EACA,OAAO,EACZ,IAAMkB,EAAe,KAAK,IAAI,KAAK,IAAIxC,EAAO,OAAQsB,EAAQ,cAAc,CAAC,EAAIA,EAAQ,iBAAiB,CAAC,EAC3G,OAAOD,EAAemB,CAC1B,CAEA,kBAAkBxC,EAAQC,EAAQa,EAAa2B,EAAkB7B,EAAYV,EAAYT,EAAO,CAC5F,IAAM6B,EAAU,KAEVoB,EAAQ,KAAK,eAAe,UAAU,OAAO,EAAE,KAAK1C,EAAQ3B,GACvDA,EAAEiD,EAAQ,UAAU,CAC9B,EACDoB,EAAM,MAAM,EAAE,OAAO,MAAM,EACtB,KAAK,QAAS,MAAM,EACpB,MAAMA,CAAK,EACX,KAAK,KAAK,aAAa,EAAI,KAAO,KAAMrE,GAAK,KAAK,aAAaA,CAAC,EAAI,CAAC,EACrE,KAAK,KAAK,aAAa,EAAI,KAAO,KAAMA,GAAK,KAAK,aAAaA,CAAC,EAAI,CAAC,EACrE,KAAK,KAAK,aAAa,EAAI,KAAO,KAAM,KAAK,aAAa,EAAIuC,EAAW,OAASA,EAAW,KAAK,EAClG,KAAK,KAAK,aAAa,EAAI,KAAO,KAAM,KAAK,aAAa,EAAI6B,EAAmBvC,EAAW,OAAST,EAAQS,EAAW,KAAK,EAElIwC,EAAM,KAAK,EAAE,OAAO,EACpB,IAAMC,EAAU,KAAK,eAAe,UAAU,UAAU,EAAE,KAAK1C,EAAQ5B,GAAKA,EAAEiD,EAAQ,UAAU,CAAC,EACjGqB,EAAQ,MAAM,EAAE,OAAO,GAAG,EACrB,KAAK,QAAS,SAAS,EACvB,KAAK,KAAK,WAAW,MAAM,KAAK,KAAK,UAAU,CAAC,EAChD,KAAK,SAAUtE,EAAG,CACf,IAAMuE,EAAa,IAAIC,EAAW,EAC7B,OAAO,IAAI,EACX,aAAa,EAAE,EACf,mBAAmB,CAAC,EACpB,cAAc,EAAE,EAChB,WAAWvB,EAAQ,eAAe,CAAC,EACnC,iBAAiBA,EAAQ,eAAe,CAAC,EACzC,UAAUA,EAAQ,eAAe,CAAC,EAClC,gBAAgB,MAAM,EACtB,oBAAoBjD,EAAEiD,EAAQ,UAAU,CAAC,EAE9CA,EAAQ,UAAU,IAAI,KAAMsB,CAAU,EACtCtB,EAAQ,gBAAgBsB,EAAYvE,CAAC,CACzC,CAAC,EACA,GAAG,QAAS,SAAUA,EAAG,CACtBiD,EAAQ,MAAMA,EAAQ,SAASjD,CAAC,EAAG,QAASiD,EAAQ,WAAW,SAAS,IAAI,CAAC,CACjF,EAAG,EAAK,EACP,GAAG,WAAY,SAAUjD,EAAG,CACzBiD,EAAQ,WAAajD,EACrBiD,EAAQ,UAAU,EAClBA,EAAQ,SAASA,EAAQ,SAASjD,CAAC,EAAG,QAASiD,EAAQ,WAAW,SAAS,IAAI,CAAC,CACpF,EAAG,EAAI,EACN,GAAG,mBAAoB,KAAK,QAAQ,IAAI,EACxC,GAAG,oBAAqB,KAAK,QAAQ,IAAI,EACzC,MAAMqB,CAAO,EACb,KAAK,YAAatE,GAAKiD,EAAQ,aAAa,EACzC,aAAa,KAAK,aAAajD,CAAC,CAAC,KAAK,KAAK,cAAcyC,EAAYzC,CAAC,CAAC,CAAC,KACxE,aAAa,KAAK,cAAcyC,EAAYzC,CAAC,CAAC,CAAC,KAAK,KAAK,aAAaA,CAAC,CAAC,IAAI,EAC/E,KAAK,SAAUA,EAAG,CACf,IAAMyE,EAAUxB,EAAQ,UAAU,IAAI,IAAI,EACpCyB,EAAIzB,EAAQ,UAAUjD,CAAC,EAAI,EAC3B2E,EAAI1B,EAAQ,cAAc,UAAU,EAAI,EACxC2B,EAAY,KAAK,IAAI3B,EAAQ,UAAUjD,CAAC,EAAG,CAAC,EAC5C6E,EAAa,KAAK,IAAI5B,EAAQ,cAAc,UAAU,EAAG,CAAC,EAC1D6B,EAAkB,KAElBC,GADiB,EAAID,GAAmB,EACXD,EAC7BG,EAAWH,EAAaC,EACxBG,EAAWD,EACjBP,EACK,IAAIxB,EAAQ,aAAa,EAAI,CAAE,EAAAyB,EAAG,EAAAC,CAAE,EAAI,CAAE,EAAGA,EAAG,EAAGD,CAAE,CAAC,EACtD,YAAYzB,EAAQ,aAAa,EAAI4B,EAAaD,CAAS,EAC3D,WAAW3B,EAAQ,aAAa,EAAI2B,EAAYC,CAAU,EAC1D,KAAK,OAAO7E,EAAEiD,EAAQ,SAAS,EAAM,IAAcjD,EAAEiD,EAAQ,SAAS,EAAI,EAAE,EAC5E,MAAM,OAAOjD,EAAEiD,EAAQ,UAAU,EAAM,IAAcjD,EAAEiD,EAAQ,UAAU,EAAI,EAAE,EAC/E,QAAQ8B,CAAW,EACnB,aAAaE,CAAQ,EACrB,cAAcD,CAAQ,EAEvBC,EAAW,IAAML,GACjBH,EAAQ,KAAK,IAAI,EAErBxB,EAAQ,iBAAiBwB,EAASzE,EAAEiD,EAAQ,SAAS,CAAC,EACtDwB,EACK,OAAO,CAEhB,CAAC,EACLH,EAAQ,KAAK,EAAE,OAAO,CAC1B,CAEA,KAAKrD,EAASC,EAAS,CACnB,KAAK,OAAO,OAAO,IAAI,EACvB,KAAK,OAAO,OAAO,IAAI,EACvB,MAAM,KAAKD,EAASC,CAAO,CAC/B,CAGA,MAAMgB,EAAKgD,EAAKC,EAAK,CACrB,CAEA,SAASjD,EAAKgD,EAAKC,EAAK,CACxB,CAEA,gBAAgBC,EAAqBpF,EAAG,CACxC,CAEA,iBAAiBoF,EAAqBpF,EAAG,CACzC,CACJ,EACAN,EAAU,UAAU,QAAU,sBAC9BA,EAAU,UAAU,WAAWI,EAAS,SAAS,EACjDJ,EAAU,UAAU,MAAMK,EAAQ,oBAAoB,EA8DtDL,EAAU,UAAU,QAAQ,cAAe,WAAY,SAAU,aAAa,EAC9EA,EAAU,UAAU,QAAQ,aAAc,KAAM,SAAU,aAAc,OAAW,CAAE,SAAU,EAAK,CAAC,EACrGA,EAAU,UAAU,QAAQ,oBAAqB,WAAY,SAAU,mBAAmB,EAC1FA,EAAU,UAAU,QAAQ,mBAAoB,EAAG,SAAU,kBAAkB,EAC/EA,EAAU,UAAU,QAAQ,cAAe,aAAc,MAAO,cAAe,CAAC,aAAc,UAAU,CAAC,EACzGA,EAAU,UAAU,QAAQ,iBAAkB,UAAW,aAAc,gBAAgB,EACvFA,EAAU,UAAU,QAAQ,cAAe,KAAM,SAAU,aAAa,EACxEA,EAAU,UAAU,QAAQ,kBAAmB,KAAM,SAAU,iBAAiB,EAChFA,EAAU,UAAU,QAAQ,gBAAiB,KAAM,SAAU,eAAe,EAC5EA,EAAU,UAAU,QAAQ,aAAc,KAAM,SAAU,YAAY,EACtEA,EAAU,UAAU,QAAQ,cAAe,KAAM,SAAU,aAAa,EACxEA,EAAU,UAAU,QAAQ,gBAAiB,KAAM,SAAU,eAAe,EAC5EA,EAAU,UAAU,QAAQ,UAAW,GAAI,SAAU,SAAS,EAC9DA,EAAU,UAAU,QAAQ,mBAAoB,IAAK,SAAU,kBAAkB,EACjFA,EAAU,UAAU,QAAQ,gBAAiB,EAAG,SAAU,eAAe,EACzEA,EAAU,UAAU,QAAQ,uBAAwB,KAAM,SAAU,sBAAsB,EAC1FA,EAAU,UAAU,QAAQ,yBAA0B,KAAM,SAAU,wBAAwB,EAC9FA,EAAU,UAAU,QAAQ,6BAA8B,KAAM,SAAU,4BAA4B,EACtGA,EAAU,UAAU,QAAQ,wBAAyB,GAAO,UAAW,uBAAuB,EAC9FA,EAAU,UAAU,QAAQ,yBAA0B,GAAO,UAAW,wBAAwB,EAChGA,EAAU,UAAU,QAAQ,+BAAgC,GAAO,UAAW,8BAA8B,EAC5GA,EAAU,UAAU,QAAQ,+BAAgC,GAAM,UAAW,8BAA8B,EAC3GA,EAAU,UAAU,QAAQ,qBAAsB,GAAO,UAAW,sEAAsE,EEnmB1I,OAAS,WAAA2F,EAAS,UAAUC,EAAU,iBAAAC,GAAe,WAAAC,MAAe,kBACpE,OAAS,eAAAC,OAAmB,gBAC5B,OAAS,eAAeC,MAAqB,kBAC7C,OAAgB,UAAAC,GAAQ,gBAAAC,OAAoB,iBAerC,IAAMC,EAAN,cAAyBC,EAAc,CAlB9C,MAkB8C,CAAAC,EAAA,mBAEhC,WAAa,IAAIC,EAAQ,UAAU,IAAI,EAEvC,SACA,cACA,cAEA,iBACA,cACA,YACF,mBAEE,aAEH,SAEA,UACA,QAEG,WAAa,EACb,eAAiB,EACjB,aAAe,EACf,UAAY,GACZ,WAAa,GACb,YAAc,GACd,YAAc,GACd,aAAe,GAEf,MACA,MAEF,cAA+B,CACnC,aAAc,EACd,WAAY,UACZ,SAAU,GACV,KAAM,QACN,OAAQ,QACR,SAAU,QACV,aAAc,EACd,YAAa,CACjB,EAEA,YAAYC,EAAyC,SAAU,CAC3D,MAAM,EACN,KAAK,cAAgBA,EAErB,KAAK,oBAAoB,EAAK,EAE9B,KAAK,SAAW,IAAIC,GACpB,KAAK,SACA,YAAYC,GACF,mCAAmCA,EAAE,CAAC,CAAC,aAAaA,EAAE,CAAC,CAAC,UAAUA,EAAE,CAAC,CAAC,QAChF,EACL,KAAK,SACA,aAAa,EAAI,CAE1B,CAIA,UAAUC,EAAyB,CAC/B,OAAK,UAAU,QACf,KAAK,WAAW,IAAIA,CAAC,EACd,MAFuB,KAAK,WAAW,IAAI,CAGtD,CAEQ,eAA0CC,GAGlD,cAAcD,EAA6D,CACvE,OAAK,UAAU,QACf,KAAK,eAAiBA,EACf,KAAK,gBAFkB,KAAK,cAGvC,CAEA,MAAME,EAASC,EAAS,CACpB,MAAM,MAAMD,EAASC,CAAO,EAE5B,IAAMC,EAAU,KAChBD,EACK,GAAG,QAAS,SAA4BJ,EAAG,CACxCK,EAAQ,WAAW,MAAM,CAC7B,CAAC,EAEL,KAAK,SAAS,OAAOF,CAAO,CAChC,CACA,OAAOA,EAASC,EAAS,CACrB,MAAM,OAAOD,EAASC,CAAO,EAE7B,KAAK,WAAW,CAAC,IAAM,KAAK,QAAQ,CAAC,CAAC,EAEtC,KAAK,WAAa,KAAK,YAAY,IAAM,KAAO,KAAK,QAAQ,EAAE,QAAQ,KAAK,YAAY,CAAC,EAAI,KAAK,WAClG,KAAK,eAAiB,KAAK,gBAAgB,IAAM,KAAO,KAAK,QAAQ,EAAE,QAAQ,KAAK,gBAAgB,CAAC,EAAI,KAAK,eAC9G,KAAK,aAAe,KAAK,cAAc,IAAM,KAAO,KAAK,QAAQ,EAAE,QAAQ,KAAK,cAAc,CAAC,EAAI,KAAK,aACxG,KAAK,UAAY,KAAK,WAAW,IAAM,KAAO,KAAK,QAAQ,EAAE,QAAQ,KAAK,WAAW,CAAC,EAAI,KAAK,UAC/F,KAAK,WAAa,KAAK,YAAY,IAAM,KAAO,KAAK,QAAQ,EAAE,QAAQ,KAAK,YAAY,CAAC,EAAI,KAAK,WAClG,KAAK,YAAc,KAAK,aAAa,IAAM,KAAO,KAAK,QAAQ,EAAE,QAAQ,KAAK,aAAa,CAAC,EAAI,KAAK,YACrG,KAAK,YAAc,KAAK,aAAa,IAAM,KAAO,KAAK,QAAQ,EAAE,QAAQ,KAAK,aAAa,CAAC,EAAI,GAEhG,IAAMC,EAAU,KACVC,EAAI,KAAK,MAAM,EAEfC,EAAK,EACLC,EAAKF,EASX,GAPA,KAAK,cAAgBG,EAAc,EAC9B,OAAO,CAAC,KAAK,UAAW,KAAK,OAAO,CAAC,EACrC,MAAM,CAACF,EAAIC,CAAE,CAAC,EAGnB,KAAK,KAAK,EAAE,KAAK,CAACE,EAAGC,IAAMD,EAAE,CAAC,EAAIC,EAAE,CAAC,CAAC,EAElC,KAAK,YAAc,GAAI,CACvB,KAAK,YAAc,CAAC,EACpB,KAAK,cAAgB,CAAC,EACtB,KAAK,iBAAmB,CAAC,EACzB,KAAK,KAAK,EAAE,QAAQ,CAACC,EAASC,IAAY,CACtC,IAAMC,EAAYF,EAAQ,KAAK,WAAW,EACrC,KAAK,cAAcE,CAAS,IAC7B,KAAK,YAAYA,CAAS,EAAI,CAAC,EAC/B,KAAK,cAAcA,CAAS,EAAI,CAAC,GAErC,KAAK,cAAcA,CAAS,EAAE,KAAK,CAC/B,QAAAF,EACA,QAAAC,CACJ,CAAC,CACL,CAAC,EACD,IAAME,EAAS,KAAK,OAAO,EACvBC,EAAe,EACbC,EAAa,OAAO,KAAK,KAAK,aAAa,EACjDA,EAAW,QAAQH,GAAa,CAC5B,KAAK,cAAcA,CAAS,EAAE,KAAK,CAACJ,EAAGC,IAAMD,EAAE,QAAQ,CAAC,EAAIC,EAAE,QAAQ,CAAC,CAAC,EACxE,KAAK,iBAAiBG,CAAS,EAAI,KAAK,YAAY,KAAK,cAAcA,CAAS,EAAE,IAAII,GAAKA,EAAE,OAAO,EAAG,EAAG,CAAC,EAC3G,KAAK,iBAAiBJ,CAAS,EAAE,aAAe,KAAK,aAAa,EAClE,KAAK,iBAAiBA,CAAS,EAAE,aAAeE,EAChDA,IAAiB,KAAK,iBAAiBF,CAAS,EAAE,aAAe,KAAK,YAAY,EAAI,KAAK,OAAO,IAAM,KAAK,iBAAiBA,CAAS,EAAE,UAAY,GACrJ,KAAK,cAAcA,CAAS,EAAE,QAAQ,CAACI,EAAGC,IAAM,CAC5C,KAAK,YAAYL,CAAS,EAAEI,EAAE,OAAO,EAAIC,CAC7C,CAAC,CACL,CAAC,EACD,KAAK,mBAAqB,KAAK,eAAe,UAAU,oBAAoB,EACvE,KAAKF,EAAW,IAAIG,GACV,KAAK,iBAAiBA,CAAG,CACnC,CAAC,EAEN,KAAK,mBACA,KACGC,GAASA,EAAM,OAAO,MAAM,EACvB,KAAK,QAAS,mBAAmB,EACtCC,GAAUA,EACVC,GAAQA,EACH,KAAK,SAAU,EAAG,CACf,OAAO,EAAE,OACb,CAAC,EACA,OAAO,CAChB,EACC,KAAK,UAAWvB,GAAKA,EAAE,OAASA,EAAE,MAAM,OAAS,EAAI,CAAC,EACtD,KAAK,SAA6BA,EAAGmB,EAAG,CACrCK,EAAS,IAAI,EACR,KAAK,IAAK,CAAC,EACX,KAAK,IAAKxB,EAAE,aAAgBe,EAAS,CAAE,EACvC,KAAK,QAAST,CAAC,EACf,KAAK,UAAYN,EAAE,aAAee,IAAWf,EAAE,UAAY,GAAMe,CAAM,EACvE,KAAK,OAAQI,EAAI,EAAId,EAAQ,oBAAoB,EAAIA,EAAQ,qBAAqB,CAAC,CAE5F,CAAC,CACT,MACQ,KAAK,cAAgB,GACrB,KAAK,SAAW,KAAK,YAAY,KAAK,KAAK,EAAG,KAAK,eAAgB,KAAK,aAAc,KAAK,WAAW,EAEtG,KAAK,SAAW,KAAK,YAAY,KAAK,KAAK,EAAG,KAAK,eAAgB,KAAK,YAAY,EAG5F,IAAMoB,EAAgB,KAAK,cAAc,KAAK,SAAS,EAEvD,KAAK,OACD,CAACA,EAAe,CAAC,EACjB,CACJ,EAEA,IAAMC,EAAe,KAAK,aAAa,EAEvC,KAAK,gBAAgB,EAErB,KAAK,cAAiBA,EAAgB,KAAK,aAAa,EAAI,EAC5D,KAAK,gBAAgB,EAErB,IAAMC,EAAgB,KAAK,eAAe,UAAU,OAAO,EACtD,KAAK,KAAK,KAAK,CAAC,EAEfC,EAAgB,KAAK,YAAY,EACjCC,EAAgBD,EAAgB,EACtCD,EACK,KACGN,GAASA,EAAM,OAAO,GAAG,EACpB,KAAK,QAAS,MAAM,EACpB,GAAG,qBAAsB,SAAUrB,EAAGmB,EAAG,CACtC,IAAMW,EAAM9B,EAAE,KAAO,OAAYmB,EAAInB,EAAE,GACnCK,EAAQ,WAAW,WAAW,CAAE,IAAAyB,EAAK,QAAS9B,EAAE,OAAQ,CAAC,EACzDK,EAAQ,WAAW,MAAM,EAEzBA,EAAQ,WAAW,MACf,CACI,IAAAyB,EACA,QAASlC,EAAA,IAAMI,EAAE,QAAR,UACb,EACA+B,CACJ,EAEJ1B,EAAQ,iBAAiB,EACzB0B,EAAQ,EAAE,gBAAgB,CAC9B,CAAC,EACA,GAAG,QAAS,SAA4B/B,EAAG,CACxC,IAAMgC,EAAWhC,EAAE,QAAQ,QAAQ,UAAU,EACzCA,EAAEK,EAAQ,QAAQ,EAAE,MAAM,IAC1BL,EAAE,SAAWA,EAAEK,EAAQ,QAAQ,EAAE,MAAM,GAE3CA,EAAQ,MAAML,EAAG,GAAIgC,CAAQ,CACjC,CAAC,EACA,GAAG,WAAY,SAA4BhC,EAAG,CAC3C,IAAMgC,EAAWhC,EAAE,QAAQ,QAAQ,UAAU,EACzCA,EAAEK,EAAQ,QAAQ,EAAE,MAAM,IAC1BL,EAAE,SAAWA,EAAEK,EAAQ,QAAQ,EAAE,MAAM,GAE3CA,EAAQ,MAAML,EAAG,GAAIgC,CAAQ,CACjC,CAAC,EACA,GAAG,UAAW,SAAUhC,EAAG,CACxBK,EAAQ,cAAcmB,EAAS,IAAI,EAAGxB,CAAC,EACvC,IAAMgC,EAAWhC,EAAE,QAAQ,QAAQ,UAAU,EAC7CK,EAAQ,QAAQL,EAAG,GAAIgC,CAAQ,CACnC,CAAC,EACA,GAAG,YAAa,SAAUhC,EAAG,CAC1B,IAAMiC,EAAQF,EAAQ,EACtB1B,EAAQ,SAAS,gBAAkBL,EAAE,QACrCK,EAAQ,SAAS,WAAa,CAC1B4B,EAAM,QACNA,EAAM,OACV,EACA5B,EAAQ,SACH,KAAKL,CAAC,EACN,QAAQ,EAAI,EACZ,WAAW,EAAI,EACf,OAAO,EAEZK,EAAQ,cAAcmB,EAAS,IAAI,EAAGxB,CAAC,EACvC,IAAMgC,EAAWhC,EAAE,QAAQ,QAAQ,UAAU,EAC7CK,EAAQ,UAAUL,EAAG,GAAIgC,CAAQ,CACrC,CAAC,EACA,GAAG,WAAY,SAAUhC,EAAG,CACzBK,EAAQ,SACH,QAAQ,EAAK,EACb,OAAO,EAEZA,EAAQ,cAAc,KAAM,IAAI,EAChC,IAAM2B,EAAWhC,EAAE,QAAQ,QAAQ,UAAU,EAC7CK,EAAQ,SAASL,EAAG,GAAIgC,CAAQ,CACpC,CAAC,EACA,KAAK,SAAUhC,EAAGmB,EAAG,CAClBnB,EAAE,KAAO,KACTA,EAAE,QAAUwB,EAAS,IAAI,EACzBxB,EAAE,EAAIK,EAAQ,cAAcL,EAAE,CAAC,CAAC,EAChC,IAAMkC,EAAO7B,EAAQ,cAAcL,EAAE,CAAC,CAAC,EACvC,GAAIK,EAAQ,YAAc,GAAI,CAC1B,IAAMS,EAAYd,EAAEK,EAAQ,WAAW,EACjC8B,EAAS9B,EAAQ,iBAAiBS,CAAS,EAAE,UAAUT,EAAQ,YAAYS,CAAS,EAAEK,CAAC,CAAC,EAC9FnB,EAAE,EAAIK,EAAQ,iBAAiBS,CAAS,EAAE,aAAaqB,CAAM,EAAI9B,EAAQ,iBAAiBS,CAAS,EAAE,YACzG,KAAO,CACH,IAAMsB,EAAK/B,EAAQ,cAAgB,GAAKc,EAAInB,EAAEK,EAAQ,WAAW,EACjEL,EAAE,EAAIK,EAAQ,SAAS,aAAaA,EAAQ,SAAS,UAAU+B,CAAE,CAAC,CACtE,CACApC,EAAE,MAAQ,CACN,GAAGA,EAAE,CAAC,EACN,KAAMA,EAAE,CAAC,CACb,EACAA,EAAE,MAAM,MAAQkC,EAAOlC,EAAE,EACzBA,EAAE,MAAM,OAAS0B,EACjB1B,EAAE,GAAK4B,EACP5B,EAAE,GAAK4B,EACP5B,EAAE,MAAM,OAAS6B,EACjB7B,EAAE,MAAM,QAAU6B,EAClB7B,EAAE,QAAQ,KAAK,YAAa,aAAaA,EAAE,EAAKA,EAAE,MAAM,MAAQ,CAAE,IAAIA,EAAE,EAAKA,EAAE,MAAM,OAAS,CAAE,GAAG,CACvG,CAAC,EACLsB,GAAUA,EACVC,GAAQA,EACH,KAAK,SAAUvB,EAAG,CACf,OAAOA,EAAE,OACb,CAAC,EACA,OAAO,CAChB,EACC,KAAK,UAAWA,GAAKA,EAAE,OAASA,EAAE,MAAM,OAAS,EAAI,CAAC,EACtD,KAAK,SAA6BA,EAAGmB,EAAG,CAErC,GADAnB,EAAE,KAAO,KACLK,EAAQ,YAAc,GAAI,CAC1B,IAAMS,EAAYd,EAAEK,EAAQ,WAAW,EACvCL,EAAE,EAAIK,EAAQ,mBAAmBL,EAAGmB,EAAG,GAAOd,EAAQ,cAAeS,CAAS,CAClF,MACId,EAAE,EAAIK,EAAQ,mBAAmBL,EAAGmB,EAAG,GAAOd,EAAQ,aAAa,CAE3E,CAAC,EACA,GAAG,gBAAiBL,GAAK,CACtB,IAAMQ,EAAK,KAAK,cAAcR,EAAE,CAAC,CAAC,EAE5BqC,EADK,KAAK,cAAcrC,EAAE,CAAC,CAAC,EACdQ,EACd8B,EAAShC,EAAI+B,EACnB,KAAK,OACD,CACI,CAAC7B,EAAK8B,EACN,CACJ,EACAA,CACJ,CACJ,CAAC,EAELlC,EAAQ,GAAG,gBAAiB,IAAI,CACpC,CACA,KAAKD,EAASC,EAAS,CACnB,KAAK,SAAS,OAAO,IAAI,EACzB,MAAM,KAAKD,EAASC,CAAO,CAC/B,CACA,mBAAmBJ,EAAG,EAAGuC,EAAgB,GAAOC,EAAe,CAAC,EAAG1B,EAAoB,CACnF,IAAMc,EAAgBY,EAAQ,YACxBX,EAAgBD,EAAgB,EAChCa,EAAUD,EAAQ,aACpBN,EACEQ,EAAI,MAAM,KAAK,WAAW,CAAC,EAAI,EAAI,KAAK,WAAW,EACnDC,EAAI,MAAM,KAAK,WAAW,CAAC,EAAI,EAAI,KAAK,WAAW,EACrDhC,EACEe,EAAe,KAAK,aAAa,EACvC1B,EAAE,KAAK,aAAa,cAAec,CAAS,EAExC,KAAK,WAAa,IAClBd,EAAE,KAAK,aAAa,aAAcA,EAAE,KAAK,UAAU,CAAC,EAGpDc,IAAc,QACdH,EAAI,KAAK,iBAAiBG,CAAS,EAAE,UAAU,KAAK,YAAYA,CAAS,EAAE,CAAC,CAAC,EAC7Ed,EAAE,KAAK,aAAa,SAAUW,CAAC,EAC/BX,EAAE,KAAK,aAAa,oBAAqB,KAAK,iBAAiBc,CAAS,EAAE,YAAY,EACtFd,EAAE,EAAI,KAAK,iBAAiBc,CAAS,EAAE,aAAaH,CAAC,EAAI,KAAK,iBAAiBG,CAAS,EAAE,aAC1Fd,EAAE,KAAK,aAAa,UAAWA,EAAE,CAAC,IAElCW,EAAI,KAAK,SAAS,UAAU,CAAC,EAC7BX,EAAE,EAAI,KAAK,SAAS,aAAaW,CAAC,GAElC,KAAK,WAAa,KAClB6B,EAAQ,KAAOxC,EAAE,KAAK,UAAU,GAE/BuC,GASDvC,EAAE,EAAI,KAAK,cAAcA,EAAE,CAAC,CAAC,EAAI2C,EACjCT,EAAO,KAAK,cAAclC,EAAE,CAAC,CAAC,EAAI2C,EAClC3C,EAAE,MAAQ,CACN,GAAGA,EAAE,CAAC,EACN,KAAMA,EAAE,CAAC,CACb,EACAA,EAAE,MAAM,OAASkC,EAAOlC,EAAE,GAAK2C,EAC/B3C,EAAE,GAAK0C,EACP1C,EAAE,MAAM,OAAS2C,IAhBjB3C,EAAE,EAAI,KAAK,cAAcA,EAAE,CAAC,CAAC,EAC7BkC,EAAO,KAAK,cAAclC,EAAE,CAAC,CAAC,EAC9BA,EAAE,MAAQ,CACN,GAAGA,EAAE,CAAC,EACN,KAAMA,EAAE,CAAC,CACb,EACAA,EAAE,MAAM,OAASkC,EAAOlC,EAAE,GAAK2C,GAYnC3C,EAAE,MAAM,OAAS0B,EACbZ,IAAc,QAAa,KAAK,SAAS,YAAc,IACvDd,EAAE,MAAM,OAAS,KAAK,SAAS,YAAc0B,GAE7C1B,EAAE,UAAY,QAAaA,EAAE,OAC7BA,EAAE,QAAUwB,EAASxB,EAAE,IAAI,GAE/BA,EAAE,QAAQ,KAAK,YAAa,aAAaA,EAAE,EAAKA,EAAE,MAAM,MAAQ,CAAE,IAAIA,EAAE,EAAKA,EAAE,MAAM,OAAS,CAAE,GAAG,EAEnGA,EAAE,GAAK4B,EACP5B,EAAE,GAAK4B,EACP5B,EAAE,MAAM,OAAS6B,EACjB7B,EAAE,MAAM,QAAU6B,EAClB7B,EAAE,MAAM,MAAQA,EAAE,MAAM,MAAQ,EAAI,EAAIA,EAAE,MAAM,MAChDA,EAAE,MAAM,OAASA,EAAE,MAAM,OAAS,EAAI,EAAIA,EAAE,MAAM,OAElD,IAAI4C,EAAO,KAAK,aAAa5C,EAAE,MAAM,KAAMA,EAAE,MAAM,MAAQyC,EAAS,KAAK,aAAa,EAElFG,IAAS5C,EAAE,MAAM,KACjB4C,EAAO,KAAK,aAAa5C,EAAE,MAAM,KAAMA,EAAE,MAAM,MAAQyC,CAAO,EAE9DzC,EAAE,MAAM,SAAW,KAAK,cAAgBwC,EAAQ,SAEhD1B,IAAc,QAAa,KAAK,SAAS,YAAc,IACvDd,EAAE,MAAM,SAAW,KAAK,IAAI,KAAK,cAAe,KAAK,SAAS,WAAW,EAAIwC,EAAQ,WAErF,CAAC,KAAK,OAAS,KAAK,MAAQxC,EAAE,EAAIA,EAAE,MAAM,UAC1C,KAAK,MAAQA,EAAE,EAAIA,EAAE,MAAM,SAE3B,CAAC,KAAK,OAAS,KAAK,MAAQA,EAAE,EAAIA,EAAE,MAAM,SAC1C,KAAK,MAAQA,EAAE,EAAIA,EAAE,MAAM,OAE/B6C,GACI,KAAK,eACL,CACI,GAAGL,EACH,GAAGxC,EAAE,MACL,KAAA4C,CACJ,EACA5C,EAAE,IACN,CACJ,CAEA,iBAAkB,CACd,KAAK,cAAgB,CACjB,aAAc,KAAK,aAAa,EAChC,WAAY,KAAK,WAAW,EAC5B,SAAU,KAAK,SAAS,EACxB,YAAa,KAAK,YAAY,EAC9B,KAAM,KAAK,KAAK,EAChB,OAAQ,KAAK,OAAO,EACpB,SAAU,KAAK,eAAe,EAC9B,aAAc,KAAK,aAAa,CACpC,CACJ,CAEO,WAAa,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,CAAE,EACvC,OAAO8C,EAAW,CAEd,OADA,KAAK,WAAaA,EACV,KAAK,WAAW,EAAG,CACvB,IAAK,YACD,KAAK,WAAaA,EAAU,EAC5B,KAAK,eAAiB,CAACA,EAAU,EAAG,CAAC,EACrC,KAAK,OAAO,KAAK,YAAa,aAAaA,EAAU,CAAC,YAAeA,EAAU,CAAC,KAAK,EACrF,MACJ,QACI,IAAMN,EAAU,KAAK,cACrB,KAAK,KAAK,EAAE,QAAQ,CAACxC,EAAGmB,IAAM,CAI1B,GAHI,KAAK,WAAa,KAClBqB,EAAQ,KAAOxC,EAAE,KAAK,UAAU,GAEhC,KAAK,YAAc,GAAI,CACvB,IAAMc,EAAYd,EAAE,KAAK,WAAW,EACpC,KAAK,mBAAmBA,EAAGmB,EAAG,GAAMqB,EAAS1B,CAAS,CAC1D,MACI,KAAK,mBAAmBd,EAAGmB,EAAG,GAAMqB,CAAO,CAEnD,CAAC,CACT,CAEA,KAAK,WAAWM,CAAS,CAC7B,CAEA,WAAWA,EAAW,CAEtB,CAEQ,YAAYC,EAAMC,EAA2BC,EAAyBC,EAA6B,CACvG,IAAMC,EAAY,CAAC,EACbC,EAAe,CAAC,EAChBC,EAAM,KAAK,iBAAiB,EAC5BC,EAAU,CAAC,CAAE,IAAK,IAAU,CAAC,EAC/BC,EAAY,EACZL,IAAc,QACdH,EAAK,QAAQ,CAAC/C,EAAGmB,IAAM,CACnBgC,EAAUhC,CAAC,EAAInB,EAAEkD,CAAS,EAC1BE,EAAapD,EAAEkD,CAAS,CAAC,EAAI,EACjC,CAAC,EACDK,EAAY,OAAO,KAAKH,CAAY,EAAE,QAEtCL,EAAK,QAAQ,CAAC/C,EAAGmB,IAAM,CACnB,QAASqC,EAAK,EAAGA,EAAKF,EAAQ,OAAQ,EAAEE,EACpC,GAAIrC,IAAM,GAAKmC,EAAQE,CAAE,EAAEP,CAAM,EAAII,GAAOrD,EAAEgD,CAAQ,EAAG,CACrDG,EAAUhC,CAAC,EAAIqC,EACXD,EAAYC,IAAID,EAAYC,GAChCF,EAAQE,CAAE,EAAEP,CAAM,EAAIjD,EAAEiD,CAAM,EAC9B,KACJ,CAEJ,GAAIE,EAAUhC,CAAC,IAAM,OAAW,CAC5BgC,EAAUhC,CAAC,EAAImC,EAAQ,OACvB,IAAM3C,EAAI,CAAC,EACXA,EAAEsC,CAAM,EAAIjD,EAAEiD,CAAM,EACpBK,EAAQ,KAAK3C,CAAQ,CACzB,CAEI4C,EAAYJ,EAAUhC,CAAC,IAAGoC,EAAYJ,EAAUhC,CAAC,EACzD,CAAC,EAEL,IAAMsC,GAAUF,EAAY,IAAM,KAAK,aAAa,EAAI,KAAK,OAAO,GACpE,MAAO,CACH,UAAAJ,EACA,UAAAI,EACA,YAAa,KAAK,OAAO,EAAIE,EAC7B,aAAchD,EAAc,EACvB,OAAO,CAAC,EAAG8C,EAAY,CAAC,CAAC,EACzB,MAAM,CAAC,EAAG,KAAK,IAAI,KAAK,OAAO,EAAGE,CAAM,CAAC,CAAC,CACnD,CACJ,CAIA,KAAKxD,EAAuC,CACxC,IAAMyD,EAAS,MAAM,KAAK,MAAM,KAAM,SAAS,EAC/C,OAAI,UAAU,OAAS,IACnB,KAAK,UAAY,KAAK,IAAI,GAAG,KAAK,KAAK,EAAE,IAAIxC,GAAKA,EAAE,CAAC,CAAC,CAAC,GAAK,EAC5D,KAAK,QAAU,KAAK,IAAI,GAAG,KAAK,KAAK,EAAE,IAAIA,GAAKA,EAAE,CAAC,CAAC,CAAC,GAAK,EAC1D,KAAK,gBAAgB,EAAI,GAEtBwC,CACX,CAEU,YACA,cACA,iBACA,gBACA,cACV,gBAAgBC,EAAe,GAAO,CAClC,IAAMC,EAAa,CAAC,EACdC,EAAkB,CAAC,EACnBC,EAAa,KAAK,WAAW,EAC7BC,EAAW,KAAK,SAAS,EACzBrC,EAAe,KAAK,aAAa,EAEnCA,IACA,KAAK,eAAiBA,EAAgB,KAAK,aAAa,EAAI,GAAMqC,IAGlEJ,GAAgB,KAAK,kBAAoBG,GAAc,KAAK,gBAAkBC,KAC9EF,EAAgB,GAAG,EAAIhE,EAAQ,SAAS,IAAKiE,EAAYC,CAAQ,EAAE,MACnE,KAAK,KAAK,EAAE,QAAQ/D,GAAK,CAChB4D,EAAW5D,EAAE,CAAC,CAAC,IAChB4D,EAAW5D,EAAE,CAAC,CAAC,EAAIH,EAAQ,SAASG,EAAE,CAAC,EAAG8D,EAAYC,CAAQ,EAAE,OAEpE/D,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQgE,GAAQ,CACtBH,EAAgBG,CAAI,IACrBH,EAAgBG,CAAI,EAAInE,EAAQ,SAASmE,EAAMF,EAAYC,CAAQ,EAAE,MAE7E,CAAC,CACL,CAAC,EACD,KAAK,YAAcH,EACnB,KAAK,iBAAmBC,GAE5B,KAAK,gBAAkBC,EACvB,KAAK,cAAgBC,CACzB,CAEA,aAAanB,EAAMqB,EAAOC,EAAQ,EAAG,CAEjC,GADiB,KAAK,YAAYtB,CAAI,EAAIsB,EAAQD,EAE9C,OAAOrB,EAEX,IAAIuB,EAAM,GACNC,EAAM,EACJC,EAASJ,EAAS,KAAK,iBAAiB,GAAG,EAAI,EACrD,QAAWD,KAAQpB,EAEf,GADAwB,GAAO,KAAK,iBAAiBJ,CAAI,EAC7BI,EAAMC,EACNF,GAAOH,MAEP,OAGR,OAAOK,EAAS,EAAI,GAAKF,EAAM,KACnC,CAEA,OAAOG,EAA2C,CAC9C,IAAIZ,EACJ,OAAI,KAAK,kBAAkB,GAAK,KAAK,mBAAmB,EACpDA,EAAS,MAAM,OAAO,KAAK,KAAM,CAC7B,MAAOY,EAAM,MACb,OAAQ,KAAK,KACjB,CAAC,EAEDZ,EAAS,MAAM,OAAO,MAAM,KAAM,SAAS,EAExCA,CACX,CAEA,kBAAmB,CAEnB,CAEA,cAAca,EAAUvE,EAAG,CAE3B,CAEA,MAAMwE,EAAKC,EAAMC,EAAK,CAEtB,CAEA,SAASF,EAAKC,EAAMC,EAAK,CAEzB,CAEA,QAAQF,EAAKC,EAAMC,EAAK,CACxB,CAEA,UAAUF,EAAKC,EAAMC,EAAK,CAC1B,CAEA,SAASF,EAAKC,EAAMC,EAAK,CACzB,CACJ,EACAhF,EAAW,UAAU,QAAU,uBAwD/BA,EAAW,UAAU,QAAQ,oBAAqB,GAAO,UAAW,4DAA4D,EAChIA,EAAW,UAAU,QAAQ,qBAAsB,GAAO,UAAW,6DAA6D,EAClIA,EAAW,UAAU,QAAQ,cAAe,KAAM,SAAU,8BAA8B,EAC1FA,EAAW,UAAU,QAAQ,kBAAmB,KAAM,SAAU,mCAAmC,EACnGA,EAAW,UAAU,QAAQ,gBAAiB,KAAM,SAAU,iCAAiC,EAC/FA,EAAW,UAAU,QAAQ,aAAc,KAAM,SAAU,6BAA6B,EACxFA,EAAW,UAAU,QAAQ,cAAe,KAAM,SAAU,8BAA8B,EAC1FA,EAAW,UAAU,QAAQ,eAAgB,KAAM,SAAU,0CAA0C,EACvGA,EAAW,UAAU,QAAQ,eAAgB,KAAM,SAAU,0CAA0C,EACvGA,EAAW,UAAU,QAAQ,aAAc,UAAW,MAAO,gDAAiD,CAAC,UAAW,WAAW,CAAC,EACtIA,EAAW,UAAU,QAAQ,eAAgB,EAAG,SAAU,8CAA8C,EACxGA,EAAW,UAAU,QAAQ,OAAQ,UAAW,SAAU,qCAAqC,EAC/FA,EAAW,UAAU,QAAQ,SAAU,KAAM,SAAU,iCAAiC,EACxFA,EAAW,UAAU,QAAQ,cAAe,KAAM,SAAU,0CAA0C,EACtGA,EAAW,UAAU,QAAQ,eAAgB,EAAG,SAAU,sCAAsC,EAChGA,EAAW,UAAU,QAAQ,aAAc,KAAM,SAAU,qCAAsC,KAAM,CAAE,SAAU,EAAK,CAAC,EACzHA,EAAW,UAAU,QAAQ,WAAY,GAAI,SAAU,8CAA8C,EACrGA,EAAW,UAAU,QAAQ,iBAAkB,UAAW,aAAc,gBAAgB,EACxFA,EAAW,UAAU,QAAQ,mBAAoB,EAAG,SAAU,kBAAkB,EAChFA,EAAW,UAAU,QAAQ,qBAAsB,GAAI,SAAU,sCAAsC,EACvGA,EAAW,UAAU,QAAQ,eAAgB,IAAK,SAAU,sCAAsC,EAClGA,EAAW,UAAU,QAAQ,SAAU,EAAG,SAAU,sCAAsC,EAC1FA,EAAW,UAAU,QAAQ,UAAW,GAAI,SAAU,cAAc,EACpEA,EAAW,UAAU,QAAQ,uBAAwB,UAAW,aAAc,sCAAsC,EACpHA,EAAW,UAAU,QAAQ,sBAAuB,UAAW,aAAc,qCAAqC,EC3rBlH,OAAS,QAAAiF,MAAY,iBACrB,OAAS,aAAAC,OAAiB,kBAKnB,IAAMC,EAAN,cAA6BC,EAAU,CAN9C,MAM8C,CAAAC,EAAA,uBAEhC,SAAiB,IAAIC,EAAK,QAAQ,EACvC,YAAY,KAAK,EACjB,KAAK,QAAQ,EACb,YAAY,MAAM,EAClB,YAAY,MAAM,EAClB,OAAO,CAAC,EACR,WAAW,GAAG,EAET,OAAqB,IAAIC,EAAW,QAAQ,EACjD,OAAO,SAAS,EAEX,YAAoB,IAAID,EAAK,QAAQ,EAC1C,YAAY,QAAQ,EACpB,KAAK,QAAQ,EACb,YAAY,MAAM,EAClB,YAAY,MAAM,EAClB,OAAO,CAAC,EACR,WAAW,GAAG,EAGT,gBACA,gBACA,mBACA,SACA,aACA,YAEA,cAEV,aAAc,CACV,MAAM,EACN,KAAK,cAAgB,SACrB,KAAK,cAAgB,UAAY,CAC7B,IAAME,EAAM,KAAK,OAAO,cAAc,MAAM,KAAK,OAAQ,SAAS,EAClE,OAAK,UAAU,OACR,KADuBA,CAElC,CACJ,CAIA,UAAUC,EAAyB,CAC/B,OAAK,UAAU,QACf,KAAK,OAAO,UAAUA,CAAC,EAChB,MAFuB,KAAK,OAAO,UAAU,CAGxD,CAEA,gBAAiB,CAEb,IAAMC,EAAI,KAAK,MAAM,EACfC,EAAI,KAAK,OAAO,EAEhBC,EAAa,KAAK,WAAW,EAE7BC,EAAiBF,EAAKC,EAAa,EACnCE,EAAgB,KAAK,YAAY,EACvC,KAAK,SACA,KAAK,SAAUF,CAAU,EACzB,KAAK,QAASF,CAAC,EACf,KAAK,OAAQ,aAAa,EAE/B,KAAK,gBAAgB,KAAK,YAAa,gBAAgB,EACvD,KAAK,SAAS,OAAO,CAAE,OAAQE,EAAY,MAAOF,CAAE,CAAC,EACrD,KAAK,aACA,KAAK,SAAUG,CAAa,EAC5B,KAAK,QAASH,CAAC,EACf,KAAK,OAAQ,aAAa,EAE/B,KAAK,gBAAgB,KAAK,YAAa,eAAeE,EAAaE,CAAa,GAAG,EACnF,KAAK,OAAO,OAAO,CAAE,OAAQD,EAAe,MAAOH,CAAE,CAAC,EACtD,KAAK,YACA,KAAK,SAAUE,CAAU,EACzB,KAAK,QAASF,CAAC,EACf,KAAK,OAAQ,aAAa,EAE/B,KAAK,mBAAmB,KAAK,YAAa,eAAeE,EAAaC,EAAgBC,CAAa,GAAG,EACtG,KAAK,YAAY,OAAO,CAAE,OAAQF,EAAY,MAAOF,CAAE,CAAC,CAC5D,CAEA,MAAMK,EAASC,EAAS,CACpB,MAAM,MAAMD,EAASC,CAAO,EAE5B,KAAK,OAAO,MAAQ,CAACC,EAAKC,EAAKC,IAAQ,CACnC,KAAK,MAAMF,EAAKC,EAAKC,CAAG,CAC5B,EAEA,KAAK,OAAO,SAAW,CAACF,EAAKC,EAAKC,IAAQ,CACtC,KAAK,SAASF,EAAKC,EAAKC,CAAG,CAC/B,EAEA,KAAK,gBAAkBH,EAAQ,OAAO,GAAG,EACpC,KAAK,QAAS,kBAAkB,EAErC,KAAK,SAAW,KAAK,gBAAgB,OAAO,MAAM,EAC7C,KAAK,QAAS,eAAe,EAElC,KAAK,gBAAkBA,EAAQ,OAAO,GAAG,EACpC,KAAK,QAAS,iBAAiB,EAEpC,KAAK,aAAe,KAAK,gBAAgB,OAAO,MAAM,EACjD,KAAK,QAAS,cAAc,EAEjC,KAAK,mBAAqBA,EAAQ,OAAO,GAAG,EACvC,KAAK,QAAS,qBAAqB,EAExC,KAAK,YAAc,KAAK,mBAAmB,OAAO,MAAM,EACnD,KAAK,QAAS,eAAe,EAElC,KAAK,SAAS,OAAO,KAAK,gBAAgB,KAAK,CAAC,EAChD,KAAK,OAAO,OAAO,KAAK,gBAAgB,KAAK,CAAC,EAAE,aAAa,EAAE,EAC/D,KAAK,YAAY,OAAO,KAAK,mBAAmB,KAAK,CAAC,EAEtD,KAAK,eAAe,EAEpB,KAAK,OAAO,WAAcI,GAAc,CACpC,KAAK,OAAOA,CAAS,CACzB,CACJ,CAEA,OAAOA,EAAW,CAEd,IAAMV,EAAI,KAAK,MAAM,EACfW,EAAM,KAAK,OAAO,UAElBC,EADO,KAAK,OAAO,QACJD,EACfE,EAAMD,EAAQZ,EACdc,EAAU,KAAK,MAAMH,EAAOE,GAAOH,EAAU,EAAIA,EAAU,EAAG,EAC9DK,EAAW,KAAK,KAAMH,EAAQF,EAAU,EAAKI,CAAO,EAE1D,KAAK,SACA,WAAW,KAAK,eAAe,CAAC,EAChC,SAAS,KAAK,aAAa,CAAC,EAC5B,WAAW,KAAK,eAAe,CAAC,EAChC,IAAIA,CAAO,EACX,KAAKC,CAAQ,EACb,OAAO,EAEZ,KAAK,YACA,WAAW,KAAK,eAAe,CAAC,EAChC,SAAS,KAAK,aAAa,CAAC,EAC5B,WAAW,KAAK,eAAe,CAAC,EAChC,IAAID,CAAO,EACX,KAAKC,CAAQ,EACb,OAAO,CAEhB,CAEA,OAAOV,EAASC,EAAS,CACrB,MAAM,OAAOD,EAASC,CAAO,EAC7B,KAAK,SAAS,WAAW,KAAK,WAAW,CAAC,EAAE,OAAO,EACnD,KAAK,YAAY,WAAW,KAAK,WAAW,CAAC,EAAE,OAAO,EACtD,KAAK,OAAO,OAAO,CACvB,CAEA,KAAKD,EAASC,EAAS,CACnB,KAAK,YAAY,OAAO,IAAI,EAC5B,KAAK,OAAO,OAAO,IAAI,EACvB,KAAK,SAAS,OAAO,IAAI,EACzB,MAAM,KAAKD,EAASC,CAAO,CAC/B,CAIA,QAAQP,EAA+B,CACnC,IAAMiB,EAAS,MAAM,QAAQ,MAAM,KAAM,SAAS,EAClD,OAAI,UAAU,OAAS,GACnB,KAAK,OAAO,QAAQjB,CAAC,EAElBiB,CACX,CAIA,KAAKjB,EAA+C,CAChD,IAAMiB,EAAS,MAAM,KAAK,MAAM,KAAM,SAAS,EAC/C,GAAI,UAAU,OAAS,EAAG,CACtB,IAAMC,EAAmB,KAAK,KAAK,EAAE,IAAI,GAAK,CAC1C,IAAMnB,EAAM,CAAC,GAAG,CAAC,EACjB,OAAAA,EAAI,CAAC,EAAI,MAAM,EAAE,CAAC,CAAQ,EAAI,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAI,OAAO,EAAE,CAAC,CAAC,EACpEA,EAAI,CAAC,EAAI,MAAM,EAAE,CAAC,CAAQ,EAAI,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAI,OAAO,EAAE,CAAC,CAAC,EAC7DA,CACX,CAAC,EACD,KAAK,OAAO,UAAY,KAAK,IAAI,GAAGmB,EAAU,IAAI,GAAK,EAAE,CAAC,CAAC,CAAC,GAAK,EACjE,KAAK,OAAO,QAAU,KAAK,IAAI,GAAGA,EAAU,IAAI,GAAK,EAAE,CAAC,CAAC,CAAC,GAAK,EAC/D,KAAK,OAAO,KAAKA,CAAS,CAC9B,CACA,OAAOD,CACX,CAEA,OAAOE,EAA2C,CAC9C,IAAMF,EAAS,MAAM,OAAO,MAAM,KAAM,SAAS,EAEjD,OAAI,KAAK,iBACL,KAAK,eAAe,EAGjBA,CACX,CAEA,MAAMT,EAAKC,EAAKC,EAAK,CAErB,CAEA,SAASF,EAAKC,EAAKC,EAAK,CAExB,CAEA,SAAU,CACN,OAAO,KAAK,OAAO,QACvB,CACJ,EACAhB,EAAe,UAAU,QAAU,2BA6CnCA,EAAe,UAAU,QAAQ,aAAc,KAAM,SAAU,0CAA2C,OAAW,CAAE,SAAU,EAAK,CAAC,EACvIA,EAAe,UAAU,QAAQ,aAAc,GAAI,SAAU,yBAAyB,EACtFA,EAAe,UAAU,QAAQ,mBAAoB,EAAG,SAAU,kBAAkB,EACpFA,EAAe,UAAU,QAAQ,qBAAsB,GAAI,SAAU,sCAAsC,EAC3GA,EAAe,UAAU,QAAQ,eAAgB,KAAM,SAAU,+BAA+B,EAChGA,EAAe,UAAU,QAAQ,iBAAkB,KAAM,SAAU,iCAAiC,EACpGA,EAAe,UAAU,QAAQ,iBAAkB,KAAM,SAAU,sBAAsB,EACzFA,EAAe,UAAU,aAAa,SAAU,QAAQ,EACxDA,EAAe,UAAU,aAAa,aAAc,QAAQ,EAC5DA,EAAe,UAAU,aAAa,cAAe,QAAQ,EAC7DA,EAAe,UAAU,aAAa,WAAY,QAAQ,EAC1DA,EAAe,UAAU,aAAa,aAAc,QAAQ,EAC5DA,EAAe,UAAU,aAAa,SAAU,QAAQ,EACxDA,EAAe,UAAU,aAAa,eAAgB,QAAQ,EAC9DA,EAAe,UAAU,aAAa,cAAe,QAAQ,EAC7DA,EAAe,UAAU,aAAa,kBAAmB,QAAQ,EACjEA,EAAe,UAAU,aAAa,gBAAiB,QAAQ,EAC/DA,EAAe,UAAU,aAAa,aAAc,QAAQ,EAC5DA,EAAe,UAAU,aAAa,cAAe,QAAQ,EAC7DA,EAAe,UAAU,aAAa,eAAgB,QAAQ,EAC9DA,EAAe,UAAU,aAAa,UAAW,QAAQ,EACzDA,EAAe,UAAU,aAAa,eAAgB,QAAQ,EC7R9D,OAAS,OAAO0B,GAAO,OAAOC,OAAa,kBAC3C,OAAS,QAAAC,MAAY,iBACrB,OAAS,WAAAC,OAAe,kBAKjB,IAAMC,EAAN,cAAmCC,EAAQ,CAPlD,MAOkD,CAAAC,EAAA,6BAEpC,SAAiB,IAAIC,EAAK,QAAQ,EACvC,YAAY,KAAK,EACjB,KAAK,QAAQ,EACb,YAAY,MAAM,EAClB,YAAY,MAAM,EAClB,OAAO,CAAC,EACR,WAAW,GAAG,EAET,OAAqB,IAAIC,EAAW,QAAQ,EACjD,OAAO,SAAS,EAChB,mBAAmB,EAAI,EAElB,YAAoB,IAAID,EAAK,QAAQ,EAC1C,YAAY,QAAQ,EACpB,KAAK,QAAQ,EACb,YAAY,MAAM,EAClB,YAAY,MAAM,EAClB,OAAO,CAAC,EACR,WAAW,GAAG,EAGT,gBACA,gBACA,mBACA,SACA,aACA,YAEV,aAAc,CACV,MAAM,EACN,KAAK,wBAAwB,QAAQ,EACrC,KAAK,wBAAwB,MAAM,CACvC,CAIA,UAAUE,EAAyB,CAC/B,OAAK,UAAU,QACf,KAAK,OAAO,UAAUA,CAAC,EAChB,MAFuB,KAAK,OAAO,UAAU,CAGxD,CAIA,cAAcA,EAA6D,CACvE,IAAMC,EAAM,KAAK,OAAO,cAAc,MAAM,KAAK,OAAQ,SAAS,EAClE,OAAK,UAAU,OACR,KADuBA,CAElC,CAEA,gBAAiB,CAEb,IAAMC,EAAI,KAAK,MAAM,EACfC,EAAI,KAAK,OAAO,EAEhBC,EAAa,KAAK,WAAW,EAC7BC,EAAiBF,EAAKC,EAAa,EAEzC,KAAK,aAAaA,CAAU,EAE5B,KAAK,OAAO,OAAO,CACf,MAAOF,EACP,OAAQE,CACZ,CAAC,EACD,KAAK,UAAU,OAAO,CAClB,MAAOF,EACP,OAAQG,CACZ,CAAC,EACD,KAAK,UAAU,OAAO,CAClB,MAAOH,EACP,OAAQE,CACZ,CAAC,EACD,KAAK,IAAI,EAAE,OAAO,EAClB,KAAK,OAAO,EAAE,OAAO,EACrB,KAAK,OAAO,EAAE,OAAO,CACzB,CAEA,MAAME,EAASC,EAAS,CACpB,MAAM,MAAMD,EAASC,CAAO,EAE5B,KAAK,OAAO,MAAQ,CAACC,EAAKC,EAAKC,IAAQ,CACnC,KAAK,MAAMF,EAAKC,EAAKC,CAAG,CAC5B,EAEA,KAAK,OAAO,SAAW,CAACF,EAAKC,EAAKC,IAAQ,CACtC,KAAK,SAASF,EAAKC,EAAKC,CAAG,CAC/B,EAEA,KAAK,IAAI,KAAK,QAAQ,EACtB,KAAK,OAAO,KAAK,MAAM,EACvB,KAAK,OAAO,KAAK,WAAW,EAE5B,KAAK,eAAe,EAEpB,KAAK,OAAO,WAAcC,GAAc,CACpC,KAAK,OAAOA,CAAS,CACzB,CACJ,CAEA,OAAOA,EAAW,CACd,IAAMT,EAAI,KAAK,MAAM,EACfU,EAAM,KAAK,OAAO,UAElBC,EADO,KAAK,OAAO,QACJD,EACfE,EAAMD,EAAQX,EACda,EAAU,KAAK,MAAMH,EAAOE,GAAOH,EAAU,EAAIA,EAAU,EAAG,EAC9DK,EAAW,KAAK,KAAMH,EAAQF,EAAU,EAAKI,CAAO,EAE1D,KAAK,SACA,WAAW,KAAK,eAAe,CAAC,EAChC,SAAS,KAAK,aAAa,CAAC,EAC5B,WAAW,KAAK,eAAe,CAAC,EAChC,IAAIA,CAAO,EACX,KAAKC,CAAQ,EACb,WAAW,EAEhB,KAAK,YACA,WAAW,KAAK,eAAe,CAAC,EAChC,SAAS,KAAK,aAAa,CAAC,EAC5B,WAAW,KAAK,eAAe,CAAC,EAChC,IAAID,CAAO,EACX,KAAKC,CAAQ,EACb,WAAW,CAEpB,CAEA,OAAOV,EAASC,EAAS,CACrB,MAAM,OAAOD,EAASC,CAAO,EAC7B,KAAK,SAAS,WAAW,KAAK,WAAW,CAAC,EAAE,OAAO,EACnD,KAAK,YAAY,WAAW,KAAK,WAAW,CAAC,EAAE,OAAO,EACtD,KAAK,OAAO,OAAO,CACvB,CAIA,QAAQP,EAA+B,CACnC,IAAMiB,EAAS,MAAM,QAAQ,MAAM,KAAM,SAAS,EAClD,OAAI,UAAU,OAAS,GACnB,KAAK,OAAO,QAAQjB,CAAC,EAElBiB,CACX,CAIA,KAAKjB,EAA+C,CAChD,IAAMiB,EAAS,MAAM,KAAK,MAAM,KAAM,SAAS,EAC/C,GAAI,UAAU,OAAS,EAAG,CACtB,IAAMC,EAAmB,KAAK,KAAK,EAAE,IAAI,GAAK,CAC1C,IAAMjB,EAAM,CAAC,GAAG,CAAC,EACjB,OAAAA,EAAI,CAAC,EAAI,MAAM,EAAE,CAAC,CAAQ,EAAI,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAI,OAAO,EAAE,CAAC,CAAC,EACpEA,EAAI,CAAC,EAAI,MAAM,EAAE,CAAC,CAAQ,EAAI,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAI,OAAO,EAAE,CAAC,CAAC,EAC7DA,CACX,CAAC,EAED,KAAK,OAAO,UAAYkB,GAAMD,EAAW,GAAK,EAAE,CAAC,CAAC,EAClD,KAAK,OAAO,QAAUE,GAAMF,EAAW,GAAK,EAAE,CAAC,CAAC,EAChD,KAAK,OAAO,KAAKA,CAAS,CAC9B,CACA,OAAOD,CACX,CAEA,OAAOI,EAA2C,CAC9C,IAAMJ,EAAS,MAAM,OAAO,MAAM,KAAM,SAAS,EAEjD,OAAI,KAAK,iBACL,KAAK,eAAe,EAGjBA,CACX,CAEA,MAAMT,EAAKC,EAAKC,EAAK,CAErB,CAEA,SAASF,EAAKC,EAAKC,EAAK,CAExB,CAEA,SAAU,CACN,OAAO,KAAK,OAAO,QACvB,CACJ,EACAf,EAAqB,UAAU,QAAU,iCA+CzCA,EAAqB,UAAU,QAAQ,aAAc,KAAM,SAAU,0CAA2C,OAAW,CAAE,SAAU,EAAK,CAAC,EAC7IA,EAAqB,UAAU,QAAQ,aAAc,GAAI,SAAU,yBAAyB,EAC5FA,EAAqB,UAAU,QAAQ,mBAAoB,EAAG,SAAU,kBAAkB,EAC1FA,EAAqB,UAAU,QAAQ,qBAAsB,GAAI,SAAU,sCAAsC,EACjHA,EAAqB,UAAU,QAAQ,eAAgB,KAAM,SAAU,+BAA+B,EACtGA,EAAqB,UAAU,QAAQ,iBAAkB,KAAM,SAAU,iCAAiC,EAC1GA,EAAqB,UAAU,QAAQ,iBAAkB,KAAM,SAAU,sBAAsB,EAC/FA,EAAqB,UAAU,aAAa,SAAU,QAAQ,EAC9DA,EAAqB,UAAU,aAAa,aAAc,QAAQ,EAClEA,EAAqB,UAAU,aAAa,cAAe,QAAQ,EACnEA,EAAqB,UAAU,aAAa,WAAY,QAAQ,EAChEA,EAAqB,UAAU,aAAa,aAAc,QAAQ,EAClEA,EAAqB,UAAU,aAAa,SAAU,QAAQ,EAC9DA,EAAqB,UAAU,aAAa,eAAgB,QAAQ,EACpEA,EAAqB,UAAU,aAAa,cAAe,QAAQ,EACnEA,EAAqB,UAAU,aAAa,kBAAmB,QAAQ,EACvEA,EAAqB,UAAU,aAAa,gBAAiB,QAAQ,EACrEA,EAAqB,UAAU,aAAa,aAAc,QAAQ,EAClEA,EAAqB,UAAU,aAAa,cAAe,QAAQ,EACnEA,EAAqB,UAAU,aAAa,eAAgB,QAAQ,EACpEA,EAAqB,UAAU,aAAa,eAAgB,QAAQ,EACpEA,EAAqB,UAAU,aAAa,UAAW,QAAQ,EAC/DA,EAAqB,UAAU,aAAa,uBAAwB,QAAQ,EAC5EA,EAAqB,UAAU,aAAa,sBAAuB,QAAQ,EAC3EA,EAAqB,UAAU,aAAa,eAAgB,QAAQ,ECxQpE,OAAS,cAAc2B,EAAc,aAAaC,MAAmB,kBAG9D,IAAMC,EAAN,cAA4BC,CAAe,CAHlD,MAGkD,CAAAC,EAAA,sBAEpC,oBAEV,aAAc,CACV,MAAM,EACN,KAAK,cAAgB,SACrB,KAAK,SAAS,KAAK,MAAM,EACzB,KAAK,YAAY,KAAK,MAAM,EAE5B,KAAK,YAAaC,GAAW,CACzB,IAAMC,EAASC,EAAY,IAAI,EACzBC,EAAYF,EAAOD,EAAE,CAAC,CAAC,EACvBI,EAAUH,EAAOD,EAAE,CAAC,CAAC,EAErBK,EAAYC,EAAa,KAAK,kBAAkB,CAAC,EACvD,MAAO,mCAAmCN,EAAE,CAAC,CAAC,aAAaK,EAAUF,CAAS,CAAC,UAAUE,EAAUD,CAAO,CAAC,QAC/G,CAAC,CACL,CAEA,OAAOG,EAASC,EAAS,CAGrB,GAFA,MAAM,OAAOD,EAASC,CAAO,EAEzB,KAAK,mBAAmB,EAAG,CAE3B,IAAIC,EAAe,IACfC,EAAe,KACfC,EAAa,GACbC,EAAc,GAClB,KAAK,KAAK,EAAE,IAAIC,GAAK,CACjB,IAAMC,EAAQ,IAAI,KAAKD,EAAE,CAAC,CAAC,EAAE,QAAQ,EAC/BE,EAAM,IAAI,KAAKF,EAAE,CAAC,CAAC,EAAE,QAAQ,EAC/BJ,EAAeK,IACfL,EAAeK,EACfH,EAAa,GAAKE,EAAE,CAAC,GAErBH,EAAeK,IACfL,EAAeK,EACfH,EAAc,GAAKC,EAAE,CAAC,EAE9B,CAAC,EACD,KAAK,SACA,KAAK,MAAM,EACX,YAAY,KAAK,YAAY,CAAC,EAC9B,YAAY,MAAM,EAClB,WAAW,KAAK,mBAAmB,EACnC,IAAIF,CAAU,EACd,KAAKC,CAAW,EAErB,KAAK,YACA,KAAK,MAAM,EACX,YAAY,KAAK,YAAY,CAAC,EAC9B,YAAY,MAAM,EAClB,WAAW,KAAK,mBAAmB,EACnC,IAAID,CAAU,EACd,KAAKC,CAAW,EAErB,KAAK,OAAO,UAAYH,EACxB,KAAK,OAAO,QAAUC,CAC1B,CACJ,CAEA,YAAYM,EAAU,CAClB,YAAK,aAAeA,EACpB,KAAK,QAAQ,EAAE,YAAY,KAAK,YAAY,EACrC,IACX,CAEA,eAAeC,EAAG,CAEd,IAAMC,EADYhB,EAAY,IAAI,EACLe,CAAC,EAG9B,OADmBX,EAAa,KAAK,YAAY,CAAC,EAChCY,CAAU,CAChC,CAEA,OAAOC,EAAW,CAEd,IAAMC,EAAI,KAAK,MAAM,EACfC,EAAM,KAAK,OAAO,UAElBC,EADO,KAAK,OAAO,QACJD,EACfE,EAAMD,EAAQF,EACdI,EAAU,KAAK,MAAMH,EAAOE,GAAOJ,EAAU,EAAIA,EAAU,EAAG,EAC9DM,EAAW,KAAK,KAAMH,EAAQH,EAAU,EAAKK,CAAO,EAE1D,KAAK,SACA,IAAI,KAAK,eAAeA,CAAO,CAAC,EAChC,KAAK,KAAK,eAAeC,CAAQ,CAAC,EAClC,OAAO,EAEZ,KAAK,YACA,IAAI,KAAK,eAAeD,CAAO,CAAC,EAChC,KAAK,KAAK,eAAeC,CAAQ,CAAC,EAClC,OAAO,CAEhB,CACJ,EACA5B,EAAc,UAAU,QAAU,0BAWlCA,EAAc,UAAU,QAAQ,cAAe,WAAY,SAAU,kEAAmE,KAAM,CAAE,SAAU,EAAK,CAAC,EAChKA,EAAc,UAAU,QAAQ,oBAAqB,WAAY,SAAU,8CAA8C,ECjHzH,OAAS,cAAc6B,EAAc,aAAaC,OAAmB,kBAGrE,IAAMC,EAAYC,GAAY,IAAI,EACrBC,EAAN,cAAkCC,CAAqB,CAJ9D,MAI8D,CAAAC,EAAA,4BAEhD,oBAEV,aAAc,CACV,MAAM,EACN,KAAK,SAAS,KAAK,MAAM,EACzB,KAAK,YAAY,KAAK,MAAM,EAE5B,KAAK,YAAaC,GAAW,CACzB,IAAMC,EAAYN,EAAUK,EAAE,CAAC,CAAC,EAC1BE,EAAUP,EAAUK,EAAE,CAAC,CAAC,EAExBG,EAAYC,EAAa,KAAK,kBAAkB,CAAC,EACvD,MAAO,mCAAmCJ,EAAE,CAAC,CAAC,aAAaG,EAAUF,CAAS,CAAC,UAAUE,EAAUD,CAAO,CAAC,QAC/G,CAAC,CACL,CAEA,OAAOG,EAASC,EAAS,CAGrB,GAFA,MAAM,OAAOD,EAASC,CAAO,EAEzB,KAAK,mBAAmB,EAAG,CAE3B,IAAIC,EAAe,IACfC,EAAe,KACfC,EAAa,GACbC,EAAc,GAClB,KAAK,KAAK,EAAE,QAAQC,GAAK,CACrB,IAAMC,EAAQ,IAAI,KAAKD,EAAE,CAAC,CAAC,EAAE,QAAQ,EAC/BE,EAAM,IAAI,KAAKF,EAAE,CAAC,CAAC,EAAE,QAAQ,EAC/BJ,EAAeK,IACfL,EAAeK,EACfH,EAAa,GAAKE,EAAE,CAAC,GAErBH,EAAeK,IACfL,EAAeK,EACfH,EAAc,GAAKC,EAAE,CAAC,EAE9B,CAAC,EACD,KAAK,SACA,KAAK,MAAM,EACX,YAAY,KAAK,YAAY,CAAC,EAC9B,YAAY,MAAM,EAClB,WAAW,KAAK,mBAAmB,EACnC,IAAIF,CAAU,EACd,KAAKC,CAAW,EAErB,KAAK,YACA,KAAK,MAAM,EACX,YAAY,KAAK,YAAY,CAAC,EAC9B,YAAY,MAAM,EAClB,WAAW,KAAK,mBAAmB,EACnC,IAAID,CAAU,EACd,KAAKC,CAAW,EAErB,KAAK,OAAO,UAAYH,EACxB,KAAK,OAAO,QAAUC,CAC1B,CACJ,CAEA,YAAYM,EAAU,CAClB,YAAK,aAAeA,EACpB,KAAK,QAAQ,EAAE,YAAY,KAAK,YAAY,EACrC,IACX,CAEA,eAAeC,EAAG,CACd,IAAMC,EAAarB,EAAUoB,CAAC,EAG9B,OADmBX,EAAa,KAAK,YAAY,CAAC,EAChCY,CAAU,CAChC,CAEA,OAAOC,EAAW,CAEd,IAAMC,EAAI,KAAK,MAAM,EACfC,EAAM,KAAK,OAAO,UAElBC,EADO,KAAK,OAAO,QACJD,EACfE,EAAMD,EAAQF,EACdI,EAAU,KAAK,MAAMH,EAAOE,GAAOJ,EAAU,EAAIA,EAAU,EAAG,EAC9DM,EAAW,KAAK,KAAMH,EAAQH,EAAU,EAAKK,CAAO,EAE1D,KAAK,SACA,IAAI,KAAK,eAAeA,CAAO,CAAC,EAChC,KAAK,KAAK,eAAeC,CAAQ,CAAC,EAClC,OAAO,EAEZ,KAAK,YACA,IAAI,KAAK,eAAeD,CAAO,CAAC,EAChC,KAAK,KAAK,eAAeC,CAAQ,CAAC,EAClC,OAAO,CAEhB,CAEA,YACJ,EACA1B,EAAoB,UAAU,QAAU,gCASxCA,EAAoB,UAAU,QAAQ,cAAe,WAAY,SAAU,kEAAmE,KAAM,CAAE,SAAU,EAAK,CAAC,EACtKA,EAAoB,UAAU,QAAQ,oBAAqB,WAAY,SAAU,8CAA8C",
6
+ "names": ["PKG_NAME", "PKG_VERSION", "BUILD_VERSION", "ITooltip", "Axis", "d3Event", "EntityPin", "EntityRect", "d3Local", "d3Select", "SVGWidget", "Utility", "d3Extent", "d3ScaleBand", "d3TimeFormat", "d3TimeParse", "d3Zoom", "d3ZoomIdentity", "e", "MiniGantt", "SVGWidget", "__name", "d3Local", "ITooltip", "Utility", "d", "Axis", "d3ScaleBand", "data", "d3Extent", "extent", "parser", "d3TimeParse", "formatter", "d3TimeFormat", "date1", "date2", "time1", "timeDiff", "pos", "d3ZoomIdentity", "d3Event", "domNode", "element", "d3Zoom", "width", "height", "low", "hi", "l", "r", "retVal", "events", "ranges", "brAxisBBox", "upperContentHeight", "lowerAxisHeight", "lowerHeight", "minYOffset", "row", "y_offset", "upperContentYOffset", "lowerAxisYOffset", "halfMinYOffset", "tlAxisBBox", "bucketData", "bucketIndex", "range", "i", "bucket", "vbLower", "vbHigher", "_d", "event_height", "context", "entityPins", "eventFontColor_idx", "eventBorderColor_idx", "eventBackgroundColor_idx", "title_counts", "type", "title_types", "title_group_offset", "entityPinsEnter", "d3Select", "entityPin", "EntityPin", "_title", "x_offset", "parsed_start_time", "formatted_start_time", "calc_height", "event_offset", "eventRangeHeight", "lines", "buckets", "entityRect", "EntityRect", "textBox", "x", "y", "rectWidth", "rectHeight", "fontHeightRatio", "paddingSize", "fontSize", "iconSize", "col", "sel", "textbox", "d3Event", "d3Select", "SVGZoomWidget", "Utility", "HTMLTooltip", "d3ScaleLinear", "render", "LabelledRect", "ReactGantt", "SVGZoomWidget", "__name", "Utility", "drawStartPosition", "HTMLTooltip", "d", "_", "LabelledRect", "domNode", "element", "context", "w", "x0", "x1", "d3ScaleLinear", "a", "b", "dataRow", "origIdx", "seriesKey", "gutter", "bucketOffset", "seriesKeys", "n", "i", "key", "enter", "update", "exit", "d3Select", "interpedStart", "bucketHeight", "itemSelection", "borderOffset1", "borderOffset2", "_id", "d3Event", "selected", "d3evt", "endX", "bucket", "_i", "xRange", "xScale", "transformEach", "options", "padding", "x", "k", "text", "render", "transform", "data", "startKey", "endKey", "bucketKey", "bucketMap", "bucketKeyMap", "tol", "buckets", "maxBucket", "i2", "height", "retVal", "forceMeasure", "textWidths", "characterWidths", "fontFamily", "fontSize", "char", "width", "scale", "ret", "sum", "_width", "_size", "_element", "row", "_col", "sel", "Axis", "SVGWidget", "ReactAxisGantt", "SVGWidget", "__name", "Axis", "ReactGantt", "ret", "_", "w", "h", "axisHeight", "contentHeight", "borderOffset1", "domNode", "element", "row", "col", "sel", "transform", "low", "range", "wpp", "nextLow", "nextHigh", "retVal", "ganttData", "_size", "d3Min", "d3Max", "Axis", "Border2", "ReactAxisGanttSeries", "Border2", "__name", "Axis", "ReactGantt", "_", "ret", "w", "h", "axisHeight", "contentHeight", "domNode", "element", "row", "col", "sel", "transform", "low", "range", "wpp", "nextLow", "nextHigh", "retVal", "ganttData", "d3Min", "d3Max", "_size", "d3TimeFormat", "d3TimeParse", "ReactTimeline", "ReactAxisGantt", "__name", "d", "parser", "d3TimeParse", "startTime", "endTime", "formatter", "d3TimeFormat", "domNode", "element", "minTimestamp", "maxTimestamp", "lowDateStr", "highDateStr", "n", "start", "end", "callback", "v", "parsedTime", "transform", "w", "low", "range", "wpp", "nextLow", "nextHigh", "d3TimeFormat", "d3TimeParse", "parseTime", "d3TimeParse", "ReactTimelineSeries", "ReactAxisGanttSeries", "__name", "d", "startTime", "endTime", "formatter", "d3TimeFormat", "domNode", "element", "minTimestamp", "maxTimestamp", "lowDateStr", "highDateStr", "n", "start", "end", "callback", "v", "parsedTime", "transform", "w", "low", "range", "wpp", "nextLow", "nextHigh"]
7
+ }