@hpcc-js/timeline 2.57.0 → 2.57.1
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/LICENSE +43 -43
- package/README.md +91 -91
- package/dist/index.es6.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +8 -8
- package/src/MiniGantt.css +30 -30
- package/src/MiniGantt.ts +611 -611
- package/src/ReactAxisGantt.ts +279 -279
- package/src/ReactAxisGanttSeries.ts +265 -265
- package/src/ReactGantt.ts +696 -696
- package/src/ReactTimeline.ts +115 -115
- package/src/ReactTimelineSeries.ts +113 -113
- package/src/__package__.ts +3 -3
- package/src/index.ts +7 -7
package/dist/index.es6.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es6.js","sources":["../src/__package__.ts","../../../node_modules/tslib/tslib.es6.mjs","../../../node_modules/style-inject/dist/style-inject.es.js","../src/MiniGantt.ts","../src/ReactGantt.ts","../src/ReactAxisGantt.ts","../src/ReactAxisGanttSeries.ts","../src/ReactTimeline.ts","../src/ReactTimelineSeries.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/timeline\";\nexport const PKG_VERSION = \"2.57.0\";\nexport const BUILD_VERSION = \"2.108.6\";\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import { ITooltip } from \"@hpcc-js/api\";\nimport { Axis } from \"@hpcc-js/chart\";\nimport { d3Event, EntityPin, EntityRect, local as d3Local, select as d3Select, SVGWidget, Utility } from \"@hpcc-js/common\";\nimport { extent as d3Extent } from \"d3-array\";\nimport { scaleBand as d3ScaleBand } from \"d3-scale\";\nimport { timeFormat as d3TimeFormat, timeParse as d3TimeParse } from \"d3-time-format\";\nimport { zoom as d3Zoom, zoomIdentity as d3ZoomIdentity } from \"d3-zoom\";\n\nimport \"../src/MiniGantt.css\";\n\nexport class MiniGantt extends SVGWidget {\n protected tlAxis: Axis;\n protected brAxis: Axis;\n protected verticalBands;\n protected _zoom;\n protected gUpperContent;\n protected gUpperAxis;\n protected gMiddleContent;\n protected gLowerAxis;\n protected gLowerContent;\n private localRect = d3Local<EntityRect>();\n private localEntityPin = d3Local<EntityPin>();\n private tooltipFormatter: (date: Date) => string;\n private _dateCache;\n\n protected rootExtent;\n protected _title_idx = 0;\n protected _startDate_idx = 1;\n protected _endDate_idx = 2;\n protected _icon_idx = -1;\n protected _color_idx = -1;\n protected _yoffset_idx = -1;\n\n constructor() {\n super();\n ITooltip.call(this);\n Utility.SimpleSelectionMixin.call(this);\n\n this._drawStartPos = \"origin\";\n this.tooltipHTML((d: any) => `<center>${d[this._title_idx]}</center><br>${this.tooltipFormatter(this.brAxis.parse(d[this._startDate_idx]))} -> ${this.tooltipFormatter(this.brAxis.parse(d[this._endDate_idx]))}`);\n\n this.tlAxis = new Axis()\n .type(\"time\")\n ;\n this.brAxis = new Axis()\n .type(\"time\")\n ;\n this.verticalBands = d3ScaleBand()\n .paddingOuter(0.2)\n .paddingInner(0.2)\n ;\n }\n\n isHorizontal(): boolean {\n return this.orientation() === \"horizontal\";\n }\n\n fullExtent() {\n const data = [...this.data().map(d => d[this._startDate_idx]), ...this.data().filter(d => !!d[this._endDate_idx]).map(d => d[this._endDate_idx])];\n return d3Extent(data);\n }\n\n extent() {\n const extent = this.rootExtent ? [this.rootExtent[1], this.rootExtent[2]] : this.fullExtent();\n if (extent[0] !== undefined && extent[1] !== undefined) {\n if (extent[0] === extent[1] || this.centerOnMostRecent()) {\n const parser = d3TimeParse(this.timePattern());\n const formatter = d3TimeFormat(this.timePattern());\n const date1 = parser(extent[0]);\n const date2 = parser(extent[1]);\n if (extent[0] === extent[1]) {\n extent[0] = formatter(new Date(date1.setFullYear(date1.getFullYear() - 1)));\n extent[1] = formatter(new Date(date1.setFullYear(date1.getFullYear() + 2)));\n } else {\n const time1 = date1.getTime();\n const timeDiff = date2.getTime() - time1;\n extent[0] = formatter(date1);\n extent[1] = formatter(new Date(time1 + (timeDiff * 2)));\n }\n }\n }\n return extent;\n }\n\n dataStartPos(d) {\n if(typeof this._dateCache[d[this._startDate_idx]] !== \"undefined\"){\n return this._dateCache[d[this._startDate_idx]];\n }\n const pos = this.brAxis.scalePos(d[this._startDate_idx]);\n this._dateCache[d[this._startDate_idx]] = pos;\n return pos;\n }\n\n dataEndPos(d) {\n if(typeof this._dateCache[d[this._endDate_idx]] !== \"undefined\"){\n return this._dateCache[d[this._endDate_idx]];\n }\n const pos = this.brAxis.scalePos(d[this._endDate_idx]);\n this._dateCache[d[this._endDate_idx]] = pos;\n return pos;\n }\n\n dataWidth(d) {\n return this.dataEndPos(d) - this.dataStartPos(d);\n }\n\n private transform;\n resetZoom() {\n // Triggers a \"zoomed\" event ---\n this._zoom.transform(this.element(), d3ZoomIdentity.translate(0, this.isHorizontal() ? 0 : this.height()));\n }\n\n zoomed() {\n this.transform = d3Event().transform;\n this.render();\n }\n\n private background;\n enter(domNode, element) {\n super.enter(domNode, element);\n this._zoom = d3Zoom()\n .scaleExtent([0, this.maxZoom()])\n .on(\"zoom\", () => {\n this.zoomed();\n })\n ;\n\n this.background = element.append(\"rect\")\n .attr(\"fill\", \"white\")\n .attr(\"opacity\", 0)\n .on(\"dblclick\", () => {\n d3Event().stopPropagation();\n delete this.rootExtent;\n this.resetZoom();\n })\n ;\n this.gUpperContent = element.append(\"g\").attr(\"class\", \"gUpperContent\");\n this.gUpperAxis = element.append(\"g\").attr(\"class\", \"gUpperAxis\");\n this.gMiddleContent = element.append(\"g\").attr(\"class\", \"gMiddleContent\");\n this.gLowerAxis = element.append(\"g\").attr(\"class\", \"gLowerAxis\");\n this.gLowerContent = element.append(\"g\").attr(\"class\", \"gLowerContent\");\n this.tlAxis\n .target(this.gUpperAxis.node())\n .tickFormat(this.tickFormat())\n .guideTarget(this.gUpperAxis.append(\"g\").node())\n .shrinkToFit(\"none\")\n .overlapMode(this.tickFormat_exists() ? \"stagger\" : \"none\")\n .extend(0.1)\n ;\n this.brAxis\n .target(this.gLowerAxis.node())\n .tickFormat(this.tickFormat())\n .guideTarget(this.gLowerAxis.append(\"g\").node())\n .shrinkToFit(\"none\")\n .overlapMode(this.tickFormat_exists() ? \"stagger\" : \"none\")\n .extend(0.1)\n ;\n\n element.call(this._zoom);\n this._selection.widgetElement(this.gMiddleContent);\n }\n\n private _prevIsHorizontal;\n update(domNode, element) {\n super.update(domNode, element);\n\n this._dateCache = {};\n\n this._title_idx = this.titleColumn() !== null ? this.columns().indexOf(this.titleColumn()) : this._title_idx;\n this._startDate_idx = this.startDateColumn() !== null ? this.columns().indexOf(this.startDateColumn()) : this._startDate_idx;\n this._endDate_idx = this.endDateColumn() !== null ? this.columns().indexOf(this.endDateColumn()) : this._endDate_idx;\n this._icon_idx = this.iconColumn() !== null ? this.columns().indexOf(this.iconColumn()) : this._icon_idx;\n this._color_idx = this.colorColumn() !== null ? this.columns().indexOf(this.colorColumn()) : this._color_idx;\n this._yoffset_idx = this.yOffsetColumn() !== null ? this.columns().indexOf(this.yOffsetColumn()) : this._yoffset_idx;\n\n if (this._prevIsHorizontal !== this.isHorizontal()) {\n this._prevIsHorizontal = this.isHorizontal();\n this.resetZoom();\n return;\n }\n\n this.tooltipFormatter = d3TimeFormat(this.tooltipTimeFormat());\n\n const width = this.width();\n const height = this.height();\n\n this.background\n .attr(\"x\", 0)\n .attr(\"y\", 0)\n .attr(\"width\", width)\n .attr(\"height\", height)\n ;\n\n const extent = this.extent();\n this.tlAxis\n .x(width / 2)\n .orientation(this.isHorizontal() ? \"top\" : \"left\")\n .reverse(!this.isHorizontal())\n .timePattern(this.timePattern()) // \"%Y-%m-%dT%H:%M:%S.%LZ\"\n .width(width - 1)\n .low(extent[0])\n .high(extent[1])\n .updateScale()\n ;\n\n this.brAxis\n .x(width / 2)\n .y(height / 2)\n .orientation(this.isHorizontal() ? \"bottom\" : \"right\")\n .reverse(!this.isHorizontal())\n .timePattern(this.timePattern()) // \"%Y-%m-%dT%H:%M:%S.%LZ\"\n .width(width - 1)\n .height(height)\n .low(extent[0])\n .high(extent[1])\n .updateScale()\n ;\n\n if (this.transform) {\n let low;\n let hi;\n if (this.isHorizontal()) {\n low = this.tlAxis.parseInvert(this.tlAxis.invert(this.transform.invertX(0)));\n hi = this.tlAxis.parseInvert(this.tlAxis.invert(this.transform.invertX(width - 1)));\n } else {\n low = this.tlAxis.parseInvert(this.tlAxis.invert(- this.transform.invertY(0)));\n hi = this.tlAxis.parseInvert(this.tlAxis.invert(- this.transform.invertY(height - 1)));\n }\n this.tlAxis\n .low(low)\n .high(hi)\n .updateScale()\n ;\n this.brAxis\n .low(low)\n .high(hi)\n .updateScale()\n ;\n }\n\n const data = this.data().sort(this.isHorizontal() ? (l, r) => {\n const retVal = this.brAxis.scalePos(l[1]) - this.brAxis.scalePos(r[1]);\n if (retVal === 0) {\n return (\"\" + l[0]).localeCompare(\"\" + r[0]);\n }\n return retVal;\n } : (l, r) => {\n return this.brAxis.scalePos(r[1]) - this.brAxis.scalePos(l[1]);\n });\n const events = data.filter(d => !d[this._endDate_idx]);\n const ranges = data.filter(d => !!d[this._endDate_idx]);\n\n this.tlAxis\n .render()\n ;\n this.brAxis\n .render()\n ;\n const brAxisBBox = this.brAxis.getBBox();\n\n let upperContentHeight = this.updateEntityPins(events);\n const lowerAxisHeight = brAxisBBox.height;\n let lowerHeight = height - upperContentHeight;\n const minYOffset = this._yoffset_idx !== -1 ? Math.min.apply(undefined, this.data().filter(row => !isNaN(row[this._yoffset_idx])).map(row => row[this._yoffset_idx])) : 0;\n if (events.length > 0 && ranges.length === 0) {\n // ONLY EVENTS\n this.tlAxis.visible(false);\n let y_offset = upperContentHeight / 4;\n if (y_offset > (height / 2) - lowerAxisHeight) {\n y_offset = (height / 2) - lowerAxisHeight;\n }\n const upperContentYOffset = (height / 2) + y_offset;\n const lowerAxisYOffset = ((height / 2) - lowerAxisHeight - y_offset) * -1;\n const halfMinYOffset = minYOffset !== 0 ? minYOffset / 2 : 0;\n this.gUpperContent.attr(\"transform\", `translate(0, ${upperContentYOffset - halfMinYOffset})`);\n this.gLowerAxis.attr(\"transform\", `translate(0, ${lowerAxisYOffset - halfMinYOffset})`);\n } else if (events.length === 0 && ranges.length > 0) {\n // ONLY RANGES\n this.tlAxis.visible(true);\n this.gUpperContent.attr(\"transform\", `translate(0, ${upperContentHeight})`);\n this.gUpperAxis.attr(\"transform\", `translate(0, ${upperContentHeight})`);\n } else {\n upperContentHeight -= minYOffset;\n lowerHeight += minYOffset;\n // BOTH\n this.tlAxis.visible(true);\n this.gUpperContent.attr(\"transform\", `translate(0, ${upperContentHeight})`);\n this.gUpperAxis.attr(\"transform\", `translate(0, ${upperContentHeight})`);\n this.gMiddleContent.attr(\"transform\", `translate(0, ${upperContentHeight})`);\n }\n this.tlAxis\n .render()\n ;\n const tlAxisBBox = this.tlAxis.getBBox();\n interface BucketInfo {\n endPos: number;\n }\n const bucketData: BucketInfo[] = [];\n const bucketIndex = {};\n for (const range of ranges) {\n for (let i = 0; i < bucketData.length; ++i) {\n const bucket = bucketData[i];\n if (bucket.endPos + this.overlapTolerence() <= this.dataStartPos(range)) {\n bucketIndex[range] = i;\n bucket.endPos = this.dataEndPos(range);\n break;\n }\n }\n\n if (bucketIndex[range] === undefined) {\n bucketIndex[range] = bucketData.length;\n bucketData.push({\n endPos: this.dataEndPos(range)\n });\n }\n }\n\n const vbLower = this.isHorizontal() ? 0 + tlAxisBBox.height : 0 + tlAxisBBox.width;\n const vbHigher = this.isHorizontal() ? lowerHeight - brAxisBBox.height : width - brAxisBBox.width;\n this.verticalBands\n .range([vbLower, vbHigher])\n .domain(bucketData.map((_d, i) => i))\n ;\n\n if (ranges.length > 0) {\n this.updateEventRanges(events, ranges, bucketIndex, lowerHeight, tlAxisBBox, brAxisBBox, width);\n }\n }\n\n updateEntityPins(events) {\n let event_height = 0;\n const context = this;\n const entityPins = this.gUpperContent.selectAll(\".entity_pin\").data(events, d => d[0] + \":\" + d[1]);\n const eventFontColor_idx = this.eventFontColorColumn() ? this.columns().indexOf(this.eventFontColorColumn()) : -1;\n const eventBorderColor_idx = this.eventBorderColorColumn() ? this.columns().indexOf(this.eventBorderColorColumn()) : -1;\n const eventBackgroundColor_idx = this.eventBackgroundColorColumn() ? this.columns().indexOf(this.eventBackgroundColorColumn()) : -1;\n const title_counts = {};\n for (const d of events) {\n const type = typeof d[context._title_idx] !== \"undefined\" ? d[context._title_idx] : d[0];\n title_counts[type] = title_counts[type] ? title_counts[type] + 1 : 1;\n }\n const title_types = Object.keys(title_counts);\n const title_group_offset = context.eventGroupOffset();\n const entityPinsEnter = entityPins.enter().append(\"g\")\n .attr(\"class\", \"entity_pin\");\n entityPinsEnter.append(\"line\")\n .attr(\"class\", \"entity_line\");\n\n entityPinsEnter\n .on(\"mouseover\", function (d) {\n d3Select(this).raise();\n })\n .each(function (d, i) {\n const entityPin = new EntityPin()\n .target(this)\n .icon(\"\")\n .iconOnlyShowOnHover(context.hideIconWhenCollapsed())\n .titleOnlyShowOnHover(context.hideTitleWhenCollapsed())\n .descriptionOnlyShowOnHover(context.hideDescriptionWhenCollapsed())\n .annotationOnlyShowOnHover(context.hideAnnotationsWhenCollapsed())\n .iconDiameter(18)\n .iconPaddingPercent(1)\n .titleFontSize(14)\n .descriptionColor(\"#333\")\n .descriptionFontSize(15)\n .iconColor(eventFontColor_idx === -1 ? \"#333\" : d[eventFontColor_idx])\n .titleColor(eventFontColor_idx === -1 ? \"#333\" : d[eventFontColor_idx])\n .descriptionColor(eventFontColor_idx === -1 ? \"#333\" : d[eventFontColor_idx])\n .backgroundShape(\"pin\")\n .backgroundColorFill(eventFontColor_idx === -1 ? \"#f8f8f8\" : d[eventBackgroundColor_idx])\n .backgroundColorStroke(eventFontColor_idx === -1 ? \"#ccc\" : d[eventBorderColor_idx])\n .cornerRadius(5)\n .arrowHeight(10)\n .arrowWidth(16)\n ;\n context.localEntityPin.set(this, entityPin);\n })\n .merge(entityPins)\n .each(function (d, i) {\n const entityPin = context.localEntityPin.get(this);\n const _title = typeof d[context._title_idx] !== \"undefined\" ? d[context._title_idx] : entityPin.title();\n const x_offset = context.dataStartPos(d) - 0;\n let y_offset = ((title_types.indexOf(_title) % context.eventGroupMod()) * title_group_offset) - 5;\n if (typeof d[context._yoffset_idx] !== \"undefined\") y_offset += d[context._yoffset_idx] ? d[context._yoffset_idx] : 0;\n if (d[context._title_idx] !== entityPin.title() && d[context._startDate_idx] !== entityPin.description()) {\n const parsed_start_time = context.brAxis.parse(d[context._startDate_idx]);\n const formatted_start_time = context.tooltipFormatter(parsed_start_time);\n entityPin\n .x(x_offset)\n .y(y_offset)\n .iconOnlyShowOnHover(context.hideIconWhenCollapsed())\n .titleOnlyShowOnHover(context.hideTitleWhenCollapsed())\n .descriptionOnlyShowOnHover(context.hideDescriptionWhenCollapsed())\n .annotationOnlyShowOnHover(context.hideAnnotationsWhenCollapsed())\n .icon(typeof d[context._icon_idx] !== \"undefined\" ? d[context._icon_idx] : entityPin.icon())\n .title(_title)\n .description(formatted_start_time)\n .animationFrameRender()\n ;\n } else {\n entityPin.move({ x: x_offset, y: y_offset });\n }\n const calc_height = entityPin.calcHeight();\n if (event_height < calc_height) event_height = calc_height;\n\n d3Select(this).selectAll(\".entity_line\")\n .attr(\"x1\", x_offset)\n .attr(\"x2\", x_offset)\n .attr(\"y1\", 0)\n .attr(\"y2\", y_offset)\n .style(\"stroke\", eventFontColor_idx === -1 ? \"#ccc\" : d[eventBorderColor_idx])\n .style(\"stroke-width\", 1)\n ;\n })\n ;\n entityPins.exit()\n .each(function (d, i) {\n const entityPin = context.localEntityPin.get(this);\n entityPin.target(null);\n\n })\n .remove();\n const event_offset = Math.abs(Math.min(events.length, context.eventGroupMod()) * context.eventGroupOffset());\n return event_height + event_offset;\n }\n\n updateEventRanges(events, ranges, bucketIndex, eventRangeHeight, tlAxisBBox, brAxisBBox, width) {\n const context = this;\n\n const lines = this.gMiddleContent.selectAll(\".line\").data(events, d => {\n return d[context._title_idx];\n });\n lines.enter().append(\"line\")\n .attr(\"class\", \"line\")\n .merge(lines)\n .attr(this.isHorizontal() ? \"x1\" : \"y1\", d => this.dataStartPos(d) - 0)\n .attr(this.isHorizontal() ? \"x2\" : \"y2\", d => this.dataStartPos(d) - 0)\n .attr(this.isHorizontal() ? \"y1\" : \"x1\", this.isHorizontal() ? tlAxisBBox.height : tlAxisBBox.width)\n .attr(this.isHorizontal() ? \"y2\" : \"x2\", this.isHorizontal() ? eventRangeHeight - brAxisBBox.height : width - brAxisBBox.width)\n ;\n lines.exit().remove();\n const buckets = this.gMiddleContent.selectAll(\".buckets\").data(ranges, d => d[context._title_idx]);\n buckets.enter().append(\"g\")\n .attr(\"class\", \"buckets\")\n .call(this._selection.enter.bind(this._selection))\n .each(function (d) {\n const entityRect = new EntityRect()\n .target(this)\n .iconDiameter(28)\n .iconPaddingPercent(0)\n .titleFontSize(28)\n .titleColor(context.rangeFontColor())\n .descriptionColor(context.rangeFontColor())\n .iconColor(context.rangeFontColor())\n .backgroundShape(\"rect\")\n .backgroundColorFill(d[context._color_idx])\n ;\n context.localRect.set(this, entityRect);\n context.enterEntityRect(entityRect, d);\n })\n .on(\"click\", function (d) {\n context.click(context.rowToObj(d), \"range\", context._selection.selected(this));\n }, false)\n .on(\"dblclick\", function (d) {\n context.rootExtent = d;\n context.resetZoom();\n context.dblclick(context.rowToObj(d), \"range\", context._selection.selected(this));\n }, true)\n .on(\"mouseout.tooltip\", this.tooltip.hide)\n .on(\"mousemove.tooltip\", this.tooltip.show)\n .merge(buckets)\n .attr(\"transform\", d => context.isHorizontal() ?\n `translate(${this.dataStartPos(d)}, ${this.verticalBands(bucketIndex[d])}) ` :\n `translate(${this.verticalBands(bucketIndex[d])}, ${this.dataStartPos(d)}) `)\n .each(function (d) {\n const textBox = context.localRect.get(this);\n const x = context.dataWidth(d) / 2;\n const y = context.verticalBands.bandwidth() / 2;\n const rectWidth = Math.max(context.dataWidth(d), 2);\n const rectHeight = Math.max(context.verticalBands.bandwidth(), 2);\n const fontHeightRatio = 0.618;\n const paddingRatio = ((1 - fontHeightRatio) / 2);\n const paddingSize = paddingRatio * rectHeight;\n const fontSize = rectHeight * fontHeightRatio;\n const iconSize = fontSize;\n textBox\n .pos(context.isHorizontal() ? { x, y } : { x: y, y: x })\n .fixedHeight(context.isHorizontal() ? rectHeight : rectWidth)\n .fixedWidth(context.isHorizontal() ? rectWidth : rectHeight)\n .icon(typeof d[context._icon_idx] !== \"undefined\" ? d[context._icon_idx] : \"\")\n .title(typeof d[context._title_idx] !== \"undefined\" ? d[context._title_idx] : \"\")\n .padding(paddingSize)\n .iconDiameter(iconSize)\n .titleFontSize(fontSize)\n ;\n if (iconSize * 1.5 > rectWidth) {\n textBox.icon(null);\n }\n context.updateEntityRect(textBox, d[context._icon_idx]);\n textBox\n .render()\n ;\n });\n buckets.exit().remove();\n }\n\n exit(domNode, element) {\n this.brAxis.target(null);\n this.tlAxis.target(null);\n super.exit(domNode, element);\n }\n\n // Events ---\n click(row, col, sel) {\n }\n\n dblclick(row, col, sel) {\n }\n\n enterEntityRect(textbox: EntityRect, d) {\n }\n\n updateEntityRect(textbox: EntityRect, d) {\n }\n\n // ITooltip ---\n tooltip;\n tooltipHTML: (_) => string;\n tooltipFormat: (_) => string;\n\n // SimpleSelectionMixin\n _selection;\n}\nMiniGantt.prototype._class += \" timeline_MiniGantt\";\nMiniGantt.prototype.implements(ITooltip.prototype);\nMiniGantt.prototype.mixin(Utility.SimpleSelectionMixin);\n\nexport interface MiniGantt {\n timePattern(): string;\n timePattern(_: string): this;\n tickFormat(): string;\n tickFormat(_: string): this;\n tickFormat_exists(): boolean;\n tooltipTimeFormat(): string;\n tooltipTimeFormat(_: string): this;\n overlapTolerence(): number;\n overlapTolerence(_: number): this;\n orientation(): string;\n orientation(_: string): this;\n rangeFontColor(): string;\n rangeFontColor(_: string): this;\n titleColumn(): string;\n titleColumn(_: string): this;\n startDateColumn(): string;\n startDateColumn(_: string): this;\n endDateColumn(): string;\n endDateColumn(_: string): this;\n iconColumn(): string;\n iconColumn(_: string): this;\n colorColumn(): string;\n colorColumn(_: string): this;\n yOffsetColumn(): string;\n yOffsetColumn(_: string): this;\n maxZoom(): number;\n maxZoom(_: number): this;\n eventGroupMod(): number;\n eventGroupMod(_: number): this;\n eventGroupOffset(): number;\n eventGroupOffset(_: number): this;\n eventFontColorColumn(): string;\n eventFontColorColumn(_: string): this;\n eventBorderColorColumn(): string;\n eventBorderColorColumn(_: string): this;\n eventBackgroundColorColumn(): string;\n eventBackgroundColorColumn(_: string): this;\n hideIconWhenCollapsed(): boolean;\n hideIconWhenCollapsed(_: boolean): this;\n hideTitleWhenCollapsed(): boolean;\n hideTitleWhenCollapsed(_: boolean): this;\n hideDescriptionWhenCollapsed(): boolean;\n hideDescriptionWhenCollapsed(_: boolean): this;\n hideAnnotationsWhenCollapsed(): boolean;\n hideAnnotationsWhenCollapsed(_: boolean): this;\n centerOnMostRecent(): boolean;\n centerOnMostRecent(_: boolean): this;\n\n}\n\nMiniGantt.prototype.publish(\"timePattern\", \"%Y-%m-%d\", \"string\", \"timePattern\");\nMiniGantt.prototype.publish(\"tickFormat\", null, \"string\", \"tickFormat\", undefined, { optional: true });\nMiniGantt.prototype.publish(\"tooltipTimeFormat\", \"%Y-%m-%d\", \"string\", \"tooltipTimeFormat\");\nMiniGantt.prototype.publish(\"overlapTolerence\", 2, \"number\", \"overlapTolerence\");\nMiniGantt.prototype.publish(\"orientation\", \"horizontal\", \"set\", \"orientation\", [\"horizontal\", \"vertical\"]);\nMiniGantt.prototype.publish(\"rangeFontColor\", \"#ecf0f1\", \"html-color\", \"rangeFontColor\");\nMiniGantt.prototype.publish(\"titleColumn\", null, \"string\", \"titleColumn\");\nMiniGantt.prototype.publish(\"startDateColumn\", null, \"string\", \"startDateColumn\");\nMiniGantt.prototype.publish(\"endDateColumn\", null, \"string\", \"endDateColumn\");\nMiniGantt.prototype.publish(\"iconColumn\", null, \"string\", \"iconColumn\");\nMiniGantt.prototype.publish(\"colorColumn\", null, \"string\", \"colorColumn\");\nMiniGantt.prototype.publish(\"yOffsetColumn\", null, \"string\", \"yOffsetColumn\");\nMiniGantt.prototype.publish(\"maxZoom\", 16, \"number\", \"maxZoom\");\nMiniGantt.prototype.publish(\"eventGroupOffset\", -50, \"number\", \"eventGroupOffset\");\nMiniGantt.prototype.publish(\"eventGroupMod\", 5, \"number\", \"eventGroupMod\");\nMiniGantt.prototype.publish(\"eventFontColorColumn\", null, \"string\", \"eventFontColorColumn\");\nMiniGantt.prototype.publish(\"eventBorderColorColumn\", null, \"string\", \"eventBorderColorColumn\");\nMiniGantt.prototype.publish(\"eventBackgroundColorColumn\", null, \"string\", \"eventBackgroundColorColumn\");\nMiniGantt.prototype.publish(\"hideIconWhenCollapsed\", false, \"boolean\", \"hideIconWhenCollapsed\");\nMiniGantt.prototype.publish(\"hideTitleWhenCollapsed\", false, \"boolean\", \"hideTitleWhenCollapsed\");\nMiniGantt.prototype.publish(\"hideDescriptionWhenCollapsed\", false, \"boolean\", \"hideDescriptionWhenCollapsed\");\nMiniGantt.prototype.publish(\"hideAnnotationsWhenCollapsed\", true, \"boolean\", \"hideAnnotationsWhenCollapsed\");\nMiniGantt.prototype.publish(\"centerOnMostRecent\", false, \"boolean\", \"If true, the timeline will be centered on the most recent data point\");\n","import { d3Event, select as d3Select, SVGZoomWidget, Utility } from \"@hpcc-js/common\";\nimport { HTMLTooltip } from \"@hpcc-js/html\";\nimport { scaleLinear as d3ScaleLinear } from \"d3-scale\";\nimport { React, render, LabelledRect } from \"@hpcc-js/react\";\n\nexport type IGanttData = [string, number, number, any?];\n\nexport interface IRangeOptions {\n rangePadding: number;\n fontFamily: string;\n fontSize: number;\n strokeWidth?: number;\n fill: string;\n stroke: string;\n textFill: string;\n cornerRadius: number;\n}\n\nexport class ReactGantt extends SVGZoomWidget {\n\n protected _selection = new Utility.Selection(this);\n\n protected _buckets;\n protected _interpolateX;\n protected _interpolateY;\n\n protected _bucketsBySeries;\n protected _dataBySeries;\n protected _origIdxMap;\n private _seriesBackgrounds;\n\n protected _maxFontSize;\n\n public _tooltip;\n\n public _minStart: number;\n public _maxEnd: number;\n\n protected _title_idx = 0;\n protected _startDate_idx = 1;\n protected _endDate_idx = 2;\n protected _icon_idx = -1;\n protected _color_idx = -1;\n protected _series_idx = -1;\n protected _bucket_idx = -1;\n protected _yoffset_idx = -1;\n\n protected _maxX: number;\n protected _maxY: number;\n\n private _rangeOptions: IRangeOptions = {\n rangePadding: 2,\n fontFamily: \"Verdana\",\n fontSize: 12,\n fill: \"white\",\n stroke: \"black\",\n textFill: \"black\",\n cornerRadius: 3,\n strokeWidth: 0\n };\n\n constructor(drawStartPosition: \"origin\" | \"center\" = \"origin\") {\n super();\n this._drawStartPos = drawStartPosition;\n\n this.showToolbar_default(false);\n\n this._tooltip = new HTMLTooltip();\n this._tooltip\n .tooltipHTML(d => {\n return `<div style=\"text-align:center;\">${d[0]}<br/><br/>${d[1]} -> ${d[2]}</div>`;\n });\n this._tooltip\n .followCursor(true)\n ;\n }\n\n selection(_: any[]): this;\n selection(): any[];\n selection(_?: any[]): any[] | this {\n if (!arguments.length) return this._selection.get();\n this._selection.set(_);\n return this;\n }\n\n private _rangeRenderer: React.FunctionComponent = LabelledRect;\n rangeRenderer(): React.FunctionComponent;\n rangeRenderer(_: React.FunctionComponent): this;\n rangeRenderer(_?: React.FunctionComponent): this | React.FunctionComponent {\n if (!arguments.length) return this._rangeRenderer;\n this._rangeRenderer = _;\n return this._rangeRenderer;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n\n const context = this;\n element\n .on(\"click\", function (this: SVGElement, d) {\n context._selection.clear();\n });\n\n this._tooltip.target(domNode);\n }\n update(domNode, element) {\n super.update(domNode, element);\n\n this.zoomExtent([0.05, this.maxZoom()]);\n\n this._title_idx = this.titleColumn() !== null ? this.columns().indexOf(this.titleColumn()) : this._title_idx;\n this._startDate_idx = this.startDateColumn() !== null ? this.columns().indexOf(this.startDateColumn()) : this._startDate_idx;\n this._endDate_idx = this.endDateColumn() !== null ? this.columns().indexOf(this.endDateColumn()) : this._endDate_idx;\n this._icon_idx = this.iconColumn() !== null ? this.columns().indexOf(this.iconColumn()) : this._icon_idx;\n this._color_idx = this.colorColumn() !== null ? this.columns().indexOf(this.colorColumn()) : this._color_idx;\n this._series_idx = this.seriesColumn() !== null ? this.columns().indexOf(this.seriesColumn()) : this._series_idx;\n this._bucket_idx = this.bucketColumn() !== null ? this.columns().indexOf(this.bucketColumn()) : -1;\n\n const context = this;\n const w = this.width();\n\n const x0 = 0;\n const x1 = w;\n\n this._interpolateX = d3ScaleLinear()\n .domain([this._minStart, this._maxEnd])\n .range([x0, x1])\n ;\n\n this.data().sort((a, b) => a[1] - b[1]);\n\n if (this._series_idx > -1) {\n this._origIdxMap = {};\n this._dataBySeries = {};\n this._bucketsBySeries = {};\n this.data().forEach((dataRow, origIdx) => {\n const seriesKey = dataRow[this._series_idx];\n if (!this._dataBySeries[seriesKey]) {\n this._origIdxMap[seriesKey] = {};\n this._dataBySeries[seriesKey] = [];\n }\n this._dataBySeries[seriesKey].push({\n dataRow,\n origIdx\n });\n });\n const gutter = this.gutter();\n let bucketOffset = 0;\n const seriesKeys = Object.keys(this._dataBySeries);\n seriesKeys.forEach(seriesKey => {\n this._dataBySeries[seriesKey].sort((a, b) => a.dataRow[1] - b.dataRow[1]);\n this._bucketsBySeries[seriesKey] = this.calcBuckets(this._dataBySeries[seriesKey].map(n => n.dataRow), 1, 2);\n this._bucketsBySeries[seriesKey].bucketHeight = this.bucketHeight();\n this._bucketsBySeries[seriesKey].bucketOffset = bucketOffset;\n bucketOffset += (this._bucketsBySeries[seriesKey].bucketHeight + this.strokeWidth() + this.gutter()) * (this._bucketsBySeries[seriesKey].maxBucket + 1);\n this._dataBySeries[seriesKey].forEach((n, i) => {\n this._origIdxMap[seriesKey][n.origIdx] = i;\n });\n });\n this._seriesBackgrounds = this._renderElement.selectAll(\".series-background\")\n .data(seriesKeys.map(key => {\n return this._bucketsBySeries[key];\n }))\n ;\n this._seriesBackgrounds\n .join(\n enter => enter.append(\"rect\")\n .attr(\"class\", \"series-background\"),\n update => update,\n exit => exit\n .each(function (d) {\n delete d.element;\n })\n .remove()\n )\n .attr(\"opacity\", d => d.props && d.props.hidden ? 0 : 1)\n .each(function (this: SVGGElement, d, i) {\n d3Select(this)\n .attr(\"x\", 0)\n .attr(\"y\", d.bucketOffset - (gutter / 2))\n .attr(\"width\", w)\n .attr(\"height\", ((d.bucketHeight + gutter) * (d.maxBucket + 1)) + gutter)\n .attr(\"fill\", i % 2 ? context.oddSeriesBackground() : context.evenSeriesBackground())\n ;\n });\n } else {\n if (this._bucket_idx !== -1) {\n this._buckets = this.calcBuckets(this.data(), this._startDate_idx, this._endDate_idx, this._bucket_idx);\n } else {\n this._buckets = this.calcBuckets(this.data(), this._startDate_idx, this._endDate_idx);\n }\n }\n const interpedStart = this._interpolateX(this._minStart);\n\n this.zoomTo(\n [interpedStart, 0],\n 1\n );\n\n const bucketHeight = this.bucketHeight();\n\n this.setRangeOptions();\n\n this._maxFontScale = (bucketHeight - (this.rangePadding() * 2));\n this.measureDataText();\n\n const itemSelection = this._renderElement.selectAll(\".item\")\n .data(this.data())\n ;\n const borderOffset1 = this.strokeWidth();\n const borderOffset2 = borderOffset1 * 2;\n itemSelection\n .join(\n enter => enter.append(\"g\")\n .attr(\"class\", \"item\")\n .on(\"click.selectionBag\", function (d, i) {\n const _id = d.id === undefined ? i : d.id;\n if (context._selection.isSelected({ _id, element: d.element })) {\n context._selection.clear();\n } else {\n context._selection.click(\n {\n _id,\n element: () => d.element\n },\n d3Event\n );\n }\n context.selectionChanged();\n d3Event().stopPropagation();\n })\n .on(\"click\", function (this: SVGElement, d) {\n const selected = d.element.classed(\"selected\");\n if (d[context.columns().length]) {\n d.__lparam = d[context.columns().length];\n }\n context.click(d, \"\", selected);\n })\n .on(\"dblclick\", function (this: SVGElement, d) {\n const selected = d.element.classed(\"selected\");\n if (d[context.columns().length]) {\n d.__lparam = d[context.columns().length];\n }\n context.click(d, \"\", selected);\n })\n .on(\"mousein\", function (d) {\n context.highlightItem(d3Select(this), d);\n const selected = d.element.classed(\"selected\");\n context.mousein(d, \"\", selected);\n })\n .on(\"mouseover\", function (d) {\n const d3evt = d3Event();\n context._tooltip._triggerElement = d.element;\n context._tooltip._cursorLoc = [\n d3evt.clientX,\n d3evt.clientY\n ];\n context._tooltip\n .data(d)\n .visible(true)\n .fitContent(true)\n .render()\n ;\n context.highlightItem(d3Select(this), d);\n const selected = d.element.classed(\"selected\");\n context.mouseover(d, \"\", selected);\n })\n .on(\"mouseout\", function (d) {\n context._tooltip\n .visible(false)\n .render()\n ;\n context.highlightItem(null, null);\n const selected = d.element.classed(\"selected\");\n context.mouseout(d, \"\", selected);\n })\n .each(function (d, i) {\n d.that = this;\n d.element = d3Select(this);\n d.x = context._interpolateX(d[1]);\n const endX = context._interpolateX(d[2]);\n if (context._series_idx > -1) {\n const seriesKey = d[context._series_idx];\n const bucket = context._bucketsBySeries[seriesKey].bucketMap[context._origIdxMap[seriesKey][i]];\n d.y = context._bucketsBySeries[seriesKey].interpolateY(bucket) + context._bucketsBySeries[seriesKey].bucketOffset;\n } else {\n const _i = context._bucket_idx === -1 ? i : d[context._bucket_idx];\n d.y = context._buckets.interpolateY(context._buckets.bucketMap[_i]);\n }\n d.props = {\n ...d[3],\n text: d[0]\n };\n d.props.width = endX - d.x;\n d.props.height = bucketHeight;\n d.x += borderOffset1;\n d.y += borderOffset1;\n d.props.width -= borderOffset2;\n d.props.height -= borderOffset2;\n d.element.attr(\"transform\", `translate(${d.x + (d.props.width / 2)} ${d.y + (d.props.height / 2)})`);\n }),\n update => update,\n exit => exit\n .each(function (d) {\n delete d.element;\n })\n .remove()\n )\n .attr(\"opacity\", d => d.props && d.props.hidden ? 0 : 1)\n .each(function (this: SVGGElement, d, i) {\n d.that = this;\n if (context._series_idx > -1) {\n const seriesKey = d[context._series_idx];\n d.x = context.renderRangeElement(d, i, false, context._rangeOptions, seriesKey);\n } else {\n d.x = context.renderRangeElement(d, i, false, context._rangeOptions);\n }\n })\n .on(\"dblclick.zoom\", d => {\n const x1 = this._interpolateX(d[1]);\n const x2 = this._interpolateX(d[2]);\n const xRange = x2 - x1;\n const xScale = w / xRange;\n this.zoomTo(\n [\n -x1 * xScale,\n 0\n ],\n xScale\n );\n })\n ;\n element.on(\"dblclick.zoom\", null);\n }\n renderRangeElement(d, i, transformEach = false, options: any = {}, seriesKey?: string) {\n const borderOffset1 = options.strokeWidth;\n const borderOffset2 = borderOffset1 * 2;\n const padding = options.rangePadding;\n let endX;\n const x = isNaN(this._transform.x) ? 0 : this._transform.x;\n const k = isNaN(this._transform.k) ? 1 : this._transform.k;\n let b;\n const bucketHeight = this.bucketHeight();\n d.that.setAttribute(\"data-series\", seriesKey);\n\n if (this._color_idx > -1) {\n d.that.setAttribute(\"data-color\", d[this._color_idx]);\n }\n\n if (seriesKey !== undefined) {\n b = this._bucketsBySeries[seriesKey].bucketMap[this._origIdxMap[seriesKey][i]];\n d.that.setAttribute(\"data-b\", b);\n d.that.setAttribute(\"data-bucketOffset\", this._bucketsBySeries[seriesKey].bucketOffset);\n d.y = this._bucketsBySeries[seriesKey].interpolateY(b) + this._bucketsBySeries[seriesKey].bucketOffset;\n d.that.setAttribute(\"data-dy\", d.y);\n } else {\n b = this._buckets.bucketMap[i];\n d.y = this._buckets.interpolateY(b);\n }\n if (this._color_idx > -1) {\n options.fill = d[this._color_idx];\n }\n if (!transformEach) {\n d.x = this._interpolateX(d[1]);\n endX = this._interpolateX(d[2]);\n d.props = {\n ...d[3],\n text: d[0]\n };\n d.props.width = (endX - d.x) / k;\n } else {\n d.x = this._interpolateX(d[1]) * k;\n endX = this._interpolateX(d[2]) * k;\n d.props = {\n ...d[3],\n text: d[0]\n };\n d.props.width = (endX - d.x) / k;\n d.x += x;\n d.props.width *= k;\n }\n d.props.height = bucketHeight;\n if (seriesKey === undefined && this._buckets.bucketScale < 1) {\n d.props.height = this._buckets.bucketScale * bucketHeight;\n }\n if (d.element === undefined && d.that) {\n d.element = d3Select(d.that);\n }\n d.element.attr(\"transform\", `translate(${d.x + (d.props.width / 2)} ${d.y + (d.props.height / 2)})`);\n\n d.x += borderOffset1;\n d.y += borderOffset1;\n d.props.width -= borderOffset2;\n d.props.height -= borderOffset2;\n d.props.width = d.props.width < 1 ? 1 : d.props.width;\n d.props.height = d.props.height < 1 ? 1 : d.props.height;\n\n let text = this.truncateText(d.props.text, d.props.width - padding, this._maxFontScale);\n\n if (text !== d.props.text) {\n text = this.truncateText(d.props.text, d.props.width - padding);\n } else {\n d.props.fontSize = this._maxFontScale * options.fontSize;\n }\n if (seriesKey === undefined && this._buckets.bucketScale < 1) {\n d.props.fontSize = Math.min(this._maxFontScale, this._buckets.bucketScale) * options.fontSize;\n }\n if (!this._maxY || this._maxY < d.y + d.props.height) {\n this._maxY = d.y + d.props.height;\n }\n if (!this._maxX || this._maxX < d.x + d.props.width) {\n this._maxX = d.x + d.props.width;\n }\n render(\n this._rangeRenderer,\n {\n ...options,\n ...d.props,\n text,\n },\n d.that\n );\n }\n\n setRangeOptions() {\n this._rangeOptions = {\n rangePadding: this.rangePadding(),\n fontFamily: this.fontFamily(),\n fontSize: this.fontSize(),\n strokeWidth: this.strokeWidth(),\n fill: this.fill(),\n stroke: this.stroke(),\n textFill: this.rangeFontColor(),\n cornerRadius: this.cornerRadius(),\n };\n }\n\n public _transform = { k: 1, x: 0, y: 0 };\n zoomed(transform) {\n this._transform = transform;\n switch (this.renderMode()) {\n case \"scale-all\":\n this._zoomScale = transform.k;\n this._zoomTranslate = [transform.x, 0];\n this._zoomG.attr(\"transform\", `translate(${transform.x} ${0})scale(${transform.k} 1)`);\n break;\n default:\n const options = this._rangeOptions;\n this.data().forEach((d, i) => {\n if (this._color_idx > -1) {\n options.fill = d[this._color_idx];\n }\n if (this._series_idx > -1) {\n const seriesKey = d[this._series_idx];\n this.renderRangeElement(d, i, true, options, seriesKey);\n } else {\n this.renderRangeElement(d, i, true, options);\n }\n });\n }\n\n this.zoomedHook(transform);\n }\n\n zoomedHook(transform) {\n\n }\n\n private calcBuckets(data, startKey: string | number, endKey: string | number, bucketKey?: string | number) {\n const bucketMap = {};\n const bucketKeyMap = {};\n const tol = this.overlapTolerence();\n const buckets = [{ end: -Infinity }];\n let maxBucket = 0;\n if (bucketKey !== undefined) {\n data.forEach((d, i) => {\n bucketMap[i] = d[bucketKey];\n bucketKeyMap[d[bucketKey]] = true;\n });\n maxBucket = Object.keys(bucketKeyMap).length;\n } else {\n data.forEach((d, i) => {\n for (let i2 = 0; i2 < buckets.length; ++i2) {\n if (i === 0 || buckets[i2][endKey] + tol <= d[startKey]) {\n bucketMap[i] = i2;\n if (maxBucket < i2) maxBucket = i2;\n buckets[i2][endKey] = d[endKey];\n break;\n }\n }\n if (bucketMap[i] === undefined) {\n bucketMap[i] = buckets.length;\n const b = {};\n b[endKey] = d[endKey];\n buckets.push(b as any);\n }\n\n if (maxBucket < bucketMap[i]) maxBucket = bucketMap[i];\n });\n }\n const height = (maxBucket + 1) * (this.bucketHeight() + this.gutter());\n return {\n bucketMap,\n maxBucket,\n bucketScale: this.height() / height,\n interpolateY: d3ScaleLinear()\n .domain([0, maxBucket + 1])\n .range([0, Math.min(this.height(), height)])\n };\n }\n\n data(): IGanttData[];\n data(_: IGanttData[]): this;\n data(_?: IGanttData[]): this | IGanttData[] {\n const retVal = super.data.apply(this, arguments);\n if (arguments.length > 0) {\n this._minStart = Math.min(...this.data().map(n => n[1])) ?? 0;\n this._maxEnd = Math.max(...this.data().map(n => n[2])) ?? 1;\n this.measureDataText(true);\n }\n return retVal;\n }\n\n protected _textWidths;\n protected _maxFontScale;\n protected _characterWidths;\n protected _prevFontFamily;\n protected _prevFontSize;\n measureDataText(forceMeasure = false) {\n const textWidths = {};\n const characterWidths = {};\n const fontFamily = this.fontFamily();\n const fontSize = this.fontSize();\n const bucketHeight = this.bucketHeight();\n\n if (bucketHeight) {\n this._maxFontScale = (bucketHeight - (this.rangePadding() * 2)) / fontSize;\n }\n\n if (forceMeasure || this._prevFontFamily !== fontFamily || this._prevFontSize !== fontSize) {\n characterWidths[\".\"] = Utility.textSize(\".\", fontFamily, fontSize).width;\n this.data().forEach(d => {\n if (!textWidths[d[0]]) {\n textWidths[d[0]] = Utility.textSize(d[0], fontFamily, fontSize).width;\n }\n d[0].split(\"\").forEach(char => {\n if (!characterWidths[char]) {\n characterWidths[char] = Utility.textSize(char, fontFamily, fontSize).width;\n }\n });\n });\n this._textWidths = textWidths;\n this._characterWidths = characterWidths;\n }\n this._prevFontFamily = fontFamily;\n this._prevFontSize = fontSize;\n }\n\n truncateText(text, width, scale = 1) {\n const textFits = this._textWidths[text] * scale < width;\n if (textFits) {\n return text;\n }\n let ret = \"\";\n let sum = 0;\n const _width = width - (this._characterWidths[\".\"] * 3);\n for (const char of text) {\n sum += this._characterWidths[char];\n if (sum < _width) {\n ret += char;\n } else {\n break;\n }\n }\n return _width < 0 ? \"\" : ret + \"...\";\n }\n\n resize(_size?: { width: number, height: number }) {\n let retVal;\n if (this.fitWidthToContent() || this.fitHeightToContent()) {\n retVal = super.resize.call(this, {\n width: _size.width,\n height: this._maxY\n });\n } else {\n retVal = super.resize.apply(this, arguments);\n }\n return retVal;\n }\n\n selectionChanged() {\n\n }\n\n highlightItem(_element, d) {\n\n }\n\n click(row, _col, sel) {\n\n }\n\n dblclick(row, _col, sel) {\n\n }\n\n mousein(row, _col, sel) {\n }\n\n mouseover(row, _col, sel) {\n }\n\n mouseout(row, _col, sel) {\n }\n}\nReactGantt.prototype._class += \" timeline_ReactGantt\";\n\nexport interface ReactGantt {\n titleColumn(): string;\n titleColumn(_: string): this;\n startDateColumn(): string;\n startDateColumn(_: string): this;\n endDateColumn(): string;\n endDateColumn(_: string): this;\n iconColumn(): string;\n iconColumn(_: string): this;\n colorColumn(): string;\n colorColumn(_: string): this;\n seriesColumn(): string;\n seriesColumn(_: string): this;\n bucketColumn(): string;\n bucketColumn(_: string): this;\n overlapTolerence(): number;\n overlapTolerence(_: number): this;\n smallestRangeWidth(): number;\n smallestRangeWidth(_: number): this;\n bucketHeight(): number;\n bucketHeight(_: number): this;\n gutter(): number;\n gutter(_: number): this;\n showToolbar_default(_: boolean): this;\n fontSize(): number;\n fontSize(_: number): this;\n fontFamily(): string;\n fontFamily(_: string): this;\n strokeWidth(): number;\n strokeWidth(_: number): this;\n stroke(): string;\n stroke(_: string): this;\n cornerRadius(): number;\n cornerRadius(_: number): this;\n fill(): string;\n fill(_: string): this;\n rangeFontColor(): string;\n rangeFontColor(_: string): this;\n rangePadding(): number;\n rangePadding(_: number): this;\n renderMode(): \"default\" | \"scale-all\";\n renderMode(_: \"default\" | \"scale-all\"): this;\n maxZoom(): number;\n maxZoom(_: number): this;\n fitWidthToContent(): boolean;\n fitWidthToContent(_: boolean): this;\n fitHeightToContent(): boolean;\n fitHeightToContent(_: boolean): this;\n evenSeriesBackground(): string;\n evenSeriesBackground(_: string): this;\n oddSeriesBackground(): string;\n oddSeriesBackground(_: string): this;\n}\n\nReactGantt.prototype.publish(\"fitWidthToContent\", false, \"boolean\", \"If true, resize will simply reapply the bounding box width\");\nReactGantt.prototype.publish(\"fitHeightToContent\", false, \"boolean\", \"If true, resize will simply reapply the bounding box height\");\nReactGantt.prototype.publish(\"titleColumn\", null, \"string\", \"Column name to for the title\");\nReactGantt.prototype.publish(\"startDateColumn\", null, \"string\", \"Column name to for the start date\");\nReactGantt.prototype.publish(\"endDateColumn\", null, \"string\", \"Column name to for the end date\");\nReactGantt.prototype.publish(\"iconColumn\", null, \"string\", \"Column name to for the icon\");\nReactGantt.prototype.publish(\"colorColumn\", null, \"string\", \"Column name to for the color\");\nReactGantt.prototype.publish(\"seriesColumn\", null, \"string\", \"Column name to for the series identifier\");\nReactGantt.prototype.publish(\"bucketColumn\", null, \"string\", \"Column name to for the bucket identifier\");\nReactGantt.prototype.publish(\"renderMode\", \"default\", \"set\", \"Render modes vary in features and performance\", [\"default\", \"scale-all\"]);\nReactGantt.prototype.publish(\"rangePadding\", 3, \"number\", \"Padding within each range rectangle (pixels)\");\nReactGantt.prototype.publish(\"fill\", \"#1f77b4\", \"string\", \"Background color of range rectangle\");\nReactGantt.prototype.publish(\"stroke\", null, \"string\", \"Color of range rectangle border\");\nReactGantt.prototype.publish(\"strokeWidth\", null, \"number\", \"Width of range rectangle border (pixels)\");\nReactGantt.prototype.publish(\"cornerRadius\", 3, \"number\", \"Space between range buckets (pixels)\");\nReactGantt.prototype.publish(\"fontFamily\", null, \"string\", \"Font family within range rectangle\", null, { optional: true });\nReactGantt.prototype.publish(\"fontSize\", 10, \"number\", \"Size of font within range rectangle (pixels)\");\nReactGantt.prototype.publish(\"rangeFontColor\", \"#ecf0f1\", \"html-color\", \"rangeFontColor\");\nReactGantt.prototype.publish(\"overlapTolerence\", 2, \"number\", \"overlapTolerence\");\nReactGantt.prototype.publish(\"smallestRangeWidth\", 10, \"number\", \"Width of the shortest range (pixels)\");\nReactGantt.prototype.publish(\"bucketHeight\", 100, \"number\", \"Max height of range element (pixels)\");\nReactGantt.prototype.publish(\"gutter\", 2, \"number\", \"Space between range buckets (pixels)\");\nReactGantt.prototype.publish(\"maxZoom\", 16, \"number\", \"Maximum zoom\");\nReactGantt.prototype.publish(\"evenSeriesBackground\", \"#FFFFFF\", \"html-color\", \"Background color of even series rows\");\nReactGantt.prototype.publish(\"oddSeriesBackground\", \"#DDDDDD\", \"html-color\", \"Background color of odd series rows\");\n","import { Axis } from \"@hpcc-js/chart\";\nimport { SVGWidget } from \"@hpcc-js/common\";\nimport { ReactGantt } from \"./ReactGantt\";\n\nexport type IAxisGanttData = [string, number | string, number | string, any?] | any[];\n\nexport class ReactAxisGantt extends SVGWidget {\n\n protected _topAxis: Axis = new Axis(\"center\")\n .orientation(\"top\")\n .type(\"linear\")\n .shrinkToFit(\"none\")\n .overlapMode(\"hide\")\n .extend(0)\n .tickFormat(\"d\")\n ;\n protected _gantt: ReactGantt = new ReactGantt(\"center\")\n .stroke(\"#000000\")\n ;\n protected _bottomAxis: Axis = new Axis(\"center\")\n .orientation(\"bottom\")\n .type(\"linear\")\n .shrinkToFit(\"none\")\n .overlapMode(\"hide\")\n .extend(0)\n .tickFormat(\"d\")\n ;\n\n protected _topAxisElement;\n protected _contentElement;\n protected _bottomAxisElement;\n protected _topRect;\n protected _contentRect;\n protected _bottomRect;\n\n protected rangeRenderer;\n\n constructor() {\n super();\n this._drawStartPos = \"origin\";\n this.rangeRenderer = function () {\n const ret = this._gantt.rangeRenderer.apply(this._gantt, arguments);\n if (!arguments.length) return ret;\n return this;\n };\n }\n\n selection(_: any[]): this;\n selection(): any[];\n selection(_?: any[]): any[] | this {\n if (!arguments.length) return this._gantt.selection();\n this._gantt.selection(_);\n return this;\n }\n\n resizeWrappers() {\n\n const w = this.width();\n const h = this.height();\n\n const axisHeight = this.axisHeight(); //TODO: Dynamic scaling to allow for small resolutions?\n\n const contentHeight = (h - (axisHeight * 2));\n const borderOffset1 = this.strokeWidth();\n this._topRect\n .attr(\"height\", axisHeight)\n .attr(\"width\", w)\n .attr(\"fill\", \"transparent\")\n ;\n this._topAxisElement.attr(\"transform\", \"translate(0 0)\");\n this._topAxis.resize({ height: axisHeight, width: w });\n this._contentRect\n .attr(\"height\", contentHeight)\n .attr(\"width\", w)\n .attr(\"fill\", \"transparent\")\n ;\n this._contentElement.attr(\"transform\", `translate(0 ${axisHeight + borderOffset1})`);\n this._gantt.resize({ height: contentHeight, width: w });\n this._bottomRect\n .attr(\"height\", axisHeight)\n .attr(\"width\", w)\n .attr(\"fill\", \"transparent\")\n ;\n this._bottomAxisElement.attr(\"transform\", `translate(0 ${axisHeight + contentHeight + borderOffset1})`);\n this._bottomAxis.resize({ height: axisHeight, width: w });\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n\n this._gantt.click = (row, col, sel) => {\n this.click(row, col, sel);\n };\n\n this._gantt.dblclick = (row, col, sel) => {\n this.dblclick(row, col, sel);\n };\n\n this._topAxisElement = element.append(\"g\")\n .attr(\"class\", \"top-axis-wrapper\")\n ;\n this._topRect = this._topAxisElement.append(\"rect\")\n .attr(\"class\", \"top-axis-rect\")\n ;\n this._contentElement = element.append(\"g\")\n .attr(\"class\", \"content-wrapper\")\n ;\n this._contentRect = this._contentElement.append(\"rect\")\n .attr(\"class\", \"content-rect\")\n ;\n this._bottomAxisElement = element.append(\"g\")\n .attr(\"class\", \"bottom-axis-wrapper\")\n ;\n this._bottomRect = this._bottomAxisElement.append(\"rect\")\n .attr(\"class\", \"top-axis-rect\")\n ;\n this._topAxis.target(this._topAxisElement.node());\n this._gantt.target(this._contentElement.node()).bucketHeight(30);\n this._bottomAxis.target(this._bottomAxisElement.node());\n\n this.resizeWrappers();\n\n this._gantt.zoomedHook = (transform) => {\n this.onzoom(transform);\n };\n }\n\n onzoom(transform) {\n\n const w = this.width();\n const low = this._gantt._minStart;\n const high = this._gantt._maxEnd;\n const range = high - low;\n const wpp = range / w;\n const nextLow = Math.floor(low - (wpp * (transform.x / transform.k)));\n const nextHigh = Math.ceil((range / transform.k) + nextLow);\n\n this._topAxis\n .fontFamily(this.axisFontFamily())\n .fontSize(this.axisFontSize())\n .tickLength(this.axisTickLength())\n .low(nextLow)\n .high(nextHigh)\n .render()\n ;\n this._bottomAxis\n .fontFamily(this.axisFontFamily())\n .fontSize(this.axisFontSize())\n .tickLength(this.axisTickLength())\n .low(nextLow)\n .high(nextHigh)\n .render()\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n this._topAxis.tickFormat(this.tickFormat()).render();\n this._bottomAxis.tickFormat(this.tickFormat()).render();\n this._gantt.render();\n }\n\n columns(): string[];\n columns(_: string[]): this;\n columns(_?: string[]): this | string[] {\n const retVal = super.columns.apply(this, arguments);\n if (arguments.length > 0) {\n this._gantt.columns(_);\n }\n return retVal;\n }\n\n data(): IAxisGanttData[];\n data(_: IAxisGanttData[]): this;\n data(_?: IAxisGanttData[]): this | IAxisGanttData[] {\n const retVal = super.data.apply(this, arguments);\n if (arguments.length > 0) {\n const ganttData: any[] = this.data().map(n => {\n const ret = [...n];\n ret[1] = isNaN(n[1] as any) ? new Date(n[1]).getTime() : Number(n[1]);\n ret[2] = isNaN(n[2] as any) ? new Date(n[2]).getTime() : Number(n[2]);\n return ret;\n });\n this._gantt._minStart = Math.min(...ganttData.map(n => n[1])) ?? 0;\n this._gantt._maxEnd = Math.max(...ganttData.map(n => n[2])) ?? 1;\n this._gantt.data(ganttData);\n }\n return retVal;\n }\n\n resize(_size?: { width: number, height: number }) {\n const retVal = super.resize.apply(this, arguments);\n\n if (this._topAxisElement) {\n this.resizeWrappers();\n }\n\n return retVal;\n }\n\n click(row, col, sel) {\n\n }\n\n dblclick(row, col, sel) {\n\n }\n\n tooltip() {\n return this._gantt._tooltip;\n }\n}\nReactAxisGantt.prototype._class += \" timeline_ReactAxisGantt\";\n\nexport interface ReactAxisGantt {\n tickFormat(): string;\n tickFormat(_: string): this;\n tickFormat_exists(): boolean;\n overlapTolerence(): number;\n overlapTolerence(_: number): this;\n smallestRangeWidth(): number;\n smallestRangeWidth(_: number): this;\n scaleMode(): boolean;\n scaleMode(_: boolean): this;\n fontSize(): number;\n fontSize(_: number): this;\n fontFamily(): string;\n fontFamily(_: string): this;\n strokeWidth(): number;\n strokeWidth(_: number): this;\n stroke(): string;\n stroke(_: string): this;\n cornerRadius(): number;\n cornerRadius(_: number): this;\n axisFontSize(): number;\n axisFontSize(_: number): this;\n axisFontFamily(): string;\n axisFontFamily(_: string): this;\n axisTickLength(): number;\n axisTickLength(_: number): this;\n axisHeight(): number;\n axisHeight(_: number): this;\n titleColumn(): string;\n titleColumn(_: string): this;\n startDateColumn(): string;\n startDateColumn(_: string): this;\n endDateColumn(): string;\n endDateColumn(_: string): this;\n iconColumn(): string;\n iconColumn(_: string): this;\n colorColumn(): string;\n colorColumn(_: string): this;\n bucketColumn(): string;\n bucketColumn(_: string): this;\n maxZoom(): number;\n maxZoom(_: number): this;\n}\nReactAxisGantt.prototype.publish(\"tickFormat\", null, \"string\", \"Format rule applied to axis tick labels\", undefined, { optional: true });\nReactAxisGantt.prototype.publish(\"axisHeight\", 22, \"number\", \"Height of axes (pixels)\");\nReactAxisGantt.prototype.publish(\"overlapTolerence\", 2, \"number\", \"overlapTolerence\");\nReactAxisGantt.prototype.publish(\"smallestRangeWidth\", 10, \"number\", \"Width of the shortest range (pixels)\");\nReactAxisGantt.prototype.publish(\"axisFontSize\", null, \"number\", \"Font size of axis tick labels\");\nReactAxisGantt.prototype.publish(\"axisFontFamily\", null, \"string\", \"Font family of axis tick labels\");\nReactAxisGantt.prototype.publish(\"axisTickLength\", null, \"number\", \"Length of axis ticks\");\nReactAxisGantt.prototype.publishProxy(\"gutter\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"renderMode\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"strokeWidth\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"fontSize\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"fontFamily\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"stroke\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"cornerRadius\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"titleColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"startDateColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"endDateColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"iconColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"colorColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"bucketColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"maxZoom\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"bucketHeight\", \"_gantt\");\n","import { min as d3Min, max as d3Max } from \"d3-array\";\nimport { Axis } from \"@hpcc-js/chart\";\nimport { Border2 } from \"@hpcc-js/layout\";\nimport { ReactGantt } from \"./ReactGantt\";\nimport { IAxisGanttData } from \"./ReactAxisGantt\";\nimport { React } from \"@hpcc-js/react\";\n\nexport class ReactAxisGanttSeries extends Border2 {\n\n protected _topAxis: Axis = new Axis(\"origin\")\n .orientation(\"top\")\n .type(\"linear\")\n .shrinkToFit(\"none\")\n .overlapMode(\"hide\")\n .extend(0)\n .tickFormat(\"d\")\n ;\n protected _gantt: ReactGantt = new ReactGantt(\"origin\")\n .stroke(\"#000000\")\n .fitHeightToContent(true)\n ;\n protected _bottomAxis: Axis = new Axis(\"origin\")\n .orientation(\"bottom\")\n .type(\"linear\")\n .shrinkToFit(\"none\")\n .overlapMode(\"hide\")\n .extend(0)\n .tickFormat(\"d\")\n ;\n\n protected _topAxisElement;\n protected _contentElement;\n protected _bottomAxisElement;\n protected _topRect;\n protected _contentRect;\n protected _bottomRect;\n\n constructor() {\n super();\n this.centerOverflowX_default(\"hidden\");\n this.centerOverflowY_default(\"auto\");\n }\n\n selection(_: any[]): this;\n selection(): any[];\n selection(_?: any[]): any[] | this {\n if (!arguments.length) return this._gantt.selection();\n this._gantt.selection(_);\n return this;\n }\n\n rangeRenderer(): React.FunctionComponent;\n rangeRenderer(_: React.FunctionComponent): this;\n rangeRenderer(_?: React.FunctionComponent): this | React.FunctionComponent {\n const ret = this._gantt.rangeRenderer.apply(this._gantt, arguments);\n if (!arguments.length) return ret;\n return this;\n }\n\n resizeWrappers() {\n\n const w = this.width();\n const h = this.height();\n\n const axisHeight = this.axisHeight(); //TODO: Dynamic scaling to allow for small resolutions?\n const contentHeight = (h - (axisHeight * 2));\n\n this.bottomHeight(axisHeight);\n\n this._topWA.resize({\n width: w,\n height: axisHeight\n });\n this._centerWA.resize({\n width: w,\n height: contentHeight\n });\n this._bottomWA.resize({\n width: w,\n height: axisHeight\n });\n this.top().render();\n this.bottom().render();\n this.center().render();\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n\n this._gantt.click = (row, col, sel) => {\n this.click(row, col, sel);\n };\n\n this._gantt.dblclick = (row, col, sel) => {\n this.dblclick(row, col, sel);\n };\n\n this.top(this._topAxis);\n this.center(this._gantt);\n this.bottom(this._bottomAxis);\n\n this.resizeWrappers();\n\n this._gantt.zoomedHook = (transform) => {\n this.onzoom(transform);\n };\n }\n\n onzoom(transform) {\n const w = this.width();\n const low = this._gantt._minStart;\n const high = this._gantt._maxEnd;\n const range = high - low;\n const wpp = range / w;\n const nextLow = Math.floor(low - (wpp * (transform.x / transform.k)));\n const nextHigh = Math.ceil((range / transform.k) + nextLow);\n\n this._topAxis\n .fontFamily(this.axisFontFamily())\n .fontSize(this.axisFontSize())\n .tickLength(this.axisTickLength())\n .low(nextLow)\n .high(nextHigh)\n .lazyRender()\n ;\n this._bottomAxis\n .fontFamily(this.axisFontFamily())\n .fontSize(this.axisFontSize())\n .tickLength(this.axisTickLength())\n .low(nextLow)\n .high(nextHigh)\n .lazyRender()\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n this._topAxis.tickFormat(this.tickFormat()).render();\n this._bottomAxis.tickFormat(this.tickFormat()).render();\n this._gantt.render();\n }\n\n columns(): string[];\n columns(_: string[]): this;\n columns(_?: string[]): this | string[] {\n const retVal = super.columns.apply(this, arguments);\n if (arguments.length > 0) {\n this._gantt.columns(_);\n }\n return retVal;\n }\n\n data(): IAxisGanttData[];\n data(_: IAxisGanttData[]): this;\n data(_?: IAxisGanttData[]): this | IAxisGanttData[] {\n const retVal = super.data.apply(this, arguments);\n if (arguments.length > 0) {\n const ganttData: any[] = this.data().map(n => {\n const ret = [...n];\n ret[1] = isNaN(n[1] as any) ? new Date(n[1]).getTime() : Number(n[1]);\n ret[2] = isNaN(n[2] as any) ? new Date(n[2]).getTime() : Number(n[2]);\n return ret;\n });\n\n this._gantt._minStart = d3Min(ganttData, n => n[1]);\n this._gantt._maxEnd = d3Max(ganttData, n => n[2]);\n this._gantt.data(ganttData);\n }\n return retVal;\n }\n\n resize(_size?: { width: number, height: number }) {\n const retVal = super.resize.apply(this, arguments);\n\n if (this._topAxisElement) {\n this.resizeWrappers();\n }\n\n return retVal;\n }\n\n click(row, col, sel) {\n\n }\n\n dblclick(row, col, sel) {\n\n }\n\n tooltip() {\n return this._gantt._tooltip;\n }\n}\nReactAxisGanttSeries.prototype._class += \" timeline_ReactAxisGanttSeries\";\n\nexport interface ReactAxisGanttSeries {\n tickFormat(): string;\n tickFormat(_: string): this;\n tickFormat_exists(): boolean;\n overlapTolerence(): number;\n overlapTolerence(_: number): this;\n smallestRangeWidth(): number;\n smallestRangeWidth(_: number): this;\n scaleMode(): boolean;\n scaleMode(_: boolean): this;\n fontSize(): number;\n fontSize(_: number): this;\n fontFamily(): string;\n fontFamily(_: string): this;\n strokeWidth(): number;\n strokeWidth(_: number): this;\n stroke(): string;\n stroke(_: string): this;\n cornerRadius(): number;\n cornerRadius(_: number): this;\n axisFontSize(): number;\n axisFontSize(_: number): this;\n axisFontFamily(): string;\n axisFontFamily(_: string): this;\n axisTickLength(): number;\n axisTickLength(_: number): this;\n axisHeight(): number;\n axisHeight(_: number): this;\n titleColumn(): string;\n titleColumn(_: string): this;\n startDateColumn(): string;\n startDateColumn(_: string): this;\n endDateColumn(): string;\n endDateColumn(_: string): this;\n iconColumn(): string;\n iconColumn(_: string): this;\n colorColumn(): string;\n colorColumn(_: string): this;\n seriesColumn(): string;\n seriesColumn(_: string): this;\n bucketColumn(): string;\n bucketColumn(_: string): this;\n maxZoom(): number;\n maxZoom(_: number): this;\n}\nReactAxisGanttSeries.prototype.publish(\"tickFormat\", null, \"string\", \"Format rule applied to axis tick labels\", undefined, { optional: true });\nReactAxisGanttSeries.prototype.publish(\"axisHeight\", 22, \"number\", \"Height of axes (pixels)\");\nReactAxisGanttSeries.prototype.publish(\"overlapTolerence\", 2, \"number\", \"overlapTolerence\");\nReactAxisGanttSeries.prototype.publish(\"smallestRangeWidth\", 10, \"number\", \"Width of the shortest range (pixels)\");\nReactAxisGanttSeries.prototype.publish(\"axisFontSize\", null, \"number\", \"Font size of axis tick labels\");\nReactAxisGanttSeries.prototype.publish(\"axisFontFamily\", null, \"string\", \"Font family of axis tick labels\");\nReactAxisGanttSeries.prototype.publish(\"axisTickLength\", null, \"number\", \"Length of axis ticks\");\nReactAxisGanttSeries.prototype.publishProxy(\"gutter\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"renderMode\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"strokeWidth\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"fontSize\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"fontFamily\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"stroke\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"cornerRadius\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"titleColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"startDateColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"endDateColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"iconColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"colorColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"seriesColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"bucketColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"maxZoom\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"evenSeriesBackground\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"oddSeriesBackground\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"bucketHeight\", \"_gantt\");\n","import { timeFormat as d3TimeFormat, timeParse as d3TimeParse } from \"d3-time-format\";\nimport { ReactAxisGantt } from \"./ReactAxisGantt\";\n\nexport class ReactTimeline extends ReactAxisGantt {\n\n protected _axisLabelFormatter;//TODO: add a type to this? d3 time formatting function type?\n\n constructor(){\n super();\n this._drawStartPos = \"origin\";\n this._topAxis.type(\"time\");\n this._bottomAxis.type(\"time\");\n\n this.tooltipHTML((d: any) => {\n const parser = d3TimeParse(\"%Q\");\n const startTime = parser(d[1]);\n const endTime = parser(d[2]);\n\n const formatter = d3TimeFormat(this.tooltipTimeFormat());\n return `<div style=\"text-align:center;\">${d[0]}<br/><br/>${formatter(startTime)} -> ${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)} -> ${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","d3ScaleBand","d3Extent","d3TimeParse","d3TimeFormat","d3ZoomIdentity","d3Zoom","d3Select","d3ScaleLinear","d3Min","d3Max"],"mappings":"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","x_google_ignoreList":[1,2]}
|
|
1
|
+
{"version":3,"file":"index.es6.js","sources":["../src/__package__.ts","../../../node_modules/tslib/tslib.es6.mjs","../../../node_modules/style-inject/dist/style-inject.es.js","../src/MiniGantt.ts","../src/ReactGantt.ts","../src/ReactAxisGantt.ts","../src/ReactAxisGanttSeries.ts","../src/ReactTimeline.ts","../src/ReactTimelineSeries.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/timeline\";\r\nexport const PKG_VERSION = \"2.57.0\";\r\nexport const BUILD_VERSION = \"2.108.6\";\r\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import { ITooltip } from \"@hpcc-js/api\";\r\nimport { Axis } from \"@hpcc-js/chart\";\r\nimport { d3Event, EntityPin, EntityRect, local as d3Local, select as d3Select, SVGWidget, Utility } from \"@hpcc-js/common\";\r\nimport { extent as d3Extent } from \"d3-array\";\r\nimport { scaleBand as d3ScaleBand } from \"d3-scale\";\r\nimport { timeFormat as d3TimeFormat, timeParse as d3TimeParse } from \"d3-time-format\";\r\nimport { zoom as d3Zoom, zoomIdentity as d3ZoomIdentity } from \"d3-zoom\";\r\n\r\nimport \"../src/MiniGantt.css\";\r\n\r\nexport class MiniGantt extends SVGWidget {\r\n protected tlAxis: Axis;\r\n protected brAxis: Axis;\r\n protected verticalBands;\r\n protected _zoom;\r\n protected gUpperContent;\r\n protected gUpperAxis;\r\n protected gMiddleContent;\r\n protected gLowerAxis;\r\n protected gLowerContent;\r\n private localRect = d3Local<EntityRect>();\r\n private localEntityPin = d3Local<EntityPin>();\r\n private tooltipFormatter: (date: Date) => string;\r\n private _dateCache;\r\n\r\n protected rootExtent;\r\n protected _title_idx = 0;\r\n protected _startDate_idx = 1;\r\n protected _endDate_idx = 2;\r\n protected _icon_idx = -1;\r\n protected _color_idx = -1;\r\n protected _yoffset_idx = -1;\r\n\r\n constructor() {\r\n super();\r\n ITooltip.call(this);\r\n Utility.SimpleSelectionMixin.call(this);\r\n\r\n this._drawStartPos = \"origin\";\r\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]))}`);\r\n\r\n this.tlAxis = new Axis()\r\n .type(\"time\")\r\n ;\r\n this.brAxis = new Axis()\r\n .type(\"time\")\r\n ;\r\n this.verticalBands = d3ScaleBand()\r\n .paddingOuter(0.2)\r\n .paddingInner(0.2)\r\n ;\r\n }\r\n\r\n isHorizontal(): boolean {\r\n return this.orientation() === \"horizontal\";\r\n }\r\n\r\n fullExtent() {\r\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])];\r\n return d3Extent(data);\r\n }\r\n\r\n extent() {\r\n const extent = this.rootExtent ? [this.rootExtent[1], this.rootExtent[2]] : this.fullExtent();\r\n if (extent[0] !== undefined && extent[1] !== undefined) {\r\n if (extent[0] === extent[1] || this.centerOnMostRecent()) {\r\n const parser = d3TimeParse(this.timePattern());\r\n const formatter = d3TimeFormat(this.timePattern());\r\n const date1 = parser(extent[0]);\r\n const date2 = parser(extent[1]);\r\n if (extent[0] === extent[1]) {\r\n extent[0] = formatter(new Date(date1.setFullYear(date1.getFullYear() - 1)));\r\n extent[1] = formatter(new Date(date1.setFullYear(date1.getFullYear() + 2)));\r\n } else {\r\n const time1 = date1.getTime();\r\n const timeDiff = date2.getTime() - time1;\r\n extent[0] = formatter(date1);\r\n extent[1] = formatter(new Date(time1 + (timeDiff * 2)));\r\n }\r\n }\r\n }\r\n return extent;\r\n }\r\n\r\n dataStartPos(d) {\r\n if(typeof this._dateCache[d[this._startDate_idx]] !== \"undefined\"){\r\n return this._dateCache[d[this._startDate_idx]];\r\n }\r\n const pos = this.brAxis.scalePos(d[this._startDate_idx]);\r\n this._dateCache[d[this._startDate_idx]] = pos;\r\n return pos;\r\n }\r\n\r\n dataEndPos(d) {\r\n if(typeof this._dateCache[d[this._endDate_idx]] !== \"undefined\"){\r\n return this._dateCache[d[this._endDate_idx]];\r\n }\r\n const pos = this.brAxis.scalePos(d[this._endDate_idx]);\r\n this._dateCache[d[this._endDate_idx]] = pos;\r\n return pos;\r\n }\r\n\r\n dataWidth(d) {\r\n return this.dataEndPos(d) - this.dataStartPos(d);\r\n }\r\n\r\n private transform;\r\n resetZoom() {\r\n // Triggers a \"zoomed\" event ---\r\n this._zoom.transform(this.element(), d3ZoomIdentity.translate(0, this.isHorizontal() ? 0 : this.height()));\r\n }\r\n\r\n zoomed() {\r\n this.transform = d3Event().transform;\r\n this.render();\r\n }\r\n\r\n private background;\r\n enter(domNode, element) {\r\n super.enter(domNode, element);\r\n this._zoom = d3Zoom()\r\n .scaleExtent([0, this.maxZoom()])\r\n .on(\"zoom\", () => {\r\n this.zoomed();\r\n })\r\n ;\r\n\r\n this.background = element.append(\"rect\")\r\n .attr(\"fill\", \"white\")\r\n .attr(\"opacity\", 0)\r\n .on(\"dblclick\", () => {\r\n d3Event().stopPropagation();\r\n delete this.rootExtent;\r\n this.resetZoom();\r\n })\r\n ;\r\n this.gUpperContent = element.append(\"g\").attr(\"class\", \"gUpperContent\");\r\n this.gUpperAxis = element.append(\"g\").attr(\"class\", \"gUpperAxis\");\r\n this.gMiddleContent = element.append(\"g\").attr(\"class\", \"gMiddleContent\");\r\n this.gLowerAxis = element.append(\"g\").attr(\"class\", \"gLowerAxis\");\r\n this.gLowerContent = element.append(\"g\").attr(\"class\", \"gLowerContent\");\r\n this.tlAxis\r\n .target(this.gUpperAxis.node())\r\n .tickFormat(this.tickFormat())\r\n .guideTarget(this.gUpperAxis.append(\"g\").node())\r\n .shrinkToFit(\"none\")\r\n .overlapMode(this.tickFormat_exists() ? \"stagger\" : \"none\")\r\n .extend(0.1)\r\n ;\r\n this.brAxis\r\n .target(this.gLowerAxis.node())\r\n .tickFormat(this.tickFormat())\r\n .guideTarget(this.gLowerAxis.append(\"g\").node())\r\n .shrinkToFit(\"none\")\r\n .overlapMode(this.tickFormat_exists() ? \"stagger\" : \"none\")\r\n .extend(0.1)\r\n ;\r\n\r\n element.call(this._zoom);\r\n this._selection.widgetElement(this.gMiddleContent);\r\n }\r\n\r\n private _prevIsHorizontal;\r\n update(domNode, element) {\r\n super.update(domNode, element);\r\n\r\n this._dateCache = {};\r\n\r\n this._title_idx = this.titleColumn() !== null ? this.columns().indexOf(this.titleColumn()) : this._title_idx;\r\n this._startDate_idx = this.startDateColumn() !== null ? this.columns().indexOf(this.startDateColumn()) : this._startDate_idx;\r\n this._endDate_idx = this.endDateColumn() !== null ? this.columns().indexOf(this.endDateColumn()) : this._endDate_idx;\r\n this._icon_idx = this.iconColumn() !== null ? this.columns().indexOf(this.iconColumn()) : this._icon_idx;\r\n this._color_idx = this.colorColumn() !== null ? this.columns().indexOf(this.colorColumn()) : this._color_idx;\r\n this._yoffset_idx = this.yOffsetColumn() !== null ? this.columns().indexOf(this.yOffsetColumn()) : this._yoffset_idx;\r\n\r\n if (this._prevIsHorizontal !== this.isHorizontal()) {\r\n this._prevIsHorizontal = this.isHorizontal();\r\n this.resetZoom();\r\n return;\r\n }\r\n\r\n this.tooltipFormatter = d3TimeFormat(this.tooltipTimeFormat());\r\n\r\n const width = this.width();\r\n const height = this.height();\r\n\r\n this.background\r\n .attr(\"x\", 0)\r\n .attr(\"y\", 0)\r\n .attr(\"width\", width)\r\n .attr(\"height\", height)\r\n ;\r\n\r\n const extent = this.extent();\r\n this.tlAxis\r\n .x(width / 2)\r\n .orientation(this.isHorizontal() ? \"top\" : \"left\")\r\n .reverse(!this.isHorizontal())\r\n .timePattern(this.timePattern()) // \"%Y-%m-%dT%H:%M:%S.%LZ\"\r\n .width(width - 1)\r\n .low(extent[0])\r\n .high(extent[1])\r\n .updateScale()\r\n ;\r\n\r\n this.brAxis\r\n .x(width / 2)\r\n .y(height / 2)\r\n .orientation(this.isHorizontal() ? \"bottom\" : \"right\")\r\n .reverse(!this.isHorizontal())\r\n .timePattern(this.timePattern()) // \"%Y-%m-%dT%H:%M:%S.%LZ\"\r\n .width(width - 1)\r\n .height(height)\r\n .low(extent[0])\r\n .high(extent[1])\r\n .updateScale()\r\n ;\r\n\r\n if (this.transform) {\r\n let low;\r\n let hi;\r\n if (this.isHorizontal()) {\r\n low = this.tlAxis.parseInvert(this.tlAxis.invert(this.transform.invertX(0)));\r\n hi = this.tlAxis.parseInvert(this.tlAxis.invert(this.transform.invertX(width - 1)));\r\n } else {\r\n low = this.tlAxis.parseInvert(this.tlAxis.invert(- this.transform.invertY(0)));\r\n hi = this.tlAxis.parseInvert(this.tlAxis.invert(- this.transform.invertY(height - 1)));\r\n }\r\n this.tlAxis\r\n .low(low)\r\n .high(hi)\r\n .updateScale()\r\n ;\r\n this.brAxis\r\n .low(low)\r\n .high(hi)\r\n .updateScale()\r\n ;\r\n }\r\n\r\n const data = this.data().sort(this.isHorizontal() ? (l, r) => {\r\n const retVal = this.brAxis.scalePos(l[1]) - this.brAxis.scalePos(r[1]);\r\n if (retVal === 0) {\r\n return (\"\" + l[0]).localeCompare(\"\" + r[0]);\r\n }\r\n return retVal;\r\n } : (l, r) => {\r\n return this.brAxis.scalePos(r[1]) - this.brAxis.scalePos(l[1]);\r\n });\r\n const events = data.filter(d => !d[this._endDate_idx]);\r\n const ranges = data.filter(d => !!d[this._endDate_idx]);\r\n\r\n this.tlAxis\r\n .render()\r\n ;\r\n this.brAxis\r\n .render()\r\n ;\r\n const brAxisBBox = this.brAxis.getBBox();\r\n\r\n let upperContentHeight = this.updateEntityPins(events);\r\n const lowerAxisHeight = brAxisBBox.height;\r\n let lowerHeight = height - upperContentHeight;\r\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;\r\n if (events.length > 0 && ranges.length === 0) {\r\n // ONLY EVENTS\r\n this.tlAxis.visible(false);\r\n let y_offset = upperContentHeight / 4;\r\n if (y_offset > (height / 2) - lowerAxisHeight) {\r\n y_offset = (height / 2) - lowerAxisHeight;\r\n }\r\n const upperContentYOffset = (height / 2) + y_offset;\r\n const lowerAxisYOffset = ((height / 2) - lowerAxisHeight - y_offset) * -1;\r\n const halfMinYOffset = minYOffset !== 0 ? minYOffset / 2 : 0;\r\n this.gUpperContent.attr(\"transform\", `translate(0, ${upperContentYOffset - halfMinYOffset})`);\r\n this.gLowerAxis.attr(\"transform\", `translate(0, ${lowerAxisYOffset - halfMinYOffset})`);\r\n } else if (events.length === 0 && ranges.length > 0) {\r\n // ONLY RANGES\r\n this.tlAxis.visible(true);\r\n this.gUpperContent.attr(\"transform\", `translate(0, ${upperContentHeight})`);\r\n this.gUpperAxis.attr(\"transform\", `translate(0, ${upperContentHeight})`);\r\n } else {\r\n upperContentHeight -= minYOffset;\r\n lowerHeight += minYOffset;\r\n // BOTH\r\n this.tlAxis.visible(true);\r\n this.gUpperContent.attr(\"transform\", `translate(0, ${upperContentHeight})`);\r\n this.gUpperAxis.attr(\"transform\", `translate(0, ${upperContentHeight})`);\r\n this.gMiddleContent.attr(\"transform\", `translate(0, ${upperContentHeight})`);\r\n }\r\n this.tlAxis\r\n .render()\r\n ;\r\n const tlAxisBBox = this.tlAxis.getBBox();\r\n interface BucketInfo {\r\n endPos: number;\r\n }\r\n const bucketData: BucketInfo[] = [];\r\n const bucketIndex = {};\r\n for (const range of ranges) {\r\n for (let i = 0; i < bucketData.length; ++i) {\r\n const bucket = bucketData[i];\r\n if (bucket.endPos + this.overlapTolerence() <= this.dataStartPos(range)) {\r\n bucketIndex[range] = i;\r\n bucket.endPos = this.dataEndPos(range);\r\n break;\r\n }\r\n }\r\n\r\n if (bucketIndex[range] === undefined) {\r\n bucketIndex[range] = bucketData.length;\r\n bucketData.push({\r\n endPos: this.dataEndPos(range)\r\n });\r\n }\r\n }\r\n\r\n const vbLower = this.isHorizontal() ? 0 + tlAxisBBox.height : 0 + tlAxisBBox.width;\r\n const vbHigher = this.isHorizontal() ? lowerHeight - brAxisBBox.height : width - brAxisBBox.width;\r\n this.verticalBands\r\n .range([vbLower, vbHigher])\r\n .domain(bucketData.map((_d, i) => i))\r\n ;\r\n\r\n if (ranges.length > 0) {\r\n this.updateEventRanges(events, ranges, bucketIndex, lowerHeight, tlAxisBBox, brAxisBBox, width);\r\n }\r\n }\r\n\r\n updateEntityPins(events) {\r\n let event_height = 0;\r\n const context = this;\r\n const entityPins = this.gUpperContent.selectAll(\".entity_pin\").data(events, d => d[0] + \":\" + d[1]);\r\n const eventFontColor_idx = this.eventFontColorColumn() ? this.columns().indexOf(this.eventFontColorColumn()) : -1;\r\n const eventBorderColor_idx = this.eventBorderColorColumn() ? this.columns().indexOf(this.eventBorderColorColumn()) : -1;\r\n const eventBackgroundColor_idx = this.eventBackgroundColorColumn() ? this.columns().indexOf(this.eventBackgroundColorColumn()) : -1;\r\n const title_counts = {};\r\n for (const d of events) {\r\n const type = typeof d[context._title_idx] !== \"undefined\" ? d[context._title_idx] : d[0];\r\n title_counts[type] = title_counts[type] ? title_counts[type] + 1 : 1;\r\n }\r\n const title_types = Object.keys(title_counts);\r\n const title_group_offset = context.eventGroupOffset();\r\n const entityPinsEnter = entityPins.enter().append(\"g\")\r\n .attr(\"class\", \"entity_pin\");\r\n entityPinsEnter.append(\"line\")\r\n .attr(\"class\", \"entity_line\");\r\n\r\n entityPinsEnter\r\n .on(\"mouseover\", function (d) {\r\n d3Select(this).raise();\r\n })\r\n .each(function (d, i) {\r\n const entityPin = new EntityPin()\r\n .target(this)\r\n .icon(\"\")\r\n .iconOnlyShowOnHover(context.hideIconWhenCollapsed())\r\n .titleOnlyShowOnHover(context.hideTitleWhenCollapsed())\r\n .descriptionOnlyShowOnHover(context.hideDescriptionWhenCollapsed())\r\n .annotationOnlyShowOnHover(context.hideAnnotationsWhenCollapsed())\r\n .iconDiameter(18)\r\n .iconPaddingPercent(1)\r\n .titleFontSize(14)\r\n .descriptionColor(\"#333\")\r\n .descriptionFontSize(15)\r\n .iconColor(eventFontColor_idx === -1 ? \"#333\" : d[eventFontColor_idx])\r\n .titleColor(eventFontColor_idx === -1 ? \"#333\" : d[eventFontColor_idx])\r\n .descriptionColor(eventFontColor_idx === -1 ? \"#333\" : d[eventFontColor_idx])\r\n .backgroundShape(\"pin\")\r\n .backgroundColorFill(eventFontColor_idx === -1 ? \"#f8f8f8\" : d[eventBackgroundColor_idx])\r\n .backgroundColorStroke(eventFontColor_idx === -1 ? \"#ccc\" : d[eventBorderColor_idx])\r\n .cornerRadius(5)\r\n .arrowHeight(10)\r\n .arrowWidth(16)\r\n ;\r\n context.localEntityPin.set(this, entityPin);\r\n })\r\n .merge(entityPins)\r\n .each(function (d, i) {\r\n const entityPin = context.localEntityPin.get(this);\r\n const _title = typeof d[context._title_idx] !== \"undefined\" ? d[context._title_idx] : entityPin.title();\r\n const x_offset = context.dataStartPos(d) - 0;\r\n let y_offset = ((title_types.indexOf(_title) % context.eventGroupMod()) * title_group_offset) - 5;\r\n if (typeof d[context._yoffset_idx] !== \"undefined\") y_offset += d[context._yoffset_idx] ? d[context._yoffset_idx] : 0;\r\n if (d[context._title_idx] !== entityPin.title() && d[context._startDate_idx] !== entityPin.description()) {\r\n const parsed_start_time = context.brAxis.parse(d[context._startDate_idx]);\r\n const formatted_start_time = context.tooltipFormatter(parsed_start_time);\r\n entityPin\r\n .x(x_offset)\r\n .y(y_offset)\r\n .iconOnlyShowOnHover(context.hideIconWhenCollapsed())\r\n .titleOnlyShowOnHover(context.hideTitleWhenCollapsed())\r\n .descriptionOnlyShowOnHover(context.hideDescriptionWhenCollapsed())\r\n .annotationOnlyShowOnHover(context.hideAnnotationsWhenCollapsed())\r\n .icon(typeof d[context._icon_idx] !== \"undefined\" ? d[context._icon_idx] : entityPin.icon())\r\n .title(_title)\r\n .description(formatted_start_time)\r\n .animationFrameRender()\r\n ;\r\n } else {\r\n entityPin.move({ x: x_offset, y: y_offset });\r\n }\r\n const calc_height = entityPin.calcHeight();\r\n if (event_height < calc_height) event_height = calc_height;\r\n\r\n d3Select(this).selectAll(\".entity_line\")\r\n .attr(\"x1\", x_offset)\r\n .attr(\"x2\", x_offset)\r\n .attr(\"y1\", 0)\r\n .attr(\"y2\", y_offset)\r\n .style(\"stroke\", eventFontColor_idx === -1 ? \"#ccc\" : d[eventBorderColor_idx])\r\n .style(\"stroke-width\", 1)\r\n ;\r\n })\r\n ;\r\n entityPins.exit()\r\n .each(function (d, i) {\r\n const entityPin = context.localEntityPin.get(this);\r\n entityPin.target(null);\r\n\r\n })\r\n .remove();\r\n const event_offset = Math.abs(Math.min(events.length, context.eventGroupMod()) * context.eventGroupOffset());\r\n return event_height + event_offset;\r\n }\r\n\r\n updateEventRanges(events, ranges, bucketIndex, eventRangeHeight, tlAxisBBox, brAxisBBox, width) {\r\n const context = this;\r\n\r\n const lines = this.gMiddleContent.selectAll(\".line\").data(events, d => {\r\n return d[context._title_idx];\r\n });\r\n lines.enter().append(\"line\")\r\n .attr(\"class\", \"line\")\r\n .merge(lines)\r\n .attr(this.isHorizontal() ? \"x1\" : \"y1\", d => this.dataStartPos(d) - 0)\r\n .attr(this.isHorizontal() ? \"x2\" : \"y2\", d => this.dataStartPos(d) - 0)\r\n .attr(this.isHorizontal() ? \"y1\" : \"x1\", this.isHorizontal() ? tlAxisBBox.height : tlAxisBBox.width)\r\n .attr(this.isHorizontal() ? \"y2\" : \"x2\", this.isHorizontal() ? eventRangeHeight - brAxisBBox.height : width - brAxisBBox.width)\r\n ;\r\n lines.exit().remove();\r\n const buckets = this.gMiddleContent.selectAll(\".buckets\").data(ranges, d => d[context._title_idx]);\r\n buckets.enter().append(\"g\")\r\n .attr(\"class\", \"buckets\")\r\n .call(this._selection.enter.bind(this._selection))\r\n .each(function (d) {\r\n const entityRect = new EntityRect()\r\n .target(this)\r\n .iconDiameter(28)\r\n .iconPaddingPercent(0)\r\n .titleFontSize(28)\r\n .titleColor(context.rangeFontColor())\r\n .descriptionColor(context.rangeFontColor())\r\n .iconColor(context.rangeFontColor())\r\n .backgroundShape(\"rect\")\r\n .backgroundColorFill(d[context._color_idx])\r\n ;\r\n context.localRect.set(this, entityRect);\r\n context.enterEntityRect(entityRect, d);\r\n })\r\n .on(\"click\", function (d) {\r\n context.click(context.rowToObj(d), \"range\", context._selection.selected(this));\r\n }, false)\r\n .on(\"dblclick\", function (d) {\r\n context.rootExtent = d;\r\n context.resetZoom();\r\n context.dblclick(context.rowToObj(d), \"range\", context._selection.selected(this));\r\n }, true)\r\n .on(\"mouseout.tooltip\", this.tooltip.hide)\r\n .on(\"mousemove.tooltip\", this.tooltip.show)\r\n .merge(buckets)\r\n .attr(\"transform\", d => context.isHorizontal() ?\r\n `translate(${this.dataStartPos(d)}, ${this.verticalBands(bucketIndex[d])}) ` :\r\n `translate(${this.verticalBands(bucketIndex[d])}, ${this.dataStartPos(d)}) `)\r\n .each(function (d) {\r\n const textBox = context.localRect.get(this);\r\n const x = context.dataWidth(d) / 2;\r\n const y = context.verticalBands.bandwidth() / 2;\r\n const rectWidth = Math.max(context.dataWidth(d), 2);\r\n const rectHeight = Math.max(context.verticalBands.bandwidth(), 2);\r\n const fontHeightRatio = 0.618;\r\n const paddingRatio = ((1 - fontHeightRatio) / 2);\r\n const paddingSize = paddingRatio * rectHeight;\r\n const fontSize = rectHeight * fontHeightRatio;\r\n const iconSize = fontSize;\r\n textBox\r\n .pos(context.isHorizontal() ? { x, y } : { x: y, y: x })\r\n .fixedHeight(context.isHorizontal() ? rectHeight : rectWidth)\r\n .fixedWidth(context.isHorizontal() ? rectWidth : rectHeight)\r\n .icon(typeof d[context._icon_idx] !== \"undefined\" ? d[context._icon_idx] : \"\")\r\n .title(typeof d[context._title_idx] !== \"undefined\" ? d[context._title_idx] : \"\")\r\n .padding(paddingSize)\r\n .iconDiameter(iconSize)\r\n .titleFontSize(fontSize)\r\n ;\r\n if (iconSize * 1.5 > rectWidth) {\r\n textBox.icon(null);\r\n }\r\n context.updateEntityRect(textBox, d[context._icon_idx]);\r\n textBox\r\n .render()\r\n ;\r\n });\r\n buckets.exit().remove();\r\n }\r\n\r\n exit(domNode, element) {\r\n this.brAxis.target(null);\r\n this.tlAxis.target(null);\r\n super.exit(domNode, element);\r\n }\r\n\r\n // Events ---\r\n click(row, col, sel) {\r\n }\r\n\r\n dblclick(row, col, sel) {\r\n }\r\n\r\n enterEntityRect(textbox: EntityRect, d) {\r\n }\r\n\r\n updateEntityRect(textbox: EntityRect, d) {\r\n }\r\n\r\n // ITooltip ---\r\n tooltip;\r\n tooltipHTML: (_) => string;\r\n tooltipFormat: (_) => string;\r\n\r\n // SimpleSelectionMixin\r\n _selection;\r\n}\r\nMiniGantt.prototype._class += \" timeline_MiniGantt\";\r\nMiniGantt.prototype.implements(ITooltip.prototype);\r\nMiniGantt.prototype.mixin(Utility.SimpleSelectionMixin);\r\n\r\nexport interface MiniGantt {\r\n timePattern(): string;\r\n timePattern(_: string): this;\r\n tickFormat(): string;\r\n tickFormat(_: string): this;\r\n tickFormat_exists(): boolean;\r\n tooltipTimeFormat(): string;\r\n tooltipTimeFormat(_: string): this;\r\n overlapTolerence(): number;\r\n overlapTolerence(_: number): this;\r\n orientation(): string;\r\n orientation(_: string): this;\r\n rangeFontColor(): string;\r\n rangeFontColor(_: string): this;\r\n titleColumn(): string;\r\n titleColumn(_: string): this;\r\n startDateColumn(): string;\r\n startDateColumn(_: string): this;\r\n endDateColumn(): string;\r\n endDateColumn(_: string): this;\r\n iconColumn(): string;\r\n iconColumn(_: string): this;\r\n colorColumn(): string;\r\n colorColumn(_: string): this;\r\n yOffsetColumn(): string;\r\n yOffsetColumn(_: string): this;\r\n maxZoom(): number;\r\n maxZoom(_: number): this;\r\n eventGroupMod(): number;\r\n eventGroupMod(_: number): this;\r\n eventGroupOffset(): number;\r\n eventGroupOffset(_: number): this;\r\n eventFontColorColumn(): string;\r\n eventFontColorColumn(_: string): this;\r\n eventBorderColorColumn(): string;\r\n eventBorderColorColumn(_: string): this;\r\n eventBackgroundColorColumn(): string;\r\n eventBackgroundColorColumn(_: string): this;\r\n hideIconWhenCollapsed(): boolean;\r\n hideIconWhenCollapsed(_: boolean): this;\r\n hideTitleWhenCollapsed(): boolean;\r\n hideTitleWhenCollapsed(_: boolean): this;\r\n hideDescriptionWhenCollapsed(): boolean;\r\n hideDescriptionWhenCollapsed(_: boolean): this;\r\n hideAnnotationsWhenCollapsed(): boolean;\r\n hideAnnotationsWhenCollapsed(_: boolean): this;\r\n centerOnMostRecent(): boolean;\r\n centerOnMostRecent(_: boolean): this;\r\n\r\n}\r\n\r\nMiniGantt.prototype.publish(\"timePattern\", \"%Y-%m-%d\", \"string\", \"timePattern\");\r\nMiniGantt.prototype.publish(\"tickFormat\", null, \"string\", \"tickFormat\", undefined, { optional: true });\r\nMiniGantt.prototype.publish(\"tooltipTimeFormat\", \"%Y-%m-%d\", \"string\", \"tooltipTimeFormat\");\r\nMiniGantt.prototype.publish(\"overlapTolerence\", 2, \"number\", \"overlapTolerence\");\r\nMiniGantt.prototype.publish(\"orientation\", \"horizontal\", \"set\", \"orientation\", [\"horizontal\", \"vertical\"]);\r\nMiniGantt.prototype.publish(\"rangeFontColor\", \"#ecf0f1\", \"html-color\", \"rangeFontColor\");\r\nMiniGantt.prototype.publish(\"titleColumn\", null, \"string\", \"titleColumn\");\r\nMiniGantt.prototype.publish(\"startDateColumn\", null, \"string\", \"startDateColumn\");\r\nMiniGantt.prototype.publish(\"endDateColumn\", null, \"string\", \"endDateColumn\");\r\nMiniGantt.prototype.publish(\"iconColumn\", null, \"string\", \"iconColumn\");\r\nMiniGantt.prototype.publish(\"colorColumn\", null, \"string\", \"colorColumn\");\r\nMiniGantt.prototype.publish(\"yOffsetColumn\", null, \"string\", \"yOffsetColumn\");\r\nMiniGantt.prototype.publish(\"maxZoom\", 16, \"number\", \"maxZoom\");\r\nMiniGantt.prototype.publish(\"eventGroupOffset\", -50, \"number\", \"eventGroupOffset\");\r\nMiniGantt.prototype.publish(\"eventGroupMod\", 5, \"number\", \"eventGroupMod\");\r\nMiniGantt.prototype.publish(\"eventFontColorColumn\", null, \"string\", \"eventFontColorColumn\");\r\nMiniGantt.prototype.publish(\"eventBorderColorColumn\", null, \"string\", \"eventBorderColorColumn\");\r\nMiniGantt.prototype.publish(\"eventBackgroundColorColumn\", null, \"string\", \"eventBackgroundColorColumn\");\r\nMiniGantt.prototype.publish(\"hideIconWhenCollapsed\", false, \"boolean\", \"hideIconWhenCollapsed\");\r\nMiniGantt.prototype.publish(\"hideTitleWhenCollapsed\", false, \"boolean\", \"hideTitleWhenCollapsed\");\r\nMiniGantt.prototype.publish(\"hideDescriptionWhenCollapsed\", false, \"boolean\", \"hideDescriptionWhenCollapsed\");\r\nMiniGantt.prototype.publish(\"hideAnnotationsWhenCollapsed\", true, \"boolean\", \"hideAnnotationsWhenCollapsed\");\r\nMiniGantt.prototype.publish(\"centerOnMostRecent\", false, \"boolean\", \"If true, the timeline will be centered on the most recent data point\");\r\n","import { d3Event, select as d3Select, SVGZoomWidget, Utility } from \"@hpcc-js/common\";\r\nimport { HTMLTooltip } from \"@hpcc-js/html\";\r\nimport { scaleLinear as d3ScaleLinear } from \"d3-scale\";\r\nimport { React, render, LabelledRect } from \"@hpcc-js/react\";\r\n\r\nexport type IGanttData = [string, number, number, any?];\r\n\r\nexport interface IRangeOptions {\r\n rangePadding: number;\r\n fontFamily: string;\r\n fontSize: number;\r\n strokeWidth?: number;\r\n fill: string;\r\n stroke: string;\r\n textFill: string;\r\n cornerRadius: number;\r\n}\r\n\r\nexport class ReactGantt extends SVGZoomWidget {\r\n\r\n protected _selection = new Utility.Selection(this);\r\n\r\n protected _buckets;\r\n protected _interpolateX;\r\n protected _interpolateY;\r\n\r\n protected _bucketsBySeries;\r\n protected _dataBySeries;\r\n protected _origIdxMap;\r\n private _seriesBackgrounds;\r\n\r\n protected _maxFontSize;\r\n\r\n public _tooltip;\r\n\r\n public _minStart: number;\r\n public _maxEnd: number;\r\n\r\n protected _title_idx = 0;\r\n protected _startDate_idx = 1;\r\n protected _endDate_idx = 2;\r\n protected _icon_idx = -1;\r\n protected _color_idx = -1;\r\n protected _series_idx = -1;\r\n protected _bucket_idx = -1;\r\n protected _yoffset_idx = -1;\r\n\r\n protected _maxX: number;\r\n protected _maxY: number;\r\n\r\n private _rangeOptions: IRangeOptions = {\r\n rangePadding: 2,\r\n fontFamily: \"Verdana\",\r\n fontSize: 12,\r\n fill: \"white\",\r\n stroke: \"black\",\r\n textFill: \"black\",\r\n cornerRadius: 3,\r\n strokeWidth: 0\r\n };\r\n\r\n constructor(drawStartPosition: \"origin\" | \"center\" = \"origin\") {\r\n super();\r\n this._drawStartPos = drawStartPosition;\r\n\r\n this.showToolbar_default(false);\r\n\r\n this._tooltip = new HTMLTooltip();\r\n this._tooltip\r\n .tooltipHTML(d => {\r\n return `<div style=\"text-align:center;\">${d[0]}<br/><br/>${d[1]} -> ${d[2]}</div>`;\r\n });\r\n this._tooltip\r\n .followCursor(true)\r\n ;\r\n }\r\n\r\n selection(_: any[]): this;\r\n selection(): any[];\r\n selection(_?: any[]): any[] | this {\r\n if (!arguments.length) return this._selection.get();\r\n this._selection.set(_);\r\n return this;\r\n }\r\n\r\n private _rangeRenderer: React.FunctionComponent = LabelledRect;\r\n rangeRenderer(): React.FunctionComponent;\r\n rangeRenderer(_: React.FunctionComponent): this;\r\n rangeRenderer(_?: React.FunctionComponent): this | React.FunctionComponent {\r\n if (!arguments.length) return this._rangeRenderer;\r\n this._rangeRenderer = _;\r\n return this._rangeRenderer;\r\n }\r\n\r\n enter(domNode, element) {\r\n super.enter(domNode, element);\r\n\r\n const context = this;\r\n element\r\n .on(\"click\", function (this: SVGElement, d) {\r\n context._selection.clear();\r\n });\r\n\r\n this._tooltip.target(domNode);\r\n }\r\n update(domNode, element) {\r\n super.update(domNode, element);\r\n\r\n this.zoomExtent([0.05, this.maxZoom()]);\r\n\r\n this._title_idx = this.titleColumn() !== null ? this.columns().indexOf(this.titleColumn()) : this._title_idx;\r\n this._startDate_idx = this.startDateColumn() !== null ? this.columns().indexOf(this.startDateColumn()) : this._startDate_idx;\r\n this._endDate_idx = this.endDateColumn() !== null ? this.columns().indexOf(this.endDateColumn()) : this._endDate_idx;\r\n this._icon_idx = this.iconColumn() !== null ? this.columns().indexOf(this.iconColumn()) : this._icon_idx;\r\n this._color_idx = this.colorColumn() !== null ? this.columns().indexOf(this.colorColumn()) : this._color_idx;\r\n this._series_idx = this.seriesColumn() !== null ? this.columns().indexOf(this.seriesColumn()) : this._series_idx;\r\n this._bucket_idx = this.bucketColumn() !== null ? this.columns().indexOf(this.bucketColumn()) : -1;\r\n\r\n const context = this;\r\n const w = this.width();\r\n\r\n const x0 = 0;\r\n const x1 = w;\r\n\r\n this._interpolateX = d3ScaleLinear()\r\n .domain([this._minStart, this._maxEnd])\r\n .range([x0, x1])\r\n ;\r\n\r\n this.data().sort((a, b) => a[1] - b[1]);\r\n\r\n if (this._series_idx > -1) {\r\n this._origIdxMap = {};\r\n this._dataBySeries = {};\r\n this._bucketsBySeries = {};\r\n this.data().forEach((dataRow, origIdx) => {\r\n const seriesKey = dataRow[this._series_idx];\r\n if (!this._dataBySeries[seriesKey]) {\r\n this._origIdxMap[seriesKey] = {};\r\n this._dataBySeries[seriesKey] = [];\r\n }\r\n this._dataBySeries[seriesKey].push({\r\n dataRow,\r\n origIdx\r\n });\r\n });\r\n const gutter = this.gutter();\r\n let bucketOffset = 0;\r\n const seriesKeys = Object.keys(this._dataBySeries);\r\n seriesKeys.forEach(seriesKey => {\r\n this._dataBySeries[seriesKey].sort((a, b) => a.dataRow[1] - b.dataRow[1]);\r\n this._bucketsBySeries[seriesKey] = this.calcBuckets(this._dataBySeries[seriesKey].map(n => n.dataRow), 1, 2);\r\n this._bucketsBySeries[seriesKey].bucketHeight = this.bucketHeight();\r\n this._bucketsBySeries[seriesKey].bucketOffset = bucketOffset;\r\n bucketOffset += (this._bucketsBySeries[seriesKey].bucketHeight + this.strokeWidth() + this.gutter()) * (this._bucketsBySeries[seriesKey].maxBucket + 1);\r\n this._dataBySeries[seriesKey].forEach((n, i) => {\r\n this._origIdxMap[seriesKey][n.origIdx] = i;\r\n });\r\n });\r\n this._seriesBackgrounds = this._renderElement.selectAll(\".series-background\")\r\n .data(seriesKeys.map(key => {\r\n return this._bucketsBySeries[key];\r\n }))\r\n ;\r\n this._seriesBackgrounds\r\n .join(\r\n enter => enter.append(\"rect\")\r\n .attr(\"class\", \"series-background\"),\r\n update => update,\r\n exit => exit\r\n .each(function (d) {\r\n delete d.element;\r\n })\r\n .remove()\r\n )\r\n .attr(\"opacity\", d => d.props && d.props.hidden ? 0 : 1)\r\n .each(function (this: SVGGElement, d, i) {\r\n d3Select(this)\r\n .attr(\"x\", 0)\r\n .attr(\"y\", d.bucketOffset - (gutter / 2))\r\n .attr(\"width\", w)\r\n .attr(\"height\", ((d.bucketHeight + gutter) * (d.maxBucket + 1)) + gutter)\r\n .attr(\"fill\", i % 2 ? context.oddSeriesBackground() : context.evenSeriesBackground())\r\n ;\r\n });\r\n } else {\r\n if (this._bucket_idx !== -1) {\r\n this._buckets = this.calcBuckets(this.data(), this._startDate_idx, this._endDate_idx, this._bucket_idx);\r\n } else {\r\n this._buckets = this.calcBuckets(this.data(), this._startDate_idx, this._endDate_idx);\r\n }\r\n }\r\n const interpedStart = this._interpolateX(this._minStart);\r\n\r\n this.zoomTo(\r\n [interpedStart, 0],\r\n 1\r\n );\r\n\r\n const bucketHeight = this.bucketHeight();\r\n\r\n this.setRangeOptions();\r\n\r\n this._maxFontScale = (bucketHeight - (this.rangePadding() * 2));\r\n this.measureDataText();\r\n\r\n const itemSelection = this._renderElement.selectAll(\".item\")\r\n .data(this.data())\r\n ;\r\n const borderOffset1 = this.strokeWidth();\r\n const borderOffset2 = borderOffset1 * 2;\r\n itemSelection\r\n .join(\r\n enter => enter.append(\"g\")\r\n .attr(\"class\", \"item\")\r\n .on(\"click.selectionBag\", function (d, i) {\r\n const _id = d.id === undefined ? i : d.id;\r\n if (context._selection.isSelected({ _id, element: d.element })) {\r\n context._selection.clear();\r\n } else {\r\n context._selection.click(\r\n {\r\n _id,\r\n element: () => d.element\r\n },\r\n d3Event\r\n );\r\n }\r\n context.selectionChanged();\r\n d3Event().stopPropagation();\r\n })\r\n .on(\"click\", function (this: SVGElement, d) {\r\n const selected = d.element.classed(\"selected\");\r\n if (d[context.columns().length]) {\r\n d.__lparam = d[context.columns().length];\r\n }\r\n context.click(d, \"\", selected);\r\n })\r\n .on(\"dblclick\", function (this: SVGElement, d) {\r\n const selected = d.element.classed(\"selected\");\r\n if (d[context.columns().length]) {\r\n d.__lparam = d[context.columns().length];\r\n }\r\n context.click(d, \"\", selected);\r\n })\r\n .on(\"mousein\", function (d) {\r\n context.highlightItem(d3Select(this), d);\r\n const selected = d.element.classed(\"selected\");\r\n context.mousein(d, \"\", selected);\r\n })\r\n .on(\"mouseover\", function (d) {\r\n const d3evt = d3Event();\r\n context._tooltip._triggerElement = d.element;\r\n context._tooltip._cursorLoc = [\r\n d3evt.clientX,\r\n d3evt.clientY\r\n ];\r\n context._tooltip\r\n .data(d)\r\n .visible(true)\r\n .fitContent(true)\r\n .render()\r\n ;\r\n context.highlightItem(d3Select(this), d);\r\n const selected = d.element.classed(\"selected\");\r\n context.mouseover(d, \"\", selected);\r\n })\r\n .on(\"mouseout\", function (d) {\r\n context._tooltip\r\n .visible(false)\r\n .render()\r\n ;\r\n context.highlightItem(null, null);\r\n const selected = d.element.classed(\"selected\");\r\n context.mouseout(d, \"\", selected);\r\n })\r\n .each(function (d, i) {\r\n d.that = this;\r\n d.element = d3Select(this);\r\n d.x = context._interpolateX(d[1]);\r\n const endX = context._interpolateX(d[2]);\r\n if (context._series_idx > -1) {\r\n const seriesKey = d[context._series_idx];\r\n const bucket = context._bucketsBySeries[seriesKey].bucketMap[context._origIdxMap[seriesKey][i]];\r\n d.y = context._bucketsBySeries[seriesKey].interpolateY(bucket) + context._bucketsBySeries[seriesKey].bucketOffset;\r\n } else {\r\n const _i = context._bucket_idx === -1 ? i : d[context._bucket_idx];\r\n d.y = context._buckets.interpolateY(context._buckets.bucketMap[_i]);\r\n }\r\n d.props = {\r\n ...d[3],\r\n text: d[0]\r\n };\r\n d.props.width = endX - d.x;\r\n d.props.height = bucketHeight;\r\n d.x += borderOffset1;\r\n d.y += borderOffset1;\r\n d.props.width -= borderOffset2;\r\n d.props.height -= borderOffset2;\r\n d.element.attr(\"transform\", `translate(${d.x + (d.props.width / 2)} ${d.y + (d.props.height / 2)})`);\r\n }),\r\n update => update,\r\n exit => exit\r\n .each(function (d) {\r\n delete d.element;\r\n })\r\n .remove()\r\n )\r\n .attr(\"opacity\", d => d.props && d.props.hidden ? 0 : 1)\r\n .each(function (this: SVGGElement, d, i) {\r\n d.that = this;\r\n if (context._series_idx > -1) {\r\n const seriesKey = d[context._series_idx];\r\n d.x = context.renderRangeElement(d, i, false, context._rangeOptions, seriesKey);\r\n } else {\r\n d.x = context.renderRangeElement(d, i, false, context._rangeOptions);\r\n }\r\n })\r\n .on(\"dblclick.zoom\", d => {\r\n const x1 = this._interpolateX(d[1]);\r\n const x2 = this._interpolateX(d[2]);\r\n const xRange = x2 - x1;\r\n const xScale = w / xRange;\r\n this.zoomTo(\r\n [\r\n -x1 * xScale,\r\n 0\r\n ],\r\n xScale\r\n );\r\n })\r\n ;\r\n element.on(\"dblclick.zoom\", null);\r\n }\r\n renderRangeElement(d, i, transformEach = false, options: any = {}, seriesKey?: string) {\r\n const borderOffset1 = options.strokeWidth;\r\n const borderOffset2 = borderOffset1 * 2;\r\n const padding = options.rangePadding;\r\n let endX;\r\n const x = isNaN(this._transform.x) ? 0 : this._transform.x;\r\n const k = isNaN(this._transform.k) ? 1 : this._transform.k;\r\n let b;\r\n const bucketHeight = this.bucketHeight();\r\n d.that.setAttribute(\"data-series\", seriesKey);\r\n\r\n if (this._color_idx > -1) {\r\n d.that.setAttribute(\"data-color\", d[this._color_idx]);\r\n }\r\n\r\n if (seriesKey !== undefined) {\r\n b = this._bucketsBySeries[seriesKey].bucketMap[this._origIdxMap[seriesKey][i]];\r\n d.that.setAttribute(\"data-b\", b);\r\n d.that.setAttribute(\"data-bucketOffset\", this._bucketsBySeries[seriesKey].bucketOffset);\r\n d.y = this._bucketsBySeries[seriesKey].interpolateY(b) + this._bucketsBySeries[seriesKey].bucketOffset;\r\n d.that.setAttribute(\"data-dy\", d.y);\r\n } else {\r\n b = this._buckets.bucketMap[i];\r\n d.y = this._buckets.interpolateY(b);\r\n }\r\n if (this._color_idx > -1) {\r\n options.fill = d[this._color_idx];\r\n }\r\n if (!transformEach) {\r\n d.x = this._interpolateX(d[1]);\r\n endX = this._interpolateX(d[2]);\r\n d.props = {\r\n ...d[3],\r\n text: d[0]\r\n };\r\n d.props.width = (endX - d.x) / k;\r\n } else {\r\n d.x = this._interpolateX(d[1]) * k;\r\n endX = this._interpolateX(d[2]) * k;\r\n d.props = {\r\n ...d[3],\r\n text: d[0]\r\n };\r\n d.props.width = (endX - d.x) / k;\r\n d.x += x;\r\n d.props.width *= k;\r\n }\r\n d.props.height = bucketHeight;\r\n if (seriesKey === undefined && this._buckets.bucketScale < 1) {\r\n d.props.height = this._buckets.bucketScale * bucketHeight;\r\n }\r\n if (d.element === undefined && d.that) {\r\n d.element = d3Select(d.that);\r\n }\r\n d.element.attr(\"transform\", `translate(${d.x + (d.props.width / 2)} ${d.y + (d.props.height / 2)})`);\r\n\r\n d.x += borderOffset1;\r\n d.y += borderOffset1;\r\n d.props.width -= borderOffset2;\r\n d.props.height -= borderOffset2;\r\n d.props.width = d.props.width < 1 ? 1 : d.props.width;\r\n d.props.height = d.props.height < 1 ? 1 : d.props.height;\r\n\r\n let text = this.truncateText(d.props.text, d.props.width - padding, this._maxFontScale);\r\n\r\n if (text !== d.props.text) {\r\n text = this.truncateText(d.props.text, d.props.width - padding);\r\n } else {\r\n d.props.fontSize = this._maxFontScale * options.fontSize;\r\n }\r\n if (seriesKey === undefined && this._buckets.bucketScale < 1) {\r\n d.props.fontSize = Math.min(this._maxFontScale, this._buckets.bucketScale) * options.fontSize;\r\n }\r\n if (!this._maxY || this._maxY < d.y + d.props.height) {\r\n this._maxY = d.y + d.props.height;\r\n }\r\n if (!this._maxX || this._maxX < d.x + d.props.width) {\r\n this._maxX = d.x + d.props.width;\r\n }\r\n render(\r\n this._rangeRenderer,\r\n {\r\n ...options,\r\n ...d.props,\r\n text,\r\n },\r\n d.that\r\n );\r\n }\r\n\r\n setRangeOptions() {\r\n this._rangeOptions = {\r\n rangePadding: this.rangePadding(),\r\n fontFamily: this.fontFamily(),\r\n fontSize: this.fontSize(),\r\n strokeWidth: this.strokeWidth(),\r\n fill: this.fill(),\r\n stroke: this.stroke(),\r\n textFill: this.rangeFontColor(),\r\n cornerRadius: this.cornerRadius(),\r\n };\r\n }\r\n\r\n public _transform = { k: 1, x: 0, y: 0 };\r\n zoomed(transform) {\r\n this._transform = transform;\r\n switch (this.renderMode()) {\r\n case \"scale-all\":\r\n this._zoomScale = transform.k;\r\n this._zoomTranslate = [transform.x, 0];\r\n this._zoomG.attr(\"transform\", `translate(${transform.x} ${0})scale(${transform.k} 1)`);\r\n break;\r\n default:\r\n const options = this._rangeOptions;\r\n this.data().forEach((d, i) => {\r\n if (this._color_idx > -1) {\r\n options.fill = d[this._color_idx];\r\n }\r\n if (this._series_idx > -1) {\r\n const seriesKey = d[this._series_idx];\r\n this.renderRangeElement(d, i, true, options, seriesKey);\r\n } else {\r\n this.renderRangeElement(d, i, true, options);\r\n }\r\n });\r\n }\r\n\r\n this.zoomedHook(transform);\r\n }\r\n\r\n zoomedHook(transform) {\r\n\r\n }\r\n\r\n private calcBuckets(data, startKey: string | number, endKey: string | number, bucketKey?: string | number) {\r\n const bucketMap = {};\r\n const bucketKeyMap = {};\r\n const tol = this.overlapTolerence();\r\n const buckets = [{ end: -Infinity }];\r\n let maxBucket = 0;\r\n if (bucketKey !== undefined) {\r\n data.forEach((d, i) => {\r\n bucketMap[i] = d[bucketKey];\r\n bucketKeyMap[d[bucketKey]] = true;\r\n });\r\n maxBucket = Object.keys(bucketKeyMap).length;\r\n } else {\r\n data.forEach((d, i) => {\r\n for (let i2 = 0; i2 < buckets.length; ++i2) {\r\n if (i === 0 || buckets[i2][endKey] + tol <= d[startKey]) {\r\n bucketMap[i] = i2;\r\n if (maxBucket < i2) maxBucket = i2;\r\n buckets[i2][endKey] = d[endKey];\r\n break;\r\n }\r\n }\r\n if (bucketMap[i] === undefined) {\r\n bucketMap[i] = buckets.length;\r\n const b = {};\r\n b[endKey] = d[endKey];\r\n buckets.push(b as any);\r\n }\r\n\r\n if (maxBucket < bucketMap[i]) maxBucket = bucketMap[i];\r\n });\r\n }\r\n const height = (maxBucket + 1) * (this.bucketHeight() + this.gutter());\r\n return {\r\n bucketMap,\r\n maxBucket,\r\n bucketScale: this.height() / height,\r\n interpolateY: d3ScaleLinear()\r\n .domain([0, maxBucket + 1])\r\n .range([0, Math.min(this.height(), height)])\r\n };\r\n }\r\n\r\n data(): IGanttData[];\r\n data(_: IGanttData[]): this;\r\n data(_?: IGanttData[]): this | IGanttData[] {\r\n const retVal = super.data.apply(this, arguments);\r\n if (arguments.length > 0) {\r\n this._minStart = Math.min(...this.data().map(n => n[1])) ?? 0;\r\n this._maxEnd = Math.max(...this.data().map(n => n[2])) ?? 1;\r\n this.measureDataText(true);\r\n }\r\n return retVal;\r\n }\r\n\r\n protected _textWidths;\r\n protected _maxFontScale;\r\n protected _characterWidths;\r\n protected _prevFontFamily;\r\n protected _prevFontSize;\r\n measureDataText(forceMeasure = false) {\r\n const textWidths = {};\r\n const characterWidths = {};\r\n const fontFamily = this.fontFamily();\r\n const fontSize = this.fontSize();\r\n const bucketHeight = this.bucketHeight();\r\n\r\n if (bucketHeight) {\r\n this._maxFontScale = (bucketHeight - (this.rangePadding() * 2)) / fontSize;\r\n }\r\n\r\n if (forceMeasure || this._prevFontFamily !== fontFamily || this._prevFontSize !== fontSize) {\r\n characterWidths[\".\"] = Utility.textSize(\".\", fontFamily, fontSize).width;\r\n this.data().forEach(d => {\r\n if (!textWidths[d[0]]) {\r\n textWidths[d[0]] = Utility.textSize(d[0], fontFamily, fontSize).width;\r\n }\r\n d[0].split(\"\").forEach(char => {\r\n if (!characterWidths[char]) {\r\n characterWidths[char] = Utility.textSize(char, fontFamily, fontSize).width;\r\n }\r\n });\r\n });\r\n this._textWidths = textWidths;\r\n this._characterWidths = characterWidths;\r\n }\r\n this._prevFontFamily = fontFamily;\r\n this._prevFontSize = fontSize;\r\n }\r\n\r\n truncateText(text, width, scale = 1) {\r\n const textFits = this._textWidths[text] * scale < width;\r\n if (textFits) {\r\n return text;\r\n }\r\n let ret = \"\";\r\n let sum = 0;\r\n const _width = width - (this._characterWidths[\".\"] * 3);\r\n for (const char of text) {\r\n sum += this._characterWidths[char];\r\n if (sum < _width) {\r\n ret += char;\r\n } else {\r\n break;\r\n }\r\n }\r\n return _width < 0 ? \"\" : ret + \"...\";\r\n }\r\n\r\n resize(_size?: { width: number, height: number }) {\r\n let retVal;\r\n if (this.fitWidthToContent() || this.fitHeightToContent()) {\r\n retVal = super.resize.call(this, {\r\n width: _size.width,\r\n height: this._maxY\r\n });\r\n } else {\r\n retVal = super.resize.apply(this, arguments);\r\n }\r\n return retVal;\r\n }\r\n\r\n selectionChanged() {\r\n\r\n }\r\n\r\n highlightItem(_element, d) {\r\n\r\n }\r\n\r\n click(row, _col, sel) {\r\n\r\n }\r\n\r\n dblclick(row, _col, sel) {\r\n\r\n }\r\n\r\n mousein(row, _col, sel) {\r\n }\r\n\r\n mouseover(row, _col, sel) {\r\n }\r\n\r\n mouseout(row, _col, sel) {\r\n }\r\n}\r\nReactGantt.prototype._class += \" timeline_ReactGantt\";\r\n\r\nexport interface ReactGantt {\r\n titleColumn(): string;\r\n titleColumn(_: string): this;\r\n startDateColumn(): string;\r\n startDateColumn(_: string): this;\r\n endDateColumn(): string;\r\n endDateColumn(_: string): this;\r\n iconColumn(): string;\r\n iconColumn(_: string): this;\r\n colorColumn(): string;\r\n colorColumn(_: string): this;\r\n seriesColumn(): string;\r\n seriesColumn(_: string): this;\r\n bucketColumn(): string;\r\n bucketColumn(_: string): this;\r\n overlapTolerence(): number;\r\n overlapTolerence(_: number): this;\r\n smallestRangeWidth(): number;\r\n smallestRangeWidth(_: number): this;\r\n bucketHeight(): number;\r\n bucketHeight(_: number): this;\r\n gutter(): number;\r\n gutter(_: number): this;\r\n showToolbar_default(_: boolean): this;\r\n fontSize(): number;\r\n fontSize(_: number): this;\r\n fontFamily(): string;\r\n fontFamily(_: string): this;\r\n strokeWidth(): number;\r\n strokeWidth(_: number): this;\r\n stroke(): string;\r\n stroke(_: string): this;\r\n cornerRadius(): number;\r\n cornerRadius(_: number): this;\r\n fill(): string;\r\n fill(_: string): this;\r\n rangeFontColor(): string;\r\n rangeFontColor(_: string): this;\r\n rangePadding(): number;\r\n rangePadding(_: number): this;\r\n renderMode(): \"default\" | \"scale-all\";\r\n renderMode(_: \"default\" | \"scale-all\"): this;\r\n maxZoom(): number;\r\n maxZoom(_: number): this;\r\n fitWidthToContent(): boolean;\r\n fitWidthToContent(_: boolean): this;\r\n fitHeightToContent(): boolean;\r\n fitHeightToContent(_: boolean): this;\r\n evenSeriesBackground(): string;\r\n evenSeriesBackground(_: string): this;\r\n oddSeriesBackground(): string;\r\n oddSeriesBackground(_: string): this;\r\n}\r\n\r\nReactGantt.prototype.publish(\"fitWidthToContent\", false, \"boolean\", \"If true, resize will simply reapply the bounding box width\");\r\nReactGantt.prototype.publish(\"fitHeightToContent\", false, \"boolean\", \"If true, resize will simply reapply the bounding box height\");\r\nReactGantt.prototype.publish(\"titleColumn\", null, \"string\", \"Column name to for the title\");\r\nReactGantt.prototype.publish(\"startDateColumn\", null, \"string\", \"Column name to for the start date\");\r\nReactGantt.prototype.publish(\"endDateColumn\", null, \"string\", \"Column name to for the end date\");\r\nReactGantt.prototype.publish(\"iconColumn\", null, \"string\", \"Column name to for the icon\");\r\nReactGantt.prototype.publish(\"colorColumn\", null, \"string\", \"Column name to for the color\");\r\nReactGantt.prototype.publish(\"seriesColumn\", null, \"string\", \"Column name to for the series identifier\");\r\nReactGantt.prototype.publish(\"bucketColumn\", null, \"string\", \"Column name to for the bucket identifier\");\r\nReactGantt.prototype.publish(\"renderMode\", \"default\", \"set\", \"Render modes vary in features and performance\", [\"default\", \"scale-all\"]);\r\nReactGantt.prototype.publish(\"rangePadding\", 3, \"number\", \"Padding within each range rectangle (pixels)\");\r\nReactGantt.prototype.publish(\"fill\", \"#1f77b4\", \"string\", \"Background color of range rectangle\");\r\nReactGantt.prototype.publish(\"stroke\", null, \"string\", \"Color of range rectangle border\");\r\nReactGantt.prototype.publish(\"strokeWidth\", null, \"number\", \"Width of range rectangle border (pixels)\");\r\nReactGantt.prototype.publish(\"cornerRadius\", 3, \"number\", \"Space between range buckets (pixels)\");\r\nReactGantt.prototype.publish(\"fontFamily\", null, \"string\", \"Font family within range rectangle\", null, { optional: true });\r\nReactGantt.prototype.publish(\"fontSize\", 10, \"number\", \"Size of font within range rectangle (pixels)\");\r\nReactGantt.prototype.publish(\"rangeFontColor\", \"#ecf0f1\", \"html-color\", \"rangeFontColor\");\r\nReactGantt.prototype.publish(\"overlapTolerence\", 2, \"number\", \"overlapTolerence\");\r\nReactGantt.prototype.publish(\"smallestRangeWidth\", 10, \"number\", \"Width of the shortest range (pixels)\");\r\nReactGantt.prototype.publish(\"bucketHeight\", 100, \"number\", \"Max height of range element (pixels)\");\r\nReactGantt.prototype.publish(\"gutter\", 2, \"number\", \"Space between range buckets (pixels)\");\r\nReactGantt.prototype.publish(\"maxZoom\", 16, \"number\", \"Maximum zoom\");\r\nReactGantt.prototype.publish(\"evenSeriesBackground\", \"#FFFFFF\", \"html-color\", \"Background color of even series rows\");\r\nReactGantt.prototype.publish(\"oddSeriesBackground\", \"#DDDDDD\", \"html-color\", \"Background color of odd series rows\");\r\n","import { Axis } from \"@hpcc-js/chart\";\r\nimport { SVGWidget } from \"@hpcc-js/common\";\r\nimport { ReactGantt } from \"./ReactGantt\";\r\n\r\nexport type IAxisGanttData = [string, number | string, number | string, any?] | any[];\r\n\r\nexport class ReactAxisGantt extends SVGWidget {\r\n\r\n protected _topAxis: Axis = new Axis(\"center\")\r\n .orientation(\"top\")\r\n .type(\"linear\")\r\n .shrinkToFit(\"none\")\r\n .overlapMode(\"hide\")\r\n .extend(0)\r\n .tickFormat(\"d\")\r\n ;\r\n protected _gantt: ReactGantt = new ReactGantt(\"center\")\r\n .stroke(\"#000000\")\r\n ;\r\n protected _bottomAxis: Axis = new Axis(\"center\")\r\n .orientation(\"bottom\")\r\n .type(\"linear\")\r\n .shrinkToFit(\"none\")\r\n .overlapMode(\"hide\")\r\n .extend(0)\r\n .tickFormat(\"d\")\r\n ;\r\n\r\n protected _topAxisElement;\r\n protected _contentElement;\r\n protected _bottomAxisElement;\r\n protected _topRect;\r\n protected _contentRect;\r\n protected _bottomRect;\r\n\r\n protected rangeRenderer;\r\n\r\n constructor() {\r\n super();\r\n this._drawStartPos = \"origin\";\r\n this.rangeRenderer = function () {\r\n const ret = this._gantt.rangeRenderer.apply(this._gantt, arguments);\r\n if (!arguments.length) return ret;\r\n return this;\r\n };\r\n }\r\n\r\n selection(_: any[]): this;\r\n selection(): any[];\r\n selection(_?: any[]): any[] | this {\r\n if (!arguments.length) return this._gantt.selection();\r\n this._gantt.selection(_);\r\n return this;\r\n }\r\n\r\n resizeWrappers() {\r\n\r\n const w = this.width();\r\n const h = this.height();\r\n\r\n const axisHeight = this.axisHeight(); //TODO: Dynamic scaling to allow for small resolutions?\r\n\r\n const contentHeight = (h - (axisHeight * 2));\r\n const borderOffset1 = this.strokeWidth();\r\n this._topRect\r\n .attr(\"height\", axisHeight)\r\n .attr(\"width\", w)\r\n .attr(\"fill\", \"transparent\")\r\n ;\r\n this._topAxisElement.attr(\"transform\", \"translate(0 0)\");\r\n this._topAxis.resize({ height: axisHeight, width: w });\r\n this._contentRect\r\n .attr(\"height\", contentHeight)\r\n .attr(\"width\", w)\r\n .attr(\"fill\", \"transparent\")\r\n ;\r\n this._contentElement.attr(\"transform\", `translate(0 ${axisHeight + borderOffset1})`);\r\n this._gantt.resize({ height: contentHeight, width: w });\r\n this._bottomRect\r\n .attr(\"height\", axisHeight)\r\n .attr(\"width\", w)\r\n .attr(\"fill\", \"transparent\")\r\n ;\r\n this._bottomAxisElement.attr(\"transform\", `translate(0 ${axisHeight + contentHeight + borderOffset1})`);\r\n this._bottomAxis.resize({ height: axisHeight, width: w });\r\n }\r\n\r\n enter(domNode, element) {\r\n super.enter(domNode, element);\r\n\r\n this._gantt.click = (row, col, sel) => {\r\n this.click(row, col, sel);\r\n };\r\n\r\n this._gantt.dblclick = (row, col, sel) => {\r\n this.dblclick(row, col, sel);\r\n };\r\n\r\n this._topAxisElement = element.append(\"g\")\r\n .attr(\"class\", \"top-axis-wrapper\")\r\n ;\r\n this._topRect = this._topAxisElement.append(\"rect\")\r\n .attr(\"class\", \"top-axis-rect\")\r\n ;\r\n this._contentElement = element.append(\"g\")\r\n .attr(\"class\", \"content-wrapper\")\r\n ;\r\n this._contentRect = this._contentElement.append(\"rect\")\r\n .attr(\"class\", \"content-rect\")\r\n ;\r\n this._bottomAxisElement = element.append(\"g\")\r\n .attr(\"class\", \"bottom-axis-wrapper\")\r\n ;\r\n this._bottomRect = this._bottomAxisElement.append(\"rect\")\r\n .attr(\"class\", \"top-axis-rect\")\r\n ;\r\n this._topAxis.target(this._topAxisElement.node());\r\n this._gantt.target(this._contentElement.node()).bucketHeight(30);\r\n this._bottomAxis.target(this._bottomAxisElement.node());\r\n\r\n this.resizeWrappers();\r\n\r\n this._gantt.zoomedHook = (transform) => {\r\n this.onzoom(transform);\r\n };\r\n }\r\n\r\n onzoom(transform) {\r\n\r\n const w = this.width();\r\n const low = this._gantt._minStart;\r\n const high = this._gantt._maxEnd;\r\n const range = high - low;\r\n const wpp = range / w;\r\n const nextLow = Math.floor(low - (wpp * (transform.x / transform.k)));\r\n const nextHigh = Math.ceil((range / transform.k) + nextLow);\r\n\r\n this._topAxis\r\n .fontFamily(this.axisFontFamily())\r\n .fontSize(this.axisFontSize())\r\n .tickLength(this.axisTickLength())\r\n .low(nextLow)\r\n .high(nextHigh)\r\n .render()\r\n ;\r\n this._bottomAxis\r\n .fontFamily(this.axisFontFamily())\r\n .fontSize(this.axisFontSize())\r\n .tickLength(this.axisTickLength())\r\n .low(nextLow)\r\n .high(nextHigh)\r\n .render()\r\n ;\r\n }\r\n\r\n update(domNode, element) {\r\n super.update(domNode, element);\r\n this._topAxis.tickFormat(this.tickFormat()).render();\r\n this._bottomAxis.tickFormat(this.tickFormat()).render();\r\n this._gantt.render();\r\n }\r\n\r\n columns(): string[];\r\n columns(_: string[]): this;\r\n columns(_?: string[]): this | string[] {\r\n const retVal = super.columns.apply(this, arguments);\r\n if (arguments.length > 0) {\r\n this._gantt.columns(_);\r\n }\r\n return retVal;\r\n }\r\n\r\n data(): IAxisGanttData[];\r\n data(_: IAxisGanttData[]): this;\r\n data(_?: IAxisGanttData[]): this | IAxisGanttData[] {\r\n const retVal = super.data.apply(this, arguments);\r\n if (arguments.length > 0) {\r\n const ganttData: any[] = this.data().map(n => {\r\n const ret = [...n];\r\n ret[1] = isNaN(n[1] as any) ? new Date(n[1]).getTime() : Number(n[1]);\r\n ret[2] = isNaN(n[2] as any) ? new Date(n[2]).getTime() : Number(n[2]);\r\n return ret;\r\n });\r\n this._gantt._minStart = Math.min(...ganttData.map(n => n[1])) ?? 0;\r\n this._gantt._maxEnd = Math.max(...ganttData.map(n => n[2])) ?? 1;\r\n this._gantt.data(ganttData);\r\n }\r\n return retVal;\r\n }\r\n\r\n resize(_size?: { width: number, height: number }) {\r\n const retVal = super.resize.apply(this, arguments);\r\n\r\n if (this._topAxisElement) {\r\n this.resizeWrappers();\r\n }\r\n\r\n return retVal;\r\n }\r\n\r\n click(row, col, sel) {\r\n\r\n }\r\n\r\n dblclick(row, col, sel) {\r\n\r\n }\r\n\r\n tooltip() {\r\n return this._gantt._tooltip;\r\n }\r\n}\r\nReactAxisGantt.prototype._class += \" timeline_ReactAxisGantt\";\r\n\r\nexport interface ReactAxisGantt {\r\n tickFormat(): string;\r\n tickFormat(_: string): this;\r\n tickFormat_exists(): boolean;\r\n overlapTolerence(): number;\r\n overlapTolerence(_: number): this;\r\n smallestRangeWidth(): number;\r\n smallestRangeWidth(_: number): this;\r\n scaleMode(): boolean;\r\n scaleMode(_: boolean): this;\r\n fontSize(): number;\r\n fontSize(_: number): this;\r\n fontFamily(): string;\r\n fontFamily(_: string): this;\r\n strokeWidth(): number;\r\n strokeWidth(_: number): this;\r\n stroke(): string;\r\n stroke(_: string): this;\r\n cornerRadius(): number;\r\n cornerRadius(_: number): this;\r\n axisFontSize(): number;\r\n axisFontSize(_: number): this;\r\n axisFontFamily(): string;\r\n axisFontFamily(_: string): this;\r\n axisTickLength(): number;\r\n axisTickLength(_: number): this;\r\n axisHeight(): number;\r\n axisHeight(_: number): this;\r\n titleColumn(): string;\r\n titleColumn(_: string): this;\r\n startDateColumn(): string;\r\n startDateColumn(_: string): this;\r\n endDateColumn(): string;\r\n endDateColumn(_: string): this;\r\n iconColumn(): string;\r\n iconColumn(_: string): this;\r\n colorColumn(): string;\r\n colorColumn(_: string): this;\r\n bucketColumn(): string;\r\n bucketColumn(_: string): this;\r\n maxZoom(): number;\r\n maxZoom(_: number): this;\r\n}\r\nReactAxisGantt.prototype.publish(\"tickFormat\", null, \"string\", \"Format rule applied to axis tick labels\", undefined, { optional: true });\r\nReactAxisGantt.prototype.publish(\"axisHeight\", 22, \"number\", \"Height of axes (pixels)\");\r\nReactAxisGantt.prototype.publish(\"overlapTolerence\", 2, \"number\", \"overlapTolerence\");\r\nReactAxisGantt.prototype.publish(\"smallestRangeWidth\", 10, \"number\", \"Width of the shortest range (pixels)\");\r\nReactAxisGantt.prototype.publish(\"axisFontSize\", null, \"number\", \"Font size of axis tick labels\");\r\nReactAxisGantt.prototype.publish(\"axisFontFamily\", null, \"string\", \"Font family of axis tick labels\");\r\nReactAxisGantt.prototype.publish(\"axisTickLength\", null, \"number\", \"Length of axis ticks\");\r\nReactAxisGantt.prototype.publishProxy(\"gutter\", \"_gantt\");\r\nReactAxisGantt.prototype.publishProxy(\"renderMode\", \"_gantt\");\r\nReactAxisGantt.prototype.publishProxy(\"strokeWidth\", \"_gantt\");\r\nReactAxisGantt.prototype.publishProxy(\"fontSize\", \"_gantt\");\r\nReactAxisGantt.prototype.publishProxy(\"fontFamily\", \"_gantt\");\r\nReactAxisGantt.prototype.publishProxy(\"stroke\", \"_gantt\");\r\nReactAxisGantt.prototype.publishProxy(\"cornerRadius\", \"_gantt\");\r\nReactAxisGantt.prototype.publishProxy(\"titleColumn\", \"_gantt\");\r\nReactAxisGantt.prototype.publishProxy(\"startDateColumn\", \"_gantt\");\r\nReactAxisGantt.prototype.publishProxy(\"endDateColumn\", \"_gantt\");\r\nReactAxisGantt.prototype.publishProxy(\"iconColumn\", \"_gantt\");\r\nReactAxisGantt.prototype.publishProxy(\"colorColumn\", \"_gantt\");\r\nReactAxisGantt.prototype.publishProxy(\"bucketColumn\", \"_gantt\");\r\nReactAxisGantt.prototype.publishProxy(\"maxZoom\", \"_gantt\");\r\nReactAxisGantt.prototype.publishProxy(\"bucketHeight\", \"_gantt\");\r\n","import { min as d3Min, max as d3Max } from \"d3-array\";\r\nimport { Axis } from \"@hpcc-js/chart\";\r\nimport { Border2 } from \"@hpcc-js/layout\";\r\nimport { ReactGantt } from \"./ReactGantt\";\r\nimport { IAxisGanttData } from \"./ReactAxisGantt\";\r\nimport { React } from \"@hpcc-js/react\";\r\n\r\nexport class ReactAxisGanttSeries extends Border2 {\r\n\r\n protected _topAxis: Axis = new Axis(\"origin\")\r\n .orientation(\"top\")\r\n .type(\"linear\")\r\n .shrinkToFit(\"none\")\r\n .overlapMode(\"hide\")\r\n .extend(0)\r\n .tickFormat(\"d\")\r\n ;\r\n protected _gantt: ReactGantt = new ReactGantt(\"origin\")\r\n .stroke(\"#000000\")\r\n .fitHeightToContent(true)\r\n ;\r\n protected _bottomAxis: Axis = new Axis(\"origin\")\r\n .orientation(\"bottom\")\r\n .type(\"linear\")\r\n .shrinkToFit(\"none\")\r\n .overlapMode(\"hide\")\r\n .extend(0)\r\n .tickFormat(\"d\")\r\n ;\r\n\r\n protected _topAxisElement;\r\n protected _contentElement;\r\n protected _bottomAxisElement;\r\n protected _topRect;\r\n protected _contentRect;\r\n protected _bottomRect;\r\n\r\n constructor() {\r\n super();\r\n this.centerOverflowX_default(\"hidden\");\r\n this.centerOverflowY_default(\"auto\");\r\n }\r\n\r\n selection(_: any[]): this;\r\n selection(): any[];\r\n selection(_?: any[]): any[] | this {\r\n if (!arguments.length) return this._gantt.selection();\r\n this._gantt.selection(_);\r\n return this;\r\n }\r\n\r\n rangeRenderer(): React.FunctionComponent;\r\n rangeRenderer(_: React.FunctionComponent): this;\r\n rangeRenderer(_?: React.FunctionComponent): this | React.FunctionComponent {\r\n const ret = this._gantt.rangeRenderer.apply(this._gantt, arguments);\r\n if (!arguments.length) return ret;\r\n return this;\r\n }\r\n\r\n resizeWrappers() {\r\n\r\n const w = this.width();\r\n const h = this.height();\r\n\r\n const axisHeight = this.axisHeight(); //TODO: Dynamic scaling to allow for small resolutions?\r\n const contentHeight = (h - (axisHeight * 2));\r\n\r\n this.bottomHeight(axisHeight);\r\n\r\n this._topWA.resize({\r\n width: w,\r\n height: axisHeight\r\n });\r\n this._centerWA.resize({\r\n width: w,\r\n height: contentHeight\r\n });\r\n this._bottomWA.resize({\r\n width: w,\r\n height: axisHeight\r\n });\r\n this.top().render();\r\n this.bottom().render();\r\n this.center().render();\r\n }\r\n\r\n enter(domNode, element) {\r\n super.enter(domNode, element);\r\n\r\n this._gantt.click = (row, col, sel) => {\r\n this.click(row, col, sel);\r\n };\r\n\r\n this._gantt.dblclick = (row, col, sel) => {\r\n this.dblclick(row, col, sel);\r\n };\r\n\r\n this.top(this._topAxis);\r\n this.center(this._gantt);\r\n this.bottom(this._bottomAxis);\r\n\r\n this.resizeWrappers();\r\n\r\n this._gantt.zoomedHook = (transform) => {\r\n this.onzoom(transform);\r\n };\r\n }\r\n\r\n onzoom(transform) {\r\n const w = this.width();\r\n const low = this._gantt._minStart;\r\n const high = this._gantt._maxEnd;\r\n const range = high - low;\r\n const wpp = range / w;\r\n const nextLow = Math.floor(low - (wpp * (transform.x / transform.k)));\r\n const nextHigh = Math.ceil((range / transform.k) + nextLow);\r\n\r\n this._topAxis\r\n .fontFamily(this.axisFontFamily())\r\n .fontSize(this.axisFontSize())\r\n .tickLength(this.axisTickLength())\r\n .low(nextLow)\r\n .high(nextHigh)\r\n .lazyRender()\r\n ;\r\n this._bottomAxis\r\n .fontFamily(this.axisFontFamily())\r\n .fontSize(this.axisFontSize())\r\n .tickLength(this.axisTickLength())\r\n .low(nextLow)\r\n .high(nextHigh)\r\n .lazyRender()\r\n ;\r\n }\r\n\r\n update(domNode, element) {\r\n super.update(domNode, element);\r\n this._topAxis.tickFormat(this.tickFormat()).render();\r\n this._bottomAxis.tickFormat(this.tickFormat()).render();\r\n this._gantt.render();\r\n }\r\n\r\n columns(): string[];\r\n columns(_: string[]): this;\r\n columns(_?: string[]): this | string[] {\r\n const retVal = super.columns.apply(this, arguments);\r\n if (arguments.length > 0) {\r\n this._gantt.columns(_);\r\n }\r\n return retVal;\r\n }\r\n\r\n data(): IAxisGanttData[];\r\n data(_: IAxisGanttData[]): this;\r\n data(_?: IAxisGanttData[]): this | IAxisGanttData[] {\r\n const retVal = super.data.apply(this, arguments);\r\n if (arguments.length > 0) {\r\n const ganttData: any[] = this.data().map(n => {\r\n const ret = [...n];\r\n ret[1] = isNaN(n[1] as any) ? new Date(n[1]).getTime() : Number(n[1]);\r\n ret[2] = isNaN(n[2] as any) ? new Date(n[2]).getTime() : Number(n[2]);\r\n return ret;\r\n });\r\n\r\n this._gantt._minStart = d3Min(ganttData, n => n[1]);\r\n this._gantt._maxEnd = d3Max(ganttData, n => n[2]);\r\n this._gantt.data(ganttData);\r\n }\r\n return retVal;\r\n }\r\n\r\n resize(_size?: { width: number, height: number }) {\r\n const retVal = super.resize.apply(this, arguments);\r\n\r\n if (this._topAxisElement) {\r\n this.resizeWrappers();\r\n }\r\n\r\n return retVal;\r\n }\r\n\r\n click(row, col, sel) {\r\n\r\n }\r\n\r\n dblclick(row, col, sel) {\r\n\r\n }\r\n\r\n tooltip() {\r\n return this._gantt._tooltip;\r\n }\r\n}\r\nReactAxisGanttSeries.prototype._class += \" timeline_ReactAxisGanttSeries\";\r\n\r\nexport interface ReactAxisGanttSeries {\r\n tickFormat(): string;\r\n tickFormat(_: string): this;\r\n tickFormat_exists(): boolean;\r\n overlapTolerence(): number;\r\n overlapTolerence(_: number): this;\r\n smallestRangeWidth(): number;\r\n smallestRangeWidth(_: number): this;\r\n scaleMode(): boolean;\r\n scaleMode(_: boolean): this;\r\n fontSize(): number;\r\n fontSize(_: number): this;\r\n fontFamily(): string;\r\n fontFamily(_: string): this;\r\n strokeWidth(): number;\r\n strokeWidth(_: number): this;\r\n stroke(): string;\r\n stroke(_: string): this;\r\n cornerRadius(): number;\r\n cornerRadius(_: number): this;\r\n axisFontSize(): number;\r\n axisFontSize(_: number): this;\r\n axisFontFamily(): string;\r\n axisFontFamily(_: string): this;\r\n axisTickLength(): number;\r\n axisTickLength(_: number): this;\r\n axisHeight(): number;\r\n axisHeight(_: number): this;\r\n titleColumn(): string;\r\n titleColumn(_: string): this;\r\n startDateColumn(): string;\r\n startDateColumn(_: string): this;\r\n endDateColumn(): string;\r\n endDateColumn(_: string): this;\r\n iconColumn(): string;\r\n iconColumn(_: string): this;\r\n colorColumn(): string;\r\n colorColumn(_: string): this;\r\n seriesColumn(): string;\r\n seriesColumn(_: string): this;\r\n bucketColumn(): string;\r\n bucketColumn(_: string): this;\r\n maxZoom(): number;\r\n maxZoom(_: number): this;\r\n}\r\nReactAxisGanttSeries.prototype.publish(\"tickFormat\", null, \"string\", \"Format rule applied to axis tick labels\", undefined, { optional: true });\r\nReactAxisGanttSeries.prototype.publish(\"axisHeight\", 22, \"number\", \"Height of axes (pixels)\");\r\nReactAxisGanttSeries.prototype.publish(\"overlapTolerence\", 2, \"number\", \"overlapTolerence\");\r\nReactAxisGanttSeries.prototype.publish(\"smallestRangeWidth\", 10, \"number\", \"Width of the shortest range (pixels)\");\r\nReactAxisGanttSeries.prototype.publish(\"axisFontSize\", null, \"number\", \"Font size of axis tick labels\");\r\nReactAxisGanttSeries.prototype.publish(\"axisFontFamily\", null, \"string\", \"Font family of axis tick labels\");\r\nReactAxisGanttSeries.prototype.publish(\"axisTickLength\", null, \"number\", \"Length of axis ticks\");\r\nReactAxisGanttSeries.prototype.publishProxy(\"gutter\", \"_gantt\");\r\nReactAxisGanttSeries.prototype.publishProxy(\"renderMode\", \"_gantt\");\r\nReactAxisGanttSeries.prototype.publishProxy(\"strokeWidth\", \"_gantt\");\r\nReactAxisGanttSeries.prototype.publishProxy(\"fontSize\", \"_gantt\");\r\nReactAxisGanttSeries.prototype.publishProxy(\"fontFamily\", \"_gantt\");\r\nReactAxisGanttSeries.prototype.publishProxy(\"stroke\", \"_gantt\");\r\nReactAxisGanttSeries.prototype.publishProxy(\"cornerRadius\", \"_gantt\");\r\nReactAxisGanttSeries.prototype.publishProxy(\"titleColumn\", \"_gantt\");\r\nReactAxisGanttSeries.prototype.publishProxy(\"startDateColumn\", \"_gantt\");\r\nReactAxisGanttSeries.prototype.publishProxy(\"endDateColumn\", \"_gantt\");\r\nReactAxisGanttSeries.prototype.publishProxy(\"iconColumn\", \"_gantt\");\r\nReactAxisGanttSeries.prototype.publishProxy(\"colorColumn\", \"_gantt\");\r\nReactAxisGanttSeries.prototype.publishProxy(\"seriesColumn\", \"_gantt\");\r\nReactAxisGanttSeries.prototype.publishProxy(\"bucketColumn\", \"_gantt\");\r\nReactAxisGanttSeries.prototype.publishProxy(\"maxZoom\", \"_gantt\");\r\nReactAxisGanttSeries.prototype.publishProxy(\"evenSeriesBackground\", \"_gantt\");\r\nReactAxisGanttSeries.prototype.publishProxy(\"oddSeriesBackground\", \"_gantt\");\r\nReactAxisGanttSeries.prototype.publishProxy(\"bucketHeight\", \"_gantt\");\r\n","import { timeFormat as d3TimeFormat, timeParse as d3TimeParse } from \"d3-time-format\";\r\nimport { ReactAxisGantt } from \"./ReactAxisGantt\";\r\n\r\nexport class ReactTimeline extends ReactAxisGantt {\r\n\r\n protected _axisLabelFormatter;//TODO: add a type to this? d3 time formatting function type?\r\n\r\n constructor(){\r\n super();\r\n this._drawStartPos = \"origin\";\r\n this._topAxis.type(\"time\");\r\n this._bottomAxis.type(\"time\");\r\n\r\n this.tooltipHTML((d: any) => {\r\n const parser = d3TimeParse(\"%Q\");\r\n const startTime = parser(d[1]);\r\n const endTime = parser(d[2]);\r\n\r\n const formatter = d3TimeFormat(this.tooltipTimeFormat());\r\n return `<div style=\"text-align:center;\">${d[0]}<br/><br/>${formatter(startTime)} -> ${formatter(endTime)}</div>`;\r\n });\r\n }\r\n\r\n update(domNode, element) {\r\n super.update(domNode, element);\r\n\r\n if(this.timePattern_exists()) {\r\n\r\n let minTimestamp = Infinity;\r\n let maxTimestamp = -Infinity;\r\n let lowDateStr = \"\";\r\n let highDateStr = \"\";\r\n this.data().map(n=>{\r\n const start = new Date(n[1]).getTime();\r\n const end = new Date(n[2]).getTime();\r\n if(minTimestamp > start){\r\n minTimestamp = start;\r\n lowDateStr = \"\" + n[1];\r\n }\r\n if(maxTimestamp < end){\r\n maxTimestamp = end;\r\n highDateStr = \"\" + n[2];\r\n }\r\n });\r\n this._topAxis\r\n .type(\"time\")\r\n .timePattern(this.timePattern())\r\n .overlapMode(\"none\")\r\n .tickFormat(this._axisLabelFormatter)\r\n .low(lowDateStr)\r\n .high(highDateStr)\r\n ;\r\n this._bottomAxis\r\n .type(\"time\")\r\n .timePattern(this.timePattern())\r\n .overlapMode(\"none\")\r\n .tickFormat(this._axisLabelFormatter)\r\n .low(lowDateStr)\r\n .high(highDateStr)\r\n ;\r\n this._gantt._minStart = minTimestamp;\r\n this._gantt._maxEnd = maxTimestamp;\r\n }\r\n }\r\n\r\n tooltipHTML(callback) {\r\n this._tooltipHTML = callback;\r\n this.tooltip().tooltipHTML(this._tooltipHTML);\r\n return this;\r\n }\r\n\r\n parseAxisValue(v) {\r\n const parseTime = d3TimeParse(\"%Q\");\r\n const parsedTime = parseTime(v);\r\n\r\n const formatTime = d3TimeFormat(this.timePattern());\r\n return formatTime(parsedTime);\r\n }\r\n\r\n onzoom(transform) {\r\n \r\n const w = this.width();\r\n const low = this._gantt._minStart;\r\n const high = this._gantt._maxEnd;\r\n const range = high - low;\r\n const wpp = range / w;\r\n const nextLow = Math.floor(low - (wpp * (transform.x / transform.k)));\r\n const nextHigh = Math.ceil((range / transform.k) + nextLow);\r\n\r\n this._topAxis\r\n .low(this.parseAxisValue(nextLow))\r\n .high(this.parseAxisValue(nextHigh))\r\n .render()\r\n ;\r\n this._bottomAxis\r\n .low(this.parseAxisValue(nextLow))\r\n .high(this.parseAxisValue(nextHigh))\r\n .render()\r\n ;\r\n }\r\n\r\n _tooltipHTML: (_) => string;\r\n}\r\nReactTimeline.prototype._class += \" timeline_ReactTimeline\";\r\n\r\nexport interface ReactTimeline {\r\n timePattern(): string;\r\n timePattern(_: string): this;\r\n timePattern_exists(): boolean;\r\n tooltipTimeFormat(): string;\r\n tooltipTimeFormat(_: string): this;\r\n}\r\nReactTimeline.prototype.publish(\"timePattern\", \"%Y-%m-%d\", \"string\", \"Time pattern used for parsing datetime strings on each data row\", null, {optional:true});\r\nReactTimeline.prototype.publish(\"tooltipTimeFormat\", \"%Y-%m-%d\", \"string\", \"Time format used in the default html tooltip\");\r\n\r\n","import { timeFormat as d3TimeFormat, timeParse as d3TimeParse } from \"d3-time-format\";\r\nimport { ReactAxisGanttSeries } from \"./ReactAxisGanttSeries\";\r\n\r\nconst parseTime = d3TimeParse(\"%Q\");\r\nexport class ReactTimelineSeries extends ReactAxisGanttSeries {\r\n\r\n protected _axisLabelFormatter;//TODO: add a type to this? d3 time formatting function type?\r\n\r\n constructor(){\r\n super();\r\n this._topAxis.type(\"time\");\r\n this._bottomAxis.type(\"time\");\r\n\r\n this.tooltipHTML((d: any) => {\r\n const startTime = parseTime(d[1]);\r\n const endTime = parseTime(d[2]);\r\n\r\n const formatter = d3TimeFormat(this.tooltipTimeFormat());\r\n return `<div style=\"text-align:center;\">${d[0]}<br/><br/>${formatter(startTime)} -> ${formatter(endTime)}</div>`;\r\n });\r\n }\r\n\r\n update(domNode, element) {\r\n super.update(domNode, element);\r\n\r\n if(this.timePattern_exists()) {\r\n\r\n let minTimestamp = Infinity;\r\n let maxTimestamp = -Infinity;\r\n let lowDateStr = \"\";\r\n let highDateStr = \"\";\r\n this.data().forEach(n=>{\r\n const start = new Date(n[1]).getTime();\r\n const end = new Date(n[2]).getTime();\r\n if(minTimestamp > start){\r\n minTimestamp = start;\r\n lowDateStr = \"\" + n[1];\r\n }\r\n if(maxTimestamp < end){\r\n maxTimestamp = end;\r\n highDateStr = \"\" + n[2];\r\n }\r\n });\r\n this._topAxis\r\n .type(\"time\")\r\n .timePattern(this.timePattern())\r\n .overlapMode(\"none\")\r\n .tickFormat(this._axisLabelFormatter)\r\n .low(lowDateStr)\r\n .high(highDateStr)\r\n ;\r\n this._bottomAxis\r\n .type(\"time\")\r\n .timePattern(this.timePattern())\r\n .overlapMode(\"none\")\r\n .tickFormat(this._axisLabelFormatter)\r\n .low(lowDateStr)\r\n .high(highDateStr)\r\n ;\r\n this._gantt._minStart = minTimestamp;\r\n this._gantt._maxEnd = maxTimestamp;\r\n }\r\n }\r\n\r\n tooltipHTML(callback) {\r\n this._tooltipHTML = callback;\r\n this.tooltip().tooltipHTML(this._tooltipHTML);\r\n return this;\r\n }\r\n\r\n parseAxisValue(v) {\r\n const parsedTime = parseTime(v);\r\n\r\n const formatTime = d3TimeFormat(this.timePattern());\r\n return formatTime(parsedTime);\r\n }\r\n\r\n onzoom(transform) {\r\n \r\n const w = this.width();\r\n const low = this._gantt._minStart;\r\n const high = this._gantt._maxEnd;\r\n const range = high - low;\r\n const wpp = range / w;\r\n const nextLow = Math.floor(low - (wpp * (transform.x / transform.k)));\r\n const nextHigh = Math.ceil((range / transform.k) + nextLow);\r\n\r\n this._topAxis\r\n .low(this.parseAxisValue(nextLow))\r\n .high(this.parseAxisValue(nextHigh))\r\n .render()\r\n ;\r\n this._bottomAxis\r\n .low(this.parseAxisValue(nextLow))\r\n .high(this.parseAxisValue(nextHigh))\r\n .render()\r\n ;\r\n }\r\n\r\n _tooltipHTML: (_) => string;\r\n}\r\nReactTimelineSeries.prototype._class += \" timeline_ReactTimelineSeries\";\r\n\r\nexport interface ReactTimelineSeries {\r\n timePattern(): string;\r\n timePattern(_: string): this;\r\n timePattern_exists(): boolean;\r\n tooltipTimeFormat(): string;\r\n tooltipTimeFormat(_: string): this;\r\n}\r\nReactTimelineSeries.prototype.publish(\"timePattern\", \"%Y-%m-%d\", \"string\", \"Time pattern used for parsing datetime strings on each data row\", null, {optional:true});\r\nReactTimelineSeries.prototype.publish(\"tooltipTimeFormat\", \"%Y-%m-%d\", \"string\", \"Time format used in the default html tooltip\");\r\n\r\n"],"names":["d3Local","d3ScaleBand","d3Extent","d3TimeParse","d3TimeFormat","d3ZoomIdentity","d3Zoom","d3Select","d3ScaleLinear","d3Min","d3Max"],"mappings":"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","x_google_ignoreList":[1,2]}
|