@hpcc-js/timeline 2.54.1 → 2.56.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/index.js +1201 -1626
  2. package/dist/index.js.map +1 -1
  3. package/dist/index.umd.cjs +2 -0
  4. package/dist/index.umd.cjs.map +1 -0
  5. package/package.json +36 -38
  6. package/src/MiniGantt.ts +10 -9
  7. package/src/ReactAxisGantt.ts +8 -1
  8. package/src/ReactAxisGanttSeries.ts +2 -2
  9. package/src/ReactGantt.ts +4 -0
  10. package/src/ReactTimeline.ts +23 -12
  11. package/src/ReactTimelineSeries.ts +21 -10
  12. package/src/__package__.ts +2 -2
  13. package/src/index.ts +7 -7
  14. package/types/MiniGantt.d.ts +4 -5
  15. package/types/ReactAxisGantt.d.ts +2 -2
  16. package/types/ReactAxisGanttSeries.d.ts +2 -3
  17. package/types/ReactGantt.d.ts +1 -1
  18. package/types/ReactTimeline.d.ts +2 -3
  19. package/types/ReactTimelineSeries.d.ts +1 -2
  20. package/types/__package__.d.ts +2 -3
  21. package/types/index.d.ts +7 -8
  22. package/dist/index.es6.js +0 -1625
  23. package/dist/index.es6.js.map +0 -1
  24. package/dist/index.min.js +0 -2
  25. package/dist/index.min.js.map +0 -1
  26. package/types/MiniGantt.d.ts.map +0 -1
  27. package/types/ReactAxisGantt.d.ts.map +0 -1
  28. package/types/ReactAxisGanttSeries.d.ts.map +0 -1
  29. package/types/ReactGantt.d.ts.map +0 -1
  30. package/types/ReactTimeline.d.ts.map +0 -1
  31. package/types/ReactTimelineSeries.d.ts.map +0 -1
  32. package/types/__package__.d.ts.map +0 -1
  33. package/types/index.d.ts.map +0 -1
  34. package/types-3.4/MiniGantt.d.ts +0 -106
  35. package/types-3.4/ReactAxisGantt.d.ts +0 -83
  36. package/types-3.4/ReactAxisGanttSeries.d.ts +0 -82
  37. package/types-3.4/ReactGantt.d.ts +0 -135
  38. package/types-3.4/ReactTimeline.d.ts +0 -18
  39. package/types-3.4/ReactTimelineSeries.d.ts +0 -18
  40. package/types-3.4/__package__.d.ts +0 -4
  41. package/types-3.4/index.d.ts +0 -8
