@hpcc-js/timeline 2.51.11 → 2.51.13

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.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/__package__.ts","../node_modules/tslib/tslib.es6.js","../../../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\";\r\nexport const PKG_VERSION = \"2.51.11\";\r\nexport const BUILD_VERSION = \"2.104.19\";\r\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","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 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 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 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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"}
1
+ {"version":3,"file":"index.js","sources":["../src/__package__.ts","../node_modules/tslib/tslib.es6.js","../../../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.51.13\";\nexport const BUILD_VERSION = \"2.104.27\";\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","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 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 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 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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"}