@@ -1 +0,0 @@
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.54.1\";\nexport const BUILD_VERSION = \"2.108.2\";\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]} -&gt; ${d[2]}</div>`;\n });\n this._tooltip\n .followCursor(true)\n ;\n }\n\n selection(_: any[]): this;\n selection(): any[];\n selection(_?: any[]): any[] | this {\n if (!arguments.length) return this._selection.get();\n this._selection.set(_);\n return this;\n }\n\n private _rangeRenderer: React.FunctionComponent = LabelledRect;\n rangeRenderer(): React.FunctionComponent;\n rangeRenderer(_: React.FunctionComponent): this;\n rangeRenderer(_?: React.FunctionComponent): this | React.FunctionComponent {\n if (!arguments.length) return this._rangeRenderer;\n this._rangeRenderer = _;\n return this._rangeRenderer;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n\n const context = this;\n element\n .on(\"click\", function (this: SVGElement, d) {\n context._selection.clear();\n });\n\n this._tooltip.target(domNode);\n }\n update(domNode, element) {\n super.update(domNode, element);\n\n this.zoomExtent([0.05, this.maxZoom()]);\n\n this._title_idx = this.titleColumn() !== null ? this.columns().indexOf(this.titleColumn()) : this._title_idx;\n this._startDate_idx = this.startDateColumn() !== null ? this.columns().indexOf(this.startDateColumn()) : this._startDate_idx;\n this._endDate_idx = this.endDateColumn() !== null ? this.columns().indexOf(this.endDateColumn()) : this._endDate_idx;\n this._icon_idx = this.iconColumn() !== null ? this.columns().indexOf(this.iconColumn()) : this._icon_idx;\n this._color_idx = this.colorColumn() !== null ? this.columns().indexOf(this.colorColumn()) : this._color_idx;\n this._series_idx = this.seriesColumn() !== null ? this.columns().indexOf(this.seriesColumn()) : this._series_idx;\n this._bucket_idx = this.bucketColumn() !== null ? this.columns().indexOf(this.bucketColumn()) : -1;\n\n const context = this;\n const w = this.width();\n\n const x0 = 0;\n const x1 = w;\n\n this._interpolateX = d3ScaleLinear()\n .domain([this._minStart, this._maxEnd])\n .range([x0, x1])\n ;\n\n this.data().sort((a, b) => a[1] - b[1]);\n\n if (this._series_idx > -1) {\n this._origIdxMap = {};\n this._dataBySeries = {};\n this._bucketsBySeries = {};\n this.data().forEach((dataRow, origIdx) => {\n const seriesKey = dataRow[this._series_idx];\n if (!this._dataBySeries[seriesKey]) {\n this._origIdxMap[seriesKey] = {};\n this._dataBySeries[seriesKey] = [];\n }\n this._dataBySeries[seriesKey].push({\n dataRow,\n origIdx\n });\n });\n const gutter = this.gutter();\n let bucketOffset = 0;\n const seriesKeys = Object.keys(this._dataBySeries);\n seriesKeys.forEach(seriesKey => {\n this._dataBySeries[seriesKey].sort((a, b) => a.dataRow[1] - b.dataRow[1]);\n this._bucketsBySeries[seriesKey] = this.calcBuckets(this._dataBySeries[seriesKey].map(n => n.dataRow), 1, 2);\n this._bucketsBySeries[seriesKey].bucketHeight = this.bucketHeight();\n this._bucketsBySeries[seriesKey].bucketOffset = bucketOffset;\n bucketOffset += (this._bucketsBySeries[seriesKey].bucketHeight + this.strokeWidth() + this.gutter()) * (this._bucketsBySeries[seriesKey].maxBucket + 1);\n this._dataBySeries[seriesKey].forEach((n, i) => {\n this._origIdxMap[seriesKey][n.origIdx] = i;\n });\n });\n this._seriesBackgrounds = this._renderElement.selectAll(\".series-background\")\n .data(seriesKeys.map(key => {\n return this._bucketsBySeries[key];\n }))\n ;\n this._seriesBackgrounds\n .join(\n enter => enter.append(\"rect\")\n .attr(\"class\", \"series-background\"),\n update => update,\n exit => exit\n .each(function (d) {\n delete d.element;\n })\n .remove()\n )\n .attr(\"opacity\", d => d.props && d.props.hidden ? 0 : 1)\n .each(function (this: SVGGElement, d, i) {\n d3Select(this)\n .attr(\"x\", 0)\n .attr(\"y\", d.bucketOffset - (gutter / 2))\n .attr(\"width\", w)\n .attr(\"height\", ((d.bucketHeight + gutter) * (d.maxBucket + 1)) + gutter)\n .attr(\"fill\", i % 2 ? context.oddSeriesBackground() : context.evenSeriesBackground())\n ;\n });\n } else {\n if (this._bucket_idx !== -1) {\n this._buckets = this.calcBuckets(this.data(), this._startDate_idx, this._endDate_idx, this._bucket_idx);\n } else {\n this._buckets = this.calcBuckets(this.data(), this._startDate_idx, this._endDate_idx);\n }\n }\n const interpedStart = this._interpolateX(this._minStart);\n\n this.zoomTo(\n [interpedStart, 0],\n 1\n );\n\n const bucketHeight = this.bucketHeight();\n\n this.setRangeOptions();\n\n this._maxFontScale = (bucketHeight - (this.rangePadding() * 2));\n this.measureDataText();\n\n const itemSelection = this._renderElement.selectAll(\".item\")\n .data(this.data())\n ;\n const borderOffset1 = this.strokeWidth();\n const borderOffset2 = borderOffset1 * 2;\n itemSelection\n .join(\n enter => enter.append(\"g\")\n .attr(\"class\", \"item\")\n .on(\"click.selectionBag\", function (d, i) {\n const _id = d.id === undefined ? i : d.id;\n if (context._selection.isSelected({ _id, element: d.element })) {\n context._selection.clear();\n } else {\n context._selection.click(\n {\n _id,\n element: () => d.element\n },\n d3Event\n );\n }\n context.selectionChanged();\n d3Event().stopPropagation();\n })\n .on(\"click\", function (this: SVGElement, d) {\n const selected = d.element.classed(\"selected\");\n if (d[context.columns().length]) {\n d.__lparam = d[context.columns().length];\n }\n context.click(d, \"\", selected);\n })\n .on(\"dblclick\", function (this: SVGElement, d) {\n const selected = d.element.classed(\"selected\");\n if (d[context.columns().length]) {\n d.__lparam = d[context.columns().length];\n }\n context.click(d, \"\", selected);\n })\n .on(\"mousein\", function (d) {\n context.highlightItem(d3Select(this), d);\n const selected = d.element.classed(\"selected\");\n context.mousein(d, \"\", selected);\n })\n .on(\"mouseover\", function (d) {\n const d3evt = d3Event();\n context._tooltip._triggerElement = d.element;\n context._tooltip._cursorLoc = [\n d3evt.clientX,\n d3evt.clientY\n ];\n context._tooltip\n .data(d)\n .visible(true)\n .fitContent(true)\n .render()\n ;\n context.highlightItem(d3Select(this), d);\n const selected = d.element.classed(\"selected\");\n context.mouseover(d, \"\", selected);\n })\n .on(\"mouseout\", function (d) {\n context._tooltip\n .visible(false)\n .render()\n ;\n context.highlightItem(null, null);\n const selected = d.element.classed(\"selected\");\n context.mouseout(d, \"\", selected);\n })\n .each(function (d, i) {\n d.that = this;\n d.element = d3Select(this);\n d.x = context._interpolateX(d[1]);\n const endX = context._interpolateX(d[2]);\n if (context._series_idx > -1) {\n const seriesKey = d[context._series_idx];\n const bucket = context._bucketsBySeries[seriesKey].bucketMap[context._origIdxMap[seriesKey][i]];\n d.y = context._bucketsBySeries[seriesKey].interpolateY(bucket) + context._bucketsBySeries[seriesKey].bucketOffset;\n } else {\n const _i = context._bucket_idx === -1 ? i : d[context._bucket_idx];\n d.y = context._buckets.interpolateY(context._buckets.bucketMap[_i]);\n }\n d.props = {\n ...d[3],\n text: d[0]\n };\n d.props.width = endX - d.x;\n d.props.height = bucketHeight;\n d.x += borderOffset1;\n d.y += borderOffset1;\n d.props.width -= borderOffset2;\n d.props.height -= borderOffset2;\n d.element.attr(\"transform\", `translate(${d.x + (d.props.width / 2)} ${d.y + (d.props.height / 2)})`);\n }),\n update => update,\n exit => exit\n .each(function (d) {\n delete d.element;\n })\n .remove()\n )\n .attr(\"opacity\", d => d.props && d.props.hidden ? 0 : 1)\n .each(function (this: SVGGElement, d, i) {\n d.that = this;\n if (context._series_idx > -1) {\n const seriesKey = d[context._series_idx];\n d.x = context.renderRangeElement(d, i, false, context._rangeOptions, seriesKey);\n } else {\n d.x = context.renderRangeElement(d, i, false, context._rangeOptions);\n }\n })\n .on(\"dblclick.zoom\", d => {\n const x1 = this._interpolateX(d[1]);\n const x2 = this._interpolateX(d[2]);\n const xRange = x2 - x1;\n const xScale = w / xRange;\n this.zoomTo(\n [\n -x1 * xScale,\n 0\n ],\n xScale\n );\n })\n ;\n element.on(\"dblclick.zoom\", null);\n }\n renderRangeElement(d, i, transformEach = false, options: any = {}, seriesKey?: string) {\n const borderOffset1 = options.strokeWidth;\n const borderOffset2 = borderOffset1 * 2;\n const padding = options.rangePadding;\n let endX;\n const x = isNaN(this._transform.x) ? 0 : this._transform.x;\n const k = isNaN(this._transform.k) ? 1 : this._transform.k;\n let b;\n const bucketHeight = this.bucketHeight();\n d.that.setAttribute(\"data-series\", seriesKey);\n\n if (this._color_idx > -1) {\n d.that.setAttribute(\"data-color\", d[this._color_idx]);\n }\n\n if (seriesKey !== undefined) {\n b = this._bucketsBySeries[seriesKey].bucketMap[this._origIdxMap[seriesKey][i]];\n d.that.setAttribute(\"data-b\", b);\n d.that.setAttribute(\"data-bucketOffset\", this._bucketsBySeries[seriesKey].bucketOffset);\n d.y = this._bucketsBySeries[seriesKey].interpolateY(b) + this._bucketsBySeries[seriesKey].bucketOffset;\n d.that.setAttribute(\"data-dy\", d.y);\n } else {\n b = this._buckets.bucketMap[i];\n d.y = this._buckets.interpolateY(b);\n }\n if (this._color_idx > -1) {\n options.fill = d[this._color_idx];\n }\n if (!transformEach) {\n d.x = this._interpolateX(d[1]);\n endX = this._interpolateX(d[2]);\n d.props = {\n ...d[3],\n text: d[0]\n };\n d.props.width = (endX - d.x) / k;\n } else {\n d.x = this._interpolateX(d[1]) * k;\n endX = this._interpolateX(d[2]) * k;\n d.props = {\n ...d[3],\n text: d[0]\n };\n d.props.width = (endX - d.x) / k;\n d.x += x;\n d.props.width *= k;\n }\n d.props.height = bucketHeight;\n if (seriesKey === undefined && this._buckets.bucketScale < 1) {\n d.props.height = this._buckets.bucketScale * bucketHeight;\n }\n if (d.element === undefined && d.that) {\n d.element = d3Select(d.that);\n }\n d.element.attr(\"transform\", `translate(${d.x + (d.props.width / 2)} ${d.y + (d.props.height / 2)})`);\n\n d.x += borderOffset1;\n d.y += borderOffset1;\n d.props.width -= borderOffset2;\n d.props.height -= borderOffset2;\n d.props.width = d.props.width < 1 ? 1 : d.props.width;\n d.props.height = d.props.height < 1 ? 1 : d.props.height;\n\n let text = this.truncateText(d.props.text, d.props.width - padding, this._maxFontScale);\n\n if (text !== d.props.text) {\n text = this.truncateText(d.props.text, d.props.width - padding);\n } else {\n d.props.fontSize = this._maxFontScale * options.fontSize;\n }\n if (seriesKey === undefined && this._buckets.bucketScale < 1) {\n d.props.fontSize = Math.min(this._maxFontScale, this._buckets.bucketScale) * options.fontSize;\n }\n if (!this._maxY || this._maxY < d.y + d.props.height) {\n this._maxY = d.y + d.props.height;\n }\n if (!this._maxX || this._maxX < d.x + d.props.width) {\n this._maxX = d.x + d.props.width;\n }\n render(\n this._rangeRenderer,\n {\n ...options,\n ...d.props,\n text,\n },\n d.that\n );\n }\n\n setRangeOptions() {\n this._rangeOptions = {\n rangePadding: this.rangePadding(),\n fontFamily: this.fontFamily(),\n fontSize: this.fontSize(),\n strokeWidth: this.strokeWidth(),\n fill: this.fill(),\n stroke: this.stroke(),\n textFill: this.rangeFontColor(),\n cornerRadius: this.cornerRadius(),\n };\n }\n\n public _transform = { k: 1, x: 0, y: 0 };\n zoomed(transform) {\n this._transform = transform;\n switch (this.renderMode()) {\n case \"scale-all\":\n this._zoomScale = transform.k;\n this._zoomTranslate = [transform.x, 0];\n this._zoomG.attr(\"transform\", `translate(${transform.x} ${0})scale(${transform.k} 1)`);\n break;\n default:\n const options = this._rangeOptions;\n this.data().forEach((d, i) => {\n if (this._color_idx > -1) {\n options.fill = d[this._color_idx];\n }\n if (this._series_idx > -1) {\n const seriesKey = d[this._series_idx];\n this.renderRangeElement(d, i, true, options, seriesKey);\n } else {\n this.renderRangeElement(d, i, true, options);\n }\n });\n }\n\n this.zoomedHook(transform);\n }\n\n zoomedHook(transform) {\n\n }\n\n private calcBuckets(data, startKey: string | number, endKey: string | number, bucketKey?: string | number) {\n const bucketMap = {};\n const bucketKeyMap = {};\n const tol = this.overlapTolerence();\n const buckets = [{ end: -Infinity }];\n let maxBucket = 0;\n if (bucketKey !== undefined) {\n data.forEach((d, i) => {\n bucketMap[i] = d[bucketKey];\n bucketKeyMap[d[bucketKey]] = true;\n });\n maxBucket = Object.keys(bucketKeyMap).length;\n } else {\n data.forEach((d, i) => {\n for (let i2 = 0; i2 < buckets.length; ++i2) {\n if (i === 0 || buckets[i2][endKey] + tol <= d[startKey]) {\n bucketMap[i] = i2;\n if (maxBucket < i2) maxBucket = i2;\n buckets[i2][endKey] = d[endKey];\n break;\n }\n }\n if (bucketMap[i] === undefined) {\n bucketMap[i] = buckets.length;\n const b = {};\n b[endKey] = d[endKey];\n buckets.push(b as any);\n }\n\n if (maxBucket < bucketMap[i]) maxBucket = bucketMap[i];\n });\n }\n const height = (maxBucket + 1) * (this.bucketHeight() + this.gutter());\n return {\n bucketMap,\n maxBucket,\n bucketScale: this.height() / height,\n interpolateY: d3ScaleLinear()\n .domain([0, maxBucket + 1])\n .range([0, Math.min(this.height(), height)])\n };\n }\n\n data(): IGanttData[];\n data(_: IGanttData[]): this;\n data(_?: IGanttData[]): this | IGanttData[] {\n const retVal = super.data.apply(this, arguments);\n if (arguments.length > 0) {\n this._minStart = Math.min(...this.data().map(n => n[1])) ?? 0;\n this._maxEnd = Math.max(...this.data().map(n => n[2])) ?? 1;\n this.measureDataText(true);\n }\n return retVal;\n }\n\n protected _textWidths;\n protected _maxFontScale;\n protected _characterWidths;\n protected _prevFontFamily;\n protected _prevFontSize;\n measureDataText(forceMeasure = false) {\n const textWidths = {};\n const characterWidths = {};\n const fontFamily = this.fontFamily();\n const fontSize = this.fontSize();\n const bucketHeight = this.bucketHeight();\n\n if (bucketHeight) {\n this._maxFontScale = (bucketHeight - (this.rangePadding() * 2)) / fontSize;\n }\n\n if (forceMeasure || this._prevFontFamily !== fontFamily || this._prevFontSize !== fontSize) {\n characterWidths[\".\"] = Utility.textSize(\".\", fontFamily, fontSize).width;\n this.data().forEach(d => {\n if (!textWidths[d[0]]) {\n textWidths[d[0]] = Utility.textSize(d[0], fontFamily, fontSize).width;\n }\n d[0].split(\"\").forEach(char => {\n if (!characterWidths[char]) {\n characterWidths[char] = Utility.textSize(char, fontFamily, fontSize).width;\n }\n });\n });\n this._textWidths = textWidths;\n this._characterWidths = characterWidths;\n }\n this._prevFontFamily = fontFamily;\n this._prevFontSize = fontSize;\n }\n\n truncateText(text, width, scale = 1) {\n const textFits = this._textWidths[text] * scale < width;\n if (textFits) {\n return text;\n }\n let ret = \"\";\n let sum = 0;\n const _width = width - (this._characterWidths[\".\"] * 3);\n for (const char of text) {\n sum += this._characterWidths[char];\n if (sum < _width) {\n ret += char;\n } else {\n break;\n }\n }\n return _width < 0 ? \"\" : ret + \"...\";\n }\n\n resize(_size?: { width: number, height: number }) {\n let retVal;\n if (this.fitWidthToContent() || this.fitHeightToContent()) {\n retVal = super.resize.call(this, {\n width: _size.width,\n height: this._maxY\n });\n } else {\n retVal = super.resize.apply(this, arguments);\n }\n return retVal;\n }\n\n selectionChanged() {\n\n }\n\n highlightItem(_element, d) {\n\n }\n\n click(row, _col, sel) {\n\n }\n\n dblclick(row, _col, sel) {\n\n }\n\n mousein(row, _col, sel) {\n }\n\n mouseover(row, _col, sel) {\n }\n\n mouseout(row, _col, sel) {\n }\n}\nReactGantt.prototype._class += \" timeline_ReactGantt\";\n\nexport interface ReactGantt {\n titleColumn(): string;\n titleColumn(_: string): this;\n startDateColumn(): string;\n startDateColumn(_: string): this;\n endDateColumn(): string;\n endDateColumn(_: string): this;\n iconColumn(): string;\n iconColumn(_: string): this;\n colorColumn(): string;\n colorColumn(_: string): this;\n seriesColumn(): string;\n seriesColumn(_: string): this;\n bucketColumn(): string;\n bucketColumn(_: string): this;\n overlapTolerence(): number;\n overlapTolerence(_: number): this;\n smallestRangeWidth(): number;\n smallestRangeWidth(_: number): this;\n bucketHeight(): number;\n bucketHeight(_: number): this;\n gutter(): number;\n gutter(_: number): this;\n showToolbar_default(_: boolean): this;\n fontSize(): number;\n fontSize(_: number): this;\n fontFamily(): string;\n fontFamily(_: string): this;\n strokeWidth(): number;\n strokeWidth(_: number): this;\n stroke(): string;\n stroke(_: string): this;\n cornerRadius(): number;\n cornerRadius(_: number): this;\n fill(): string;\n fill(_: string): this;\n rangeFontColor(): string;\n rangeFontColor(_: string): this;\n rangePadding(): number;\n rangePadding(_: number): this;\n renderMode(): \"default\" | \"scale-all\";\n renderMode(_: \"default\" | \"scale-all\"): this;\n maxZoom(): number;\n maxZoom(_: number): this;\n fitWidthToContent(): boolean;\n fitWidthToContent(_: boolean): this;\n fitHeightToContent(): boolean;\n fitHeightToContent(_: boolean): this;\n evenSeriesBackground(): string;\n evenSeriesBackground(_: string): this;\n oddSeriesBackground(): string;\n oddSeriesBackground(_: string): this;\n}\n\nReactGantt.prototype.publish(\"fitWidthToContent\", false, \"boolean\", \"If true, resize will simply reapply the bounding box width\");\nReactGantt.prototype.publish(\"fitHeightToContent\", false, \"boolean\", \"If true, resize will simply reapply the bounding box height\");\nReactGantt.prototype.publish(\"titleColumn\", null, \"string\", \"Column name to for the title\");\nReactGantt.prototype.publish(\"startDateColumn\", null, \"string\", \"Column name to for the start date\");\nReactGantt.prototype.publish(\"endDateColumn\", null, \"string\", \"Column name to for the end date\");\nReactGantt.prototype.publish(\"iconColumn\", null, \"string\", \"Column name to for the icon\");\nReactGantt.prototype.publish(\"colorColumn\", null, \"string\", \"Column name to for the color\");\nReactGantt.prototype.publish(\"seriesColumn\", null, \"string\", \"Column name to for the series identifier\");\nReactGantt.prototype.publish(\"bucketColumn\", null, \"string\", \"Column name to for the bucket identifier\");\nReactGantt.prototype.publish(\"renderMode\", \"default\", \"set\", \"Render modes vary in features and performance\", [\"default\", \"scale-all\"]);\nReactGantt.prototype.publish(\"rangePadding\", 3, \"number\", \"Padding within each range rectangle (pixels)\");\nReactGantt.prototype.publish(\"fill\", \"#1f77b4\", \"string\", \"Background color of range rectangle\");\nReactGantt.prototype.publish(\"stroke\", null, \"string\", \"Color of range rectangle border\");\nReactGantt.prototype.publish(\"strokeWidth\", null, \"number\", \"Width of range rectangle border (pixels)\");\nReactGantt.prototype.publish(\"cornerRadius\", 3, \"number\", \"Space between range buckets (pixels)\");\nReactGantt.prototype.publish(\"fontFamily\", null, \"string\", \"Font family within range rectangle\", null, { optional: true });\nReactGantt.prototype.publish(\"fontSize\", 10, \"number\", \"Size of font within range rectangle (pixels)\");\nReactGantt.prototype.publish(\"rangeFontColor\", \"#ecf0f1\", \"html-color\", \"rangeFontColor\");\nReactGantt.prototype.publish(\"overlapTolerence\", 2, \"number\", \"overlapTolerence\");\nReactGantt.prototype.publish(\"smallestRangeWidth\", 10, \"number\", \"Width of the shortest range (pixels)\");\nReactGantt.prototype.publish(\"bucketHeight\", 100, \"number\", \"Max height of range element (pixels)\");\nReactGantt.prototype.publish(\"gutter\", 2, \"number\", \"Space between range buckets (pixels)\");\nReactGantt.prototype.publish(\"maxZoom\", 16, \"number\", \"Maximum zoom\");\nReactGantt.prototype.publish(\"evenSeriesBackground\", \"#FFFFFF\", \"html-color\", \"Background color of even series rows\");\nReactGantt.prototype.publish(\"oddSeriesBackground\", \"#DDDDDD\", \"html-color\", \"Background color of odd series rows\");\n","import { Axis } from \"@hpcc-js/chart\";\nimport { SVGWidget } from \"@hpcc-js/common\";\nimport { ReactGantt } from \"./ReactGantt\";\n\nexport type IAxisGanttData = [string, number | string, number | string, any?] | any[];\n\nexport class ReactAxisGantt extends SVGWidget {\n\n protected _topAxis: Axis = new Axis(\"center\")\n .orientation(\"top\")\n .type(\"linear\")\n .shrinkToFit(\"none\")\n .overlapMode(\"hide\")\n .extend(0)\n .tickFormat(\"d\")\n ;\n protected _gantt: ReactGantt = new ReactGantt(\"center\")\n .stroke(\"#000000\")\n ;\n protected _bottomAxis: Axis = new Axis(\"center\")\n .orientation(\"bottom\")\n .type(\"linear\")\n .shrinkToFit(\"none\")\n .overlapMode(\"hide\")\n .extend(0)\n .tickFormat(\"d\")\n ;\n\n protected _topAxisElement;\n protected _contentElement;\n protected _bottomAxisElement;\n protected _topRect;\n protected _contentRect;\n protected _bottomRect;\n\n protected rangeRenderer;\n\n constructor() {\n super();\n this._drawStartPos = \"origin\";\n this.rangeRenderer = function () {\n const ret = this._gantt.rangeRenderer.apply(this._gantt, arguments);\n if (!arguments.length) return ret;\n return this;\n };\n }\n\n selection(_: any[]): this;\n selection(): any[];\n selection(_?: any[]): any[] | this {\n if (!arguments.length) return this._gantt.selection();\n this._gantt.selection(_);\n return this;\n }\n\n resizeWrappers() {\n\n const w = this.width();\n const h = this.height();\n\n const axisHeight = this.axisHeight(); //TODO: Dynamic scaling to allow for small resolutions?\n\n const contentHeight = (h - (axisHeight * 2));\n const borderOffset1 = this.strokeWidth();\n this._topRect\n .attr(\"height\", axisHeight)\n .attr(\"width\", w)\n .attr(\"fill\", \"transparent\")\n ;\n this._topAxisElement.attr(\"transform\", \"translate(0 0)\");\n this._topAxis.resize({ height: axisHeight, width: w });\n this._contentRect\n .attr(\"height\", contentHeight)\n .attr(\"width\", w)\n .attr(\"fill\", \"transparent\")\n ;\n this._contentElement.attr(\"transform\", `translate(0 ${axisHeight + borderOffset1})`);\n this._gantt.resize({ height: contentHeight, width: w });\n this._bottomRect\n .attr(\"height\", axisHeight)\n .attr(\"width\", w)\n .attr(\"fill\", \"transparent\")\n ;\n this._bottomAxisElement.attr(\"transform\", `translate(0 ${axisHeight + contentHeight + borderOffset1})`);\n this._bottomAxis.resize({ height: axisHeight, width: w });\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n\n this._gantt.click = (row, col, sel) => {\n this.click(row, col, sel);\n };\n\n this._gantt.dblclick = (row, col, sel) => {\n this.dblclick(row, col, sel);\n };\n\n this._topAxisElement = element.append(\"g\")\n .attr(\"class\", \"top-axis-wrapper\")\n ;\n this._topRect = this._topAxisElement.append(\"rect\")\n .attr(\"class\", \"top-axis-rect\")\n ;\n this._contentElement = element.append(\"g\")\n .attr(\"class\", \"content-wrapper\")\n ;\n this._contentRect = this._contentElement.append(\"rect\")\n .attr(\"class\", \"content-rect\")\n ;\n this._bottomAxisElement = element.append(\"g\")\n .attr(\"class\", \"bottom-axis-wrapper\")\n ;\n this._bottomRect = this._bottomAxisElement.append(\"rect\")\n .attr(\"class\", \"top-axis-rect\")\n ;\n this._topAxis.target(this._topAxisElement.node());\n this._gantt.target(this._contentElement.node()).bucketHeight(30);\n this._bottomAxis.target(this._bottomAxisElement.node());\n\n this.resizeWrappers();\n\n this._gantt.zoomedHook = (transform) => {\n this.onzoom(transform);\n };\n }\n\n onzoom(transform) {\n\n const w = this.width();\n const low = this._gantt._minStart;\n const high = this._gantt._maxEnd;\n const range = high - low;\n const wpp = range / w;\n const nextLow = Math.floor(low - (wpp * (transform.x / transform.k)));\n const nextHigh = Math.ceil((range / transform.k) + nextLow);\n\n this._topAxis\n .fontFamily(this.axisFontFamily())\n .fontSize(this.axisFontSize())\n .tickLength(this.axisTickLength())\n .low(nextLow)\n .high(nextHigh)\n .render()\n ;\n this._bottomAxis\n .fontFamily(this.axisFontFamily())\n .fontSize(this.axisFontSize())\n .tickLength(this.axisTickLength())\n .low(nextLow)\n .high(nextHigh)\n .render()\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n this._topAxis.tickFormat(this.tickFormat()).render();\n this._bottomAxis.tickFormat(this.tickFormat()).render();\n this._gantt.render();\n }\n\n columns(): string[];\n columns(_: string[]): this;\n columns(_?: string[]): this | string[] {\n const retVal = super.columns.apply(this, arguments);\n if (arguments.length > 0) {\n this._gantt.columns(_);\n }\n return retVal;\n }\n\n data(): IAxisGanttData[];\n data(_: IAxisGanttData[]): this;\n data(_?: IAxisGanttData[]): this | IAxisGanttData[] {\n const retVal = super.data.apply(this, arguments);\n if (arguments.length > 0) {\n const ganttData: any[] = this.data().map(n => {\n const ret = [...n];\n ret[1] = isNaN(n[1] as any) ? new Date(n[1]).getTime() : Number(n[1]);\n ret[2] = isNaN(n[2] as any) ? new Date(n[2]).getTime() : Number(n[2]);\n return ret;\n });\n this._gantt._minStart = Math.min(...ganttData.map(n => n[1])) ?? 0;\n this._gantt._maxEnd = Math.max(...ganttData.map(n => n[2])) ?? 1;\n this._gantt.data(ganttData);\n }\n return retVal;\n }\n\n resize(_size?: { width: number, height: number }) {\n const retVal = super.resize.apply(this, arguments);\n\n if (this._topAxisElement) {\n this.resizeWrappers();\n }\n\n return retVal;\n }\n\n click(row, col, sel) {\n\n }\n\n dblclick(row, col, sel) {\n\n }\n\n tooltip() {\n return this._gantt._tooltip;\n }\n}\nReactAxisGantt.prototype._class += \" timeline_ReactAxisGantt\";\n\nexport interface ReactAxisGantt {\n tickFormat(): string;\n tickFormat(_: string): this;\n tickFormat_exists(): boolean;\n overlapTolerence(): number;\n overlapTolerence(_: number): this;\n smallestRangeWidth(): number;\n smallestRangeWidth(_: number): this;\n scaleMode(): boolean;\n scaleMode(_: boolean): this;\n fontSize(): number;\n fontSize(_: number): this;\n fontFamily(): string;\n fontFamily(_: string): this;\n strokeWidth(): number;\n strokeWidth(_: number): this;\n stroke(): string;\n stroke(_: string): this;\n cornerRadius(): number;\n cornerRadius(_: number): this;\n axisFontSize(): number;\n axisFontSize(_: number): this;\n axisFontFamily(): string;\n axisFontFamily(_: string): this;\n axisTickLength(): number;\n axisTickLength(_: number): this;\n axisHeight(): number;\n axisHeight(_: number): this;\n titleColumn(): string;\n titleColumn(_: string): this;\n startDateColumn(): string;\n startDateColumn(_: string): this;\n endDateColumn(): string;\n endDateColumn(_: string): this;\n iconColumn(): string;\n iconColumn(_: string): this;\n colorColumn(): string;\n colorColumn(_: string): this;\n bucketColumn(): string;\n bucketColumn(_: string): this;\n maxZoom(): number;\n maxZoom(_: number): this;\n}\nReactAxisGantt.prototype.publish(\"tickFormat\", null, \"string\", \"Format rule applied to axis tick labels\", undefined, { optional: true });\nReactAxisGantt.prototype.publish(\"axisHeight\", 22, \"number\", \"Height of axes (pixels)\");\nReactAxisGantt.prototype.publish(\"overlapTolerence\", 2, \"number\", \"overlapTolerence\");\nReactAxisGantt.prototype.publish(\"smallestRangeWidth\", 10, \"number\", \"Width of the shortest range (pixels)\");\nReactAxisGantt.prototype.publish(\"axisFontSize\", null, \"number\", \"Font size of axis tick labels\");\nReactAxisGantt.prototype.publish(\"axisFontFamily\", null, \"string\", \"Font family of axis tick labels\");\nReactAxisGantt.prototype.publish(\"axisTickLength\", null, \"number\", \"Length of axis ticks\");\nReactAxisGantt.prototype.publishProxy(\"gutter\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"renderMode\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"strokeWidth\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"fontSize\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"fontFamily\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"stroke\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"cornerRadius\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"titleColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"startDateColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"endDateColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"iconColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"colorColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"bucketColumn\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"maxZoom\", \"_gantt\");\nReactAxisGantt.prototype.publishProxy(\"bucketHeight\", \"_gantt\");\n","import { min as d3Min, max as d3Max } from \"d3-array\";\nimport { Axis } from \"@hpcc-js/chart\";\nimport { Border2 } from \"@hpcc-js/layout\";\nimport { ReactGantt } from \"./ReactGantt\";\nimport { IAxisGanttData } from \"./ReactAxisGantt\";\nimport { React } from \"@hpcc-js/react\";\n\nexport class ReactAxisGanttSeries extends Border2 {\n\n protected _topAxis: Axis = new Axis(\"origin\")\n .orientation(\"top\")\n .type(\"linear\")\n .shrinkToFit(\"none\")\n .overlapMode(\"hide\")\n .extend(0)\n .tickFormat(\"d\")\n ;\n protected _gantt: ReactGantt = new ReactGantt(\"origin\")\n .stroke(\"#000000\")\n .fitHeightToContent(true)\n ;\n protected _bottomAxis: Axis = new Axis(\"origin\")\n .orientation(\"bottom\")\n .type(\"linear\")\n .shrinkToFit(\"none\")\n .overlapMode(\"hide\")\n .extend(0)\n .tickFormat(\"d\")\n ;\n\n protected _topAxisElement;\n protected _contentElement;\n protected _bottomAxisElement;\n protected _topRect;\n protected _contentRect;\n protected _bottomRect;\n\n constructor() {\n super();\n this.centerOverflowX_default(\"hidden\");\n this.centerOverflowY_default(\"auto\");\n }\n\n selection(_: any[]): this;\n selection(): any[];\n selection(_?: any[]): any[] | this {\n if (!arguments.length) return this._gantt.selection();\n this._gantt.selection(_);\n return this;\n }\n\n rangeRenderer(): React.FunctionComponent;\n rangeRenderer(_: React.FunctionComponent): this;\n rangeRenderer(_?: React.FunctionComponent): this | React.FunctionComponent {\n const ret = this._gantt.rangeRenderer.apply(this._gantt, arguments);\n if (!arguments.length) return ret;\n return this;\n }\n\n resizeWrappers() {\n\n const w = this.width();\n const h = this.height();\n\n const axisHeight = this.axisHeight(); //TODO: Dynamic scaling to allow for small resolutions?\n const contentHeight = (h - (axisHeight * 2));\n\n this.bottomHeight(axisHeight);\n\n this._topWA.resize({\n width: w,\n height: axisHeight\n });\n this._centerWA.resize({\n width: w,\n height: contentHeight\n });\n this._bottomWA.resize({\n width: w,\n height: axisHeight\n });\n this.top().render();\n this.bottom().render();\n this.center().render();\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n\n this._gantt.click = (row, col, sel) => {\n this.click(row, col, sel);\n };\n\n this._gantt.dblclick = (row, col, sel) => {\n this.dblclick(row, col, sel);\n };\n\n this.top(this._topAxis);\n this.center(this._gantt);\n this.bottom(this._bottomAxis);\n\n this.resizeWrappers();\n\n this._gantt.zoomedHook = (transform) => {\n this.onzoom(transform);\n };\n }\n\n onzoom(transform) {\n const w = this.width();\n const low = this._gantt._minStart;\n const high = this._gantt._maxEnd;\n const range = high - low;\n const wpp = range / w;\n const nextLow = Math.floor(low - (wpp * (transform.x / transform.k)));\n const nextHigh = Math.ceil((range / transform.k) + nextLow);\n\n this._topAxis\n .fontFamily(this.axisFontFamily())\n .fontSize(this.axisFontSize())\n .tickLength(this.axisTickLength())\n .low(nextLow)\n .high(nextHigh)\n .lazyRender()\n ;\n this._bottomAxis\n .fontFamily(this.axisFontFamily())\n .fontSize(this.axisFontSize())\n .tickLength(this.axisTickLength())\n .low(nextLow)\n .high(nextHigh)\n .lazyRender()\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n this._topAxis.tickFormat(this.tickFormat()).render();\n this._bottomAxis.tickFormat(this.tickFormat()).render();\n this._gantt.render();\n }\n\n columns(): string[];\n columns(_: string[]): this;\n columns(_?: string[]): this | string[] {\n const retVal = super.columns.apply(this, arguments);\n if (arguments.length > 0) {\n this._gantt.columns(_);\n }\n return retVal;\n }\n\n data(): IAxisGanttData[];\n data(_: IAxisGanttData[]): this;\n data(_?: IAxisGanttData[]): this | IAxisGanttData[] {\n const retVal = super.data.apply(this, arguments);\n if (arguments.length > 0) {\n const ganttData: any[] = this.data().map(n => {\n const ret = [...n];\n ret[1] = isNaN(n[1] as any) ? new Date(n[1]).getTime() : Number(n[1]);\n ret[2] = isNaN(n[2] as any) ? new Date(n[2]).getTime() : Number(n[2]);\n return ret;\n });\n\n this._gantt._minStart = d3Min(ganttData, n => n[1]);\n this._gantt._maxEnd = d3Max(ganttData, n => n[2]);\n this._gantt.data(ganttData);\n }\n return retVal;\n }\n\n resize(_size?: { width: number, height: number }) {\n const retVal = super.resize.apply(this, arguments);\n\n if (this._topAxisElement) {\n this.resizeWrappers();\n }\n\n return retVal;\n }\n\n click(row, col, sel) {\n\n }\n\n dblclick(row, col, sel) {\n\n }\n\n tooltip() {\n return this._gantt._tooltip;\n }\n}\nReactAxisGanttSeries.prototype._class += \" timeline_ReactAxisGanttSeries\";\n\nexport interface ReactAxisGanttSeries {\n tickFormat(): string;\n tickFormat(_: string): this;\n tickFormat_exists(): boolean;\n overlapTolerence(): number;\n overlapTolerence(_: number): this;\n smallestRangeWidth(): number;\n smallestRangeWidth(_: number): this;\n scaleMode(): boolean;\n scaleMode(_: boolean): this;\n fontSize(): number;\n fontSize(_: number): this;\n fontFamily(): string;\n fontFamily(_: string): this;\n strokeWidth(): number;\n strokeWidth(_: number): this;\n stroke(): string;\n stroke(_: string): this;\n cornerRadius(): number;\n cornerRadius(_: number): this;\n axisFontSize(): number;\n axisFontSize(_: number): this;\n axisFontFamily(): string;\n axisFontFamily(_: string): this;\n axisTickLength(): number;\n axisTickLength(_: number): this;\n axisHeight(): number;\n axisHeight(_: number): this;\n titleColumn(): string;\n titleColumn(_: string): this;\n startDateColumn(): string;\n startDateColumn(_: string): this;\n endDateColumn(): string;\n endDateColumn(_: string): this;\n iconColumn(): string;\n iconColumn(_: string): this;\n colorColumn(): string;\n colorColumn(_: string): this;\n seriesColumn(): string;\n seriesColumn(_: string): this;\n bucketColumn(): string;\n bucketColumn(_: string): this;\n maxZoom(): number;\n maxZoom(_: number): this;\n}\nReactAxisGanttSeries.prototype.publish(\"tickFormat\", null, \"string\", \"Format rule applied to axis tick labels\", undefined, { optional: true });\nReactAxisGanttSeries.prototype.publish(\"axisHeight\", 22, \"number\", \"Height of axes (pixels)\");\nReactAxisGanttSeries.prototype.publish(\"overlapTolerence\", 2, \"number\", \"overlapTolerence\");\nReactAxisGanttSeries.prototype.publish(\"smallestRangeWidth\", 10, \"number\", \"Width of the shortest range (pixels)\");\nReactAxisGanttSeries.prototype.publish(\"axisFontSize\", null, \"number\", \"Font size of axis tick labels\");\nReactAxisGanttSeries.prototype.publish(\"axisFontFamily\", null, \"string\", \"Font family of axis tick labels\");\nReactAxisGanttSeries.prototype.publish(\"axisTickLength\", null, \"number\", \"Length of axis ticks\");\nReactAxisGanttSeries.prototype.publishProxy(\"gutter\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"renderMode\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"strokeWidth\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"fontSize\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"fontFamily\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"stroke\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"cornerRadius\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"titleColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"startDateColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"endDateColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"iconColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"colorColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"seriesColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"bucketColumn\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"maxZoom\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"evenSeriesBackground\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"oddSeriesBackground\", \"_gantt\");\nReactAxisGanttSeries.prototype.publishProxy(\"bucketHeight\", \"_gantt\");\n","import { timeFormat as d3TimeFormat, timeParse as d3TimeParse } from \"d3-time-format\";\nimport { ReactAxisGantt } from \"./ReactAxisGantt\";\n\nexport class ReactTimeline extends ReactAxisGantt {\n\n protected _axisLabelFormatter;//TODO: add a type to this? d3 time formatting function type?\n\n constructor(){\n super();\n this._drawStartPos = \"origin\";\n this._topAxis.type(\"time\");\n this._bottomAxis.type(\"time\");\n\n this.tooltipHTML((d: any) => {\n const parser = d3TimeParse(\"%Q\");\n const startTime = parser(d[1]);\n const endTime = parser(d[2]);\n\n const formatter = d3TimeFormat(this.tooltipTimeFormat());\n return `<div style=\"text-align:center;\">${d[0]}<br/><br/>${formatter(startTime)} -&gt; ${formatter(endTime)}</div>`;\n });\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n if(this.timePattern_exists()) {\n\n let minTimestamp = Infinity;\n let maxTimestamp = -Infinity;\n let lowDateStr = \"\";\n let highDateStr = \"\";\n this.data().map(n=>{\n const start = new Date(n[1]).getTime();\n const end = new Date(n[2]).getTime();\n if(minTimestamp > start){\n minTimestamp = start;\n lowDateStr = \"\" + n[1];\n }\n if(maxTimestamp < end){\n maxTimestamp = end;\n highDateStr = \"\" + n[2];\n }\n });\n this._topAxis\n .type(\"time\")\n .timePattern(this.timePattern())\n .overlapMode(\"none\")\n .tickFormat(this._axisLabelFormatter)\n .low(lowDateStr)\n .high(highDateStr)\n ;\n this._bottomAxis\n .type(\"time\")\n .timePattern(this.timePattern())\n .overlapMode(\"none\")\n .tickFormat(this._axisLabelFormatter)\n .low(lowDateStr)\n .high(highDateStr)\n ;\n this._gantt._minStart = minTimestamp;\n this._gantt._maxEnd = maxTimestamp;\n }\n }\n\n tooltipHTML(callback) {\n this._tooltipHTML = callback;\n this.tooltip().tooltipHTML(this._tooltipHTML);\n return this;\n }\n\n parseAxisValue(v) {\n const parseTime = d3TimeParse(\"%Q\");\n const parsedTime = parseTime(v);\n\n const formatTime = d3TimeFormat(this.timePattern());\n return formatTime(parsedTime);\n }\n\n onzoom(transform) {\n \n const w = this.width();\n const low = this._gantt._minStart;\n const high = this._gantt._maxEnd;\n const range = high - low;\n const wpp = range / w;\n const nextLow = Math.floor(low - (wpp * (transform.x / transform.k)));\n const nextHigh = Math.ceil((range / transform.k) + nextLow);\n\n this._topAxis\n .low(this.parseAxisValue(nextLow))\n .high(this.parseAxisValue(nextHigh))\n .render()\n ;\n this._bottomAxis\n .low(this.parseAxisValue(nextLow))\n .high(this.parseAxisValue(nextHigh))\n .render()\n ;\n }\n\n _tooltipHTML: (_) => string;\n}\nReactTimeline.prototype._class += \" timeline_ReactTimeline\";\n\nexport interface ReactTimeline {\n timePattern(): string;\n timePattern(_: string): this;\n timePattern_exists(): boolean;\n tooltipTimeFormat(): string;\n tooltipTimeFormat(_: string): this;\n}\nReactTimeline.prototype.publish(\"timePattern\", \"%Y-%m-%d\", \"string\", \"Time pattern used for parsing datetime strings on each data row\", null, {optional:true});\nReactTimeline.prototype.publish(\"tooltipTimeFormat\", \"%Y-%m-%d\", \"string\", \"Time format used in the default html tooltip\");\n\n","import { timeFormat as d3TimeFormat, timeParse as d3TimeParse } from \"d3-time-format\";\nimport { ReactAxisGanttSeries } from \"./ReactAxisGanttSeries\";\n\nconst parseTime = d3TimeParse(\"%Q\");\nexport class ReactTimelineSeries extends ReactAxisGanttSeries {\n\n protected _axisLabelFormatter;//TODO: add a type to this? d3 time formatting function type?\n\n constructor(){\n super();\n this._topAxis.type(\"time\");\n this._bottomAxis.type(\"time\");\n\n this.tooltipHTML((d: any) => {\n const startTime = parseTime(d[1]);\n const endTime = parseTime(d[2]);\n\n const formatter = d3TimeFormat(this.tooltipTimeFormat());\n return `<div style=\"text-align:center;\">${d[0]}<br/><br/>${formatter(startTime)} -&gt; ${formatter(endTime)}</div>`;\n });\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n if(this.timePattern_exists()) {\n\n let minTimestamp = Infinity;\n let maxTimestamp = -Infinity;\n let lowDateStr = \"\";\n let highDateStr = \"\";\n this.data().forEach(n=>{\n const start = new Date(n[1]).getTime();\n const end = new Date(n[2]).getTime();\n if(minTimestamp > start){\n minTimestamp = start;\n lowDateStr = \"\" + n[1];\n }\n if(maxTimestamp < end){\n maxTimestamp = end;\n highDateStr = \"\" + n[2];\n }\n });\n this._topAxis\n .type(\"time\")\n .timePattern(this.timePattern())\n .overlapMode(\"none\")\n .tickFormat(this._axisLabelFormatter)\n .low(lowDateStr)\n .high(highDateStr)\n ;\n this._bottomAxis\n .type(\"time\")\n .timePattern(this.timePattern())\n .overlapMode(\"none\")\n .tickFormat(this._axisLabelFormatter)\n .low(lowDateStr)\n .high(highDateStr)\n ;\n this._gantt._minStart = minTimestamp;\n this._gantt._maxEnd = maxTimestamp;\n }\n }\n\n tooltipHTML(callback) {\n this._tooltipHTML = callback;\n this.tooltip().tooltipHTML(this._tooltipHTML);\n return this;\n }\n\n parseAxisValue(v) {\n const parsedTime = parseTime(v);\n\n const formatTime = d3TimeFormat(this.timePattern());\n return formatTime(parsedTime);\n }\n\n onzoom(transform) {\n \n const w = this.width();\n const low = this._gantt._minStart;\n const high = this._gantt._maxEnd;\n const range = high - low;\n const wpp = range / w;\n const nextLow = Math.floor(low - (wpp * (transform.x / transform.k)));\n const nextHigh = Math.ceil((range / transform.k) + nextLow);\n\n this._topAxis\n .low(this.parseAxisValue(nextLow))\n .high(this.parseAxisValue(nextHigh))\n .render()\n ;\n this._bottomAxis\n .low(this.parseAxisValue(nextLow))\n .high(this.parseAxisValue(nextHigh))\n .render()\n ;\n }\n\n _tooltipHTML: (_) => string;\n}\nReactTimelineSeries.prototype._class += \" timeline_ReactTimelineSeries\";\n\nexport interface ReactTimelineSeries {\n timePattern(): string;\n timePattern(_: string): this;\n timePattern_exists(): boolean;\n tooltipTimeFormat(): string;\n tooltipTimeFormat(_: string): this;\n}\nReactTimelineSeries.prototype.publish(\"timePattern\", \"%Y-%m-%d\", \"string\", \"Time pattern used for parsing datetime strings on each data row\", null, {optional:true});\nReactTimelineSeries.prototype.publish(\"tooltipTimeFormat\", \"%Y-%m-%d\", \"string\", \"Time format used in the default html tooltip\");\n\n"],"names":["d3Local","d3ScaleBand","d3Extent","d3TimeParse","d3TimeFormat","d3ZoomIdentity","d3Zoom","d3Select","d3ScaleLinear","d3Min","d3Max"],"mappings":";;;;;;;AAAO,IAAM,QAAQ,GAAG;AACjB,IAAM,WAAW,GAAG;AACpB,IAAM,aAAa,GAAG;;ACF7B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,aAAa,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE;AACnC,EAAE,aAAa,GAAG,MAAM,CAAC,cAAc;AACvC,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;AAClF,MAAM,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACvG,EAAE,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5B,CAAC;;AAEM,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE;AAChC,EAAE,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;AAC3C,MAAM,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC;AAC/F,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;AACrB,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACvC,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;AACtF;;AAEO,IAAI,QAAQ,GAAG,WAAW;AACjC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAE;AACnD,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC3D,UAAU,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;AAC1B,UAAU,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtF;AACA,MAAM,OAAO,CAAC;AACd;AACA,EAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;AACxC;;AA6KO,SAAS,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC9C,EAAE,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACvF,MAAM,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;AAC9B,UAAU,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9D,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACzB;AACA;AACA,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1D;;AA0GuB,OAAO,eAAe,KAAK,UAAU,GAAG,eAAe,GAAG,UAAU,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE;AACvH,EAAE,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC;AAC5B,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,iBAAiB,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;AAClF;;AC1UA,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE;AAC/B,EAAE,KAAK,GAAG,KAAK,MAAM,GAAG,GAAG,GAAG,EAAE;AAChC,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ;;AAE7B,EAAE,IAAY,OAAO,QAAQ,KAAK,WAAW,EAAE,EAAE,OAAO;;AAExD,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtE,EAAE,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,EAAE,KAAK,CAAC,IAAI,GAAG,UAAU;;AAEzB,EAAE,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC1B,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC;AAC/C,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC7B;AACA,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3B;;AAEA,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE;AACxB,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG;AAClC,GAAG,MAAM;AACT,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AACnD;AACA;;;;;ACfA,IAAA,SAAA,kBAAA,UAAA,MAAA,EAAA;IAA+B,SAAS,CAAA,SAAA,EAAA,MAAA,CAAA;AAuBpC,IAAA,SAAA,SAAA,GAAA;QACI,IAAA,KAAA,GAAA,MAAK,WAAE,IAAC,IAAA;QAdJ,KAAS,CAAA,SAAA,GAAGA,KAAO,EAAc;QACjC,KAAc,CAAA,cAAA,GAAGA,KAAO,EAAa;QAKnC,KAAU,CAAA,UAAA,GAAG,CAAC;QACd,KAAc,CAAA,cAAA,GAAG,CAAC;QAClB,KAAY,CAAA,YAAA,GAAG,CAAC;QAChB,KAAS,CAAA,SAAA,GAAG,EAAE;QACd,KAAU,CAAA,UAAA,GAAG,EAAE;QACf,KAAY,CAAA,YAAA,GAAG,EAAE;AAIvB,QAAA,QAAQ,CAAC,IAAI,CAAC,KAAI,CAAC;AACnB,QAAA,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAI,CAAC;AAEvC,QAAA,KAAI,CAAC,aAAa,GAAG,QAAQ;QAC7B,KAAI,CAAC,WAAW,CAAC,UAAC,CAAM,EAAK,EAAA,OAAA,UAAW,CAAA,MAAA,CAAA,CAAC,CAAC,KAAI,CAAC,UAAU,CAAC,EAAgB,eAAA,CAAA,CAAA,MAAA,CAAA,KAAI,CAAC,gBAAgB,CAAC,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAO,MAAA,CAAA,CAAA,MAAA,CAAA,KAAI,CAAC,gBAAgB,CAAC,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAE,CAAA,EAAA,CAAC;AAElN,QAAA,KAAI,CAAC,MAAM,GAAG,IAAI,IAAI;aACjB,IAAI,CAAC,MAAM,CAAC;AAEjB,QAAA,KAAI,CAAC,MAAM,GAAG,IAAI,IAAI;aACjB,IAAI,CAAC,MAAM,CAAC;AAEjB,QAAA,KAAI,CAAC,aAAa,GAAGC,SAAW;aAC3B,YAAY,CAAC,GAAG;aAChB,YAAY,CAAC,GAAG,CAAC;;;AAI1B,IAAA,SAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;AACI,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,YAAY;KAC7C;AAED,IAAA,SAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;QAAA,IAGC,KAAA,GAAA,IAAA;AAFG,QAAA,IAAM,IAAI,GAAA,aAAA,CAAA,aAAA,CAAA,EAAA,EAAO,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,KAAI,CAAC,cAAc,CAAC,CAAA,EAAA,CAAC,EAAK,IAAA,CAAA,EAAA,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,YAAY,CAAC,CAAA,EAAA,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,KAAI,CAAC,YAAY,CAAC,CAAA,EAAA,CAAC,OAAC;AACjJ,QAAA,OAAOC,MAAQ,CAAC,IAAI,CAAC;KACxB;AAED,IAAA,SAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;AACI,QAAA,IAAM,MAAM,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE;AAC7F,QAAA,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;AACpD,YAAA,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;gBACtD,IAAM,MAAM,GAAGC,SAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC9C,IAAM,SAAS,GAAGC,UAAY,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClD,IAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC/B,IAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC/B,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE;oBACzB,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC3E,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;;qBACxE;AACH,oBAAA,IAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE;oBAC7B,IAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK;oBACxC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;AAC5B,oBAAA,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;;;;AAInE,QAAA,OAAO,MAAM;KAChB;IAED,SAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,CAAC,EAAA;AACV,QAAA,IAAG,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,WAAW,EAAC;YAC9D,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;;AAElD,QAAA,IAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,GAAG;AAC7C,QAAA,OAAO,GAAG;KACb;IAED,SAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,CAAC,EAAA;AACR,QAAA,IAAG,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,WAAW,EAAC;YAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;;AAEhD,QAAA,IAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,GAAG;AAC3C,QAAA,OAAO,GAAG;KACb;IAED,SAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,CAAC,EAAA;AACP,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;KACnD;AAGD,IAAA,SAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;;AAEI,QAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAEC,YAAc,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;KAC7G;AAED,IAAA,SAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;AACI,QAAA,IAAI,CAAC,SAAS,GAAG,OAAO,EAAE,CAAC,SAAS;QACpC,IAAI,CAAC,MAAM,EAAE;KAChB;AAGD,IAAA,SAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,OAAO,EAAE,OAAO,EAAA;QAAtB,IA0CC,KAAA,GAAA,IAAA;AAzCG,QAAA,MAAA,CAAA,SAAK,CAAC,KAAK,CAAA,IAAA,CAAA,IAAA,EAAC,OAAO,EAAE,OAAO,CAAC;AAC7B,QAAA,IAAI,CAAC,KAAK,GAAGC,IAAM;aACd,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;aAC/B,EAAE,CAAC,MAAM,EAAE,YAAA;YACR,KAAI,CAAC,MAAM,EAAE;AACjB,SAAC,CAAC;QAGN,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM;AAClC,aAAA,IAAI,CAAC,MAAM,EAAE,OAAO;AACpB,aAAA,IAAI,CAAC,SAAS,EAAE,CAAC;aACjB,EAAE,CAAC,UAAU,EAAE,YAAA;AACZ,YAAA,OAAO,EAAE,CAAC,eAAe,EAAE;YAC3B,OAAO,KAAI,CAAC,UAAU;YACtB,KAAI,CAAC,SAAS,EAAE;AACpB,SAAC,CAAC;AAEN,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC;AACvE,QAAA,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;AACjE,QAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC;AACzE,QAAA,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;AACjE,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC;AACvE,QAAA,IAAI,CAAC;AACA,aAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AAC7B,aAAA,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE;AAC5B,aAAA,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;aAC9C,WAAW,CAAC,MAAM;AAClB,aAAA,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,SAAS,GAAG,MAAM;aACzD,MAAM,CAAC,GAAG,CAAC;AAEhB,QAAA,IAAI,CAAC;AACA,aAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AAC7B,aAAA,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE;AAC5B,aAAA,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;aAC9C,WAAW,CAAC,MAAM;AAClB,aAAA,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,SAAS,GAAG,MAAM;aACzD,MAAM,CAAC,GAAG,CAAC;AAGhB,QAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;KACrD;AAGD,IAAA,SAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,OAAO,EAAE,OAAO,EAAA;QAAvB,IAoKC,KAAA,GAAA,IAAA;AAnKG,QAAA,MAAA,CAAA,SAAK,CAAC,MAAM,CAAA,IAAA,CAAA,IAAA,EAAC,OAAO,EAAE,OAAO,CAAC;AAE9B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;AAEpB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU;AAC5G,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc;AAC5H,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY;AACpH,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS;AACxG,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU;AAC5G,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY;QAEpH,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,YAAY,EAAE,EAAE;AAChD,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,EAAE;YAC5C,IAAI,CAAC,SAAS,EAAE;YAChB;;QAGJ,IAAI,CAAC,gBAAgB,GAAGF,UAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAE9D,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAE5B,QAAA,IAAI,CAAC;AACA,aAAA,IAAI,CAAC,GAAG,EAAE,CAAC;AACX,aAAA,IAAI,CAAC,GAAG,EAAE,CAAC;AACX,aAAA,IAAI,CAAC,OAAO,EAAE,KAAK;AACnB,aAAA,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;AAG3B,QAAA,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,IAAI,CAAC;AACA,aAAA,CAAC,CAAC,KAAK,GAAG,CAAC;AACX,aAAA,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,KAAK,GAAG,MAAM;AAChD,aAAA,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE;AAC5B,aAAA,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAC/B,aAAA,KAAK,CAAC,KAAK,GAAG,CAAC;AACf,aAAA,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACb,aAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACd,aAAA,WAAW,EAAE;AAGlB,QAAA,IAAI,CAAC;AACA,aAAA,CAAC,CAAC,KAAK,GAAG,CAAC;AACX,aAAA,CAAC,CAAC,MAAM,GAAG,CAAC;AACZ,aAAA,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,QAAQ,GAAG,OAAO;AACpD,aAAA,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE;AAC5B,aAAA,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAC/B,aAAA,KAAK,CAAC,KAAK,GAAG,CAAC;aACf,MAAM,CAAC,MAAM;AACb,aAAA,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACb,aAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACd,aAAA,WAAW,EAAE;AAGlB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,GAAG,SAAA;YACP,IAAI,EAAE,SAAA;AACN,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;gBACrB,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5E,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;;iBAChF;gBACH,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9E,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;;AAE1F,YAAA,IAAI,CAAC;iBACA,GAAG,CAAC,GAAG;iBACP,IAAI,CAAC,EAAE;AACP,iBAAA,WAAW,EAAE;AAElB,YAAA,IAAI,CAAC;iBACA,GAAG,CAAC,GAAG;iBACP,IAAI,CAAC,EAAE;AACP,iBAAA,WAAW,EAAE;;AAItB,QAAA,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,UAAC,CAAC,EAAE,CAAC,EAAA;YACrD,IAAM,MAAM,GAAG,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,YAAA,IAAI,MAAM,KAAK,CAAC,EAAE;AACd,gBAAA,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;;AAE/C,YAAA,OAAO,MAAM;AACjB,SAAC,GAAG,UAAC,CAAC,EAAE,CAAC,EAAA;YACL,OAAO,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,SAAC,CAAC;QACF,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,CAAC,KAAI,CAAC,YAAY,CAAC,CAArB,EAAqB,CAAC;QACtD,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,YAAY,CAAC,CAAA,EAAA,CAAC;AAEvD,QAAA,IAAI,CAAC;AACA,aAAA,MAAM,EAAE;AAEb,QAAA,IAAI,CAAC;AACA,aAAA,MAAM,EAAE;QAEb,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;QAExC,IAAI,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;AACtD,QAAA,IAAM,eAAe,GAAG,UAAU,CAAC,MAAM;AACzC,QAAA,IAAI,WAAW,GAAG,MAAM,GAAG,kBAAkB;AAC7C,QAAA,IAAM,UAAU,GAAG,IAAI,CAAC,YAAY,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,UAAA,GAAG,EAAA,EAAI,OAAA,CAAC,KAAK,CAAC,GAAG,CAAC,KAAI,CAAC,YAAY,CAAC,CAAC,CAA9B,EAA8B,CAAC,CAAC,GAAG,CAAC,UAAA,GAAG,EAAA,EAAI,OAAA,GAAG,CAAC,KAAI,CAAC,YAAY,CAAC,CAAA,EAAA,CAAC,CAAC,GAAG,CAAC;AACzK,QAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;;AAE1C,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;AAC1B,YAAA,IAAI,QAAQ,GAAG,kBAAkB,GAAG,CAAC;YACrC,IAAI,QAAQ,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,EAAE;gBAC3C,QAAQ,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe;;YAE7C,IAAM,mBAAmB,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ;AACnD,YAAA,IAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,GAAG,QAAQ,IAAI,EAAE;AACzE,YAAA,IAAM,cAAc,GAAG,UAAU,KAAK,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,CAAC;AAC5D,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,eAAA,CAAA,MAAA,CAAgB,mBAAmB,GAAG,cAAc,EAAA,GAAA,CAAG,CAAC;AAC7F,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,eAAA,CAAA,MAAA,CAAgB,gBAAgB,GAAG,cAAc,EAAA,GAAA,CAAG,CAAC;;AACpF,aAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;;AAEjD,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;YACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,eAAgB,CAAA,MAAA,CAAA,kBAAkB,EAAG,GAAA,CAAA,CAAC;YAC3E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,eAAgB,CAAA,MAAA,CAAA,kBAAkB,EAAG,GAAA,CAAA,CAAC;;aACrE;YACH,kBAAkB,IAAI,UAAU;YAChC,WAAW,IAAI,UAAU;;AAEzB,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;YACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,eAAgB,CAAA,MAAA,CAAA,kBAAkB,EAAG,GAAA,CAAA,CAAC;YAC3E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,eAAgB,CAAA,MAAA,CAAA,kBAAkB,EAAG,GAAA,CAAA,CAAC;YACxE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,eAAgB,CAAA,MAAA,CAAA,kBAAkB,EAAG,GAAA,CAAA,CAAC;;AAEhF,QAAA,IAAI,CAAC;AACA,aAAA,MAAM,EAAE;QAEb,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;QAIxC,IAAM,UAAU,GAAiB,EAAE;QACnC,IAAM,WAAW,GAAG,EAAE;QACtB,KAAoB,IAAA,EAAA,GAAA,CAAM,EAAN,QAAM,GAAA,MAAA,EAAN,oBAAM,EAAN,EAAA,EAAM,EAAE;AAAvB,YAAA,IAAM,KAAK,GAAA,QAAA,CAAA,EAAA,CAAA;AACZ,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACxC,gBAAA,IAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;AAC5B,gBAAA,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;AACrE,oBAAA,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC;oBACtB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;oBACtC;;;AAIR,YAAA,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;AAClC,gBAAA,WAAW,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,MAAM;gBACtC,UAAU,CAAC,IAAI,CAAC;AACZ,oBAAA,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK;AAChC,iBAAA,CAAC;;;QAIV,IAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK;QAClF,IAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,WAAW,GAAG,UAAU,CAAC,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC,KAAK;AACjG,QAAA,IAAI,CAAC;AACA,aAAA,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC;AACzB,aAAA,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,EAAE,EAAE,CAAC,EAAA,EAAK,OAAA,CAAC,CAAA,EAAA,CAAC,CAAC;AAGzC,QAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACnB,YAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC;;KAEtG;IAED,SAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,MAAM,EAAA;QACnB,IAAI,YAAY,GAAG,CAAC;QACpB,IAAM,OAAO,GAAG,IAAI;AACpB,QAAA,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAjB,EAAiB,CAAC;QACnG,IAAM,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE;QACjH,IAAM,oBAAoB,GAAG,IAAI,CAAC,sBAAsB,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,GAAG,EAAE;QACvH,IAAM,wBAAwB,GAAG,IAAI,CAAC,0BAA0B,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,GAAG,EAAE;QACnI,IAAM,YAAY,GAAG,EAAE;QACvB,KAAgB,IAAA,EAAA,GAAA,CAAM,EAAN,QAAM,GAAA,MAAA,EAAN,oBAAM,EAAN,EAAA,EAAM,EAAE;AAAnB,YAAA,IAAM,CAAC,GAAA,QAAA,CAAA,EAAA,CAAA;YACR,IAAM,IAAI,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACxF,YAAY,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;;QAExE,IAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;AAC7C,QAAA,IAAM,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,EAAE;QACrD,IAAM,eAAe,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG;AAChD,aAAA,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;AAChC,QAAA,eAAe,CAAC,MAAM,CAAC,MAAM;AACxB,aAAA,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;QAEjC;AACK,aAAA,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,EAAA;AACxB,YAAAG,MAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;AAC1B,SAAC;AACA,aAAA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAA;AAChB,YAAA,IAAM,SAAS,GAAG,IAAI,SAAS;iBAC1B,MAAM,CAAC,IAAI;iBACX,IAAI,CAAC,GAAG;AACR,iBAAA,mBAAmB,CAAC,OAAO,CAAC,qBAAqB,EAAE;AACnD,iBAAA,oBAAoB,CAAC,OAAO,CAAC,sBAAsB,EAAE;AACrD,iBAAA,0BAA0B,CAAC,OAAO,CAAC,4BAA4B,EAAE;AACjE,iBAAA,yBAAyB,CAAC,OAAO,CAAC,4BAA4B,EAAE;iBAChE,YAAY,CAAC,EAAE;iBACf,kBAAkB,CAAC,CAAC;iBACpB,aAAa,CAAC,EAAE;iBAChB,gBAAgB,CAAC,MAAM;iBACvB,mBAAmB,CAAC,EAAE;AACtB,iBAAA,SAAS,CAAC,kBAAkB,KAAK,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC,kBAAkB,CAAC;AACpE,iBAAA,UAAU,CAAC,kBAAkB,KAAK,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC,kBAAkB,CAAC;AACrE,iBAAA,gBAAgB,CAAC,kBAAkB,KAAK,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC,kBAAkB,CAAC;iBAC3E,eAAe,CAAC,KAAK;AACrB,iBAAA,mBAAmB,CAAC,kBAAkB,KAAK,EAAE,GAAG,SAAS,GAAG,CAAC,CAAC,wBAAwB,CAAC;AACvF,iBAAA,qBAAqB,CAAC,kBAAkB,KAAK,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC,oBAAoB,CAAC;iBAClF,YAAY,CAAC,CAAC;iBACd,WAAW,CAAC,EAAE;iBACd,UAAU,CAAC,EAAE,CAAC;YAEnB,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;AAC/C,SAAC;aACA,KAAK,CAAC,UAAU;AAChB,aAAA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAA;YAChB,IAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;YAClD,IAAM,MAAM,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE;YACvG,IAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5C,IAAI,QAAQ,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,EAAE,IAAI,kBAAkB,IAAI,CAAC;YACjG,IAAI,OAAO,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,WAAW;gBAAE,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC;YACrH,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,SAAS,CAAC,WAAW,EAAE,EAAE;AACtG,gBAAA,IAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBACzE,IAAM,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,CAAC;gBACxE;qBACK,CAAC,CAAC,QAAQ;qBACV,CAAC,CAAC,QAAQ;AACV,qBAAA,mBAAmB,CAAC,OAAO,CAAC,qBAAqB,EAAE;AACnD,qBAAA,oBAAoB,CAAC,OAAO,CAAC,sBAAsB,EAAE;AACrD,qBAAA,0BAA0B,CAAC,OAAO,CAAC,4BAA4B,EAAE;AACjE,qBAAA,yBAAyB,CAAC,OAAO,CAAC,4BAA4B,EAAE;qBAChE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE;qBAC1F,KAAK,CAAC,MAAM;qBACZ,WAAW,CAAC,oBAAoB;AAChC,qBAAA,oBAAoB,EAAE;;iBAExB;AACH,gBAAA,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;;AAEhD,YAAA,IAAM,WAAW,GAAG,SAAS,CAAC,UAAU,EAAE;YAC1C,IAAI,YAAY,GAAG,WAAW;gBAAE,YAAY,GAAG,WAAW;AAE1D,YAAAA,MAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,cAAc;AAClC,iBAAA,IAAI,CAAC,IAAI,EAAE,QAAQ;AACnB,iBAAA,IAAI,CAAC,IAAI,EAAE,QAAQ;AACnB,iBAAA,IAAI,CAAC,IAAI,EAAE,CAAC;AACZ,iBAAA,IAAI,CAAC,IAAI,EAAE,QAAQ;AACnB,iBAAA,KAAK,CAAC,QAAQ,EAAE,kBAAkB,KAAK,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC,oBAAoB,CAAC;AAC5E,iBAAA,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;AAEjC,SAAC,CAAC;QAEN,UAAU,CAAC,IAAI;AACV,aAAA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAA;YAChB,IAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;AAClD,YAAA,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AAE1B,SAAC;AACA,aAAA,MAAM,EAAE;QACb,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC5G,OAAO,YAAY,GAAG,YAAY;KACrC;AAED,IAAA,SAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAkB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAA;QAA9F,IA8EC,KAAA,GAAA,IAAA;QA7EG,IAAM,OAAO,GAAG,IAAI;AAEpB,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,UAAA,CAAC,EAAA;AAC/D,YAAA,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;AAChC,SAAC,CAAC;AACF,QAAA,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM;AACtB,aAAA,IAAI,CAAC,OAAO,EAAE,MAAM;aACpB,KAAK,CAAC,KAAK;AACX,aAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,UAAA,CAAC,EAAI,EAAA,OAAA,KAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAxB,EAAwB;AACrE,aAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,UAAA,CAAC,EAAI,EAAA,OAAA,KAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAxB,EAAwB;AACrE,aAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK;AAClG,aAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,gBAAgB,GAAG,UAAU,CAAC,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;AAEnI,QAAA,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE;AACrB,QAAA,IAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA,EAAA,CAAC;AAClG,QAAA,OAAO,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG;AACrB,aAAA,IAAI,CAAC,OAAO,EAAE,SAAS;AACvB,aAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;aAChD,IAAI,CAAC,UAAU,CAAC,EAAA;AACb,YAAA,IAAM,UAAU,GAAG,IAAI,UAAU;iBAC5B,MAAM,CAAC,IAAI;iBACX,YAAY,CAAC,EAAE;iBACf,kBAAkB,CAAC,CAAC;iBACpB,aAAa,CAAC,EAAE;AAChB,iBAAA,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE;AACnC,iBAAA,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE;AACzC,iBAAA,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE;iBAClC,eAAe,CAAC,MAAM;iBACtB,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAE/C,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC;AACvC,YAAA,OAAO,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC1C,SAAC;AACA,aAAA,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAA;YACpB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACjF,EAAE,KAAK;AACP,aAAA,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAAA;AACvB,YAAA,OAAO,CAAC,UAAU,GAAG,CAAC;YACtB,OAAO,CAAC,SAAS,EAAE;YACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACpF,EAAE,IAAI;aACN,EAAE,CAAC,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;aACxC,EAAE,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;aACzC,KAAK,CAAC,OAAO;AACb,aAAA,IAAI,CAAC,WAAW,EAAE,UAAA,CAAC,EAAA,EAAI,OAAA,OAAO,CAAC,YAAY,EAAE;AAC1C,YAAA,YAAA,CAAA,MAAA,CAAa,KAAI,CAAC,YAAY,CAAC,CAAC,CAAC,eAAK,KAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAA,IAAA,CAAI;AAC5E,YAAA,YAAA,CAAA,MAAA,CAAa,KAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAK,KAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAI,IAAA,CAAA,CAAA,EAAA;aAC/E,IAAI,CAAC,UAAU,CAAC,EAAA;YACb,IAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YAC3C,IAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;YAClC,IAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC;AAC/C,YAAA,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACnD,YAAA,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACjE,IAAM,eAAe,GAAG,KAAK;YAC7B,IAAM,YAAY,IAAI,CAAC,CAAC,GAAG,eAAe,IAAI,CAAC,CAAC;AAChD,YAAA,IAAM,WAAW,GAAG,YAAY,GAAG,UAAU;AAC7C,YAAA,IAAM,QAAQ,GAAG,UAAU,GAAG,eAAe;YAC7C,IAAM,QAAQ,GAAG,QAAQ;YACzB;iBACK,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,EAAA,CAAA,EAAE,CAAC,EAAA,CAAA,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACtD,iBAAA,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,UAAU,GAAG,SAAS;AAC3D,iBAAA,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,SAAS,GAAG,UAAU;iBAC1D,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;iBAC5E,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE;iBAC/E,OAAO,CAAC,WAAW;iBACnB,YAAY,CAAC,QAAQ;iBACrB,aAAa,CAAC,QAAQ,CAAC;AAE5B,YAAA,IAAI,QAAQ,GAAG,GAAG,GAAG,SAAS,EAAE;AAC5B,gBAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;AAEtB,YAAA,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACvD;AACK,iBAAA,MAAM,EAAE;AAEjB,SAAC,CAAC;AACN,QAAA,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE;KAC1B;AAED,IAAA,SAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,OAAO,EAAE,OAAO,EAAA;AACjB,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AACxB,QAAA,MAAA,CAAA,SAAK,CAAC,IAAI,CAAA,IAAA,CAAA,IAAA,EAAC,OAAO,EAAE,OAAO,CAAC;KAC/B;;AAGD,IAAA,SAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAA;KAClB;AAED,IAAA,SAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,GAAG,EAAE,GAAG,EAAE,GAAG,EAAA;KACrB;AAED,IAAA,SAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,OAAmB,EAAE,CAAC,EAAA;KACrC;AAED,IAAA,SAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,OAAmB,EAAE,CAAC,EAAA;KACtC;IASL,OAAC,SAAA;AAAD,CA1gBA,CAA+B,SAAS,CA0gBvC;AACD,SAAS,CAAC,SAAS,CAAC,MAAM,IAAI,qBAAqB;AACnD,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;AAClD,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC;AAqDvD,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC;AAC/E,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACtG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,mBAAmB,EAAE,UAAU,EAAE,QAAQ,EAAE,mBAAmB,CAAC;AAC3F,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,EAAE,QAAQ,EAAE,kBAAkB,CAAC;AAChF,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAC1G,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,gBAAgB,CAAC;AACxF,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC;AACzE,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,CAAC;AACjF,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC;AAC7E,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC;AACvE,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC;AACzE,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC;AAC7E,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC;AAC/D,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,EAAE,QAAQ,EAAE,kBAAkB,CAAC;AAClF,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC;AAC1E,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,sBAAsB,EAAE,IAAI,EAAE,QAAQ,EAAE,sBAAsB,CAAC;AAC3F,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,wBAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE,wBAAwB,CAAC;AAC/F,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,4BAA4B,EAAE,IAAI,EAAE,QAAQ,EAAE,4BAA4B,CAAC;AACvG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,uBAAuB,EAAE,KAAK,EAAE,SAAS,EAAE,uBAAuB,CAAC;AAC/F,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,wBAAwB,EAAE,KAAK,EAAE,SAAS,EAAE,wBAAwB,CAAC;AACjG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,8BAA8B,EAAE,KAAK,EAAE,SAAS,EAAE,8BAA8B,CAAC;AAC7G,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,8BAA8B,EAAE,IAAI,EAAE,SAAS,EAAE,8BAA8B,CAAC;AAC5G,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,oBAAoB,EAAE,KAAK,EAAE,SAAS,EAAE,sEAAsE,CAAC;;AChlB3I,IAAA,UAAA,kBAAA,UAAA,MAAA,EAAA;IAAgC,SAAa,CAAA,UAAA,EAAA,MAAA,CAAA;AA2CzC,IAAA,SAAA,UAAA,CAAY,iBAAiD,EAAA;AAAjD,QAAA,IAAA,iBAAA,KAAA,MAAA,EAAA,EAAA,iBAAiD,GAAA,QAAA,CAAA;QACzD,IAAA,KAAA,GAAA,MAAK,WAAE,IAAC,IAAA;QA1CF,KAAU,CAAA,UAAA,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,KAAI,CAAC;QAkBxC,KAAU,CAAA,UAAA,GAAG,CAAC;QACd,KAAc,CAAA,cAAA,GAAG,CAAC;QAClB,KAAY,CAAA,YAAA,GAAG,CAAC;QAChB,KAAS,CAAA,SAAA,GAAG,EAAE;QACd,KAAU,CAAA,UAAA,GAAG,EAAE;QACf,KAAW,CAAA,WAAA,GAAG,EAAE;QAChB,KAAW,CAAA,WAAA,GAAG,EAAE;QAChB,KAAY,CAAA,YAAA,GAAG,EAAE;AAKnB,QAAA,KAAA,CAAA,aAAa,GAAkB;AACnC,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,WAAW,EAAE;SAChB;QA0BO,KAAc,CAAA,cAAA,GAA4B,YAAY;AAgWvD,QAAA,KAAA,CAAA,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAtXpC,QAAA,KAAI,CAAC,aAAa,GAAG,iBAAiB;AAEtC,QAAA,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAE/B,QAAA,KAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,EAAE;AACjC,QAAA,KAAI,CAAC;aACA,WAAW,CAAC,UAAA,CAAC,EAAA;AACV,YAAA,OAAO,4CAAmC,CAAC,CAAC,CAAC,CAAC,uBAAa,CAAC,CAAC,CAAC,CAAC,oBAAU,CAAC,CAAC,CAAC,CAAC,WAAQ;AACzF,SAAC,CAAC;AACN,QAAA,KAAI,CAAC;aACA,YAAY,CAAC,IAAI,CAAC;;;IAM3B,UAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,CAAS,EAAA;QACf,IAAI,CAAC,SAAS,CAAC,MAAM;AAAE,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE;AACnD,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACtB,QAAA,OAAO,IAAI;KACd;IAKD,UAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,CAA2B,EAAA;QACrC,IAAI,CAAC,SAAS,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,cAAc;AACjD,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC;QACvB,OAAO,IAAI,CAAC,cAAc;KAC7B;AAED,IAAA,UAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,OAAO,EAAE,OAAO,EAAA;AAClB,QAAA,MAAA,CAAA,SAAK,CAAC,KAAK,CAAA,IAAA,CAAA,IAAA,EAAC,OAAO,EAAE,OAAO,CAAC;QAE7B,IAAM,OAAO,GAAG,IAAI;QACpB;AACK,aAAA,EAAE,CAAC,OAAO,EAAE,UAA4B,CAAC,EAAA;AACtC,YAAA,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE;AAC9B,SAAC,CAAC;AAEN,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;KAChC;AACD,IAAA,UAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,OAAO,EAAE,OAAO,EAAA;QAAvB,IAoOC,KAAA,GAAA,IAAA;AAnOG,QAAA,MAAA,CAAA,SAAK,CAAC,MAAM,CAAA,IAAA,CAAA,IAAA,EAAC,OAAO,EAAE,OAAO,CAAC;AAE9B,QAAA,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AAEvC,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU;AAC5G,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc;AAC5H,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY;AACpH,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS;AACxG,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU;AAC5G,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW;AAChH,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE;QAElG,IAAM,OAAO,GAAG,IAAI;AACpB,QAAA,IAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;QAEtB,IAAM,EAAE,GAAG,CAAC;QACZ,IAAM,EAAE,GAAG,CAAC;AAEZ,QAAA,IAAI,CAAC,aAAa,GAAGC,WAAa;aAC7B,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC;AACrC,aAAA,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAGpB,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,EAAK,EAAA,OAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA,EAAA,CAAC;AAEvC,QAAA,IAAI,IAAI,CAAC,WAAW,GAAG,EAAE,EAAE;AACvB,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACrB,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE;AACvB,YAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;YAC1B,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,UAAC,OAAO,EAAE,OAAO,EAAA;gBACjC,IAAM,SAAS,GAAG,OAAO,CAAC,KAAI,CAAC,WAAW,CAAC;gBAC3C,IAAI,CAAC,KAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE;AAChC,oBAAA,KAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE;AAChC,oBAAA,KAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE;;AAEtC,gBAAA,KAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;AAC/B,oBAAA,OAAO,EAAA,OAAA;AACP,oBAAA,OAAO,EAAA;AACV,iBAAA,CAAC;AACN,aAAC,CAAC;AACF,YAAA,IAAM,QAAM,GAAG,IAAI,CAAC,MAAM,EAAE;YAC5B,IAAI,cAAY,GAAG,CAAC;YACpB,IAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AAClD,YAAA,UAAU,CAAC,OAAO,CAAC,UAAA,SAAS,EAAA;AACxB,gBAAA,KAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAA3B,EAA2B,CAAC;AACzE,gBAAA,KAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,KAAI,CAAC,WAAW,CAAC,KAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,OAAO,CAAT,EAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5G,gBAAA,KAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,YAAY,GAAG,KAAI,CAAC,YAAY,EAAE;gBACnE,KAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,YAAY,GAAG,cAAY;AAC5D,gBAAA,cAAY,IAAI,CAAC,KAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,YAAY,GAAG,KAAI,CAAC,WAAW,EAAE,GAAG,KAAI,CAAC,MAAM,EAAE,KAAK,KAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;gBACvJ,KAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC,EAAA;AACvC,oBAAA,KAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;AAC9C,iBAAC,CAAC;AACN,aAAC,CAAC;YACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,oBAAoB;AACvE,iBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAA,GAAG,EAAA;AACpB,gBAAA,OAAO,KAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;aACpC,CAAC,CAAC;AAEP,YAAA,IAAI,CAAC;iBACA,IAAI,CACD,UAAA,KAAK,EAAI,EAAA,OAAA,KAAK,CAAC,MAAM,CAAC,MAAM;iBACvB,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAD9B,EAC8B,EACvC,UAAA,MAAM,IAAI,OAAA,MAAM,GAAA,EAChB,UAAA,IAAI,EAAA,EAAI,OAAA;iBACH,IAAI,CAAC,UAAU,CAAC,EAAA;gBACb,OAAO,CAAC,CAAC,OAAO;AACpB,aAAC;iBACA,MAAM,EAAE,CAJL,EAIK;iBAEhB,IAAI,CAAC,SAAS,EAAE,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAjC,EAAiC;AACtD,iBAAA,IAAI,CAAC,UAA6B,CAAC,EAAE,CAAC,EAAA;gBACnCD,MAAQ,CAAC,IAAI;AACR,qBAAA,IAAI,CAAC,GAAG,EAAE,CAAC;AACX,qBAAA,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,YAAY,IAAI,QAAM,GAAG,CAAC,CAAC;AACvC,qBAAA,IAAI,CAAC,OAAO,EAAE,CAAC;qBACf,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,QAAM,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,QAAM;qBACvE,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,mBAAmB,EAAE,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;AAE7F,aAAC,CAAC;;aACH;AACH,YAAA,IAAI,IAAI,CAAC,WAAW,KAAK,EAAE,EAAE;gBACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC;;iBACpG;gBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC;;;QAG7F,IAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;QAExD,IAAI,CAAC,MAAM,CACP,CAAC,aAAa,EAAE,CAAC,CAAC,EAClB,CAAC,CACJ;AAED,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE;QAExC,IAAI,CAAC,eAAe,EAAE;AAEtB,QAAA,IAAI,CAAC,aAAa,IAAI,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,eAAe,EAAE;QAEtB,IAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO;AACtD,aAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AAEtB,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE;AACxC,QAAA,IAAM,aAAa,GAAG,aAAa,GAAG,CAAC;QACvC;aACK,IAAI,CACD,UAAA,KAAK,EAAI,EAAA,OAAA,KAAK,CAAC,MAAM,CAAC,GAAG;AACpB,aAAA,IAAI,CAAC,OAAO,EAAE,MAAM;AACpB,aAAA,EAAE,CAAC,oBAAoB,EAAE,UAAU,CAAC,EAAE,CAAC,EAAA;AACpC,YAAA,IAAM,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AACzC,YAAA,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,GAAG,EAAA,GAAA,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE;AAC5D,gBAAA,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE;;iBACvB;AACH,gBAAA,OAAO,CAAC,UAAU,CAAC,KAAK,CACpB;AACI,oBAAA,GAAG,EAAA,GAAA;AACH,oBAAA,OAAO,EAAE,YAAM,EAAA,OAAA,CAAC,CAAC,OAAO;iBAC3B,EACD,OAAO,CACV;;YAEL,OAAO,CAAC,gBAAgB,EAAE;AAC1B,YAAA,OAAO,EAAE,CAAC,eAAe,EAAE;AAC/B,SAAC;AACA,aAAA,EAAE,CAAC,OAAO,EAAE,UAA4B,CAAC,EAAA;YACtC,IAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;YAC9C,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE;AAC7B,gBAAA,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC;;YAE5C,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC;AAClC,SAAC;AACA,aAAA,EAAE,CAAC,UAAU,EAAE,UAA4B,CAAC,EAAA;YACzC,IAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;YAC9C,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE;AAC7B,gBAAA,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC;;YAE5C,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC;AAClC,SAAC;AACA,aAAA,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,EAAA;YACtB,OAAO,CAAC,aAAa,CAACA,MAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxC,IAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;YAC9C,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC;AACpC,SAAC;AACA,aAAA,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,EAAA;AACxB,YAAA,IAAM,KAAK,GAAG,OAAO,EAAE;YACvB,OAAO,CAAC,QAAQ,CAAC,eAAe,GAAG,CAAC,CAAC,OAAO;AAC5C,YAAA,OAAO,CAAC,QAAQ,CAAC,UAAU,GAAG;AAC1B,gBAAA,KAAK,CAAC,OAAO;AACb,gBAAA,KAAK,CAAC;aACT;AACD,YAAA,OAAO,CAAC;iBACH,IAAI,CAAC,CAAC;iBACN,OAAO,CAAC,IAAI;iBACZ,UAAU,CAAC,IAAI;AACf,iBAAA,MAAM,EAAE;YAEb,OAAO,CAAC,aAAa,CAACA,MAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxC,IAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;YAC9C,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC;AACtC,SAAC;AACA,aAAA,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAAA;AACvB,YAAA,OAAO,CAAC;iBACH,OAAO,CAAC,KAAK;AACb,iBAAA,MAAM,EAAE;AAEb,YAAA,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC;YACjC,IAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;YAC9C,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC;AACrC,SAAC;AACA,aAAA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAA;AAChB,YAAA,CAAC,CAAC,IAAI,GAAG,IAAI;AACb,YAAA,CAAC,CAAC,OAAO,GAAGA,MAAQ,CAAC,IAAI,CAAC;AAC1B,YAAA,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,IAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,YAAA,IAAI,OAAO,CAAC,WAAW,GAAG,EAAE,EAAE;gBAC1B,IAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;gBACxC,IAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/F,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,YAAY;;iBAC9G;gBACH,IAAM,EAAE,GAAG,OAAO,CAAC,WAAW,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;AAClE,gBAAA,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;;AAEvE,YAAA,CAAC,CAAC,KAAK,GACA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,CAAC,CAAC,CAAC,CAAC,CACP,EAAA,EAAA,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GACb;YACD,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;AAC1B,YAAA,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY;AAC7B,YAAA,CAAC,CAAC,CAAC,IAAI,aAAa;AACpB,YAAA,CAAC,CAAC,CAAC,IAAI,aAAa;AACpB,YAAA,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,aAAa;AAC9B,YAAA,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,aAAa;AAC/B,YAAA,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,YAAA,CAAA,MAAA,CAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAI,GAAA,CAAA,CAAA,MAAA,CAAA,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAA,GAAA,CAAG,CAAC;AACxG,SAAC,CAAC,CAvFG,EAuFH,EACN,UAAA,MAAM,EAAI,EAAA,OAAA,MAAM,CAAA,EAAA,EAChB,UAAA,IAAI,EAAA,EAAI,OAAA;aACH,IAAI,CAAC,UAAU,CAAC,EAAA;YACb,OAAO,CAAC,CAAC,OAAO;AACpB,SAAC;aACA,MAAM,EAAE,CAJL,EAIK;aAEhB,IAAI,CAAC,SAAS,EAAE,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAjC,EAAiC;AACtD,aAAA,IAAI,CAAC,UAA6B,CAAC,EAAE,CAAC,EAAA;AACnC,YAAA,CAAC,CAAC,IAAI,GAAG,IAAI;AACb,YAAA,IAAI,OAAO,CAAC,WAAW,GAAG,EAAE,EAAE;gBAC1B,IAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;AACxC,gBAAA,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC;;iBAC5E;AACH,gBAAA,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC;;AAE5E,SAAC;AACA,aAAA,EAAE,CAAC,eAAe,EAAE,UAAA,CAAC,EAAA;YAClB,IAAM,EAAE,GAAG,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,IAAM,EAAE,GAAG,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,YAAA,IAAM,MAAM,GAAG,EAAE,GAAG,EAAE;AACtB,YAAA,IAAM,MAAM,GAAG,CAAC,GAAG,MAAM;YACzB,KAAI,CAAC,MAAM,CACP;gBACI,CAAC,EAAE,GAAG,MAAM;gBACZ;aACH,EACD,MAAM,CACT;AACL,SAAC,CAAC;AAEN,QAAA,OAAO,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC;KACpC;IACD,UAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,CAAC,EAAE,CAAC,EAAE,aAAqB,EAAE,OAAiB,EAAE,SAAkB,EAAA;AAA5D,QAAA,IAAA,aAAA,KAAA,MAAA,EAAA,EAAA,aAAqB,GAAA,KAAA,CAAA;AAAE,QAAA,IAAA,OAAA,KAAA,MAAA,EAAA,EAAA,OAAiB,GAAA,EAAA,CAAA;AAC7D,QAAA,IAAM,aAAa,GAAG,OAAO,CAAC,WAAW;AACzC,QAAA,IAAM,aAAa,GAAG,aAAa,GAAG,CAAC;AACvC,QAAA,IAAM,OAAO,GAAG,OAAO,CAAC,YAAY;AACpC,QAAA,IAAI,IAAI;QACR,IAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC;AACL,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE;QACxC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,SAAS,CAAC;AAE7C,QAAA,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE;AACtB,YAAA,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;AAGzD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;YACzB,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9E,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,YAAA,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC;YACvF,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,YAAY;YACtG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;;aAChC;YACH,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;;AAEvC,QAAA,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE;YACtB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;;QAErC,IAAI,CAAC,aAAa,EAAE;AAChB,YAAA,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAA,CAAC,CAAC,KAAK,GACA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,CAAC,CAAC,CAAC,CAAC,CACP,EAAA,EAAA,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GACb;AACD,YAAA,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;;aAC7B;AACH,YAAA,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAClC,YAAA,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACnC,YAAA,CAAC,CAAC,KAAK,GACA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,CAAC,CAAC,CAAC,CAAC,CACP,EAAA,EAAA,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GACb;AACD,YAAA,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,YAAA,CAAC,CAAC,CAAC,IAAI,CAAC;AACR,YAAA,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;;AAEtB,QAAA,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY;AAC7B,QAAA,IAAI,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,EAAE;AAC1D,YAAA,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,YAAY;;QAE7D,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,EAAE;YACnC,CAAC,CAAC,OAAO,GAAGA,MAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;;AAEhC,QAAA,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,YAAA,CAAA,MAAA,CAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAI,GAAA,CAAA,CAAA,MAAA,CAAA,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAA,GAAA,CAAG,CAAC;AAEpG,QAAA,CAAC,CAAC,CAAC,IAAI,aAAa;AACpB,QAAA,CAAC,CAAC,CAAC,IAAI,aAAa;AACpB,QAAA,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,aAAa;AAC9B,QAAA,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,aAAa;QAC/B,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK;QACrD,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM;QAExD,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC;QAEvF,IAAI,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;AACvB,YAAA,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC;;aAC5D;AACH,YAAA,CAAC,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,QAAQ;;AAE5D,QAAA,IAAI,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,EAAE;YAC1D,CAAC,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,QAAQ;;AAEjG,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE;AAClD,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM;;AAErC,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE;AACjD,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK;;AAEpC,QAAA,MAAM,CACF,IAAI,CAAC,cAAc,EAEZ,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,OAAO,GACP,CAAC,CAAC,KAAK,CAAA,EAAA,EACV,IAAI,EAAA,IAAA,EAAA,CAAA,EAER,CAAC,CAAC,IAAI,CACT;KACJ;AAED,IAAA,UAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;QACI,IAAI,CAAC,aAAa,GAAG;AACjB,YAAA,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;AACjC,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;AAC7B,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AACzB,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAC/B,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjB,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;AACrB,YAAA,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE;AAC/B,YAAA,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;SACpC;KACJ;IAGD,UAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,SAAS,EAAA;QAAhB,IAwBC,KAAA,GAAA,IAAA;AAvBG,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS;AAC3B,QAAA,QAAQ,IAAI,CAAC,UAAU,EAAE;AACrB,YAAA,KAAK,WAAW;AACZ,gBAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;gBAC7B,IAAI,CAAC,cAAc,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;AACtC,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,YAAa,CAAA,MAAA,CAAA,SAAS,CAAC,CAAC,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,CAAC,EAAU,SAAA,CAAA,CAAA,MAAA,CAAA,SAAS,CAAC,CAAC,EAAA,KAAA,CAAK,CAAC;gBACtF;AACJ,YAAA;AACI,gBAAA,IAAM,SAAO,GAAG,IAAI,CAAC,aAAa;gBAClC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC,EAAA;AACrB,oBAAA,IAAI,KAAI,CAAC,UAAU,GAAG,EAAE,EAAE;wBACtB,SAAO,CAAC,IAAI,GAAG,CAAC,CAAC,KAAI,CAAC,UAAU,CAAC;;AAErC,oBAAA,IAAI,KAAI,CAAC,WAAW,GAAG,EAAE,EAAE;wBACvB,IAAM,SAAS,GAAG,CAAC,CAAC,KAAI,CAAC,WAAW,CAAC;AACrC,wBAAA,KAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAO,EAAE,SAAS,CAAC;;yBACpD;wBACH,KAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAO,CAAC;;AAEpD,iBAAC,CAAC;;AAGV,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;KAC7B;IAED,UAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,SAAS,EAAA;KAEnB;IAEO,UAAW,CAAA,SAAA,CAAA,WAAA,GAAnB,UAAoB,IAAI,EAAE,QAAyB,EAAE,MAAuB,EAAE,SAA2B,EAAA;QACrG,IAAM,SAAS,GAAG,EAAE;QACpB,IAAM,YAAY,GAAG,EAAE;AACvB,QAAA,IAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE;QACnC,IAAM,OAAO,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,SAAS,GAAG,CAAC;AACjB,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AACzB,YAAA,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC,EAAA;gBACd,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;gBAC3B,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI;AACrC,aAAC,CAAC;YACF,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM;;aACzC;AACH,YAAA,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC,EAAA;AACd,gBAAA,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AACxC,oBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE;AACrD,wBAAA,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE;wBACjB,IAAI,SAAS,GAAG,EAAE;4BAAE,SAAS,GAAG,EAAE;wBAClC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;wBAC/B;;;AAGR,gBAAA,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;AAC5B,oBAAA,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM;oBAC7B,IAAM,CAAC,GAAG,EAAE;oBACZ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AACrB,oBAAA,OAAO,CAAC,IAAI,CAAC,CAAQ,CAAC;;AAG1B,gBAAA,IAAI,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC;AAAE,oBAAA,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC;AAC1D,aAAC,CAAC;;AAEN,QAAA,IAAM,MAAM,GAAG,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACtE,OAAO;AACH,YAAA,SAAS,EAAA,SAAA;AACT,YAAA,SAAS,EAAA,SAAA;AACT,YAAA,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM;YACnC,YAAY,EAAEC,WAAa;iBACtB,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC;AACzB,iBAAA,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;SAClD;KACJ;IAID,UAAI,CAAA,SAAA,CAAA,IAAA,GAAJ,UAAK,CAAgB,EAAA;;AACjB,QAAA,IAAM,MAAM,GAAG,MAAK,CAAA,SAAA,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;AAChD,QAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,YAAA,IAAI,CAAC,SAAS,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,GAAG,CAAA,KAAA,CAAR,IAAI,EAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,CAAC,CAAC,CAAJ,EAAI,CAAC,CAAA,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAK,CAAC;AAC7D,YAAA,IAAI,CAAC,OAAO,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,GAAG,CAAA,KAAA,CAAR,IAAI,EAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,CAAC,CAAC,CAAJ,EAAI,CAAC,CAAA,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAK,CAAC;AAC3D,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;;AAE9B,QAAA,OAAO,MAAM;KAChB;IAOD,UAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,YAAoB,EAAA;AAApB,QAAA,IAAA,YAAA,KAAA,MAAA,EAAA,EAAA,YAAoB,GAAA,KAAA,CAAA;QAChC,IAAM,UAAU,GAAG,EAAE;QACrB,IAAM,eAAe,GAAG,EAAE;AAC1B,QAAA,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AACpC,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAChC,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE;QAExC,IAAI,YAAY,EAAE;AACd,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,IAAI,QAAQ;;AAG9E,QAAA,IAAI,YAAY,IAAI,IAAI,CAAC,eAAe,KAAK,UAAU,IAAI,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE;AACxF,YAAA,eAAe,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,KAAK;AACxE,YAAA,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,UAAA,CAAC,EAAA;gBACjB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;oBACnB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,KAAK;;AAEzE,gBAAA,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAA,IAAI,EAAA;AACvB,oBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;AACxB,wBAAA,eAAe,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,KAAK;;AAElF,iBAAC,CAAC;AACN,aAAC,CAAC;AACF,YAAA,IAAI,CAAC,WAAW,GAAG,UAAU;AAC7B,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe;;AAE3C,QAAA,IAAI,CAAC,eAAe,GAAG,UAAU;AACjC,QAAA,IAAI,CAAC,aAAa,GAAG,QAAQ;KAChC;AAED,IAAA,UAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,UAAa,IAAI,EAAE,KAAK,EAAE,KAAS,EAAA;AAAT,QAAA,IAAA,KAAA,KAAA,MAAA,EAAA,EAAA,KAAS,GAAA,CAAA,CAAA;AAC/B,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK;QACvD,IAAI,QAAQ,EAAE;AACV,YAAA,OAAO,IAAI;;QAEf,IAAI,GAAG,GAAG,EAAE;QACZ,IAAI,GAAG,GAAG,CAAC;AACX,QAAA,IAAM,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvD,KAAmB,IAAA,EAAA,GAAA,CAAI,EAAJ,MAAI,GAAA,IAAA,EAAJ,kBAAI,EAAJ,EAAA,EAAI,EAAE;AAApB,YAAA,IAAM,IAAI,GAAA,MAAA,CAAA,EAAA,CAAA;AACX,YAAA,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAClC,YAAA,IAAI,GAAG,GAAG,MAAM,EAAE;gBACd,GAAG,IAAI,IAAI;;iBACR;gBACH;;;AAGR,QAAA,OAAO,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,KAAK;KACvC;IAED,UAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,KAAyC,EAAA;AAC5C,QAAA,IAAI,MAAM;QACV,IAAI,IAAI,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;YACvD,MAAM,GAAG,gBAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC7B,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,MAAM,EAAE,IAAI,CAAC;AAChB,aAAA,CAAC;;aACC;YACH,MAAM,GAAG,MAAK,CAAA,SAAA,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;;AAEhD,QAAA,OAAO,MAAM;KAChB;AAED,IAAA,UAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;KAEC;AAED,IAAA,UAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,QAAQ,EAAE,CAAC,EAAA;KAExB;AAED,IAAA,UAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,GAAG,EAAE,IAAI,EAAE,GAAG,EAAA;KAEnB;AAED,IAAA,UAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,GAAG,EAAE,IAAI,EAAE,GAAG,EAAA;KAEtB;AAED,IAAA,UAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAG,EAAE,IAAI,EAAE,GAAG,EAAA;KACrB;AAED,IAAA,UAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,GAAG,EAAE,IAAI,EAAE,GAAG,EAAA;KACvB;AAED,IAAA,UAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,GAAG,EAAE,IAAI,EAAE,GAAG,EAAA;KACtB;IACL,OAAC,UAAA;AAAD,CAplBA,CAAgC,aAAa,CAolB5C;AACD,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,sBAAsB;AAwDrD,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,mBAAmB,EAAE,KAAK,EAAE,SAAS,EAAE,4DAA4D,CAAC;AACjI,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,oBAAoB,EAAE,KAAK,EAAE,SAAS,EAAE,6DAA6D,CAAC;AACnI,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,8BAA8B,CAAC;AAC3F,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,mCAAmC,CAAC;AACpG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,iCAAiC,CAAC;AAChG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,6BAA6B,CAAC;AACzF,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,8BAA8B,CAAC;AAC3F,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,0CAA0C,CAAC;AACxG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,0CAA0C,CAAC;AACxG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,+CAA+C,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AACvI,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,QAAQ,EAAE,8CAA8C,CAAC;AACzG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,qCAAqC,CAAC;AAChG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,iCAAiC,CAAC;AACzF,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,0CAA0C,CAAC;AACvG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,QAAQ,EAAE,sCAAsC,CAAC;AACjG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,oCAAoC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC1H,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,8CAA8C,CAAC;AACtG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,gBAAgB,CAAC;AACzF,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,EAAE,QAAQ,EAAE,kBAAkB,CAAC;AACjF,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,EAAE,QAAQ,EAAE,sCAAsC,CAAC;AACxG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,EAAE,QAAQ,EAAE,sCAAsC,CAAC;AACnG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,sCAAsC,CAAC;AAC3F,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,cAAc,CAAC;AACrE,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,sBAAsB,EAAE,SAAS,EAAE,YAAY,EAAE,sCAAsC,CAAC;AACrH,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,qBAAqB,EAAE,SAAS,EAAE,YAAY,EAAE,qCAAqC,CAAC;;ACjrBnH,IAAA,cAAA,kBAAA,UAAA,MAAA,EAAA;IAAoC,SAAS,CAAA,cAAA,EAAA,MAAA,CAAA;AA+BzC,IAAA,SAAA,cAAA,GAAA;QACI,IAAA,KAAA,GAAA,MAAK,WAAE,IAAC,IAAA;AA9BF,QAAA,KAAA,CAAA,QAAQ,GAAS,IAAI,IAAI,CAAC,QAAQ;aACvC,WAAW,CAAC,KAAK;aACjB,IAAI,CAAC,QAAQ;aACb,WAAW,CAAC,MAAM;aAClB,WAAW,CAAC,MAAM;aAClB,MAAM,CAAC,CAAC;aACR,UAAU,CAAC,GAAG,CAAC;AAEV,QAAA,KAAA,CAAA,MAAM,GAAe,IAAI,UAAU,CAAC,QAAQ;aACjD,MAAM,CAAC,SAAS,CAAC;AAEZ,QAAA,KAAA,CAAA,WAAW,GAAS,IAAI,IAAI,CAAC,QAAQ;aAC1C,WAAW,CAAC,QAAQ;aACpB,IAAI,CAAC,QAAQ;aACb,WAAW,CAAC,MAAM;aAClB,WAAW,CAAC,MAAM;aAClB,MAAM,CAAC,CAAC;aACR,UAAU,CAAC,GAAG,CAAC;AAchB,QAAA,KAAI,CAAC,aAAa,GAAG,QAAQ;QAC7B,KAAI,CAAC,aAAa,GAAG,YAAA;AACjB,YAAA,IAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;YACnE,IAAI,CAAC,SAAS,CAAC,MAAM;AAAE,gBAAA,OAAO,GAAG;AACjC,YAAA,OAAO,IAAI;AACf,SAAC;;;IAKL,cAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,CAAS,EAAA;QACf,IAAI,CAAC,SAAS,CAAC,MAAM;AAAE,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AACrD,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AACxB,QAAA,OAAO,IAAI;KACd;AAED,IAAA,cAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;AAEI,QAAA,IAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACtB,QAAA,IAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;QAEvB,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAErC,IAAM,aAAa,IAAI,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;AAC5C,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE;AACxC,QAAA,IAAI,CAAC;AACA,aAAA,IAAI,CAAC,QAAQ,EAAE,UAAU;AACzB,aAAA,IAAI,CAAC,OAAO,EAAE,CAAC;AACf,aAAA,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC;QAEhC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC;AACxD,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACtD,QAAA,IAAI,CAAC;AACA,aAAA,IAAI,CAAC,QAAQ,EAAE,aAAa;AAC5B,aAAA,IAAI,CAAC,OAAO,EAAE,CAAC;AACf,aAAA,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC;AAEhC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,cAAA,CAAA,MAAA,CAAe,UAAU,GAAG,aAAa,EAAA,GAAA,CAAG,CAAC;AACpF,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACvD,QAAA,IAAI,CAAC;AACA,aAAA,IAAI,CAAC,QAAQ,EAAE,UAAU;AACzB,aAAA,IAAI,CAAC,OAAO,EAAE,CAAC;AACf,aAAA,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC;AAEhC,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,cAAe,CAAA,MAAA,CAAA,UAAU,GAAG,aAAa,GAAG,aAAa,EAAA,GAAA,CAAG,CAAC;AACvG,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KAC5D;AAED,IAAA,cAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,OAAO,EAAE,OAAO,EAAA;QAAtB,IAsCC,KAAA,GAAA,IAAA;AArCG,QAAA,MAAA,CAAA,SAAK,CAAC,KAAK,CAAA,IAAA,CAAA,IAAA,EAAC,OAAO,EAAE,OAAO,CAAC;QAE7B,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,UAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAA;YAC9B,KAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7B,SAAC;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,UAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAA;YACjC,KAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAChC,SAAC;QAED,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG;AACpC,aAAA,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC;QAEtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM;AAC7C,aAAA,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC;QAEnC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG;AACpC,aAAA,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC;QAErC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM;AACjD,aAAA,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC;QAElC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG;AACvC,aAAA,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC;QAEzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM;AACnD,aAAA,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC;AAEnC,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;AACjD,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC;AAChE,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;QAEvD,IAAI,CAAC,cAAc,EAAE;AAErB,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,UAAC,SAAS,EAAA;AAC/B,YAAA,KAAI,CAAC,MAAM,CAAC,SAAS,CAAC;AAC1B,SAAC;KACJ;IAED,cAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,SAAS,EAAA;AAEZ,QAAA,IAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACtB,QAAA,IAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS;AACjC,QAAA,IAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;AAChC,QAAA,IAAM,KAAK,GAAG,IAAI,GAAG,GAAG;AACxB,QAAA,IAAM,GAAG,GAAG,KAAK,GAAG,CAAC;QACrB,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC;AAE3D,QAAA,IAAI,CAAC;AACA,aAAA,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE;AAChC,aAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE;AAC5B,aAAA,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE;aAChC,GAAG,CAAC,OAAO;aACX,IAAI,CAAC,QAAQ;AACb,aAAA,MAAM,EAAE;AAEb,QAAA,IAAI,CAAC;AACA,aAAA,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE;AAChC,aAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE;AAC5B,aAAA,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE;aAChC,GAAG,CAAC,OAAO;aACX,IAAI,CAAC,QAAQ;AACb,aAAA,MAAM,EAAE;KAEhB;AAED,IAAA,cAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,OAAO,EAAE,OAAO,EAAA;AACnB,QAAA,MAAA,CAAA,SAAK,CAAC,MAAM,CAAA,IAAA,CAAA,IAAA,EAAC,OAAO,EAAE,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;AACpD,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;AACvD,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;KACvB;IAID,cAAO,CAAA,SAAA,CAAA,OAAA,GAAP,UAAQ,CAAY,EAAA;AAChB,QAAA,IAAM,MAAM,GAAG,MAAK,CAAA,SAAA,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;AACnD,QAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;;AAE1B,QAAA,OAAO,MAAM;KAChB;IAID,cAAI,CAAA,SAAA,CAAA,IAAA,GAAJ,UAAK,CAAoB,EAAA;;AACrB,QAAA,IAAM,MAAM,GAAG,MAAK,CAAA,SAAA,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;AAChD,QAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,IAAM,SAAS,GAAU,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA;AACtC,gBAAA,IAAM,GAAG,GAAA,aAAA,CAAA,EAAA,EAAO,CAAC,EAAA,IAAA,CAAC;AAClB,gBAAA,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,gBAAA,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,gBAAA,OAAO,GAAG;AACd,aAAC,CAAC;AACF,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,GAAG,CAAA,KAAA,CAAR,IAAI,EAAQ,SAAS,CAAC,GAAG,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,CAAC,CAAC,CAAJ,EAAI,CAAC,CAAA,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAK,CAAC;AAClE,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,GAAG,CAAA,KAAA,CAAR,IAAI,EAAQ,SAAS,CAAC,GAAG,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,CAAC,CAAC,CAAJ,EAAI,CAAC,CAAA,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAK,CAAC;AAChE,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;;AAE/B,QAAA,OAAO,MAAM;KAChB;IAED,cAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,KAAyC,EAAA;AAC5C,QAAA,IAAM,MAAM,GAAG,MAAK,CAAA,SAAA,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;AAElD,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,cAAc,EAAE;;AAGzB,QAAA,OAAO,MAAM;KAChB;AAED,IAAA,cAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAA;KAElB;AAED,IAAA,cAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,GAAG,EAAE,GAAG,EAAE,GAAG,EAAA;KAErB;AAED,IAAA,cAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;AACI,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ;KAC9B;IACL,OAAC,cAAA;AAAD,CA7MA,CAAoC,SAAS,CA6M5C;AACD,cAAc,CAAC,SAAS,CAAC,MAAM,IAAI,0BAA0B;AA6C7D,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,yCAAyC,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACxI,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,yBAAyB,CAAC;AACvF,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,EAAE,QAAQ,EAAE,kBAAkB,CAAC;AACrF,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,EAAE,QAAQ,EAAE,sCAAsC,CAAC;AAC5G,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,+BAA+B,CAAC;AACjG,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,iCAAiC,CAAC;AACrG,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,sBAAsB,CAAC;AAC1F,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACzD,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC;AAC7D,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC;AAC9D,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC;AAC3D,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC;AAC7D,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACzD,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc,EAAE,QAAQ,CAAC;AAC/D,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC;AAC9D,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,iBAAiB,EAAE,QAAQ,CAAC;AAClE,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,eAAe,EAAE,QAAQ,CAAC;AAChE,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC;AAC7D,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC;AAC9D,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc,EAAE,QAAQ,CAAC;AAC/D,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC;AAC1D,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc,EAAE,QAAQ,CAAC;;AC/Q/D,IAAA,oBAAA,kBAAA,UAAA,MAAA,EAAA;IAA0C,SAAO,CAAA,oBAAA,EAAA,MAAA,CAAA;AA8B7C,IAAA,SAAA,oBAAA,GAAA;QACI,IAAA,KAAA,GAAA,MAAK,WAAE,IAAC,IAAA;AA7BF,QAAA,KAAA,CAAA,QAAQ,GAAS,IAAI,IAAI,CAAC,QAAQ;aACvC,WAAW,CAAC,KAAK;aACjB,IAAI,CAAC,QAAQ;aACb,WAAW,CAAC,MAAM;aAClB,WAAW,CAAC,MAAM;aAClB,MAAM,CAAC,CAAC;aACR,UAAU,CAAC,GAAG,CAAC;AAEV,QAAA,KAAA,CAAA,MAAM,GAAe,IAAI,UAAU,CAAC,QAAQ;aACjD,MAAM,CAAC,SAAS;aAChB,kBAAkB,CAAC,IAAI,CAAC;AAEnB,QAAA,KAAA,CAAA,WAAW,GAAS,IAAI,IAAI,CAAC,QAAQ;aAC1C,WAAW,CAAC,QAAQ;aACpB,IAAI,CAAC,QAAQ;aACb,WAAW,CAAC,MAAM;aAClB,WAAW,CAAC,MAAM;aAClB,MAAM,CAAC,CAAC;aACR,UAAU,CAAC,GAAG,CAAC;AAYhB,QAAA,KAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC;AACtC,QAAA,KAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC;;;IAKxC,oBAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,CAAS,EAAA;QACf,IAAI,CAAC,SAAS,CAAC,MAAM;AAAE,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AACrD,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AACxB,QAAA,OAAO,IAAI;KACd;IAID,oBAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,CAA2B,EAAA;AACrC,QAAA,IAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;QACnE,IAAI,CAAC,SAAS,CAAC,MAAM;AAAE,YAAA,OAAO,GAAG;AACjC,QAAA,OAAO,IAAI;KACd;AAED,IAAA,oBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;AAEI,QAAA,IAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACtB,QAAA,IAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;QAEvB,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACrC,IAAM,aAAa,IAAI,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;AAE5C,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAE7B,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AACf,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,MAAM,EAAE;AACX,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;AAClB,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,MAAM,EAAE;AACX,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;AAClB,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,MAAM,EAAE;AACX,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE;AACnB,QAAA,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE;AACtB,QAAA,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE;KACzB;AAED,IAAA,oBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,OAAO,EAAE,OAAO,EAAA;QAAtB,IAoBC,KAAA,GAAA,IAAA;AAnBG,QAAA,MAAA,CAAA,SAAK,CAAC,KAAK,CAAA,IAAA,CAAA,IAAA,EAAC,OAAO,EAAE,OAAO,CAAC;QAE7B,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,UAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAA;YAC9B,KAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7B,SAAC;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,UAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAA;YACjC,KAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAChC,SAAC;AAED,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AACxB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;QAE7B,IAAI,CAAC,cAAc,EAAE;AAErB,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,UAAC,SAAS,EAAA;AAC/B,YAAA,KAAI,CAAC,MAAM,CAAC,SAAS,CAAC;AAC1B,SAAC;KACJ;IAED,oBAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,SAAS,EAAA;AACZ,QAAA,IAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACtB,QAAA,IAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS;AACjC,QAAA,IAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;AAChC,QAAA,IAAM,KAAK,GAAG,IAAI,GAAG,GAAG;AACxB,QAAA,IAAM,GAAG,GAAG,KAAK,GAAG,CAAC;QACrB,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC;AAE3D,QAAA,IAAI,CAAC;AACA,aAAA,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE;AAChC,aAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE;AAC5B,aAAA,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE;aAChC,GAAG,CAAC,OAAO;aACX,IAAI,CAAC,QAAQ;AACb,aAAA,UAAU,EAAE;AAEjB,QAAA,IAAI,CAAC;AACA,aAAA,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE;AAChC,aAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE;AAC5B,aAAA,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE;aAChC,GAAG,CAAC,OAAO;aACX,IAAI,CAAC,QAAQ;AACb,aAAA,UAAU,EAAE;KAEpB;AAED,IAAA,oBAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,OAAO,EAAE,OAAO,EAAA;AACnB,QAAA,MAAA,CAAA,SAAK,CAAC,MAAM,CAAA,IAAA,CAAA,IAAA,EAAC,OAAO,EAAE,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;AACpD,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;AACvD,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;KACvB;IAID,oBAAO,CAAA,SAAA,CAAA,OAAA,GAAP,UAAQ,CAAY,EAAA;AAChB,QAAA,IAAM,MAAM,GAAG,MAAK,CAAA,SAAA,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;AACnD,QAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;;AAE1B,QAAA,OAAO,MAAM;KAChB;IAID,oBAAI,CAAA,SAAA,CAAA,IAAA,GAAJ,UAAK,CAAoB,EAAA;AACrB,QAAA,IAAM,MAAM,GAAG,MAAK,CAAA,SAAA,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;AAChD,QAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,IAAM,SAAS,GAAU,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA;AACtC,gBAAA,IAAM,GAAG,GAAA,aAAA,CAAA,EAAA,EAAO,CAAC,EAAA,IAAA,CAAC;AAClB,gBAAA,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,gBAAA,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,gBAAA,OAAO,GAAG;AACd,aAAC,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,SAAS,GAAGC,GAAK,CAAC,SAAS,EAAE,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,CAAC,CAAC,CAAJ,EAAI,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,OAAO,GAAGC,GAAK,CAAC,SAAS,EAAE,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,CAAC,CAAC,CAAJ,EAAI,CAAC;AACjD,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;;AAE/B,QAAA,OAAO,MAAM;KAChB;IAED,oBAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,KAAyC,EAAA;AAC5C,QAAA,IAAM,MAAM,GAAG,MAAK,CAAA,SAAA,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;AAElD,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,cAAc,EAAE;;AAGzB,QAAA,OAAO,MAAM;KAChB;AAED,IAAA,oBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAA;KAElB;AAED,IAAA,oBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,GAAG,EAAE,GAAG,EAAE,GAAG,EAAA;KAErB;AAED,IAAA,oBAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;AACI,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ;KAC9B;IACL,OAAC,oBAAA;AAAD,CAzLA,CAA0C,OAAO,CAyLhD;AACD,oBAAoB,CAAC,SAAS,CAAC,MAAM,IAAI,gCAAgC;AA+CzE,oBAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,yCAAyC,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC9I,oBAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,yBAAyB,CAAC;AAC7F,oBAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,EAAE,QAAQ,EAAE,kBAAkB,CAAC;AAC3F,oBAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,EAAE,QAAQ,EAAE,sCAAsC,CAAC;AAClH,oBAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,+BAA+B,CAAC;AACvG,oBAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,iCAAiC,CAAC;AAC3G,oBAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,sBAAsB,CAAC;AAChG,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAC/D,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC;AACnE,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC;AACpE,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC;AACjE,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC;AACnE,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAC/D,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc,EAAE,QAAQ,CAAC;AACrE,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC;AACpE,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,iBAAiB,EAAE,QAAQ,CAAC;AACxE,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,eAAe,EAAE,QAAQ,CAAC;AACtE,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC;AACnE,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC;AACpE,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc,EAAE,QAAQ,CAAC;AACrE,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc,EAAE,QAAQ,CAAC;AACrE,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC;AAChE,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC7E,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,qBAAqB,EAAE,QAAQ,CAAC;AAC5E,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc,EAAE,QAAQ,CAAC;;ACrQrE,IAAA,aAAA,kBAAA,UAAA,MAAA,EAAA;IAAmC,SAAc,CAAA,aAAA,EAAA,MAAA,CAAA;AAI7C,IAAA,SAAA,aAAA,GAAA;QACI,IAAA,KAAA,GAAA,MAAK,WAAE,IAAC,IAAA;AACR,QAAA,KAAI,CAAC,aAAa,GAAG,QAAQ;AAC7B,QAAA,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AAC1B,QAAA,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;AAE7B,QAAA,KAAI,CAAC,WAAW,CAAC,UAAC,CAAM,EAAA;AACpB,YAAA,IAAM,MAAM,GAAGP,SAAW,CAAC,IAAI,CAAC;YAChC,IAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAE5B,IAAM,SAAS,GAAGC,UAAY,CAAC,KAAI,CAAC,iBAAiB,EAAE,CAAC;AACxD,YAAA,OAAO,4CAAmC,CAAC,CAAC,CAAC,CAAC,uBAAa,SAAS,CAAC,SAAS,CAAC,oBAAU,SAAS,CAAC,OAAO,CAAC,WAAQ;AACvH,SAAC,CAAC;;;AAGN,IAAA,aAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,OAAO,EAAE,OAAO,EAAA;AACnB,QAAA,MAAA,CAAA,SAAK,CAAC,MAAM,CAAA,IAAA,CAAA,IAAA,EAAC,OAAO,EAAE,OAAO,CAAC;AAE9B,QAAA,IAAG,IAAI,CAAC,kBAAkB,EAAE,EAAE;YAE1B,IAAI,cAAY,GAAG,QAAQ;AAC3B,YAAA,IAAI,cAAY,GAAG,CAAC,QAAQ;YAC5B,IAAI,YAAU,GAAG,EAAE;YACnB,IAAI,aAAW,GAAG,EAAE;AACpB,YAAA,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA;AACb,gBAAA,IAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;AACtC,gBAAA,IAAM,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;AACpC,gBAAA,IAAG,cAAY,GAAG,KAAK,EAAC;oBACpB,cAAY,GAAG,KAAK;AACpB,oBAAA,YAAU,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;;AAE1B,gBAAA,IAAG,cAAY,GAAG,GAAG,EAAC;oBAClB,cAAY,GAAG,GAAG;AAClB,oBAAA,aAAW,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;;AAE/B,aAAC,CAAC;AACF,YAAA,IAAI,CAAC;iBACA,IAAI,CAAC,MAAM;AACX,iBAAA,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;iBAC9B,WAAW,CAAC,MAAM;AAClB,iBAAA,UAAU,CAAC,IAAI,CAAC,mBAAmB;iBACnC,GAAG,CAAC,YAAU;iBACd,IAAI,CAAC,aAAW,CAAC;AAEtB,YAAA,IAAI,CAAC;iBACA,IAAI,CAAC,MAAM;AACX,iBAAA,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;iBAC9B,WAAW,CAAC,MAAM;AAClB,iBAAA,UAAU,CAAC,IAAI,CAAC,mBAAmB;iBACnC,GAAG,CAAC,YAAU;iBACd,IAAI,CAAC,aAAW,CAAC;AAEtB,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,cAAY;AACpC,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,cAAY;;KAEzC;IAED,aAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,QAAQ,EAAA;AAChB,QAAA,IAAI,CAAC,YAAY,GAAG,QAAQ;QAC5B,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AAC7C,QAAA,OAAO,IAAI;KACd;IAED,aAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,CAAC,EAAA;AACZ,QAAA,IAAM,SAAS,GAAGD,SAAW,CAAC,IAAI,CAAC;AACnC,QAAA,IAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC;QAE/B,IAAM,UAAU,GAAGC,UAAY,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACnD,QAAA,OAAO,UAAU,CAAC,UAAU,CAAC;KAChC;IAED,aAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,SAAS,EAAA;AAEZ,QAAA,IAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACtB,QAAA,IAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS;AACjC,QAAA,IAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;AAChC,QAAA,IAAM,KAAK,GAAG,IAAI,GAAG,GAAG;AACxB,QAAA,IAAM,GAAG,GAAG,KAAK,GAAG,CAAC;QACrB,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC;AAE3D,QAAA,IAAI,CAAC;AACA,aAAA,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;AAChC,aAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AAClC,aAAA,MAAM,EAAE;AAEb,QAAA,IAAI,CAAC;AACA,aAAA,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;AAChC,aAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AAClC,aAAA,MAAM,EAAE;KAEhB;IAGL,OAAC,aAAA;AAAD,CAnGA,CAAmC,cAAc,CAmGhD;AACD,aAAa,CAAC,SAAS,CAAC,MAAM,IAAI,yBAAyB;AAS3D,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,iEAAiE,EAAE,IAAI,EAAE,EAAC,QAAQ,EAAC,IAAI,EAAC,CAAC;AAC9J,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,mBAAmB,EAAE,UAAU,EAAE,QAAQ,EAAE,8CAA8C,CAAC;;AC9G1H,IAAM,SAAS,GAAGD,SAAW,CAAC,IAAI,CAAC;AACnC,IAAA,mBAAA,kBAAA,UAAA,MAAA,EAAA;IAAyC,SAAoB,CAAA,mBAAA,EAAA,MAAA,CAAA;AAIzD,IAAA,SAAA,mBAAA,GAAA;QACI,IAAA,KAAA,GAAA,MAAK,WAAE,IAAC,IAAA;AACR,QAAA,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AAC1B,QAAA,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;AAE7B,QAAA,KAAI,CAAC,WAAW,CAAC,UAAC,CAAM,EAAA;YACpB,IAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,IAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAE/B,IAAM,SAAS,GAAGC,UAAY,CAAC,KAAI,CAAC,iBAAiB,EAAE,CAAC;AACxD,YAAA,OAAO,4CAAmC,CAAC,CAAC,CAAC,CAAC,uBAAa,SAAS,CAAC,SAAS,CAAC,oBAAU,SAAS,CAAC,OAAO,CAAC,WAAQ;AACvH,SAAC,CAAC;;;AAGN,IAAA,mBAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,OAAO,EAAE,OAAO,EAAA;AACnB,QAAA,MAAA,CAAA,SAAK,CAAC,MAAM,CAAA,IAAA,CAAA,IAAA,EAAC,OAAO,EAAE,OAAO,CAAC;AAE9B,QAAA,IAAG,IAAI,CAAC,kBAAkB,EAAE,EAAE;YAE1B,IAAI,cAAY,GAAG,QAAQ;AAC3B,YAAA,IAAI,cAAY,GAAG,CAAC,QAAQ;YAC5B,IAAI,YAAU,GAAG,EAAE;YACnB,IAAI,aAAW,GAAG,EAAE;AACpB,YAAA,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,UAAA,CAAC,EAAA;AACjB,gBAAA,IAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;AACtC,gBAAA,IAAM,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;AACpC,gBAAA,IAAG,cAAY,GAAG,KAAK,EAAC;oBACpB,cAAY,GAAG,KAAK;AACpB,oBAAA,YAAU,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;;AAE1B,gBAAA,IAAG,cAAY,GAAG,GAAG,EAAC;oBAClB,cAAY,GAAG,GAAG;AAClB,oBAAA,aAAW,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;;AAE/B,aAAC,CAAC;AACF,YAAA,IAAI,CAAC;iBACA,IAAI,CAAC,MAAM;AACX,iBAAA,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;iBAC9B,WAAW,CAAC,MAAM;AAClB,iBAAA,UAAU,CAAC,IAAI,CAAC,mBAAmB;iBACnC,GAAG,CAAC,YAAU;iBACd,IAAI,CAAC,aAAW,CAAC;AAEtB,YAAA,IAAI,CAAC;iBACA,IAAI,CAAC,MAAM;AACX,iBAAA,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;iBAC9B,WAAW,CAAC,MAAM;AAClB,iBAAA,UAAU,CAAC,IAAI,CAAC,mBAAmB;iBACnC,GAAG,CAAC,YAAU;iBACd,IAAI,CAAC,aAAW,CAAC;AAEtB,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,cAAY;AACpC,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,cAAY;;KAEzC;IAED,mBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,QAAQ,EAAA;AAChB,QAAA,IAAI,CAAC,YAAY,GAAG,QAAQ;QAC5B,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AAC7C,QAAA,OAAO,IAAI;KACd;IAED,mBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,CAAC,EAAA;AACZ,QAAA,IAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC;QAE/B,IAAM,UAAU,GAAGA,UAAY,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACnD,QAAA,OAAO,UAAU,CAAC,UAAU,CAAC;KAChC;IAED,mBAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,SAAS,EAAA;AAEZ,QAAA,IAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACtB,QAAA,IAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS;AACjC,QAAA,IAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;AAChC,QAAA,IAAM,KAAK,GAAG,IAAI,GAAG,GAAG;AACxB,QAAA,IAAM,GAAG,GAAG,KAAK,GAAG,CAAC;QACrB,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC;AAE3D,QAAA,IAAI,CAAC;AACA,aAAA,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;AAChC,aAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AAClC,aAAA,MAAM,EAAE;AAEb,QAAA,IAAI,CAAC;AACA,aAAA,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;AAChC,aAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AAClC,aAAA,MAAM,EAAE;KAEhB;IAGL,OAAC,mBAAA;AAAD,CAhGA,CAAyC,oBAAoB,CAgG5D;AACD,mBAAmB,CAAC,SAAS,CAAC,MAAM,IAAI,+BAA+B;AASvE,mBAAmB,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,iEAAiE,EAAE,IAAI,EAAE,EAAC,QAAQ,EAAC,IAAI,EAAC,CAAC;AACpK,mBAAmB,CAAC,SAAS,CAAC,OAAO,CAAC,mBAAmB,EAAE,UAAU,EAAE,QAAQ,EAAE,8CAA8C,CAAC;;;;","x_google_ignoreList":[1,2]}
package/dist/index.min.js DELETED
@@ -1,2 +0,0 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@hpcc-js/api"),require("@hpcc-js/chart"),require("@hpcc-js/common"),require("@hpcc-js/html"),require("@hpcc-js/react"),require("@hpcc-js/layout")):"function"==typeof define&&define.amd?define(["exports","@hpcc-js/api","@hpcc-js/chart","@hpcc-js/common","@hpcc-js/html","@hpcc-js/react","@hpcc-js/layout"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["@hpcc-js/timeline"]={},t["@hpcc-js/api"],t["@hpcc-js/chart"],t["@hpcc-js/common"],t["@hpcc-js/html"],t["@hpcc-js/react"],t["@hpcc-js/layout"])}(this,(function(t,e,i,o,n,r,s){"use strict";var a=function(t,e){return a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},a(t,e)};function l(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function i(){this.constructor=t}a(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}var h=function(){return h=Object.assign||function(t){for(var e,i=1,o=arguments.length;i<o;i++)for(var n in e=arguments[i])Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t},h.apply(this,arguments)};function p(t,e,i){if(i||2===arguments.length)for(var o,n=0,r=e.length;n<r;n++)!o&&n in e||(o||(o=Array.prototype.slice.call(e,0,n)),o[n]=e[n]);return t.concat(o||Array.prototype.slice.call(e))}"function"==typeof SuppressedError&&SuppressedError;!function(t,e){void 0===e&&(e={});var i=e.insertAt;if("undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===i&&o.firstChild?o.insertBefore(n,o.firstChild):o.appendChild(n),n.styleSheet?n.styleSheet.cssText=t:n.appendChild(document.createTextNode(t))}}(".timeline_MiniGantt .line{fill:none;stroke:#d3d3d3;opacity:.7}.timeline_MiniGantt .common_TextBox .rect{fill:#87cefa;stroke:blue;opacity:.5}.timeline_MiniGantt .buckets .entity_shape rect{stroke:#333}.timeline_MiniGantt .buckets.selected .common_EntityRect .common_Shape>rect{stroke:red}.timeline_MiniGantt .common_TextBox .rect text{fill:#000;stroke:none}.timeline_MiniGantt .over{stroke:transparent;opacity:.8}.timeline_MiniGantt rect{shape-rendering:crispEdges}");var c=function(t){function n(){var n=t.call(this)||this;return n.localRect=o.local(),n.localEntityPin=o.local(),n._title_idx=0,n._startDate_idx=1,n._endDate_idx=2,n._icon_idx=-1,n._color_idx=-1,n._yoffset_idx=-1,e.ITooltip.call(n),o.Utility.SimpleSelectionMixin.call(n),n._drawStartPos="origin",n.tooltipHTML((function(t){return"<center>".concat(t[n._title_idx],"</center><br>").concat(n.tooltipFormatter(n.brAxis.parse(t[n._startDate_idx]))," -> ").concat(n.tooltipFormatter(n.brAxis.parse(t[n._endDate_idx])))})),n.tlAxis=(new i.Axis).type("time"),n.brAxis=(new i.Axis).type("time"),n.verticalBands=o.scaleBand().paddingOuter(.2).paddingInner(.2),n}return l(n,t),n.prototype.isHorizontal=function(){return"horizontal"===this.orientation()},n.prototype.fullExtent=function(){var t=this,e=p(p([],this.data().map((function(e){return e[t._startDate_idx]})),!0),this.data().filter((function(e){return!!e[t._endDate_idx]})).map((function(e){return e[t._endDate_idx]})),!0);return o.extent(e)},n.prototype.extent=function(){var t=this.rootExtent?[this.rootExtent[1],this.rootExtent[2]]:this.fullExtent();if(void 0!==t[0]&&void 0!==t[1]&&(t[0]===t[1]||this.centerOnMostRecent())){var e=o.timeParse(this.timePattern()),i=o.timeFormat(this.timePattern()),n=e(t[0]),r=e(t[1]);if(t[0]===t[1])t[0]=i(new Date(n.setFullYear(n.getFullYear()-1))),t[1]=i(new Date(n.setFullYear(n.getFullYear()+2)));else{var s=n.getTime(),a=r.getTime()-s;t[0]=i(n),t[1]=i(new Date(s+2*a))}}return t},n.prototype.dataStartPos=function(t){if(void 0!==this._dateCache[t[this._startDate_idx]])return this._dateCache[t[this._startDate_idx]];var e=this.brAxis.scalePos(t[this._startDate_idx]);return this._dateCache[t[this._startDate_idx]]=e,e},n.prototype.dataEndPos=function(t){if(void 0!==this._dateCache[t[this._endDate_idx]])return this._dateCache[t[this._endDate_idx]];var e=this.brAxis.scalePos(t[this._endDate_idx]);return this._dateCache[t[this._endDate_idx]]=e,e},n.prototype.dataWidth=function(t){return this.dataEndPos(t)-this.dataStartPos(t)},n.prototype.resetZoom=function(){this._zoom.transform(this.element(),o.zoomIdentity.translate(0,this.isHorizontal()?0:this.height()))},n.prototype.zoomed=function(){this.transform=o.d3Event().transform,this.render()},n.prototype.enter=function(e,i){var n=this;t.prototype.enter.call(this,e,i),this._zoom=o.zoom().scaleExtent([0,this.maxZoom()]).on("zoom",(function(){n.zoomed()})),this.background=i.append("rect").attr("fill","white").attr("opacity",0).on("dblclick",(function(){o.d3Event().stopPropagation(),delete n.rootExtent,n.resetZoom()})),this.gUpperContent=i.append("g").attr("class","gUpperContent"),this.gUpperAxis=i.append("g").attr("class","gUpperAxis"),this.gMiddleContent=i.append("g").attr("class","gMiddleContent"),this.gLowerAxis=i.append("g").attr("class","gLowerAxis"),this.gLowerContent=i.append("g").attr("class","gLowerContent"),this.tlAxis.target(this.gUpperAxis.node()).tickFormat(this.tickFormat()).guideTarget(this.gUpperAxis.append("g").node()).shrinkToFit("none").overlapMode(this.tickFormat_exists()?"stagger":"none").extend(.1),this.brAxis.target(this.gLowerAxis.node()).tickFormat(this.tickFormat()).guideTarget(this.gLowerAxis.append("g").node()).shrinkToFit("none").overlapMode(this.tickFormat_exists()?"stagger":"none").extend(.1),i.call(this._zoom),this._selection.widgetElement(this.gMiddleContent)},n.prototype.update=function(e,i){var n=this;if(t.prototype.update.call(this,e,i),this._dateCache={},this._title_idx=null!==this.titleColumn()?this.columns().indexOf(this.titleColumn()):this._title_idx,this._startDate_idx=null!==this.startDateColumn()?this.columns().indexOf(this.startDateColumn()):this._startDate_idx,this._endDate_idx=null!==this.endDateColumn()?this.columns().indexOf(this.endDateColumn()):this._endDate_idx,this._icon_idx=null!==this.iconColumn()?this.columns().indexOf(this.iconColumn()):this._icon_idx,this._color_idx=null!==this.colorColumn()?this.columns().indexOf(this.colorColumn()):this._color_idx,this._yoffset_idx=null!==this.yOffsetColumn()?this.columns().indexOf(this.yOffsetColumn()):this._yoffset_idx,this._prevIsHorizontal!==this.isHorizontal())return this._prevIsHorizontal=this.isHorizontal(),void this.resetZoom();this.tooltipFormatter=o.timeFormat(this.tooltipTimeFormat());var r=this.width(),s=this.height();this.background.attr("x",0).attr("y",0).attr("width",r).attr("height",s);var a=this.extent();if(this.tlAxis.x(r/2).orientation(this.isHorizontal()?"top":"left").reverse(!this.isHorizontal()).timePattern(this.timePattern()).width(r-1).low(a[0]).high(a[1]).updateScale(),this.brAxis.x(r/2).y(s/2).orientation(this.isHorizontal()?"bottom":"right").reverse(!this.isHorizontal()).timePattern(this.timePattern()).width(r-1).height(s).low(a[0]).high(a[1]).updateScale(),this.transform){var l=void 0,h=void 0;this.isHorizontal()?(l=this.tlAxis.parseInvert(this.tlAxis.invert(this.transform.invertX(0))),h=this.tlAxis.parseInvert(this.tlAxis.invert(this.transform.invertX(r-1)))):(l=this.tlAxis.parseInvert(this.tlAxis.invert(-this.transform.invertY(0))),h=this.tlAxis.parseInvert(this.tlAxis.invert(-this.transform.invertY(s-1)))),this.tlAxis.low(l).high(h).updateScale(),this.brAxis.low(l).high(h).updateScale()}var p=this.data().sort(this.isHorizontal()?function(t,e){var i=n.brAxis.scalePos(t[1])-n.brAxis.scalePos(e[1]);return 0===i?(""+t[0]).localeCompare(""+e[0]):i}:function(t,e){return n.brAxis.scalePos(e[1])-n.brAxis.scalePos(t[1])}),c=p.filter((function(t){return!t[n._endDate_idx]})),u=p.filter((function(t){return!!t[n._endDate_idx]}));this.tlAxis.render(),this.brAxis.render();var d=this.brAxis.getBBox(),m=this.updateEntityPins(c),_=d.height,g=s-m,x=-1!==this._yoffset_idx?Math.min.apply(void 0,this.data().filter((function(t){return!isNaN(t[n._yoffset_idx])})).map((function(t){return t[n._yoffset_idx]}))):0;if(c.length>0&&0===u.length){this.tlAxis.visible(!1);var f=m/4;f>s/2-_&&(f=s/2-_);var y=s/2+f,b=-1*(s/2-_-f),v=0!==x?x/2:0;this.gUpperContent.attr("transform","translate(0, ".concat(y-v,")")),this.gLowerAxis.attr("transform","translate(0, ".concat(b-v,")"))}else 0===c.length&&u.length>0?(this.tlAxis.visible(!0),this.gUpperContent.attr("transform","translate(0, ".concat(m,")")),this.gUpperAxis.attr("transform","translate(0, ".concat(m,")"))):(m-=x,g+=x,this.tlAxis.visible(!0),this.gUpperContent.attr("transform","translate(0, ".concat(m,")")),this.gUpperAxis.attr("transform","translate(0, ".concat(m,")")),this.gMiddleContent.attr("transform","translate(0, ".concat(m,")")));this.tlAxis.render();for(var k=this.tlAxis.getBBox(),C=[],w={},F=0,S=u;F<S.length;F++){for(var A=S[F],z=0;z<C.length;++z){var P=C[z];if(P.endPos+this.overlapTolerence()<=this.dataStartPos(A)){w[A]=z,P.endPos=this.dataEndPos(A);break}}void 0===w[A]&&(w[A]=C.length,C.push({endPos:this.dataEndPos(A)}))}var T=this.isHorizontal()?0+k.height:0+k.width,M=this.isHorizontal()?g-d.height:r-d.width;this.verticalBands.range([T,M]).domain(C.map((function(t,e){return e}))),u.length>0&&this.updateEventRanges(c,u,w,g,k,d,r)},n.prototype.updateEntityPins=function(t){for(var e=0,i=this,n=this.gUpperContent.selectAll(".entity_pin").data(t,(function(t){return t[0]+":"+t[1]})),r=this.eventFontColorColumn()?this.columns().indexOf(this.eventFontColorColumn()):-1,s=this.eventBorderColorColumn()?this.columns().indexOf(this.eventBorderColorColumn()):-1,a=this.eventBackgroundColorColumn()?this.columns().indexOf(this.eventBackgroundColorColumn()):-1,l={},h=0,p=t;h<p.length;h++){var c=p[h],u=void 0!==c[i._title_idx]?c[i._title_idx]:c[0];l[u]=l[u]?l[u]+1:1}var d=Object.keys(l),m=i.eventGroupOffset(),_=n.enter().append("g").attr("class","entity_pin");_.append("line").attr("class","entity_line"),_.on("mouseover",(function(t){o.select(this).raise()})).each((function(t,e){var n=(new o.EntityPin).target(this).icon("").iconOnlyShowOnHover(i.hideIconWhenCollapsed()).titleOnlyShowOnHover(i.hideTitleWhenCollapsed()).descriptionOnlyShowOnHover(i.hideDescriptionWhenCollapsed()).annotationOnlyShowOnHover(i.hideAnnotationsWhenCollapsed()).iconDiameter(18).iconPaddingPercent(1).titleFontSize(14).descriptionColor("#333").descriptionFontSize(15).iconColor(-1===r?"#333":t[r]).titleColor(-1===r?"#333":t[r]).descriptionColor(-1===r?"#333":t[r]).backgroundShape("pin").backgroundColorFill(-1===r?"#f8f8f8":t[a]).backgroundColorStroke(-1===r?"#ccc":t[s]).cornerRadius(5).arrowHeight(10).arrowWidth(16);i.localEntityPin.set(this,n)})).merge(n).each((function(t,n){var a=i.localEntityPin.get(this),l=void 0!==t[i._title_idx]?t[i._title_idx]:a.title(),h=i.dataStartPos(t)-0,p=d.indexOf(l)%i.eventGroupMod()*m-5;if(void 0!==t[i._yoffset_idx]&&(p+=t[i._yoffset_idx]?t[i._yoffset_idx]:0),t[i._title_idx]!==a.title()&&t[i._startDate_idx]!==a.description()){var c=i.brAxis.parse(t[i._startDate_idx]),u=i.tooltipFormatter(c);a.x(h).y(p).iconOnlyShowOnHover(i.hideIconWhenCollapsed()).titleOnlyShowOnHover(i.hideTitleWhenCollapsed()).descriptionOnlyShowOnHover(i.hideDescriptionWhenCollapsed()).annotationOnlyShowOnHover(i.hideAnnotationsWhenCollapsed()).icon(void 0!==t[i._icon_idx]?t[i._icon_idx]:a.icon()).title(l).description(u).animationFrameRender()}else a.move({x:h,y:p});var _=a.calcHeight();e<_&&(e=_),o.select(this).selectAll(".entity_line").attr("x1",h).attr("x2",h).attr("y1",0).attr("y2",p).style("stroke",-1===r?"#ccc":t[s]).style("stroke-width",1)})),n.exit().each((function(t,e){i.localEntityPin.get(this).target(null)})).remove();var g=Math.abs(Math.min(t.length,i.eventGroupMod())*i.eventGroupOffset());return e+g},n.prototype.updateEventRanges=function(t,e,i,n,r,s,a){var l=this,h=this,p=this.gMiddleContent.selectAll(".line").data(t,(function(t){return t[h._title_idx]}));p.enter().append("line").attr("class","line").merge(p).attr(this.isHorizontal()?"x1":"y1",(function(t){return l.dataStartPos(t)-0})).attr(this.isHorizontal()?"x2":"y2",(function(t){return l.dataStartPos(t)-0})).attr(this.isHorizontal()?"y1":"x1",this.isHorizontal()?r.height:r.width).attr(this.isHorizontal()?"y2":"x2",this.isHorizontal()?n-s.height:a-s.width),p.exit().remove();var c=this.gMiddleContent.selectAll(".buckets").data(e,(function(t){return t[h._title_idx]}));c.enter().append("g").attr("class","buckets").call(this._selection.enter.bind(this._selection)).each((function(t){var e=(new o.EntityRect).target(this).iconDiameter(28).iconPaddingPercent(0).titleFontSize(28).titleColor(h.rangeFontColor()).descriptionColor(h.rangeFontColor()).iconColor(h.rangeFontColor()).backgroundShape("rect").backgroundColorFill(t[h._color_idx]);h.localRect.set(this,e),h.enterEntityRect(e,t)})).on("click",(function(t){h.click(h.rowToObj(t),"range",h._selection.selected(this))}),!1).on("dblclick",(function(t){h.rootExtent=t,h.resetZoom(),h.dblclick(h.rowToObj(t),"range",h._selection.selected(this))}),!0).on("mouseout.tooltip",this.tooltip.hide).on("mousemove.tooltip",this.tooltip.show).merge(c).attr("transform",(function(t){return h.isHorizontal()?"translate(".concat(l.dataStartPos(t),", ").concat(l.verticalBands(i[t]),") "):"translate(".concat(l.verticalBands(i[t]),", ").concat(l.dataStartPos(t),") ")})).each((function(t){var e=h.localRect.get(this),i=h.dataWidth(t)/2,o=h.verticalBands.bandwidth()/2,n=Math.max(h.dataWidth(t),2),r=Math.max(h.verticalBands.bandwidth(),2),s=.191*r,a=.618*r,l=a;e.pos(h.isHorizontal()?{x:i,y:o}:{x:o,y:i}).fixedHeight(h.isHorizontal()?r:n).fixedWidth(h.isHorizontal()?n:r).icon(void 0!==t[h._icon_idx]?t[h._icon_idx]:"").title(void 0!==t[h._title_idx]?t[h._title_idx]:"").padding(s).iconDiameter(l).titleFontSize(a),1.5*l>n&&e.icon(null),h.updateEntityRect(e,t[h._icon_idx]),e.render()})),c.exit().remove()},n.prototype.exit=function(e,i){this.brAxis.target(null),this.tlAxis.target(null),t.prototype.exit.call(this,e,i)},n.prototype.click=function(t,e,i){},n.prototype.dblclick=function(t,e,i){},n.prototype.enterEntityRect=function(t,e){},n.prototype.updateEntityRect=function(t,e){},n}(o.SVGWidget);c.prototype._class+=" timeline_MiniGantt",c.prototype.implements(e.ITooltip.prototype),c.prototype.mixin(o.Utility.SimpleSelectionMixin),c.prototype.publish("timePattern","%Y-%m-%d","string","timePattern"),c.prototype.publish("tickFormat",null,"string","tickFormat",void 0,{optional:!0}),c.prototype.publish("tooltipTimeFormat","%Y-%m-%d","string","tooltipTimeFormat"),c.prototype.publish("overlapTolerence",2,"number","overlapTolerence"),c.prototype.publish("orientation","horizontal","set","orientation",["horizontal","vertical"]),c.prototype.publish("rangeFontColor","#ecf0f1","html-color","rangeFontColor"),c.prototype.publish("titleColumn",null,"string","titleColumn"),c.prototype.publish("startDateColumn",null,"string","startDateColumn"),c.prototype.publish("endDateColumn",null,"string","endDateColumn"),c.prototype.publish("iconColumn",null,"string","iconColumn"),c.prototype.publish("colorColumn",null,"string","colorColumn"),c.prototype.publish("yOffsetColumn",null,"string","yOffsetColumn"),c.prototype.publish("maxZoom",16,"number","maxZoom"),c.prototype.publish("eventGroupOffset",-50,"number","eventGroupOffset"),c.prototype.publish("eventGroupMod",5,"number","eventGroupMod"),c.prototype.publish("eventFontColorColumn",null,"string","eventFontColorColumn"),c.prototype.publish("eventBorderColorColumn",null,"string","eventBorderColorColumn"),c.prototype.publish("eventBackgroundColorColumn",null,"string","eventBackgroundColorColumn"),c.prototype.publish("hideIconWhenCollapsed",!1,"boolean","hideIconWhenCollapsed"),c.prototype.publish("hideTitleWhenCollapsed",!1,"boolean","hideTitleWhenCollapsed"),c.prototype.publish("hideDescriptionWhenCollapsed",!1,"boolean","hideDescriptionWhenCollapsed"),c.prototype.publish("hideAnnotationsWhenCollapsed",!0,"boolean","hideAnnotationsWhenCollapsed"),c.prototype.publish("centerOnMostRecent",!1,"boolean","If true, the timeline will be centered on the most recent data point");var u=function(t){function e(e){void 0===e&&(e="origin");var i=t.call(this)||this;return i._selection=new o.Utility.Selection(i),i._title_idx=0,i._startDate_idx=1,i._endDate_idx=2,i._icon_idx=-1,i._color_idx=-1,i._series_idx=-1,i._bucket_idx=-1,i._yoffset_idx=-1,i._rangeOptions={rangePadding:2,fontFamily:"Verdana",fontSize:12,fill:"white",stroke:"black",textFill:"black",cornerRadius:3,strokeWidth:0},i._rangeRenderer=r.LabelledRect,i._transform={k:1,x:0,y:0},i._drawStartPos=e,i.showToolbar_default(!1),i._tooltip=new n.HTMLTooltip,i._tooltip.tooltipHTML((function(t){return'<div style="text-align:center;">'.concat(t[0],"<br/><br/>").concat(t[1]," -&gt; ").concat(t[2],"</div>")})),i._tooltip.followCursor(!0),i}return l(e,t),e.prototype.selection=function(t){return arguments.length?(this._selection.set(t),this):this._selection.get()},e.prototype.rangeRenderer=function(t){return arguments.length?(this._rangeRenderer=t,this._rangeRenderer):this._rangeRenderer},e.prototype.enter=function(e,i){t.prototype.enter.call(this,e,i);var o=this;i.on("click",(function(t){o._selection.clear()})),this._tooltip.target(e)},e.prototype.update=function(e,i){var n=this;t.prototype.update.call(this,e,i),this.zoomExtent([.05,this.maxZoom()]),this._title_idx=null!==this.titleColumn()?this.columns().indexOf(this.titleColumn()):this._title_idx,this._startDate_idx=null!==this.startDateColumn()?this.columns().indexOf(this.startDateColumn()):this._startDate_idx,this._endDate_idx=null!==this.endDateColumn()?this.columns().indexOf(this.endDateColumn()):this._endDate_idx,this._icon_idx=null!==this.iconColumn()?this.columns().indexOf(this.iconColumn()):this._icon_idx,this._color_idx=null!==this.colorColumn()?this.columns().indexOf(this.colorColumn()):this._color_idx,this._series_idx=null!==this.seriesColumn()?this.columns().indexOf(this.seriesColumn()):this._series_idx,this._bucket_idx=null!==this.bucketColumn()?this.columns().indexOf(this.bucketColumn()):-1;var r=this,s=this.width(),a=s;if(this._interpolateX=o.scaleLinear().domain([this._minStart,this._maxEnd]).range([0,a]),this.data().sort((function(t,e){return t[1]-e[1]})),this._series_idx>-1){this._origIdxMap={},this._dataBySeries={},this._bucketsBySeries={},this.data().forEach((function(t,e){var i=t[n._series_idx];n._dataBySeries[i]||(n._origIdxMap[i]={},n._dataBySeries[i]=[]),n._dataBySeries[i].push({dataRow:t,origIdx:e})}));var l=this.gutter(),p=0,c=Object.keys(this._dataBySeries);c.forEach((function(t){n._dataBySeries[t].sort((function(t,e){return t.dataRow[1]-e.dataRow[1]})),n._bucketsBySeries[t]=n.calcBuckets(n._dataBySeries[t].map((function(t){return t.dataRow})),1,2),n._bucketsBySeries[t].bucketHeight=n.bucketHeight(),n._bucketsBySeries[t].bucketOffset=p,p+=(n._bucketsBySeries[t].bucketHeight+n.strokeWidth()+n.gutter())*(n._bucketsBySeries[t].maxBucket+1),n._dataBySeries[t].forEach((function(e,i){n._origIdxMap[t][e.origIdx]=i}))})),this._seriesBackgrounds=this._renderElement.selectAll(".series-background").data(c.map((function(t){return n._bucketsBySeries[t]}))),this._seriesBackgrounds.join((function(t){return t.append("rect").attr("class","series-background")}),(function(t){return t}),(function(t){return t.each((function(t){delete t.element})).remove()})).attr("opacity",(function(t){return t.props&&t.props.hidden?0:1})).each((function(t,e){o.select(this).attr("x",0).attr("y",t.bucketOffset-l/2).attr("width",s).attr("height",(t.bucketHeight+l)*(t.maxBucket+1)+l).attr("fill",e%2?r.oddSeriesBackground():r.evenSeriesBackground())}))}else-1!==this._bucket_idx?this._buckets=this.calcBuckets(this.data(),this._startDate_idx,this._endDate_idx,this._bucket_idx):this._buckets=this.calcBuckets(this.data(),this._startDate_idx,this._endDate_idx);var u=this._interpolateX(this._minStart);this.zoomTo([u,0],1);var d=this.bucketHeight();this.setRangeOptions(),this._maxFontScale=d-2*this.rangePadding(),this.measureDataText();var m=this._renderElement.selectAll(".item").data(this.data()),_=this.strokeWidth(),g=2*_;m.join((function(t){return t.append("g").attr("class","item").on("click.selectionBag",(function(t,e){var i=void 0===t.id?e:t.id;r._selection.isSelected({_id:i,element:t.element})?r._selection.clear():r._selection.click({_id:i,element:function(){return t.element}},o.d3Event),r.selectionChanged(),o.d3Event().stopPropagation()})).on("click",(function(t){var e=t.element.classed("selected");t[r.columns().length]&&(t.__lparam=t[r.columns().length]),r.click(t,"",e)})).on("dblclick",(function(t){var e=t.element.classed("selected");t[r.columns().length]&&(t.__lparam=t[r.columns().length]),r.click(t,"",e)})).on("mousein",(function(t){r.highlightItem(o.select(this),t);var e=t.element.classed("selected");r.mousein(t,"",e)})).on("mouseover",(function(t){var e=o.d3Event();r._tooltip._triggerElement=t.element,r._tooltip._cursorLoc=[e.clientX,e.clientY],r._tooltip.data(t).visible(!0).fitContent(!0).render(),r.highlightItem(o.select(this),t);var i=t.element.classed("selected");r.mouseover(t,"",i)})).on("mouseout",(function(t){r._tooltip.visible(!1).render(),r.highlightItem(null,null);var e=t.element.classed("selected");r.mouseout(t,"",e)})).each((function(t,e){t.that=this,t.element=o.select(this),t.x=r._interpolateX(t[1]);var i=r._interpolateX(t[2]);if(r._series_idx>-1){var n=t[r._series_idx],s=r._bucketsBySeries[n].bucketMap[r._origIdxMap[n][e]];t.y=r._bucketsBySeries[n].interpolateY(s)+r._bucketsBySeries[n].bucketOffset}else{var a=-1===r._bucket_idx?e:t[r._bucket_idx];t.y=r._buckets.interpolateY(r._buckets.bucketMap[a])}t.props=h(h({},t[3]),{text:t[0]}),t.props.width=i-t.x,t.props.height=d,t.x+=_,t.y+=_,t.props.width-=g,t.props.height-=g,t.element.attr("transform","translate(".concat(t.x+t.props.width/2," ").concat(t.y+t.props.height/2,")"))}))}),(function(t){return t}),(function(t){return t.each((function(t){delete t.element})).remove()})).attr("opacity",(function(t){return t.props&&t.props.hidden?0:1})).each((function(t,e){if(t.that=this,r._series_idx>-1){var i=t[r._series_idx];t.x=r.renderRangeElement(t,e,!1,r._rangeOptions,i)}else t.x=r.renderRangeElement(t,e,!1,r._rangeOptions)})).on("dblclick.zoom",(function(t){var e=n._interpolateX(t[1]),i=n._interpolateX(t[2]),o=s/(i-e);n.zoomTo([-e*o,0],o)})),i.on("dblclick.zoom",null)},e.prototype.renderRangeElement=function(t,e,i,n,s){void 0===i&&(i=!1),void 0===n&&(n={});var a,l,p=n.strokeWidth,c=2*p,u=n.rangePadding,d=isNaN(this._transform.x)?0:this._transform.x,m=isNaN(this._transform.k)?1:this._transform.k,_=this.bucketHeight();t.that.setAttribute("data-series",s),this._color_idx>-1&&t.that.setAttribute("data-color",t[this._color_idx]),void 0!==s?(l=this._bucketsBySeries[s].bucketMap[this._origIdxMap[s][e]],t.that.setAttribute("data-b",l),t.that.setAttribute("data-bucketOffset",this._bucketsBySeries[s].bucketOffset),t.y=this._bucketsBySeries[s].interpolateY(l)+this._bucketsBySeries[s].bucketOffset,t.that.setAttribute("data-dy",t.y)):(l=this._buckets.bucketMap[e],t.y=this._buckets.interpolateY(l)),this._color_idx>-1&&(n.fill=t[this._color_idx]),i?(t.x=this._interpolateX(t[1])*m,a=this._interpolateX(t[2])*m,t.props=h(h({},t[3]),{text:t[0]}),t.props.width=(a-t.x)/m,t.x+=d,t.props.width*=m):(t.x=this._interpolateX(t[1]),a=this._interpolateX(t[2]),t.props=h(h({},t[3]),{text:t[0]}),t.props.width=(a-t.x)/m),t.props.height=_,void 0===s&&this._buckets.bucketScale<1&&(t.props.height=this._buckets.bucketScale*_),void 0===t.element&&t.that&&(t.element=o.select(t.that)),t.element.attr("transform","translate(".concat(t.x+t.props.width/2," ").concat(t.y+t.props.height/2,")")),t.x+=p,t.y+=p,t.props.width-=c,t.props.height-=c,t.props.width=t.props.width<1?1:t.props.width,t.props.height=t.props.height<1?1:t.props.height;var g=this.truncateText(t.props.text,t.props.width-u,this._maxFontScale);g!==t.props.text?g=this.truncateText(t.props.text,t.props.width-u):t.props.fontSize=this._maxFontScale*n.fontSize,void 0===s&&this._buckets.bucketScale<1&&(t.props.fontSize=Math.min(this._maxFontScale,this._buckets.bucketScale)*n.fontSize),(!this._maxY||this._maxY<t.y+t.props.height)&&(this._maxY=t.y+t.props.height),(!this._maxX||this._maxX<t.x+t.props.width)&&(this._maxX=t.x+t.props.width),r.render(this._rangeRenderer,h(h(h({},n),t.props),{text:g}),t.that)},e.prototype.setRangeOptions=function(){this._rangeOptions={rangePadding:this.rangePadding(),fontFamily:this.fontFamily(),fontSize:this.fontSize(),strokeWidth:this.strokeWidth(),fill:this.fill(),stroke:this.stroke(),textFill:this.rangeFontColor(),cornerRadius:this.cornerRadius()}},e.prototype.zoomed=function(t){var e=this;if(this._transform=t,"scale-all"===this.renderMode())this._zoomScale=t.k,this._zoomTranslate=[t.x,0],this._zoomG.attr("transform","translate(".concat(t.x," ").concat(0,")scale(").concat(t.k," 1)"));else{var i=this._rangeOptions;this.data().forEach((function(t,o){if(e._color_idx>-1&&(i.fill=t[e._color_idx]),e._series_idx>-1){var n=t[e._series_idx];e.renderRangeElement(t,o,!0,i,n)}else e.renderRangeElement(t,o,!0,i)}))}this.zoomedHook(t)},e.prototype.zoomedHook=function(t){},e.prototype.calcBuckets=function(t,e,i,n){var r={},s={},a=this.overlapTolerence(),l=[{end:-1/0}],h=0;void 0!==n?(t.forEach((function(t,e){r[e]=t[n],s[t[n]]=!0})),h=Object.keys(s).length):t.forEach((function(t,o){for(var n=0;n<l.length;++n)if(0===o||l[n][i]+a<=t[e]){r[o]=n,h<n&&(h=n),l[n][i]=t[i];break}if(void 0===r[o]){r[o]=l.length;var s={};s[i]=t[i],l.push(s)}h<r[o]&&(h=r[o])}));var p=(h+1)*(this.bucketHeight()+this.gutter());return{bucketMap:r,maxBucket:h,bucketScale:this.height()/p,interpolateY:o.scaleLinear().domain([0,h+1]).range([0,Math.min(this.height(),p)])}},e.prototype.data=function(e){var i,o,n=t.prototype.data.apply(this,arguments);return arguments.length>0&&(this._minStart=null!==(i=Math.min.apply(Math,this.data().map((function(t){return t[1]}))))&&void 0!==i?i:0,this._maxEnd=null!==(o=Math.max.apply(Math,this.data().map((function(t){return t[2]}))))&&void 0!==o?o:1,this.measureDataText(!0)),n},e.prototype.measureDataText=function(t){void 0===t&&(t=!1);var e={},i={},n=this.fontFamily(),r=this.fontSize(),s=this.bucketHeight();s&&(this._maxFontScale=(s-2*this.rangePadding())/r),(t||this._prevFontFamily!==n||this._prevFontSize!==r)&&(i["."]=o.Utility.textSize(".",n,r).width,this.data().forEach((function(t){e[t[0]]||(e[t[0]]=o.Utility.textSize(t[0],n,r).width),t[0].split("").forEach((function(t){i[t]||(i[t]=o.Utility.textSize(t,n,r).width)}))})),this._textWidths=e,this._characterWidths=i),this._prevFontFamily=n,this._prevFontSize=r},e.prototype.truncateText=function(t,e,i){if(void 0===i&&(i=1),this._textWidths[t]*i<e)return t;for(var o="",n=0,r=e-3*this._characterWidths["."],s=0,a=t;s<a.length;s++){var l=a[s];if(!((n+=this._characterWidths[l])<r))break;o+=l}return r<0?"":o+"..."},e.prototype.resize=function(e){return this.fitWidthToContent()||this.fitHeightToContent()?t.prototype.resize.call(this,{width:e.width,height:this._maxY}):t.prototype.resize.apply(this,arguments)},e.prototype.selectionChanged=function(){},e.prototype.highlightItem=function(t,e){},e.prototype.click=function(t,e,i){},e.prototype.dblclick=function(t,e,i){},e.prototype.mousein=function(t,e,i){},e.prototype.mouseover=function(t,e,i){},e.prototype.mouseout=function(t,e,i){},e}(o.SVGZoomWidget);u.prototype._class+=" timeline_ReactGantt",u.prototype.publish("fitWidthToContent",!1,"boolean","If true, resize will simply reapply the bounding box width"),u.prototype.publish("fitHeightToContent",!1,"boolean","If true, resize will simply reapply the bounding box height"),u.prototype.publish("titleColumn",null,"string","Column name to for the title"),u.prototype.publish("startDateColumn",null,"string","Column name to for the start date"),u.prototype.publish("endDateColumn",null,"string","Column name to for the end date"),u.prototype.publish("iconColumn",null,"string","Column name to for the icon"),u.prototype.publish("colorColumn",null,"string","Column name to for the color"),u.prototype.publish("seriesColumn",null,"string","Column name to for the series identifier"),u.prototype.publish("bucketColumn",null,"string","Column name to for the bucket identifier"),u.prototype.publish("renderMode","default","set","Render modes vary in features and performance",["default","scale-all"]),u.prototype.publish("rangePadding",3,"number","Padding within each range rectangle (pixels)"),u.prototype.publish("fill","#1f77b4","string","Background color of range rectangle"),u.prototype.publish("stroke",null,"string","Color of range rectangle border"),u.prototype.publish("strokeWidth",null,"number","Width of range rectangle border (pixels)"),u.prototype.publish("cornerRadius",3,"number","Space between range buckets (pixels)"),u.prototype.publish("fontFamily",null,"string","Font family within range rectangle",null,{optional:!0}),u.prototype.publish("fontSize",10,"number","Size of font within range rectangle (pixels)"),u.prototype.publish("rangeFontColor","#ecf0f1","html-color","rangeFontColor"),u.prototype.publish("overlapTolerence",2,"number","overlapTolerence"),u.prototype.publish("smallestRangeWidth",10,"number","Width of the shortest range (pixels)"),u.prototype.publish("bucketHeight",100,"number","Max height of range element (pixels)"),u.prototype.publish("gutter",2,"number","Space between range buckets (pixels)"),u.prototype.publish("maxZoom",16,"number","Maximum zoom"),u.prototype.publish("evenSeriesBackground","#FFFFFF","html-color","Background color of even series rows"),u.prototype.publish("oddSeriesBackground","#DDDDDD","html-color","Background color of odd series rows");var d=function(t){function e(){var e=t.call(this)||this;return e._topAxis=new i.Axis("center").orientation("top").type("linear").shrinkToFit("none").overlapMode("hide").extend(0).tickFormat("d"),e._gantt=new u("center").stroke("#000000"),e._bottomAxis=new i.Axis("center").orientation("bottom").type("linear").shrinkToFit("none").overlapMode("hide").extend(0).tickFormat("d"),e._drawStartPos="origin",e.rangeRenderer=function(){var t=this._gantt.rangeRenderer.apply(this._gantt,arguments);return arguments.length?this:t},e}return l(e,t),e.prototype.selection=function(t){return arguments.length?(this._gantt.selection(t),this):this._gantt.selection()},e.prototype.resizeWrappers=function(){var t=this.width(),e=this.height(),i=this.axisHeight(),o=e-2*i,n=this.strokeWidth();this._topRect.attr("height",i).attr("width",t).attr("fill","transparent"),this._topAxisElement.attr("transform","translate(0 0)"),this._topAxis.resize({height:i,width:t}),this._contentRect.attr("height",o).attr("width",t).attr("fill","transparent"),this._contentElement.attr("transform","translate(0 ".concat(i+n,")")),this._gantt.resize({height:o,width:t}),this._bottomRect.attr("height",i).attr("width",t).attr("fill","transparent"),this._bottomAxisElement.attr("transform","translate(0 ".concat(i+o+n,")")),this._bottomAxis.resize({height:i,width:t})},e.prototype.enter=function(e,i){var o=this;t.prototype.enter.call(this,e,i),this._gantt.click=function(t,e,i){o.click(t,e,i)},this._gantt.dblclick=function(t,e,i){o.dblclick(t,e,i)},this._topAxisElement=i.append("g").attr("class","top-axis-wrapper"),this._topRect=this._topAxisElement.append("rect").attr("class","top-axis-rect"),this._contentElement=i.append("g").attr("class","content-wrapper"),this._contentRect=this._contentElement.append("rect").attr("class","content-rect"),this._bottomAxisElement=i.append("g").attr("class","bottom-axis-wrapper"),this._bottomRect=this._bottomAxisElement.append("rect").attr("class","top-axis-rect"),this._topAxis.target(this._topAxisElement.node()),this._gantt.target(this._contentElement.node()).bucketHeight(30),this._bottomAxis.target(this._bottomAxisElement.node()),this.resizeWrappers(),this._gantt.zoomedHook=function(t){o.onzoom(t)}},e.prototype.onzoom=function(t){var e=this.width(),i=this._gantt._minStart,o=this._gantt._maxEnd-i,n=o/e,r=Math.floor(i-n*(t.x/t.k)),s=Math.ceil(o/t.k+r);this._topAxis.fontFamily(this.axisFontFamily()).fontSize(this.axisFontSize()).tickLength(this.axisTickLength()).low(r).high(s).render(),this._bottomAxis.fontFamily(this.axisFontFamily()).fontSize(this.axisFontSize()).tickLength(this.axisTickLength()).low(r).high(s).render()},e.prototype.update=function(e,i){t.prototype.update.call(this,e,i),this._topAxis.tickFormat(this.tickFormat()).render(),this._bottomAxis.tickFormat(this.tickFormat()).render(),this._gantt.render()},e.prototype.columns=function(e){var i=t.prototype.columns.apply(this,arguments);return arguments.length>0&&this._gantt.columns(e),i},e.prototype.data=function(e){var i,o,n=t.prototype.data.apply(this,arguments);if(arguments.length>0){var r=this.data().map((function(t){var e=p([],t,!0);return e[1]=isNaN(t[1])?new Date(t[1]).getTime():Number(t[1]),e[2]=isNaN(t[2])?new Date(t[2]).getTime():Number(t[2]),e}));this._gantt._minStart=null!==(i=Math.min.apply(Math,r.map((function(t){return t[1]}))))&&void 0!==i?i:0,this._gantt._maxEnd=null!==(o=Math.max.apply(Math,r.map((function(t){return t[2]}))))&&void 0!==o?o:1,this._gantt.data(r)}return n},e.prototype.resize=function(e){var i=t.prototype.resize.apply(this,arguments);return this._topAxisElement&&this.resizeWrappers(),i},e.prototype.click=function(t,e,i){},e.prototype.dblclick=function(t,e,i){},e.prototype.tooltip=function(){return this._gantt._tooltip},e}(o.SVGWidget);d.prototype._class+=" timeline_ReactAxisGantt",d.prototype.publish("tickFormat",null,"string","Format rule applied to axis tick labels",void 0,{optional:!0}),d.prototype.publish("axisHeight",22,"number","Height of axes (pixels)"),d.prototype.publish("overlapTolerence",2,"number","overlapTolerence"),d.prototype.publish("smallestRangeWidth",10,"number","Width of the shortest range (pixels)"),d.prototype.publish("axisFontSize",null,"number","Font size of axis tick labels"),d.prototype.publish("axisFontFamily",null,"string","Font family of axis tick labels"),d.prototype.publish("axisTickLength",null,"number","Length of axis ticks"),d.prototype.publishProxy("gutter","_gantt"),d.prototype.publishProxy("renderMode","_gantt"),d.prototype.publishProxy("strokeWidth","_gantt"),d.prototype.publishProxy("fontSize","_gantt"),d.prototype.publishProxy("fontFamily","_gantt"),d.prototype.publishProxy("stroke","_gantt"),d.prototype.publishProxy("cornerRadius","_gantt"),d.prototype.publishProxy("titleColumn","_gantt"),d.prototype.publishProxy("startDateColumn","_gantt"),d.prototype.publishProxy("endDateColumn","_gantt"),d.prototype.publishProxy("iconColumn","_gantt"),d.prototype.publishProxy("colorColumn","_gantt"),d.prototype.publishProxy("bucketColumn","_gantt"),d.prototype.publishProxy("maxZoom","_gantt"),d.prototype.publishProxy("bucketHeight","_gantt");var m=function(t){function e(){var e=t.call(this)||this;return e._topAxis=new i.Axis("origin").orientation("top").type("linear").shrinkToFit("none").overlapMode("hide").extend(0).tickFormat("d"),e._gantt=new u("origin").stroke("#000000").fitHeightToContent(!0),e._bottomAxis=new i.Axis("origin").orientation("bottom").type("linear").shrinkToFit("none").overlapMode("hide").extend(0).tickFormat("d"),e.centerOverflowX_default("hidden"),e.centerOverflowY_default("auto"),e}return l(e,t),e.prototype.selection=function(t){return arguments.length?(this._gantt.selection(t),this):this._gantt.selection()},e.prototype.rangeRenderer=function(t){var e=this._gantt.rangeRenderer.apply(this._gantt,arguments);return arguments.length?this:e},e.prototype.resizeWrappers=function(){var t=this.width(),e=this.height(),i=this.axisHeight(),o=e-2*i;this.bottomHeight(i),this._topWA.resize({width:t,height:i}),this._centerWA.resize({width:t,height:o}),this._bottomWA.resize({width:t,height:i}),this.top().render(),this.bottom().render(),this.center().render()},e.prototype.enter=function(e,i){var o=this;t.prototype.enter.call(this,e,i),this._gantt.click=function(t,e,i){o.click(t,e,i)},this._gantt.dblclick=function(t,e,i){o.dblclick(t,e,i)},this.top(this._topAxis),this.center(this._gantt),this.bottom(this._bottomAxis),this.resizeWrappers(),this._gantt.zoomedHook=function(t){o.onzoom(t)}},e.prototype.onzoom=function(t){var e=this.width(),i=this._gantt._minStart,o=this._gantt._maxEnd-i,n=o/e,r=Math.floor(i-n*(t.x/t.k)),s=Math.ceil(o/t.k+r);this._topAxis.fontFamily(this.axisFontFamily()).fontSize(this.axisFontSize()).tickLength(this.axisTickLength()).low(r).high(s).lazyRender(),this._bottomAxis.fontFamily(this.axisFontFamily()).fontSize(this.axisFontSize()).tickLength(this.axisTickLength()).low(r).high(s).lazyRender()},e.prototype.update=function(e,i){t.prototype.update.call(this,e,i),this._topAxis.tickFormat(this.tickFormat()).render(),this._bottomAxis.tickFormat(this.tickFormat()).render(),this._gantt.render()},e.prototype.columns=function(e){var i=t.prototype.columns.apply(this,arguments);return arguments.length>0&&this._gantt.columns(e),i},e.prototype.data=function(e){var i=t.prototype.data.apply(this,arguments);if(arguments.length>0){var n=this.data().map((function(t){var e=p([],t,!0);return e[1]=isNaN(t[1])?new Date(t[1]).getTime():Number(t[1]),e[2]=isNaN(t[2])?new Date(t[2]).getTime():Number(t[2]),e}));this._gantt._minStart=o.min(n,(function(t){return t[1]})),this._gantt._maxEnd=o.max(n,(function(t){return t[2]})),this._gantt.data(n)}return i},e.prototype.resize=function(e){var i=t.prototype.resize.apply(this,arguments);return this._topAxisElement&&this.resizeWrappers(),i},e.prototype.click=function(t,e,i){},e.prototype.dblclick=function(t,e,i){},e.prototype.tooltip=function(){return this._gantt._tooltip},e}(s.Border2);m.prototype._class+=" timeline_ReactAxisGanttSeries",m.prototype.publish("tickFormat",null,"string","Format rule applied to axis tick labels",void 0,{optional:!0}),m.prototype.publish("axisHeight",22,"number","Height of axes (pixels)"),m.prototype.publish("overlapTolerence",2,"number","overlapTolerence"),m.prototype.publish("smallestRangeWidth",10,"number","Width of the shortest range (pixels)"),m.prototype.publish("axisFontSize",null,"number","Font size of axis tick labels"),m.prototype.publish("axisFontFamily",null,"string","Font family of axis tick labels"),m.prototype.publish("axisTickLength",null,"number","Length of axis ticks"),m.prototype.publishProxy("gutter","_gantt"),m.prototype.publishProxy("renderMode","_gantt"),m.prototype.publishProxy("strokeWidth","_gantt"),m.prototype.publishProxy("fontSize","_gantt"),m.prototype.publishProxy("fontFamily","_gantt"),m.prototype.publishProxy("stroke","_gantt"),m.prototype.publishProxy("cornerRadius","_gantt"),m.prototype.publishProxy("titleColumn","_gantt"),m.prototype.publishProxy("startDateColumn","_gantt"),m.prototype.publishProxy("endDateColumn","_gantt"),m.prototype.publishProxy("iconColumn","_gantt"),m.prototype.publishProxy("colorColumn","_gantt"),m.prototype.publishProxy("seriesColumn","_gantt"),m.prototype.publishProxy("bucketColumn","_gantt"),m.prototype.publishProxy("maxZoom","_gantt"),m.prototype.publishProxy("evenSeriesBackground","_gantt"),m.prototype.publishProxy("oddSeriesBackground","_gantt"),m.prototype.publishProxy("bucketHeight","_gantt");var _=function(t){function e(){var e=t.call(this)||this;return e._drawStartPos="origin",e._topAxis.type("time"),e._bottomAxis.type("time"),e.tooltipHTML((function(t){var i=o.timeParse("%Q"),n=i(t[1]),r=i(t[2]),s=o.timeFormat(e.tooltipTimeFormat());return'<div style="text-align:center;">'.concat(t[0],"<br/><br/>").concat(s(n)," -&gt; ").concat(s(r),"</div>")})),e}return l(e,t),e.prototype.update=function(e,i){if(t.prototype.update.call(this,e,i),this.timePattern_exists()){var o=1/0,n=-1/0,r="",s="";this.data().map((function(t){var e=new Date(t[1]).getTime(),i=new Date(t[2]).getTime();o>e&&(o=e,r=""+t[1]),n<i&&(n=i,s=""+t[2])})),this._topAxis.type("time").timePattern(this.timePattern()).overlapMode("none").tickFormat(this._axisLabelFormatter).low(r).high(s),this._bottomAxis.type("time").timePattern(this.timePattern()).overlapMode("none").tickFormat(this._axisLabelFormatter).low(r).high(s),this._gantt._minStart=o,this._gantt._maxEnd=n}},e.prototype.tooltipHTML=function(t){return this._tooltipHTML=t,this.tooltip().tooltipHTML(this._tooltipHTML),this},e.prototype.parseAxisValue=function(t){var e=o.timeParse("%Q")(t);return o.timeFormat(this.timePattern())(e)},e.prototype.onzoom=function(t){var e=this.width(),i=this._gantt._minStart,o=this._gantt._maxEnd-i,n=o/e,r=Math.floor(i-n*(t.x/t.k)),s=Math.ceil(o/t.k+r);this._topAxis.low(this.parseAxisValue(r)).high(this.parseAxisValue(s)).render(),this._bottomAxis.low(this.parseAxisValue(r)).high(this.parseAxisValue(s)).render()},e}(d);_.prototype._class+=" timeline_ReactTimeline",_.prototype.publish("timePattern","%Y-%m-%d","string","Time pattern used for parsing datetime strings on each data row",null,{optional:!0}),_.prototype.publish("tooltipTimeFormat","%Y-%m-%d","string","Time format used in the default html tooltip");var g=o.timeParse("%Q"),x=function(t){function e(){var e=t.call(this)||this;return e._topAxis.type("time"),e._bottomAxis.type("time"),e.tooltipHTML((function(t){var i=g(t[1]),n=g(t[2]),r=o.timeFormat(e.tooltipTimeFormat());return'<div style="text-align:center;">'.concat(t[0],"<br/><br/>").concat(r(i)," -&gt; ").concat(r(n),"</div>")})),e}return l(e,t),e.prototype.update=function(e,i){if(t.prototype.update.call(this,e,i),this.timePattern_exists()){var o=1/0,n=-1/0,r="",s="";this.data().forEach((function(t){var e=new Date(t[1]).getTime(),i=new Date(t[2]).getTime();o>e&&(o=e,r=""+t[1]),n<i&&(n=i,s=""+t[2])})),this._topAxis.type("time").timePattern(this.timePattern()).overlapMode("none").tickFormat(this._axisLabelFormatter).low(r).high(s),this._bottomAxis.type("time").timePattern(this.timePattern()).overlapMode("none").tickFormat(this._axisLabelFormatter).low(r).high(s),this._gantt._minStart=o,this._gantt._maxEnd=n}},e.prototype.tooltipHTML=function(t){return this._tooltipHTML=t,this.tooltip().tooltipHTML(this._tooltipHTML),this},e.prototype.parseAxisValue=function(t){var e=g(t);return o.timeFormat(this.timePattern())(e)},e.prototype.onzoom=function(t){var e=this.width(),i=this._gantt._minStart,o=this._gantt._maxEnd-i,n=o/e,r=Math.floor(i-n*(t.x/t.k)),s=Math.ceil(o/t.k+r);this._topAxis.low(this.parseAxisValue(r)).high(this.parseAxisValue(s)).render(),this._bottomAxis.low(this.parseAxisValue(r)).high(this.parseAxisValue(s)).render()},e}(m);x.prototype._class+=" timeline_ReactTimelineSeries",x.prototype.publish("timePattern","%Y-%m-%d","string","Time pattern used for parsing datetime strings on each data row",null,{optional:!0}),x.prototype.publish("tooltipTimeFormat","%Y-%m-%d","string","Time format used in the default html tooltip"),t.BUILD_VERSION="2.108.2",t.MiniGantt=c,t.PKG_NAME="@hpcc-js/timeline",t.PKG_VERSION="2.54.1",t.ReactAxisGantt=d,t.ReactAxisGanttSeries=m,t.ReactGantt=u,t.ReactTimeline=_,t.ReactTimelineSeries=x}));
2
- //# sourceMappingURL=index.min.js.map