@hpcc-js/other 2.15.23 → 2.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.es6.js +2 -2
- package/dist/index.es6.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +6 -6
- package/src/__package__.ts +2 -2
- package/types/__package__.d.ts +2 -2
- package/types/__package__.d.ts.map +1 -1
- package/types-3.4/__package__.d.ts +2 -2
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/__package__.ts","../../../node_modules/tslib/tslib.es6.mjs","../../../node_modules/d3-timer/src/timer.js","../src/Audio.ts","../../../node_modules/javascript-autocomplete/auto-complete.js","../../../node_modules/style-inject/dist/style-inject.es.js","../src/AutoCompleteText.ts","../../../node_modules/d3-time/src/interval.js","../../../node_modules/d3-time/src/duration.js","../../../node_modules/d3-time/src/day.js","../../../node_modules/d3-time/src/week.js","../../../node_modules/d3-time/src/month.js","../../../node_modules/d3-time/src/year.js","../src/CalendarHeatMap.ts","../src/Comms.ts","../src/ESP.ts","../../../node_modules/simpleheat/simpleheat.js","../src/HeatMap.ts","../src/HPCCBadge.ts","../src/Html.ts","../src/IconList.ts","../src/Paginator.ts","../src/Table.ts","../src/Legend.ts","../src/MorphText.ts","../src/NestedTable.ts","../src/Opportunity.ts","../src/Persist.ts","../src/PropertyEditor.ts","../src/RadioCheckbox.ts","../src/Select.ts","../src/ThemeEditor.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/other\";\nexport const PKG_VERSION = \"2.15.23\";\nexport const BUILD_VERSION = \"2.105.12\";\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import { HTMLWidget } from \"@hpcc-js/common\";\nimport { timer as d3Timer } from \"d3-timer\";\n\nexport class Audio extends HTMLWidget {\n _sections;\n\n constructor() {\n super();\n this._tag = \"audio\";\n\n this._sections = {};\n }\n\n section(label, offset, beatLength, beatCount) {\n if (!arguments.length) return this._sections;\n if (arguments.length === 1) return this._sections[label];\n this._sections[label] = {\n label,\n offset,\n beatLength,\n beatCount,\n endOffset: offset + beatCount * beatLength\n };\n return this;\n }\n\n getType(fileExt) {\n switch (fileExt) {\n case \"mp3\":\n return \"audio/mpeg; codecs='mp3'\";\n case \"ogg\":\n return \"audio/ogg; codecs='vorbis'\";\n }\n return \"\";\n }\n\n enter(domNode, element) {\n const context = this;\n element.on(\"play\", function (d) { context.onPlay(d); });\n }\n\n update(domNode, element) {\n const source = element.selectAll(\"source\").data(this.source(), function (d) { return d; });\n source.enter().append(\"source\")\n .attr(\"src\", function (d) { return d; })\n ;\n }\n\n createTimer(params, startTime, beat) {\n const context = this;\n d3Timer(function () {\n context.onTick(params.label, beat, params);\n return true;\n }, beat * params.beatLength, startTime + params.offset);\n }\n\n onTick(label, beat, params) {\n }\n\n onPlay(d) {\n const startTime = Date.now();\n for (const key in this._sections) {\n const section = this._sections[key];\n for (let i = 0; i < section.beatCount; ++i) {\n this.createTimer(section, startTime, i);\n }\n }\n }\n\n play(d) {\n const context = this;\n this._element.on(\"canplaythrough\", function (d2) {\n context.node().play();\n });\n this.node().load();\n }\n\n source: { (): string; (_: string): Audio };\n source_exists: () => boolean;\n}\nAudio.prototype._class += \" other_Audio\";\n\nAudio.prototype.publish(\"source\", \"\", \"string\", \"Audio Source\");\n","/*\n JavaScript autoComplete v1.0.5\n Copyright (c) 2014 Simon Steinberger / Pixabay\n GitHub: https://github.com/Pixabay/JavaScript-autoComplete\n License: http://www.opensource.org/licenses/mit-license.php\n*/\n\nvar autoComplete = (function(){\n // \"use strict\";\n function autoComplete(options){\n if (!document.querySelector) return;\n\n // helpers\n function hasClass(el, className){ return el.classList ? el.classList.contains(className) : new RegExp('\\\\b'+ className+'\\\\b').test(el.className); }\n\n function addEvent(el, type, handler){\n if (el.attachEvent) el.attachEvent('on'+type, handler); else el.addEventListener(type, handler);\n }\n function removeEvent(el, type, handler){\n // if (el.removeEventListener) not working in IE11\n if (el.detachEvent) el.detachEvent('on'+type, handler); else el.removeEventListener(type, handler);\n }\n function live(elClass, event, cb, context){\n addEvent(context || document, event, function(e){\n var found, el = e.target || e.srcElement;\n while (el && !(found = hasClass(el, elClass))) el = el.parentElement;\n if (found) cb.call(el, e);\n });\n }\n\n var o = {\n selector: 0,\n source: 0,\n minChars: 3,\n delay: 150,\n offsetLeft: 0,\n offsetTop: 1,\n cache: 1,\n menuClass: '',\n renderItem: function (item, search){\n // escape special characters\n search = search.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n var re = new RegExp(\"(\" + search.split(' ').join('|') + \")\", \"gi\");\n return '<div class=\"autocomplete-suggestion\" data-val=\"' + item + '\">' + item.replace(re, \"<b>$1</b>\") + '</div>';\n },\n onSelect: function(e, term, item){}\n };\n for (var k in options) { if (options.hasOwnProperty(k)) o[k] = options[k]; }\n\n // init\n var elems = typeof o.selector == 'object' ? [o.selector] : document.querySelectorAll(o.selector);\n for (var i=0; i<elems.length; i++) {\n var that = elems[i];\n\n // create suggestions container \"sc\"\n that.sc = document.createElement('div');\n that.sc.className = 'autocomplete-suggestions '+o.menuClass;\n\n that.autocompleteAttr = that.getAttribute('autocomplete');\n that.setAttribute('autocomplete', 'off');\n that.cache = {};\n that.last_val = '';\n\n that.updateSC = function(resize, next){\n var rect = that.getBoundingClientRect();\n that.sc.style.left = Math.round(rect.left + (window.pageXOffset || document.documentElement.scrollLeft) + o.offsetLeft) + 'px';\n that.sc.style.top = Math.round(rect.bottom + (window.pageYOffset || document.documentElement.scrollTop) + o.offsetTop) + 'px';\n that.sc.style.width = Math.round(rect.right - rect.left) + 'px'; // outerWidth\n if (!resize) {\n that.sc.style.display = 'block';\n that.sc.classList.remove('hide')\n if (!that.sc.maxHeight) { that.sc.maxHeight = parseInt((window.getComputedStyle ? getComputedStyle(that.sc, null) : that.sc.currentStyle).maxHeight); }\n if (!that.sc.suggestionHeight) that.sc.suggestionHeight = that.sc.querySelector('.autocomplete-suggestion').offsetHeight;\n if (that.sc.suggestionHeight)\n if (!next) that.sc.scrollTop = 0;\n else {\n var scrTop = that.sc.scrollTop, selTop = next.getBoundingClientRect().top - that.sc.getBoundingClientRect().top;\n if (selTop + that.sc.suggestionHeight - that.sc.maxHeight > 0)\n that.sc.scrollTop = selTop + that.sc.suggestionHeight + scrTop - that.sc.maxHeight;\n else if (selTop < 0)\n that.sc.scrollTop = selTop + scrTop;\n }\n }\n }\n addEvent(window, 'resize', that.updateSC);\n document.body.appendChild(that.sc);\n\n live('autocomplete-suggestion', 'mouseleave', function(e){\n var sel = that.sc.querySelector('.autocomplete-suggestion.selected');\n if (sel) setTimeout(function(){ sel.className = sel.className.replace('selected', ''); }, 20);\n }, that.sc);\n\n live('autocomplete-suggestion', 'mouseover', function(e){\n var sel = that.sc.querySelector('.autocomplete-suggestion.selected');\n if (sel) sel.className = sel.className.replace('selected', '');\n this.className += ' selected';\n }, that.sc);\n\n live('autocomplete-suggestion', 'mousedown', function(e){\n if (hasClass(this, 'autocomplete-suggestion')) { // else outside click\n var v = this.getAttribute('data-val');\n that.value = v;\n o.onSelect(e, v, this);\n that.sc.style.display = 'none';\n that.sc.classList.add(\"hide\");\n\n }\n }, that.sc);\n\n that.blurHandler = function(){\n try { var over_sb = document.querySelector('.autocomplete-suggestions:hover'); } catch(e){ var over_sb = 0; }\n if (!over_sb) {\n that.last_val = that.value;\n that.sc.style.display = 'none';\n that.sc.classList.add(\"hide\");\n setTimeout(function(){\n that.sc.style.display = 'none';\n that.sc.classList.add(\"hide\");\n }, 350); // hide suggestions on fast input\n } else if (that !== document.activeElement) setTimeout(function(){ that.focus(); }, 20);\n };\n addEvent(that, 'blur', that.blurHandler);\n\n var suggest = function(data, val){\n if (!val) {\n var val = that.value;\n }\n that.cache[val] = data;\n if (data.length && val.length >= o.minChars) {\n var s = '';\n for (var i=0;i<data.length;i++) s += o.renderItem(data[i], val);\n that.sc.innerHTML = s;\n that.updateSC(0);\n }\n else {\n that.sc.style.display = 'none';\n that.sc.classList.add(\"hide\");\n }\n }\n\n that.keydownHandler = function(e){\n var key = window.event ? e.keyCode : e.which;\n // down (40), up (38)\n if ((key == 40 || key == 38) && that.sc.innerHTML) {\n var next, sel = that.sc.querySelector('.autocomplete-suggestion.selected');\n if (!sel) {\n next = (key == 40) ? that.sc.querySelector('.autocomplete-suggestion') : that.sc.childNodes[that.sc.childNodes.length - 1]; // first : last\n next.className += ' selected';\n that.value = next.getAttribute('data-val');\n } else {\n next = (key == 40) ? sel.nextSibling : sel.previousSibling;\n if (next) {\n sel.className = sel.className.replace('selected', '');\n next.className += ' selected';\n that.value = next.getAttribute('data-val');\n }\n else { sel.className = sel.className.replace('selected', ''); that.value = that.last_val; next = 0; }\n }\n that.updateSC(0, next);\n return false;\n }\n // esc\n else if (key == 27) {\n that.value = that.last_val;\n that.sc.style.display = 'none';\n that.sc.classList.add(\"hide\");\n }\n // enter\n else if (key == 13 || key == 9) {\n if (that.sc.style.display !== 'none') {\n e.preventDefault();\n }\n var sel = that.sc.querySelector('.autocomplete-suggestion.selected');\n if (sel && that.sc.style.display != 'none') {\n o.onSelect(e, sel.getAttribute('data-val'), sel);\n setTimeout(function(){\n that.sc.style.display = 'none';\n that.sc.classList.add(\"hide\");\n }, 20); }\n }\n };\n addEvent(that, 'keydown', that.keydownHandler);\n\n that.keyupHandler = function(e){\n var key = window.event ? e.keyCode : e.which;\n if (!key || (key < 35 || key > 40) && key != 13 && key != 27) {\n var val = that.value;\n if (val.length >= o.minChars) {\n if (val != that.last_val) {\n that.last_val = val;\n clearTimeout(that.timer);\n if (o.cache) {\n if (val in that.cache) { suggest(that.cache[val]); return; }\n // no requests if previous suggestions were empty\n for (var i=1; i<val.length-o.minChars; i++) {\n var part = val.slice(0, val.length-i);\n if (part in that.cache && !that.cache[part].length) { suggest([]); return; }\n }\n }\n that.timer = setTimeout(function(){ o.source(val, suggest) }, o.delay);\n }\n } else {\n that.last_val = val;\n that.sc.style.display = 'none';\n that.sc.classList.add(\"hide\");\n }\n }\n };\n addEvent(that, 'keyup', that.keyupHandler);\n\n that.focusHandler = function(e){\n that.last_val = '\\n';\n that.keyupHandler(e)\n };\n if (!o.minChars) addEvent(that, 'focus', that.focusHandler);\n }\n\n // public destroy method\n this.destroy = function(){\n for (var i=0; i<elems.length; i++) {\n var that = elems[i];\n removeEvent(window, 'resize', that.updateSC);\n removeEvent(that, 'blur', that.blurHandler);\n removeEvent(that, 'focus', that.focusHandler);\n removeEvent(that, 'keydown', that.keydownHandler);\n removeEvent(that, 'keyup', that.keyupHandler);\n if (that.autocompleteAttr)\n that.setAttribute('autocomplete', that.autocompleteAttr);\n else\n that.removeAttribute('autocomplete');\n document.body.removeChild(that.sc);\n that = null;\n }\n };\n }\n return autoComplete;\n})();\n\n(function(){\n if (typeof define === 'function' && define.amd)\n define('autoComplete', function () { return autoComplete; });\n else if (typeof module !== 'undefined' && module.exports)\n module.exports = autoComplete;\n else\n window.autoComplete = autoComplete;\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 { HTMLWidget } from \"@hpcc-js/common\";\nimport * as AutoComplete from \"javascript-autocomplete\";\n\nimport \"../src/AutoCompleteText.css\";\n\nexport class AutoCompleteText extends HTMLWidget {\n _span;\n _prompt;\n _input;\n _prevMinCharsText;\n _autoComplete;\n\n constructor() {\n super();\n this._tag = \"div\";\n }\n\n autoCompleteTextData() {\n if (this.data().length === 0) return [];\n const view = this._db.rollupView([this.textColumn(), this.valueColumn()]);\n return view.entries().map(function (row, idx) {\n return {\n idx,\n text: row.key,\n value: row.values.length ? row.values[0].key : \"\",\n origRow: row.values.length && row.values[0].value.length ? row.values[0].value[0] : []\n };\n }, this);\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._span = element.append(\"span\");\n this._prompt = this._span.append(\"label\")\n .attr(\"for\", this.id() + \"_input\")\n ;\n this._input = this._span.append(\"input\")\n .attr(\"id\", this.id() + \"_input\")\n .attr(\"name\", this.id() + \"_input_name\")\n .attr(\"type\", \"text\")\n .attr(\"placeholder\", this.placeholder())\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n this._prompt.text(this.label());\n this._input.style(\"width\", this.textboxWidth_exists() ? this.textboxWidth() + \"px\" : null);\n\n if (this._prevMinCharsText !== this.minCharsText()) {\n this._prevMinCharsText = this.minCharsText();\n\n if (this._autoComplete) {\n this._autoComplete.destroy();\n }\n const context = this;\n this._autoComplete = new AutoComplete({\n selector: \"#\" + this.id() + \"_input\",\n minChars: this.minCharsText(),\n delay: 150,\n offsetLeft: 0,\n offsetTop: 1,\n source: (term, suggest) => {\n const field = context._db.fieldByLabel(context.textColumn());\n if (field) {\n term = term.toLowerCase();\n const suggestions = context.autoCompleteTextData().filter(function (row) {\n return row.origRow[field.idx].toLowerCase().indexOf(term) >= 0;\n }).map(function (row) {\n return {\n text: row.origRow[field.idx],\n rowIdx: row.idx\n };\n });\n suggest(suggestions);\n }\n },\n renderItem: (item, search) => {\n search = search.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n const re = new RegExp(\"(\" + search.split(\" \").join(\"|\") + \")\", \"gi\");\n return '<div class=\"autocomplete-suggestion\" data-val=\"' + item.text + '\" data-row-idx=\"' + item.rowIdx + '\">' + item.text.replace(re, \"<b>$1</b>\") + \"</div>\";\n },\n onSelect: (e, term, item) => {\n const rowIdx = +item.getAttribute(\"data-row-idx\");\n const row = context.autoCompleteTextData()[rowIdx];\n context.click(context.rowToObj(row.origRow), context.valueColumn(), true);\n }\n });\n }\n }\n\n exit(domNode, element) {\n if (this._autoComplete) {\n this._autoComplete.destroy();\n }\n this._span.remove();\n super.exit(domNode, element);\n }\n\n click(row, column, selected) {\n }\n\n label: { (): string; (_: string): AutoCompleteText };\n label_exists: () => boolean;\n textboxWidth: { (): number; (_: number): AutoCompleteText };\n textboxWidth_exists: () => boolean;\n placeholder: { (): string; (_: string): AutoCompleteText };\n placeholder_exists: () => boolean;\n valueColumn: { (): string; (_: string): AutoCompleteText };\n valueColumn_exists: () => boolean;\n textColumn: { (): string; (_: string): AutoCompleteText };\n textColumn_exists: () => boolean;\n minCharsText: { (): number; (_: number): AutoCompleteText };\n minCharsText_exists: () => boolean;\n}\nAutoCompleteText.prototype._class += \" other_AutoCompleteText\";\n\nAutoCompleteText.prototype.publish(\"label\", \"Label: \", \"string\", \"Label for AutoCompleteText\");\nAutoCompleteText.prototype.publish(\"textboxWidth\", null, \"number\", \"width of textbox\", null, { optional: true });\nAutoCompleteText.prototype.publish(\"placeholder\", \"Search...\", \"string\", \"Placeholder for AutoCompleteText\");\nAutoCompleteText.prototype.publish(\"valueColumn\", null, \"set\", \"Select column for autocomplete\", function () { return this.columns(); }, { optional: true });\nAutoCompleteText.prototype.publish(\"textColumn\", null, \"set\", \"Select value(s)\", function () { return this.columns(); }, { optional: true });\nAutoCompleteText.prototype.publish(\"minCharsText\", 1, \"number\", \"Size of multiAutoCompleteText box\");\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import { HTMLWidget, Palette, Utility } from \"@hpcc-js/common\";\nimport { extent as d3Extent, range as d3Range } from \"d3-array\";\nimport { map as d3Map } from \"d3-collection\";\nimport { format as d3Format } from \"d3-format\";\nimport { select as d3Select } from \"d3-selection\";\nimport { timeDays as d3TimeDays, timeMonths as d3TimeMonths, timeWeek as d3TimeWeek, timeYear as d3TimeYear } from \"d3-time\";\nimport { timeParse as d3TimeParse } from \"d3-time-format\";\n\nimport \"../src/CalendarHeatMap.css\";\n\nexport class CalendarHeatMap extends HTMLWidget {\n _prevDateColumn;\n _prevAggrType;\n _prevAggrColumn;\n _prevAggrDeltaColumn;\n _view;\n _parentNode;\n\n constructor() {\n super();\n\n Utility.SimpleSelectionMixin.call(this);\n }\n\n calendarData() {\n if (this.fields().length === 0 || this.data().length === 0) {\n return [];\n }\n const dateParser = d3TimeParse(this.datePattern());\n const valueFormatter = this.aggrDeltaColumn() ? d3Format(\".1%\") : d3Format(\"s\");\n if (this._prevDateColumn !== this.dateColumn() ||\n this._prevAggrType !== this.aggrType() ||\n this._prevAggrColumn !== this.aggrColumn() ||\n this._prevAggrDeltaColumn !== this.aggrDeltaColumn()) {\n this._prevDateColumn = this.dateColumn();\n this._prevAggrType = this.aggrType();\n this._prevAggrColumn = this.aggrColumn();\n this._prevAggrDeltaColumn = this.aggrDeltaColumn();\n this._view = this._db.aggregateView([this.dateColumn()], this.aggrType(), this.aggrColumn(), this.aggrDeltaColumn());\n }\n return this._view.entries().map(function (row) {\n row.dateKey = dateParser(row.key);\n row.formattedValues = valueFormatter(row.value.aggregate);\n row.origRows = row.value;\n return row;\n });\n }\n\n calcDelta(row) {\n return (row.Close - row.Open) / row.Open;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n d3Select(domNode.parentNode)\n .style(\"overflow-y\", \"scroll\")\n .style(\"overflow-x\", \"hidden\")\n .style(\"height\", \"100%\")\n .style(\"width\", \"100%\")\n ;\n this._selection.widgetElement(element);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n this._palette = this._palette.switch(this.paletteID());\n\n const width = this.width();\n const cellSize = (width / 12) / 5;\n const height = cellSize * 8;\n\n const data = this.calendarData();\n const mappedData = d3Map(data, function (d: any) { return d.dateKey; });\n const dateExtent = d3Extent(data, function (d: any) {\n return d.dateKey.getFullYear();\n });\n const context = this;\n const svg = element.selectAll(\"svg\").data(d3Range(+dateExtent[0], +dateExtent[1] + 1));\n const svgUpdate = svg.enter().append(\"svg\")\n .each(function (d) {\n const svgElement = d3Select(this);\n const g = svgElement.append(\"g\");\n g.append(\"text\")\n .style(\"text-anchor\", \"middle\")\n ;\n g.append(\"g\")\n .attr(\"class\", \"days\")\n ;\n\n const _d3TimeMonths = d3TimeMonths(new Date(d, 0, 1), new Date(d + 1, 0, 1));\n const _months = g.append(\"g\").attr(\"class\", \"months\");\n _d3TimeMonths.forEach(function (_m) {\n _months.append(\"path\")\n .attr(\"class\", \"month\")\n .attr(\"d\", calcMonthPath(_m))\n .style(\"stroke\", context.monthStrokeColor())\n .style(\"stroke-width\", context.monthStrokeWidth())\n ;\n });\n })\n .merge(svg)\n .attr(\"width\", width)\n .attr(\"height\", height)\n ;\n svgUpdate.select(\"g\")\n .attr(\"transform\", \"translate(\" + ((width - cellSize * 53) / 2) + \",\" + (height - cellSize * 7 - 1) + \")\")\n ;\n svgUpdate.select(\"text\")\n .attr(\"transform\", \"translate(-6,\" + cellSize * 3.5 + \")rotate(-90)\")\n .text(d => d)\n ;\n svg.exit().remove();\n\n let dataExtent: [any, any] = d3Extent<number>(data, function (d: any) {\n return d.value.aggregate;\n });\n if (this.aggrDeltaColumn()) {\n const max = Math.max(Math.abs(+dataExtent[0]), Math.abs(+dataExtent[1]));\n dataExtent = [-max, max];\n }\n const dayRect = svgUpdate.select(\".days\").selectAll(\".day\").data(function (d) { return d3TimeDays(new Date(d, 0, 1), new Date(d + 1, 0, 1)); });\n const dayRectUpdate = dayRect.enter().append(\"rect\")\n .attr(\"class\", \"day\")\n .call(this._selection.enter.bind(this._selection))\n .on(\"click\", function (d) {\n const data2 = mappedData.get(d);\n if (data2 && data2.value && data2.value && data2.value.length) {\n context.click(context.rowToObj(data2.value[0]), context.dateColumn(), context._selection.selected(this));\n }\n })\n .on(\"dblclick\", function (d) {\n const data2 = mappedData.get(d);\n if (data2 && data2.value && data2.value && data2.value.length) {\n context.dblclick(context.rowToObj(data2.value[0]), context.dateColumn(), context._selection.selected(this));\n }\n }).each(function (d) {\n const dayRectElement = d3Select(this);\n dayRectElement.append(\"title\");\n })\n .merge(dayRect)\n .attr(\"x\", function (d) { return d3TimeWeek.count(d3TimeYear(d), d) * cellSize; })\n .attr(\"y\", function (d) { return d.getDay() * cellSize; })\n .attr(\"width\", cellSize)\n .attr(\"height\", cellSize)\n .style(\"stroke\", this.dayStrokeColor())\n .style(\"stroke-width\", this.dayStrokeWidth())\n .style(\"fill\", null)\n ;\n dayRectUpdate.select(\"title\")\n .text(d => d)\n ;\n dayRectUpdate.filter(function (d) { return mappedData.has(d); })\n .style(\"fill\", function (d) {\n const row = mappedData.get(d);\n if (!row || !row.value || !row.value.aggregate) {\n return null;\n }\n return context._palette(row.value.aggregate, dataExtent[0], dataExtent[1]);\n })\n .select(\"title\")\n .text(function (d) {\n const data2 = mappedData.get(d);\n return data2.key + \": \" + data2.formattedValues;\n })\n ;\n dayRect.exit().remove();\n\n const monthPath = svg.select(\".months\").selectAll(\".month\").data(function (d) { return d3TimeMonths(new Date(d, 0, 1), new Date(d + 1, 0, 1)); });\n monthPath.enter().append(\"path\")\n .attr(\"class\", \"month\")\n .merge(monthPath)\n .attr(\"d\", calcMonthPath)\n .style(\"stroke\", this.monthStrokeColor())\n .style(\"stroke-width\", this.monthStrokeWidth())\n ;\n monthPath.exit().remove();\n\n function calcMonthPath(t0) {\n const t1 = new Date(t0.getFullYear(), t0.getMonth() + 1, 0);\n const d0 = t0.getDay();\n const w0 = d3TimeWeek.count(d3TimeYear(t0), t0);\n const d1 = t1.getDay();\n const w1 = d3TimeWeek.count(d3TimeYear(t1), t1);\n return \"M\" + (w0 + 1) * cellSize + \",\" + d0 * cellSize +\n \"H\" + w0 * cellSize + \"V\" + 7 * cellSize +\n \"H\" + w1 * cellSize + \"V\" + (d1 + 1) * cellSize +\n \"H\" + (w1 + 1) * cellSize + \"V\" + 0 +\n \"H\" + (w0 + 1) * cellSize + \"Z\";\n }\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n\n // Events ---\n click(row, column, selected) {\n }\n\n dblclick(row, column, selected) {\n }\n\n _palette;\n paletteID: { (): string; (_: string): CalendarHeatMap };\n paletteID_exists: () => boolean;\n dateColumn: { (): string; (_: string): CalendarHeatMap };\n dateColumn_exists: () => boolean;\n datePattern: { (): string; (_: string): CalendarHeatMap };\n datePattern_exists: () => boolean;\n aggrType: { (): string; (_: string): CalendarHeatMap };\n aggrType_exists: () => boolean;\n aggrColumn: { (): string; (_: string): CalendarHeatMap };\n aggrColumn_exists: () => boolean;\n aggrDeltaColumn: { (): string; (_: string): CalendarHeatMap };\n aggrDeltaColumn_exists: () => boolean;\n\n // SimpleSelectionMixin\n _selection;\n}\nCalendarHeatMap.prototype._class += \" other_CalendarHeatMap\";\nCalendarHeatMap.prototype.mixin(Utility.SimpleSelectionMixin);\nCalendarHeatMap.prototype._palette = Palette.rainbow(\"default\");\n\nexport interface CalendarHeatMap {\n dayStrokeColor(): string;\n dayStrokeColor(_: string): this;\n monthStrokeColor(): string;\n monthStrokeColor(_: string): this;\n dayStrokeWidth(): number;\n dayStrokeWidth(_: number): this;\n monthStrokeWidth(): number;\n monthStrokeWidth(_: number): this;\n}\nCalendarHeatMap.prototype.publish(\"paletteID\", \"YlOrRd\", \"set\", \"Color palette for this widget\", CalendarHeatMap.prototype._palette.switch(), { tags: [\"Basic\", \"Shared\"] });\nCalendarHeatMap.prototype.publish(\"dayStrokeColor\", \"#ccc\", \"html-color\", \"Color of day border\");\nCalendarHeatMap.prototype.publish(\"monthStrokeColor\", \"#000\", \"html-color\", \"Color of month border\");\nCalendarHeatMap.prototype.publish(\"dayStrokeWidth\", 1, \"number\", \"Pixel width of day border\");\nCalendarHeatMap.prototype.publish(\"monthStrokeWidth\", 2, \"number\", \"Pixel width of month border\");\nCalendarHeatMap.prototype.publish(\"dateColumn\", null, \"set\", \"Date Column\", function () { return this.columns(); }, { optional: true });\nCalendarHeatMap.prototype.publish(\"datePattern\", \"%Y-%m-%d\", \"string\", \"Date Pattern\");\nCalendarHeatMap.prototype.publish(\"aggrType\", null, \"set\", \"Aggregation Type\", [null, \"mean\", \"median\", \"sum\", \"min\", \"max\"], { optional: true });\nCalendarHeatMap.prototype.publish(\"aggrColumn\", null, \"set\", \"Aggregation Field\", function () { return this.columns(); }, { optional: true, disable: (w) => !w.aggrType() });\nCalendarHeatMap.prototype.publish(\"aggrDeltaColumn\", null, \"set\", \"Aggregation Field\", function () { return this.columns(); }, { optional: true, disable: (w) => !w.aggrType() });\n","import { Utility } from \"@hpcc-js/common\";\n\nconst TIMEOUT_DEFAULT = 60;\nfunction espValFix(val) {\n if (val === undefined || val === null) {\n return null;\n }\n if (!val.trim) {\n if (val.Row) {\n return espRowFix(val.Row);\n }\n return val;\n }\n const retVal = val.trim();\n if (retVal !== \"\" && !isNaN(retVal)) {\n if (retVal.length <= 1 || retVal[0] !== \"0\" || retVal[1] === \".\") {\n return Number(retVal);\n }\n }\n return retVal;\n}\n\nfunction espRowFix(row) {\n for (const key in row) {\n row[key] = espValFix(row[key]);\n }\n return row;\n}\n\nexport class ESPUrl {\n protected _protocol = \"http:\";\n protected _hostname = \"localhost\";\n protected _url;\n protected _port;\n protected _search;\n protected _pathname;\n protected _params;\n protected _hash;\n protected _host;\n\n constructor() {\n }\n\n url(_: string): this;\n url(): string;\n url(_?): string | this {\n if (!arguments.length) return this._url;\n this._url = _;\n const parser = document.createElement(\"a\");\n parser.href = this._url;\n // eslint-disable-next-line no-self-assign\n parser.href = parser.href; // This fixes an IE9/IE10 DOM value issue\n\n const params = {};\n if (parser.search.length) {\n let tmp: any = parser.search;\n if (tmp[0] === \"?\") {\n tmp = tmp.substring(1);\n }\n tmp = tmp.split(\"&\");\n tmp.map(function (item) {\n const tmpItem = item.split(\"=\");\n params[decodeURIComponent(tmpItem[0])] = decodeURIComponent(tmpItem[1]);\n });\n }\n this._protocol = parser.protocol;\n this._hostname = parser.hostname;\n this._port = parser.port;\n this._pathname = parser.pathname;\n while (this._pathname.length && this._pathname[0] === \"/\") {\n this._pathname = this._pathname.substring(1);\n }\n this._search = parser.search;\n this._params = params;\n this._hash = parser.hash;\n this._host = parser.host;\n\n return this;\n }\n\n protocol(_: string): this;\n protocol(): string;\n protocol(_?: string): string | this {\n if (!arguments.length) return this._protocol;\n this._protocol = _;\n return this;\n }\n\n hostname(_: string): this;\n hostname(): string;\n hostname(_?: string): string | this {\n if (!arguments.length) return this._hostname;\n this._hostname = _;\n return this;\n }\n\n port(_: string): this;\n port(): string;\n port(_?: string) {\n if (!arguments.length) return this._port;\n this._port = _;\n return this;\n }\n\n search(_: string): this;\n search(): string;\n search(_?: string) {\n if (!arguments.length) return this._search;\n this._search = _;\n return this;\n }\n\n pathname(_: string): this;\n pathname(): string;\n pathname(_?: string) {\n if (!arguments.length) return this._pathname;\n this._pathname = _;\n return this;\n }\n\n hash(_: string): this;\n hash(): string;\n hash(_?: string) {\n if (!arguments.length) return this._hash;\n this._hash = _;\n return this;\n }\n\n host(_: string): this;\n host(): string;\n host(_?: string) {\n if (!arguments.length) return this._host;\n this._host = _;\n return this;\n }\n\n params(_: string): this;\n params(): string;\n params(_?: string) {\n if (!arguments.length) return this._params;\n this._params = _;\n return this;\n }\n\n param(key: string) {\n return this._params[key];\n }\n\n isWsWorkunits() {\n return this._pathname.toLowerCase().indexOf(\"wsworkunits\") >= 0 || this._params[\"Wuid\"];\n }\n\n isWorkunitResult() {\n return this.isWsWorkunits() && (this._params[\"Sequence\"] || this._params[\"ResultName\"]);\n }\n\n isWsEcl() {\n return this._pathname.toLowerCase().indexOf(\"wsecl\") >= 0 || (this._params[\"QuerySetId\"] && this._params[\"Id\"]);\n }\n\n isWsWorkunits_GetStats() {\n return this._pathname.toLowerCase().indexOf(\"wsworkunits/wugetstats\") >= 0 && this._params[\"WUID\"];\n }\n\n getUrl(overrides) {\n overrides = overrides || {};\n return (overrides.protocol !== undefined ? overrides.protocol : this._protocol) + \"//\" +\n (overrides.hostname !== undefined ? overrides.hostname : this._hostname) + \":\" +\n (overrides.port !== undefined ? overrides.port : this._port) + \"/\" +\n (overrides.pathname !== undefined ? overrides.pathname : this._pathname);\n }\n}\n\nexport function ESPMappings(mappings) {\n this._mappings = mappings;\n this._reverseMappings = {};\n for (const resultName in this._mappings) {\n this._reverseMappings[resultName] = {};\n for (const key in this._mappings[resultName]) {\n this._reverseMappings[resultName][this._mappings[resultName][key]] = key;\n }\n }\n}\n\nESPMappings.prototype.contains = function (resultName, origField) {\n return Utility.exists(resultName + \".\" + origField, this._mappings);\n};\n\nESPMappings.prototype.mapResult = function (response, resultName) {\n const mapping = this._mappings[resultName];\n if (mapping) {\n response[resultName] = response[resultName].map(function (item) {\n let row = [];\n if (mapping.x && mapping.x instanceof Array) {\n // LINE Mapping ---\n row = [];\n for (let i = 0; i < mapping.x.length; ++i) {\n row.push(item[mapping.y[i]]);\n }\n } else {\n // Regular Mapping ---\n for (const key in mapping) {\n if (mapping[key] === \"label\") {\n row[0] = item[key];\n } else if (mapping[key] === \"weight\") {\n row[1] = item[key];\n }\n }\n }\n return row;\n }, this);\n }\n};\n\nESPMappings.prototype.mapResponse = function (response) {\n for (const key in response) {\n this.mapResult(response, key);\n }\n};\n\nconst serialize = function (obj) {\n const str = [];\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n const val = obj[key];\n if (val !== undefined && val !== null) {\n str.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(val));\n }\n }\n }\n return str.join(\"&\");\n};\n\nlet jsonp = function (url, request, timeout) {\n return new Promise(function (resolve, reject) {\n let respondedTimeout = timeout * 1000;\n const respondedTick = 5000;\n const callbackName = \"jsonp_callback_\" + Math.round(Math.random() * 999999);\n window[callbackName] = function (response) {\n respondedTimeout = 0;\n doCallback();\n resolve(response);\n };\n const script = document.createElement(\"script\");\n script.src = url + (url.indexOf(\"?\") >= 0 ? \"&\" : \"?\") + \"jsonp=\" + callbackName + \"&\" + serialize(request);\n document.body.appendChild(script);\n const progress = setInterval(function () {\n if (respondedTimeout <= 0) {\n clearInterval(progress);\n } else {\n respondedTimeout -= respondedTick;\n if (respondedTimeout <= 0) {\n clearInterval(progress);\n doCallback();\n reject(Error(\"Request timeout: \" + script.src));\n }\n }\n }, respondedTick);\n\n function doCallback() {\n delete window[callbackName];\n document.body.removeChild(script);\n }\n });\n};\n\nexport class Comms extends ESPUrl {\n protected _proxyMappings;\n protected _mappings;\n protected _timeout;\n protected _hipieResults;\n protected _hipieResultsLength;\n\n constructor() {\n super();\n this._proxyMappings = {};\n this._mappings = new ESPMappings({});\n this._timeout = TIMEOUT_DEFAULT;\n this._hipieResults = {};\n }\n\n hipieResults(_) {\n if (!arguments.length) return this._hipieResults;\n this._hipieResultsLength = 0;\n this._hipieResults = {};\n const context = this;\n _.forEach(function (item) {\n context._hipieResultsLength++;\n context._hipieResults[item.id] = item;\n });\n return this;\n }\n\n jsonp(url, request) {\n for (const key in this._proxyMappings) {\n const newUrlParts = url.split(key);\n const newUrl = newUrlParts[0];\n if (newUrlParts.length > 1) {\n const espUrl = new ESPUrl()\n .url(url)\n ;\n url = newUrl + this._proxyMappings[key];\n request.IP = espUrl.hostname();\n request.PORT = espUrl.port();\n if (newUrlParts.length > 0) {\n request.PATH = newUrlParts[1];\n }\n break;\n }\n }\n return jsonp(url, request, this.timeout());\n }\n\n ajax(method, url, request?) {\n return new Promise(function (resolve, reject) {\n let uri = url;\n if (method === \"GET\" && request) {\n uri += \"?\" + serialize(request);\n }\n const xhr: any = new XMLHttpRequest();\n xhr.onload = function (e) {\n if (this.status >= 200 && this.status < 300) {\n resolve(JSON.parse(this.response));\n } else {\n reject(Error(this.statusText));\n }\n };\n xhr.onerror = function () {\n reject(Error(this.statusText));\n };\n xhr.open(method, uri);\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n if (method === \"GET\") {\n xhr.send();\n } else {\n xhr.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\n xhr.send(serialize(request));\n }\n });\n }\n\n get(url, request?) {\n return this.ajax(\"GET\", url, request);\n }\n\n post(url, request) {\n return this.ajax(\"POST\", url, request);\n }\n\n mappings(_?) {\n if (!arguments.length) return this._mappings;\n this._mappings = new ESPMappings(_);\n return this;\n }\n\n proxyMappings(_?) {\n if (!arguments.length) return this._proxyMappings;\n this._proxyMappings = _;\n return this;\n }\n\n timeout(_?) {\n if (!arguments.length) return this._timeout;\n this._timeout = _ || TIMEOUT_DEFAULT;\n return this;\n }\n}\n\nexport class Basic extends Comms {\n\n protected _cacheCalls;\n\n constructor() {\n super();\n }\n\n cacheCalls(_?) {\n if (!arguments.length) return this._cacheCalls;\n this._cacheCalls = _;\n return this;\n }\n\n call(request, callback) {\n const url = this._url + (this._url.indexOf(\"?\") >= 0 ? \"&\" : \"?\") + serialize(request);\n if (this._cacheCalls) {\n const context = this;\n return new Promise(function (resolve, reject) {\n const response = JSON.parse(localStorage.getItem(\"hpcc.viz.\" + url));\n if (!response) {\n throw Error(\"not cached\");\n }\n if (callback) {\n console.error(\"Deprecated: callback, use promise (Basic.prototype.call)\");\n callback(response);\n }\n resolve(response);\n }).catch(function (response) {\n return context.get(url).then(function (response2) {\n localStorage.setItem(\"hpcc.viz.\" + url, JSON.stringify(response2));\n if (callback) {\n console.error(\"Deprecated: callback, use promise (Basic.prototype.call)\");\n callback(response2);\n }\n return response2;\n });\n });\n } else {\n localStorage.removeItem(\"hpcc.viz.\" + url);\n return this.get(url).then(function (response) {\n if (callback) {\n console.error(\"Deprecated: callback, use promise (Basic.prototype.call)\");\n callback(response);\n }\n return response;\n });\n }\n }\n}\n\nfunction locateRoxieResponse(response): object {\n // v5 and v6 compatible ---\n for (const key in response) {\n if (response[key].Row && response[key].Row instanceof Array) {\n return response;\n }\n let retVal;\n if (typeof (response[key]) !== \"string\") {\n retVal = locateRoxieResponse(response[key]);\n }\n if (retVal) {\n return retVal;\n }\n }\n return null;\n}\n\nfunction locateRoxieException(response) {\n for (const key in response) {\n if (response[key].Exception && response[key].Exception instanceof Array) {\n return response[key];\n }\n const retVal = locateRoxieException(response[key]);\n if (retVal) {\n return retVal;\n }\n }\n return null;\n}\n\nexport class WsECL extends Comms {\n\n protected _target;\n protected _query;\n\n constructor() {\n super();\n\n this._port = \"8002\";\n this._target = \"\";\n this._query = \"\";\n }\n\n url(_?) {\n const retVal = super.url.apply(this, arguments);\n if (arguments.length) {\n // http://localhost:8010/esp/files/stub.htm?QuerySetId=roxie&Id=stock.3&Widget=QuerySetDetailsWidget\n this._port = this._port === \"8010\" ? \"8002\" : this._port; // Need a better way ---\n for (const key in this._params) {\n switch (key) {\n case \"QuerySetId\":\n this.target(this._params[key]);\n break;\n case \"Id\":\n this.query(this._params[key]);\n break;\n }\n }\n\n let pathParts;\n let queryParts;\n if (!this._target || !this._query) {\n // http://localhost:8002/WsEcl/forms/default/query/roxie/wecare\n pathParts = this._pathname.split(\"/query/\");\n if (pathParts.length >= 2) {\n queryParts = pathParts[1].split(\"/\");\n if (queryParts.length >= 2) {\n this.target(queryParts[0]);\n this.query(queryParts[1]);\n }\n }\n }\n }\n return retVal;\n }\n\n target(_?) {\n if (!arguments.length) return this._target;\n this._target = _;\n return this;\n }\n\n query(_?) {\n if (!arguments.length) return this._query;\n this._query = _;\n return this;\n }\n\n constructUrl() {\n return Comms.prototype.getUrl.call(this, {\n pathname: \"WsEcl/submit/query/\" + this._target + \"/\" + this._query + \"/json\"\n });\n }\n\n call(target, request, callback) {\n target = target || {};\n target.target = target.target || this._target;\n target.query = target.query || this._query;\n const context = this;\n const url = this.getUrl({\n pathname: \"WsEcl/submit/query/\" + target.target + \"/\" + target.query + \"/json\"\n });\n return this.jsonp(url, request).then(function (response: any) {\n let _response = locateRoxieResponse(response);\n if (!_response) {\n _response = locateRoxieException(response);\n }\n response = _response;\n\n // Check for exceptions\n if (response.Exception) {\n throw Error(response.Exception.reduce(function (previousValue, exception, index, array) {\n if (previousValue.length) {\n previousValue += \"\\n\";\n }\n return previousValue + exception.Source + \" \" + exception.Code + \": \" + exception.Message;\n }, \"\"));\n }\n // Remove \"response.result.Row\"\n for (const key in response) {\n if (response[key].Row) {\n response[key] = response[key].Row.map(espRowFix);\n }\n }\n context._mappings.mapResponse(response);\n if (callback) {\n console.error(\"Deprecated: callback, use promise (WsECL.prototype.call)\");\n callback(response);\n }\n return response;\n });\n }\n\n send(request, callback) {\n return this.call({ target: this._target, query: this._query }, request, callback);\n }\n}\n\nexport class WsWorkunits extends Comms {\n\n protected _wuid = \"\";\n protected _jobname = \"\";\n protected _sequence = null;\n protected _resultName = null;\n\n protected _fetchResultNamesPromise = null;\n protected _fetchResultPromise = {};\n protected _resultNameCache = {};\n protected _resultNameCacheCount = 0;\n protected _total;\n\n constructor() {\n super();\n this._port = \"8010\";\n }\n\n url(_?) {\n const retVal = Comms.prototype.url.apply(this, arguments);\n if (arguments.length) {\n // http://localhost:8010/WsWorkunit/WuResult?Wuid=xxx&ResultName=yyy\n for (const key in this._params) {\n switch (key) {\n case \"Wuid\":\n this.wuid(this._params[key]);\n break;\n case \"ResultName\":\n this.resultName(this._params[key]);\n break;\n case \"Sequence\":\n this.sequence(this._params[key]);\n break;\n }\n }\n if (!this._wuid) {\n // http://localhost:8010/WsWorkunits/res/W20140922-213329/c:/temp/index.html\n const urlParts = this._url.split(\"/res/\");\n if (urlParts.length >= 2) {\n const urlParts2 = urlParts[1].split(\"/\");\n this.wuid(urlParts2[0]);\n }\n }\n }\n return retVal;\n }\n\n wuid(_?) {\n if (!arguments.length) return this._wuid;\n this._wuid = _;\n return this;\n }\n\n jobname(_?) {\n if (!arguments.length) return this._jobname;\n this._jobname = _;\n return this;\n }\n\n sequence(_?) {\n if (!arguments.length) return this._sequence;\n this._sequence = _;\n return this;\n }\n\n resultName(_?) {\n if (!arguments.length) return this._resultName;\n this._resultName = _;\n return this;\n }\n\n appendParam(label, value, params) {\n if (value) {\n if (params) {\n params += \"&\";\n }\n return params + label + \"=\" + value;\n }\n return params;\n }\n\n constructUrl() {\n const url = Comms.prototype.getUrl.call(this, {\n pathname: \"WsWorkunits/res/\" + this._wuid + \"/\"\n });\n let params = \"\";\n params = this.appendParam(\"ResultName\", this._resultName, params);\n return url + (params ? \"?\" + params : \"\");\n }\n\n _fetchResult(target, callback, skipMapping) {\n target = target || {};\n if (!this._fetchResultPromise[target.resultname]) {\n target._start = target._start || 0;\n target._count = target._count || -1;\n const url = this.getUrl({\n pathname: \"WsWorkunits/WUResult.json\"\n });\n const request = {\n Wuid: target.wuid,\n ResultName: target.resultname,\n SuppressXmlSchema: true,\n Start: target._start,\n Count: target._count\n };\n this._resultNameCache[target.resultname] = {};\n const context = this;\n this._fetchResultPromise[target.resultname] = this.jsonp(url, request).then(function (response: any) {\n // Remove \"xxxResponse.Result\"\n for (const key in response) {\n if (!response[key].Result) {\n throw new Error(\"No result found.\");\n }\n context._total = response[key].Total;\n response = response[key].Result;\n for (const responseKey in response) {\n response = response[responseKey].Row.map(espRowFix);\n break;\n }\n break;\n }\n context._resultNameCache[target.resultname] = response;\n if (!skipMapping) {\n context._mappings.mapResult(context._resultNameCache, target.resultname);\n }\n if (callback) {\n console.error(\"Deprecated: callback, use promise (WsWorkunits.prototype._fetchResult)\");\n callback(context._resultNameCache[target.resultname]);\n }\n return context._resultNameCache[target.resultname];\n });\n }\n return this._fetchResultPromise[target.resultname];\n }\n\n fetchResult(target, callback, skipMapping) {\n if (target.wuid) {\n return this._fetchResult(target, callback, skipMapping);\n } else if (target.jobname) {\n const context = this;\n return this.WUQuery(target, function (response) {\n target.wuid = response[0].Wuid;\n return context._fetchResult(target, callback, skipMapping);\n });\n }\n }\n\n WUQuery(_request, callback) {\n const url = this.getUrl({\n pathname: \"WsWorkunits/WUQuery.json\"\n });\n const request = {\n Jobname: _request.jobname,\n Count: 1\n };\n\n this._resultNameCache = {};\n this._resultNameCacheCount = 0;\n return this.jsonp(url, request).then(function (response: any) {\n if (!Utility.exists(\"WUQueryResponse.Workunits.ECLWorkunit\", response)) {\n throw Error(\"No workunit found.\");\n }\n response = response.WUQueryResponse.Workunits.ECLWorkunit;\n if (callback) {\n console.error(\"Deprecated: callback, use promise (WsWorkunits.prototype.WUQuery)\");\n callback(response);\n }\n return response;\n });\n }\n\n fetchResultNames(callback?) {\n if (!this._fetchResultNamesPromise) {\n const url = this.getUrl({\n pathname: \"WsWorkunits/WUInfo.json\"\n });\n const request = {\n Wuid: this._wuid,\n TruncateEclTo64k: true,\n IncludeExceptions: false,\n IncludeGraphs: false,\n IncludeSourceFiles: false,\n IncludeResults: true,\n IncludeResultsViewNames: false,\n IncludeVariables: false,\n IncludeTimers: false,\n IncludeResourceURLs: false,\n IncludeDebugValues: false,\n IncludeApplicationValues: false,\n IncludeWorkflows: false,\n IncludeXmlSchemas: false,\n SuppressResultSchemas: true\n };\n\n this._resultNameCache = {};\n this._resultNameCacheCount = 0;\n const context = this;\n this._fetchResultNamesPromise = this.jsonp(url, request).then(function (response: any) {\n if (Utility.exists(\"WUInfoResponse.Workunit.Archived\", response) && response.WUInfoResponse.Workunit.Archived) {\n console.warn(\"WU is archived: \" + url + \" \" + JSON.stringify(request));\n }\n if (Utility.exists(\"WUInfoResponse.Workunit.Results.ECLResult\", response)) {\n response.WUInfoResponse.Workunit.Results.ECLResult.map(function (item) {\n context._resultNameCache[item.Name] = [];\n ++context._resultNameCacheCount;\n });\n }\n if (callback) {\n console.error(\"Deprecated: callback, use promise (WsWorkunits.prototype.fetchResultNames)\");\n callback(context._resultNameCache);\n }\n return context._resultNameCache;\n });\n }\n return this._fetchResultNamesPromise;\n }\n\n fetchResults(callback, skipMapping) {\n const context = this;\n return this.fetchResultNames().then(function (response) {\n const fetchArray = [];\n for (const key in context._resultNameCache) {\n fetchArray.push(context.fetchResult({ wuid: context._wuid, resultname: key }, null, skipMapping));\n }\n return Promise.all(fetchArray).then(function (responseArray) {\n if (callback) {\n console.error(\"Deprecated: callback, use promise (WsWorkunits.prototype.fetchResults)\");\n callback(context._resultNameCache);\n }\n return context._resultNameCache;\n });\n });\n }\n\n postFilter(request, response) {\n const retVal = {};\n for (const key in response) {\n retVal[key] = response[key].filter(function (row, idx) {\n for (const request_key in request) {\n if (row[request_key] !== undefined && request[request_key] !== undefined && row[request_key] != request[request_key]) {\n return false;\n }\n }\n return true;\n });\n }\n this._mappings.mapResponse(retVal);\n return retVal;\n }\n\n send(request, callback) {\n const context = this;\n if (!this._resultNameCacheCount) {\n this.fetchResults(function (response) {\n callback(context.postFilter(request, response));\n }, true);\n } else {\n callback(context.postFilter(request, this._resultNameCache));\n }\n }\n}\n\nfunction WsWorkunits_GetStats() {\n Comms.call(this);\n\n this._port = \"8010\";\n this._wuid = null;\n}\nWsWorkunits_GetStats.prototype = Object.create(Comms.prototype);\n\nWsWorkunits_GetStats.prototype.url = function (_) {\n const retVal = Comms.prototype.url.apply(this, arguments);\n if (arguments.length) {\n // http://localhost:8010/WsWorkunits/WUGetStats?WUID=\"xxx\"\n for (const key in this._params) {\n switch (key) {\n case \"WUID\":\n this.wuid(this._params[key]);\n break;\n }\n }\n }\n return retVal;\n};\n\nWsWorkunits_GetStats.prototype.wuid = function (_) {\n if (!arguments.length) return this._wuid;\n this._wuid = _;\n return this;\n};\n\nWsWorkunits_GetStats.prototype.constructUrl = function () {\n return Comms.prototype.getUrl.call(this, {\n pathname: \"WsWorkunits/WUGetStats?WUID=\" + this._wuid\n });\n};\n\nWsWorkunits_GetStats.prototype.send = function (request, callback) {\n const url = this.getUrl({\n pathname: \"WsWorkunits/WUGetStats.json?WUID=\" + this._wuid\n });\n return this.jsonp(url, request).then(function (response) {\n if (Utility.exists(\"WUGetStatsResponse.Statistics.WUStatisticItem\", response)) {\n if (callback) {\n console.error(\"Deprecated: callback, use promise (WsWorkunits_GetStats.prototype.send)\");\n callback(response.WUGetStatsResponse.Statistics.WUStatisticItem);\n }\n return response.WUGetStatsResponse.Statistics.WUStatisticItem;\n } else {\n if (callback) {\n console.error(\"Deprecated: callback, use promise (WsWorkunits_GetStats.prototype.send)\");\n callback([]);\n }\n return [];\n }\n });\n};\n\n// HIPIERoxie ---\nfunction HIPIERoxie() {\n Comms.call(this);\n}\nHIPIERoxie.prototype = Object.create(Comms.prototype);\n\nHIPIERoxie.prototype.fetchResults = function (request, callback) {\n const url = this.getUrl({});\n this._resultNameCache = {};\n this._resultNameCacheCount = 0;\n const context = this;\n return this.jsonp(url, request).then(function (response) {\n let _response = locateRoxieResponse(response);\n if (!_response) {\n _response = locateRoxieException(response);\n }\n response = _response;\n\n // Check for exceptions\n if (response.Exception) {\n throw Error(response.Exception.reduce(function (previousValue, exception, index, array) {\n if (previousValue.length) {\n previousValue += \"\\n\";\n }\n return previousValue + exception.Source + \" \" + exception.Code + \": \" + exception.Message;\n }, \"\"));\n }\n // Remove \"response.result.Row\"\n for (const key in response) {\n if (response[key].Row) {\n context._resultNameCache[key] = response[key].Row.map(espRowFix);\n ++context._resultNameCacheCount;\n }\n }\n if (callback) {\n console.error(\"Deprecated: callback, use promise (HIPIERoxie.prototype.fetchResults)\");\n callback(context._resultNameCache);\n }\n return context._resultNameCache;\n });\n};\n\nHIPIERoxie.prototype.fetchResult = function (name, callback) {\n const context = this;\n return new Promise(function (resolve, reject) {\n if (callback) {\n console.error(\"Deprecated: callback, use promise (HIPIERoxie.prototype.fetchResult)\");\n callback(context._resultNameCache[name]);\n }\n resolve(context._resultNameCache[name]);\n });\n};\n\nHIPIERoxie.prototype.call = function (request, callback) {\n const context = this;\n return this.fetchResults(request, callback).then(function (response) {\n const retVal = {};\n for (const hipieKey in context._hipieResults) {\n const item = context._hipieResults[hipieKey];\n retVal[item.id] = response[item.from];\n }\n return retVal;\n });\n};\n\n// HIPIEWorkunit ---\nfunction HIPIEWorkunit() {\n WsWorkunits.call(this);\n}\nHIPIEWorkunit.prototype = Object.create(WsWorkunits.prototype);\n\nHIPIEWorkunit.prototype.fetchResults = function (callback) {\n const context = this;\n return WsWorkunits.prototype.fetchResultNames.call(this).then(function (response) {\n const fetchArray = [];\n for (const key in context._hipieResults) {\n const item = context._hipieResults[key];\n fetchArray.push(context.fetchResult(item.from));\n }\n return Promise.all(fetchArray).then(function (response2) {\n if (callback) {\n console.error(\"Deprecated: callback, use promise (HIPIEWorkunit.prototype.fetchResults)\");\n callback(context._resultNameCache);\n }\n return context._resultNameCache;\n });\n });\n};\n\nHIPIEWorkunit.prototype.fetchResult = function (name, callback) {\n return WsWorkunits.prototype.fetchResult.call(this, { wuid: this._wuid, resultname: name }).then(function (response) {\n if (callback) {\n console.error(\"Deprecated: callback, use promise (HIPIEWorkunit.prototype.fetchResult)\");\n callback(response);\n }\n return response;\n });\n};\n\nHIPIEWorkunit.prototype.call = function (request, callback) {\n const context = this;\n if (request.refresh || !this._resultNameCache || !this._resultNameCacheCount) {\n return this.fetchResults(callback).then(function (response) {\n return filterResults(request);\n });\n } else {\n return new Promise(function (resolve, reject) {\n resolve(filterResults(request));\n });\n }\n\n function filterResults(request2) {\n const changedFilter = {};\n for (const key in request2) {\n if (request2[key + \"_changed\"] !== undefined) {\n changedFilter[key] = {\n value: request2[key]\n };\n }\n }\n const retVal = {};\n for (const hipieKey in context._hipieResults) {\n const hipieResult = context._hipieResults[hipieKey];\n const outputFilter = {};\n for (let i = 0; i < hipieResult.filters.length; ++i) {\n const filter = hipieResult.filters[i];\n if (!filter.isRange()) {\n outputFilter[filter.fieldid] = changedFilter[filter.fieldid] || { value: undefined };\n outputFilter[filter.fieldid].filter = filter;\n }\n }\n retVal[hipieResult.id] = context._resultNameCache[hipieResult.from].filter(function (row) {\n for (const key2 in outputFilter) {\n if (!outputFilter[key2].filter.matches(row, outputFilter[key2].value)) {\n return false;\n }\n }\n return true;\n });\n }\n return retVal;\n }\n};\n\n// HIPIEDatabomb ---\nfunction HIPIEDatabomb() {\n HIPIEWorkunit.call(this);\n}\nHIPIEDatabomb.prototype = Object.create(HIPIEWorkunit.prototype);\n\nHIPIEDatabomb.prototype.databomb = function (_) {\n if (!arguments.length) return this._databomb;\n this._databomb = _;\n return this;\n};\n\nHIPIEDatabomb.prototype.databombOutput = function (from, id) {\n if (!arguments.length) return undefined;\n this._resultNameCacheCount++;\n if (this._databomb instanceof Array) {\n this._resultNameCache[from] = this._databomb.map(espRowFix);\n } else {\n this._resultNameCache[from] = this._databomb[from].map(espRowFix);\n }\n return this;\n};\n\nHIPIEDatabomb.prototype.fetchResults = function (callback) {\n const context = this;\n return new Promise(function (resolve, reject) {\n if (callback) {\n console.error(\"Deprecated: callback, use promise (HIPIEDatabomb.prototype.fetchResults)\");\n callback(context._resultNameCache);\n }\n resolve(context._resultNameCache);\n });\n};\n\nexport function createESPConnection(url) {\n url = url || document.URL;\n const testURL = new ESPUrl()\n .url(url)\n ;\n if (testURL.isWsWorkunits_GetStats()) {\n return new WsWorkunits_GetStats()\n .url(url)\n ;\n }\n if (testURL.isWsWorkunits()) {\n return new WsWorkunits()\n .url(url)\n ;\n }\n if (testURL.isWsEcl()) {\n return new WsECL()\n .url(url)\n ;\n }\n return null;\n}\n\nexport function hookJsonp(func) {\n jsonp = func;\n}\n\nexport {\n HIPIEWorkunit,\n HIPIERoxie,\n HIPIEDatabomb\n};\n","import { Utility } from \"@hpcc-js/common\";\nimport * as Comms from \"./Comms\";\n\nfunction nestedRowFix(row) {\n if (row.Row && row.Row instanceof Array) {\n return row.Row.map(nestedRowFix);\n } else if (row instanceof Object) {\n for (const key in row) {\n row[key] = nestedRowFix(row[key]);\n }\n }\n return row;\n}\n\n// Basic Comms ---\nlet enableBasicCommsCache = false;\nlet basicCommsCache = {};\nfunction BasicComms() {\n Comms.Basic.call(this);\n}\nBasicComms.prototype = Object.create(Comms.Basic.prototype);\n\nBasicComms.prototype.jsonp = function (url, request) {\n const requestStr = JSON.stringify(request);\n if (enableBasicCommsCache && basicCommsCache[url] && basicCommsCache[url][requestStr]) {\n return Promise.resolve(basicCommsCache[url][requestStr]);\n }\n return Comms.Basic.prototype.jsonp.apply(this, arguments).then(function (response) {\n if (enableBasicCommsCache) {\n if (!basicCommsCache[url]) {\n basicCommsCache[url] = {};\n }\n basicCommsCache[url][requestStr] = response;\n }\n return response;\n });\n};\n\n// WsWorkunits ---\nfunction WsWorkunits(baseUrl) {\n BasicComms.call(this);\n\n this.url(baseUrl + \"WsWorkunits/\");\n}\nWsWorkunits.prototype = Object.create(BasicComms.prototype);\n\nWsWorkunits.prototype.wuQuery = function (options) {\n const url = this.getUrl({\n pathname: \"WsWorkunits/WUQuery.json\"\n });\n const request = {\n Wuid: \"\",\n Type: \"\",\n Cluster: \"\",\n RoxieCluster: \"\",\n Owner: \"\",\n State: \"\",\n StartDate: \"\",\n EndDate: \"\",\n ECL: \"\",\n Jobname: \"\",\n LogicalFile: \"\",\n LogicalFileSearchType: \"\",\n /*\n ApplicationValues>\n ApplicationValue>\n Application: \"\",\n Name: \"\",\n Value: \"\",\n /ApplicationValue>\n /ApplicationValues>\n */\n After: \"\",\n Before: \"\",\n Count: \"\",\n PageSize: 100,\n PageStartFrom: 0,\n PageEndAt: \"\",\n LastNDays: \"\",\n Sortby: \"\",\n Descending: 0,\n CacheHint: \"\"\n };\n for (const key in options) {\n request[key] = options[key];\n }\n return this.jsonp(url, request).then(function (response) {\n if (response.WUQueryResponse && response.WUQueryResponse.Workunits) {\n return response.WUQueryResponse.Workunits.ECLWorkunit;\n }\n return [];\n });\n};\n\n// Workunit ---\nfunction Workunit(baseUrl, wuid) {\n BasicComms.call(this);\n\n this.url(baseUrl + \"WsWorkunits/\");\n this._wuid = wuid;\n}\nWorkunit.prototype = Object.create(BasicComms.prototype);\n\nWorkunit.prototype.wuInfo = function (options) {\n const url = this.getUrl({\n pathname: \"WsWorkunits/WUInfo.json\"\n });\n const request = {\n Wuid: this._wuid,\n TruncateEclTo64k: true,\n IncludeExceptions: false,\n IncludeGraphs: false,\n IncludeSourceFiles: false,\n IncludeResults: false,\n IncludeResultsViewNames: false,\n IncludeVariables: false,\n IncludeTimers: false,\n IncludeResourceURLs: false,\n IncludeDebugValues: false,\n IncludeApplicationValues: false,\n IncludeWorkflows: false,\n IncludeXmlSchemas: false,\n SuppressResultSchemas: true\n };\n for (const key in options) {\n request[key] = options[key];\n }\n return this.jsonp(url, request).then(function (response) {\n if (enableBasicCommsCache) {\n const retVal = { WUInfoResponse: { Workunit: {} } };\n for (const key in options) {\n const includeKey = key.substring(7);\n retVal.WUInfoResponse.Workunit[includeKey] = response.WUInfoResponse.Workunit[includeKey];\n }\n basicCommsCache[url][JSON.stringify(request)] = retVal;\n }\n return response;\n });\n};\n\nWorkunit.prototype.wuUpdate = function (options) {\n const url = this.getUrl({\n pathname: \"WsWorkunits/WUUpdate.json\"\n });\n const request = {\n Wuid: this._wuid\n };\n for (const key in options) {\n request[key] = options[key];\n }\n return this.post(url, request);\n};\n\nWorkunit.prototype.appData = function (appID, key, _) {\n if (arguments.length === 2) {\n return this.wuInfo({\n IncludeApplicationValues: true\n }).then(function (response) {\n let persistString;\n if (response.WUInfoResponse && response.WUInfoResponse.Workunit && response.WUInfoResponse.Workunit.ApplicationValues && response.WUInfoResponse.Workunit.ApplicationValues.ApplicationValue) {\n response.WUInfoResponse.Workunit.ApplicationValues.ApplicationValue.filter(function (row) {\n return row.Application === appID && row.Name === key;\n }).forEach(function (row) {\n persistString = row.Value;\n });\n }\n return persistString;\n });\n } else if (arguments.length === 3) {\n return this.wuUpdate({\n \"ApplicationValues.ApplicationValue.0.Application\": appID,\n \"ApplicationValues.ApplicationValue.0.Name\": key,\n \"ApplicationValues.ApplicationValue.0.Value\": _,\n \"ApplicationValues.ApplicationValue.itemcount\": 1\n });\n }\n};\n\nWorkunit.prototype.results = function () {\n const context = this;\n return this.wuInfo({\n IncludeResults: true\n }).then(function (response) {\n let retVal = [];\n if (Utility.exists(\"WUInfoResponse.Workunit.Results.ECLResult\", response)) {\n retVal = response.WUInfoResponse.Workunit.Results.ECLResult.map(function (result) {\n return new WUResult(context.getUrl({ pathname: \"WsWorkunits/\" }), context._wuid, result.Name);\n });\n }\n return retVal;\n });\n};\n\nWorkunit.prototype.result = function (dataSource, resultName) {\n dataSource = dataSource || this._wuid;\n return createResult(dataSource, resultName);\n};\n\n// Workunit Result ---\nfunction WUResult(baseUrl, wuid, name) {\n BasicComms.call(this);\n this.url(baseUrl + \"WUResult.json\");\n this._wuid = wuid;\n this._name = name;\n this._xmlSchema = null;\n}\nWUResult.prototype = Object.create(BasicComms.prototype);\n\nWUResult.prototype.wuid = function (_) {\n if (!arguments.length) return this._wuid;\n this._wuid = _;\n return this;\n};\n\nWUResult.prototype.name = function (_) {\n if (!arguments.length) return this._name;\n this._name = _;\n return this;\n};\n\nWUResult.prototype.query = function (options, filter) {\n options = options || {};\n filter = filter || {};\n const request = {\n Wuid: this._wuid,\n ResultName: this._name,\n SuppressXmlSchema: true,\n Start: 0,\n Count: -1\n };\n for (const key in options) {\n request[key] = options[key];\n }\n let filterIdx = 0;\n for (const fKey in filter) {\n request[\"FilterBy.NamedValue.\" + filterIdx + \".Name\"] = fKey;\n request[\"FilterBy.NamedValue.\" + filterIdx + \".Value\"] = filter[fKey];\n ++filterIdx;\n }\n if (filterIdx) {\n request[\"FilterBy.NamedValue.itemcount\"] = filterIdx;\n }\n const context = this;\n return this.jsonp(this.url(), request).then(function (response) {\n if (response.WUResultResponse &&\n response.WUResultResponse.Result &&\n response.WUResultResponse.Result[context._name]) {\n if (enableBasicCommsCache) {\n basicCommsCache[context.url()][JSON.stringify(request)] = {\n WUResultResponse: {\n Result: response.WUResultResponse.Result\n }\n };\n }\n context._xmlSchema = response.WUResultResponse.Result.XmlSchema;\n return nestedRowFix(response.WUResultResponse.Result[context._name]);\n }\n return [];\n });\n};\n\n// Logical File ---\nfunction LogicalFile(baseUrl, logicalName) {\n BasicComms.call(this);\n this.url(baseUrl + \"WUResult.json\");\n this._logicalName = logicalName;\n this._xmlSchema = null;\n}\nLogicalFile.prototype = Object.create(BasicComms.prototype);\n\nLogicalFile.prototype.query = function (options, filter) {\n options = options || {};\n filter = filter || {};\n const request = {\n Cluster: \"hthor\", // TODO: Should not be needed ---\n LogicalName: this._logicalName,\n SuppressXmlSchema: this._xmlSchema !== null,\n Start: 0,\n Count: -1\n };\n for (const key in options) {\n request[key] = options[key];\n }\n let filterIdx = 0;\n for (const fKey in filter) {\n request[\"FilterBy.NamedValue.\" + filterIdx + \".Name\"] = fKey;\n request[\"FilterBy.NamedValue.\" + filterIdx + \".Value\"] = filter[fKey];\n ++filterIdx;\n }\n if (filterIdx) {\n request[\"FilterBy.NamedValue.itemcount\"] = filterIdx;\n }\n const context = this;\n return this.jsonp(this.url(), request).then(function (response) {\n if (response.WUResultResponse &&\n response.WUResultResponse.Result &&\n response.WUResultResponse.Result.Row) {\n context._xmlSchema = response.WUResultResponse.Result.XmlSchema;\n return nestedRowFix(response.WUResultResponse.Result.Row);\n }\n return [];\n });\n};\n\n// Roxie Query ---\nfunction RoxieQuery(baseUrl, resultName) {\n BasicComms.call(this);\n const urlParts = baseUrl.split(\"/\");\n let queryName = urlParts.pop();\n if (queryName.toLowerCase() === \"json\") {\n queryName = urlParts.pop();\n }\n this._queryName = queryName;\n this._resultName = resultName;\n this.url(urlParts.join(\"/\") + \"/\" + queryName + \"/json\");\n}\nRoxieQuery.prototype = Object.create(BasicComms.prototype);\n\nfunction trimRight(str) {\n if (str && str.replace) {\n return str.replace(/ +$/, \"\");\n }\n return str;\n}\n\nfunction postFilter(results, filter) {\n return results.filter(function (row) {\n for (const key in filter) {\n if (row[key] !== undefined && trimRight(filter[key]) !== trimRight(row[key])) {\n return false;\n }\n }\n return true;\n });\n}\n\nfunction locateRoxieResponse(response) {\n // v5 and v6 compatible ---\n for (const key in response) {\n if (response[key].Row && response[key].Row instanceof Array) {\n return response;\n }\n const retVal = locateRoxieResponse(response[key]);\n if (retVal) {\n return retVal;\n }\n }\n return null;\n}\n\nRoxieQuery.prototype.query = function (options, filter) {\n options = options || {};\n filter = filter || {};\n const request = {\n };\n for (const key in options) {\n request[key] = options[key];\n }\n for (const fKey in filter) {\n request[fKey] = filter[fKey];\n }\n const context = this;\n return this.jsonp(this.url(), request).then(function (response) {\n response = locateRoxieResponse(response);\n if (response) {\n if (context._resultName) {\n if (response && response[context._resultName] && response[context._resultName].Row) {\n return nestedRowFix(postFilter(response[context._resultName].Row, filter));\n }\n } else {\n for (const key in response) {\n if (response[key].Row) {\n return nestedRowFix(postFilter(response[key].Row, filter));\n }\n }\n }\n }\n return [];\n });\n};\n\nexport function createResult(_espUrl, dataSource, resultName?) {\n const espUrl = new Comms.ESPUrl()\n .url(_espUrl)\n ;\n if (dataSource.indexOf(\"http\") === 0) {\n return new RoxieQuery(dataSource, resultName);\n } else if (dataSource.indexOf(\"~\") === 0 || dataSource.indexOf(\"::\") >= 0) {\n return new LogicalFile(espUrl.getUrl({ pathname: \"WsWorkunits/\" }), dataSource);\n } else if (dataSource) {\n return new WUResult(espUrl.getUrl({ pathname: \"WsWorkunits/\" }), dataSource, resultName);\n }\n return null;\n}\n\nexport function enableCache(_?: any): any | undefined {\n if (!arguments.length) return enableBasicCommsCache;\n enableBasicCommsCache = _;\n if (!_) {\n basicCommsCache = {};\n }\n}\nexport function cache(_?: any): any | undefined {\n if (!arguments.length) return basicCommsCache;\n basicCommsCache = _;\n}\nexport function createConnection(url) {\n url = url || document.URL;\n const testURL = new Comms.ESPUrl()\n .url(url)\n ;\n if (testURL.isWsWorkunits()) {\n const espConnection = Comms.createESPConnection(url);\n if (espConnection instanceof Comms.WsWorkunits && espConnection.wuid()) {\n return new Workunit(espConnection.getUrl({ pathname: \"\" }), espConnection.wuid())\n .url(url)\n ;\n }\n }\n return null;\n}\nexport function flattenResult(result, mappings) {\n const retVal = {\n columns: [],\n data: []\n };\n if (result && result.length) {\n const colIdx = {};\n if (mappings && mappings.length) {\n mappings.forEach(function (mapping) {\n colIdx[mapping.value.toLowerCase()] = retVal.columns.length;\n retVal.columns.push(mapping.key);\n });\n } else {\n for (const key in result[0]) {\n colIdx[key.toLowerCase()] = retVal.columns.length;\n retVal.columns.push(key);\n }\n }\n result.forEach(function (row, rowIdx) {\n const rowArr = [];\n for (const key in row) {\n if (colIdx[key.toLowerCase()] !== undefined) {\n rowArr[colIdx[key.toLowerCase()]] = row[key];\n }\n }\n retVal.data.push(rowArr);\n });\n }\n return retVal;\n}\n","'use strict';\n\nif (typeof module !== 'undefined') module.exports = simpleheat;\n\nfunction simpleheat(canvas) {\n if (!(this instanceof simpleheat)) return new simpleheat(canvas);\n\n this._canvas = canvas = typeof canvas === 'string' ? document.getElementById(canvas) : canvas;\n\n this._ctx = canvas.getContext('2d');\n this._width = canvas.width;\n this._height = canvas.height;\n\n this._max = 1;\n this._data = [];\n}\n\nsimpleheat.prototype = {\n\n defaultRadius: 25,\n\n defaultGradient: {\n 0.4: 'blue',\n 0.6: 'cyan',\n 0.7: 'lime',\n 0.8: 'yellow',\n 1.0: 'red'\n },\n\n data: function (data) {\n this._data = data;\n return this;\n },\n\n max: function (max) {\n this._max = max;\n return this;\n },\n\n add: function (point) {\n this._data.push(point);\n return this;\n },\n\n clear: function () {\n this._data = [];\n return this;\n },\n\n radius: function (r, blur) {\n blur = blur === undefined ? 15 : blur;\n\n // create a grayscale blurred circle image that we'll use for drawing points\n var circle = this._circle = this._createCanvas(),\n ctx = circle.getContext('2d'),\n r2 = this._r = r + blur;\n\n circle.width = circle.height = r2 * 2;\n\n ctx.shadowOffsetX = ctx.shadowOffsetY = r2 * 2;\n ctx.shadowBlur = blur;\n ctx.shadowColor = 'black';\n\n ctx.beginPath();\n ctx.arc(-r2, -r2, r, 0, Math.PI * 2, true);\n ctx.closePath();\n ctx.fill();\n\n return this;\n },\n\n resize: function () {\n this._width = this._canvas.width;\n this._height = this._canvas.height;\n },\n\n gradient: function (grad) {\n // create a 256x1 gradient that we'll use to turn a grayscale heatmap into a colored one\n var canvas = this._createCanvas(),\n ctx = canvas.getContext('2d'),\n gradient = ctx.createLinearGradient(0, 0, 0, 256);\n\n canvas.width = 1;\n canvas.height = 256;\n\n for (var i in grad) {\n gradient.addColorStop(+i, grad[i]);\n }\n\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, 1, 256);\n\n this._grad = ctx.getImageData(0, 0, 1, 256).data;\n\n return this;\n },\n\n draw: function (minOpacity) {\n if (!this._circle) this.radius(this.defaultRadius);\n if (!this._grad) this.gradient(this.defaultGradient);\n\n var ctx = this._ctx;\n\n ctx.clearRect(0, 0, this._width, this._height);\n\n // draw a grayscale heatmap by putting a blurred circle at each data point\n for (var i = 0, len = this._data.length, p; i < len; i++) {\n p = this._data[i];\n ctx.globalAlpha = Math.max(p[2] / this._max, minOpacity === undefined ? 0.05 : minOpacity);\n ctx.drawImage(this._circle, p[0] - this._r, p[1] - this._r);\n }\n\n // colorize the heatmap, using opacity value of each pixel to get the right color from our gradient\n var colored = ctx.getImageData(0, 0, this._width, this._height);\n this._colorize(colored.data, this._grad);\n ctx.putImageData(colored, 0, 0);\n\n return this;\n },\n\n _colorize: function (pixels, gradient) {\n for (var i = 0, len = pixels.length, j; i < len; i += 4) {\n j = pixels[i + 3] * 4; // get gradient color from opacity value\n\n if (j) {\n pixels[i] = gradient[j];\n pixels[i + 1] = gradient[j + 1];\n pixels[i + 2] = gradient[j + 2];\n }\n }\n },\n\n _createCanvas: function () {\n if (typeof document !== 'undefined') {\n return document.createElement('canvas');\n } else {\n // create a new canvas instance in node.js\n // the canvas class needs to have a default constructor without any parameter\n return new this._canvas.constructor();\n }\n }\n};\n","import { CanvasWidget, Palette } from \"@hpcc-js/common\";\nimport * as _simpleheat from \"simpleheat\";\n\nconst simpleheat = (window as any).simpleheat || (_simpleheat && _simpleheat.default) || _simpleheat;\n\nexport class HeatMap extends CanvasWidget {\n _heat;\n _palette;\n\n constructor() {\n super();\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n // canvas size needs to be set before render\n this.resize(this._size);\n this._heat = simpleheat(domNode);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n this._palette = this._palette.switch(this.paletteID());\n if (this.useClonedPalette()) {\n this._palette = this._palette.cloneNotExists(this.paletteID() + \"_\" + this.id());\n }\n\n if (this.topLeftX_exists() && this.topLeftY_exists() && this.bottomRightX_exists() && this.bottomRightY_exists()) {\n this._heat.data(this.skewedData());\n } else {\n this._heat.data(this.data());\n }\n\n if (this.radius()) {\n this._heat.radius(this.radius(), this.blur());\n }\n if (this.usePalette()) {\n const grad = {};\n for (let idx = 1; idx <= this.colorCount(); idx++) {\n const value = idx / this.colorCount();\n grad[value] = this._palette(idx, 1, this.colorCount());\n }\n this._heat.defaultGradient = grad;\n this._heat.gradient(grad);\n } else if (this.gradient()) {\n this._heat.defaultGradient = this.gradient();\n this._heat.gradient(this.gradient());\n }\n\n this._heat.draw();\n }\n\n exit(domNode, element) {\n delete this._heat;\n super.exit(domNode, element);\n }\n\n resize(size: any): this {\n const retVal = CanvasWidget.prototype.resize.apply(this, arguments);\n if (this._heat !== undefined) {\n this._heat.resize();\n }\n return retVal;\n }\n\n skewedData() {\n const context = this;\n const retArr = [];\n const arr = this.data();\n const box = this.size();\n\n const coordsWidth = this.bottomRightX() - this.topLeftX();\n const coordsHeight = this.bottomRightY() - this.topLeftY();\n\n const pixelValueX = coordsWidth / box.width;\n const pixelValueY = coordsHeight / box.height;\n\n arr.forEach(function (n) {\n const left = Math.abs(n[0] - context.topLeftX());\n const top = Math.abs(n[1] - context.topLeftY());\n\n const newX = left / pixelValueX;\n const newY = top / pixelValueY;\n\n retArr.push([newX, newY, n[2]]);\n });\n\n return retArr;\n }\n\n radius: { (): number; (_: number): HeatMap };\n radius_exists: () => boolean;\n blur: { (): number; (_: number): HeatMap };\n blur_exists: () => boolean;\n max: { (): number; (_: number): HeatMap };\n max_exists: () => boolean;\n gradient: { (): object; (_: object): HeatMap };\n gradient_exists: () => boolean;\n usePalette: { (): boolean; (_: boolean): HeatMap };\n usePalette_exists: () => boolean;\n colorCount: { (): number; (_: number): HeatMap };\n colorCount_exists: () => boolean;\n paletteID: { (): string; (_: string): HeatMap };\n paletteID_exists: () => boolean;\n useClonedPalette: { (): boolean; (_: boolean): HeatMap };\n useClonedPalette_exists: () => boolean;\n topLeftX: { (): number; (_: number): HeatMap };\n topLeftX_exists: () => boolean;\n topLeftY: { (): number; (_: number): HeatMap };\n topLeftY_exists: () => boolean;\n bottomRightX: { (): number; (_: number): HeatMap };\n bottomRightX_exists: () => boolean;\n bottomRightY: { (): number; (_: number): HeatMap };\n bottomRightY_exists: () => boolean;\n}\nHeatMap.prototype._class += \" other_HeatMap\";\nHeatMap.prototype._palette = Palette.rainbow(\"default\");\n\nHeatMap.prototype.publish(\"radius\", 15, \"number\", \"Set point radius\", null, { tags: [\"Basic\"] });\nHeatMap.prototype.publish(\"blur\", 15, \"number\", \"Set point blur\", null, { tags: [\"Basic\"] });\nHeatMap.prototype.publish(\"max\", 1, \"number\", \"Set max data value\", null, { tags: [\"Basic\"] });\n\nHeatMap.prototype.publish(\"gradient\", { 0.4: \"blue\", 0.6: \"cyan\", 0.7: \"lime\", 0.8: \"yellow\", 1.0: \"red\" }, \"object\", \"Set gradient colors\", null, { tags: [\"Basic\"] });\n\nHeatMap.prototype.publish(\"usePalette\", false, \"boolean\", \"If true, uses paletteID and colorCount to determine gradient\", null, { tags: [\"Basic\"] });\n\nHeatMap.prototype.publish(\"colorCount\", 10, \"number\", \"Top left x-value\", null, { tags: [\"Basic\"] });\nHeatMap.prototype.publish(\"paletteID\", \"default\", \"set\", \"Color palette for this widget\", HeatMap.prototype._palette.switch(), { tags: [\"Basic\"] });\nHeatMap.prototype.publish(\"useClonedPalette\", false, \"boolean\", \"Enable or disable using a cloned palette\", null, { tags: [\"Intermediate\", \"Shared\"] });\n\nHeatMap.prototype.publish(\"topLeftX\", null, \"number\", \"Top left x-value\", null, { tags: [\"Basic\"], optional: true });\nHeatMap.prototype.publish(\"topLeftY\", null, \"number\", \"Top left y-value\", null, { tags: [\"Basic\"], optional: true });\nHeatMap.prototype.publish(\"bottomRightX\", null, \"number\", \"Bottom right x-value\", null, { tags: [\"Basic\"], optional: true });\nHeatMap.prototype.publish(\"bottomRightY\", null, \"number\", \"Bottom right y-value\", null, { tags: [\"Basic\"], optional: true });\n","import { SVGWidget } from \"@hpcc-js/common\";\n\nexport class HPCCBadge extends SVGWidget {\n protected root;\n protected logo;\n protected logo_accent;\n protected logo_circles;\n protected line;\n protected circle_1;\n protected circle_2;\n protected circle_3;\n protected circle_4;\n protected circle_5;\n protected circle_6;\n protected circle_7;\n protected circle_8;\n protected circle_accent;\n protected text;\n protected text_hpccsystems;\n protected text_r;\n protected text_tm;\n\n constructor() {\n super();\n }\n\n testData(domNode, element) {\n return this;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n\n this.root = element.append(\"g\");\n this.logo = this.root.append(\"g\");\n this.logo_accent = this.root.append(\"g\");\n this.line = this.logo_accent.append(\"path\")\n .attr(\"fill-rule\", \"evenodd\")\n .attr(\"clip-rule\", \"evenodd\")\n .attr(\"fill\", \"#179BD7\")\n .attr(\"d\", \"m 189.38849,364.55373 c 191.6,3.8 0,0 191.6,3.8 l 0.1,-4.2 c -191.7,0.4 0,0 -191.7,0.4 z\")\n ;\n this.circle_accent = this.logo_accent.append(\"path\")\n .attr(\"fill-rule\", \"evenodd\")\n .attr(\"clip-rule\", \"evenodd\")\n .attr(\"fill\", \"#6E6E73\")\n .attr(\"d\", \"M421.3,354.2c6.9,6.9,3.1,18.7-8.6,26.1c-11.8,7.4-26.3,6.9-32.1-0.6c-5.5-7.2-1.1-18.2,9.6-25C401,348,414.7,347.6,421.3,354.2z\")\n ;\n this.logo_circles = this.logo.append(\"g\");\n this.circle_1 = this.logo_circles.append(\"path\")\n .attr(\"fill-rule\", \"evenodd\")\n .attr(\"clip-rule\", \"evenodd\")\n .attr(\"fill\", \"#179BD7\")\n .attr(\"d\", \"m 258.9815,363.84947 c 1.3,-3 1.5,-5.9 0.4,-8.1 -2.6,-5.4 -11.8,-5.1 -20.6,0.4 -3.5,2.2 -6.5,4.9 -8.7,7.8 -0.11933,0.35821 -0.39477,0.60735 -0.6,0.9 -2.9,4.1 -4.2,8.3 -3,11.6 2.1,6 11.4,6.3 20.9,0.4 5,-3.2 8.9,-7.3 11,-11.4 -0.59813,0.54778 0.47385,-1.28911 0.6,-1.6 z\")\n ;\n this.circle_2 = this.logo_circles.append(\"path\")\n .attr(\"fill-rule\", \"evenodd\")\n .attr(\"clip-rule\", \"evenodd\")\n .attr(\"fill\", \"#179BD7\")\n .attr(\"d\", \"M291.3,349.3c9.5-5.9,14.1-15,10.5-20c-3.5-4.8-13.3-4.2-22.1,1.3c-8.8,5.5-13.7,14.1-10.9,19.3C271.7,355.4,281.9,355.2,291.3,349.3z\")\n ;\n this.circle_3 = this.logo_circles.append(\"path\")\n .attr(\"fill-rule\", \"evenodd\")\n .attr(\"clip-rule\", \"evenodd\")\n .attr(\"fill\", \"#179BD7\")\n .attr(\"d\", \"M335.3,321.7c9.5-5.9,13.3-14.5,8.9-19c-4.3-4.3-14.8-3.2-23.6,2.3c-8.8,5.5-13.1,13.7-9.4,18.4C315,328.3,325.9,327.7,335.3,321.7z\")\n ;\n this.circle_4 = this.logo_circles.append(\"path\")\n .attr(\"fill-rule\", \"evenodd\")\n .attr(\"clip-rule\", \"evenodd\")\n .attr(\"fill\", \"#179BD7\")\n .attr(\"d\", \"M273.2,384c-3.2-6.5-13.5-6.7-23.2-0.7c-9.7,6-15.6,16.4-13.2,23.4c2.5,7.3,13.1,8.2,23.6,1.7 C270.8,401.9,276.5,390.8,273.2,384z\")\n ;\n this.circle_5 = this.logo_circles.append(\"path\")\n .attr(\"fill-rule\", \"evenodd\")\n .attr(\"clip-rule\", \"evenodd\")\n .attr(\"fill\", \"#179BD7\")\n .attr(\"d\", \"m 320.84499,363.83119 c 1,-3.4 0.8,-6.6 -1,-9.1 -4.2,-5.9 -15.3,-5.6 -25,0.5 -3.89999,2.4 -7.09999,5.5 -9.19999,8.7 -1.18854,2.2092 -0.0404,-0.09 -1.2,2.2 -2.2,4.1 -2.7,8.3 -0.9,11.5 3.6,6.7 15.09999,7 25.59999,0.5 5,-3.2 8.7,-7.2 10.7,-11.3 0.95557,-2.97582 0.0423,0.0306 1,-3 z\")\n ;\n this.circle_6 = this.logo_circles.append(\"path\")\n .attr(\"fill-rule\", \"evenodd\")\n .attr(\"clip-rule\", \"evenodd\")\n .attr(\"fill\", \"#179BD7\")\n .attr(\"d\", \"M330.4,348.2c4.6,6,17,5.8,27.5-0.8c10.5-6.6,14.3-16.5,8.9-22c-5.2-5.3-17.1-4.4-26.8,1.6C330.3,333.1,325.9,342.4,330.4,348.2z\")\n ;\n this.circle_7 = this.logo_circles.append(\"path\")\n .attr(\"fill-rule\", \"evenodd\")\n .attr(\"clip-rule\", \"evenodd\")\n .attr(\"fill\", \"#179BD7\")\n .attr(\"d\", \"M264.1,417.4c-10.8,6.7-17.2,19-14.2,27.8c3.2,9.2,15.4,11.1,27.2,3.7c11.8-7.4,17.8-20.6,13.6-29.2C286.6,411.6,274.8,410.7,264.1,417.4z\")\n ;\n this.circle_8 = this.logo_circles.append(\"path\")\n .attr(\"fill-rule\", \"evenodd\")\n .attr(\"clip-rule\", \"evenodd\")\n .attr(\"fill\", \"#179BD7\")\n .attr(\"d\", \"M314.2,386.1c-10.8,6.7-16.2,18.4-11.9,26.4c4.5,8.4,17.8,9.5,29.6,2.2c11.8-7.4,16.6-19.9,11.1-27.7C337.7,379.6,324.9,379.3,314.2,386.1z\")\n ;\n\n // Text ---\n this.text = this.root.append(\"g\");\n this.text_hpccsystems = this.text.append(\"path\")\n .attr(\"fill\", \"#6E6E73\")\n .attr(\"d\", \"M224.2,476.3c0.1-1.3,0.1-2.7,0.2-4.1c-0.3,0-0.5,0.1-0.8,0.1c-0.3,0-0.5,0-0.8,0c-0.3,0-0.5,0-0.8,0c-0.3,0-0.5-0.1-0.8-0.1c0.1,1.4,0.1,2.8,0.2,4.1c0.1,1.3,0.1,2.7,0.1,4.1v1.1c-1.1,0-2.3,0-3.3,0.1c-1.1,0-2.2,0-3.3,0c-1.1,0-2.3,0-3.3,0c-1.1,0-2.2,0-3.3-0.1v-1.1c0-1.4,0-2.8,0.1-4.1c0.1-1.3,0.1-2.7,0.2-4.1c-0.3,0-0.5,0.1-0.8,0.1c-0.3,0-0.5,0-0.8,0c-0.3,0-0.5,0-0.8,0c-0.3,0-0.5-0.1-0.8-0.1c0.1,1.4,0.1,2.8,0.2,4.1c0.1,1.3,0.1,2.7,0.1,4.1v5.5c0,1.4,0,2.8-0.1,4.1c-0.1,1.4-0.1,2.7-0.2,4c0.5,0,1-0.1,1.6-0.1c0.6,0,1.1,0,1.6,0.1c-0.1-1.3-0.1-2.7-0.2-4c-0.1-1.4-0.1-2.7-0.1-4.1v-2.9c1.1,0,2.3,0,3.3,0c1.1,0,2.2,0,3.3,0c1.1,0,2.3,0,3.3,0c1.1,0,2.2,0,3.3,0v2.9c0,1.4,0,2.8-0.1,4.1c-0.1,1.4-0.1,2.7-0.2,4c0.5,0,1-0.1,1.6-0.1c0.6,0,1.1,0,1.6,0.1c-0.1-1.3-0.1-2.7-0.2-4c-0.1-1.4-0.1-2.7-0.1-4.1v-5.5C224.1,479,224.1,477.7,224.2,476.3z M242.7,473.8c-0.4-0.4-0.9-0.7-1.4-0.9c-0.5-0.2-1-0.4-1.5-0.5c-0.5-0.1-1-0.2-1.5-0.2c-0.5,0-0.9,0-1.2,0c-0.2,0-0.5,0-0.9,0c-0.3,0-0.7,0-1.1,0c-0.4,0-0.7,0-1.1,0c-0.4,0-0.7,0-0.9,0c-0.5,0-1,0-1.5,0c-0.5,0-1-0.1-1.5-0.1c0.1,1.4,0.1,2.8,0.2,4.1c0.1,1.3,0.1,2.7,0.1,4.1v5.5c0,1.4,0,2.8-0.1,4.1c-0.1,1.4-0.1,2.7-0.2,4c0.5,0,1-0.1,1.6-0.1c0.6,0,1.1,0,1.6,0.1c-0.1-1.3-0.1-2.7-0.2-4c-0.1-1.4-0.1-2.7-0.1-4.1v-1.8c0.4,0,0.8,0.1,1.2,0.1c0.4,0,0.8,0,1.3,0c0.8,0,1.6-0.1,2.6-0.3c1-0.2,1.9-0.5,2.8-1c0.9-0.5,1.6-1.2,2.2-2c0.6-0.9,0.9-2,0.9-3.4c0-0.9-0.1-1.6-0.4-2.2C243.5,474.7,243.1,474.2,242.7,473.8z M240.6,480.4c-0.4,0.7-0.9,1.2-1.4,1.6c-0.6,0.4-1.2,0.7-1.9,0.8c-0.7,0.1-1.4,0.2-2,0.2c-0.8,0-1.5-0.1-2.3-0.3v-9.5h2.9c0.8,0,1.6,0.1,2.2,0.2c0.7,0.1,1.2,0.3,1.7,0.7c0.5,0.3,0.8,0.8,1.1,1.3c0.3,0.6,0.4,1.3,0.4,2.2C241.2,478.8,241,479.7,240.6,480.4z M251.9,475.4c0.8-0.8,1.7-1.5,2.8-1.9c1.1-0.4,2.2-0.6,3.5-0.6c0.8,0,1.5,0.1,2.1,0.3c0.6,0.2,1.2,0.5,1.7,0.7c0.5,0.3,1,0.6,1.3,0.9c0.4,0.3,0.7,0.6,0.9,0.9l0.2-0.1c0.1-0.3,0.1-0.8,0.3-1.3c0.1-0.5,0.2-0.9,0.4-1.2c-0.9-0.4-1.9-0.7-3.1-1c-1.2-0.3-2.4-0.4-3.8-0.4c-1.8,0-3.4,0.3-4.8,0.8c-1.5,0.5-2.7,1.3-3.8,2.2c-1.1,1-1.9,2.2-2.5,3.6c-0.6,1.4-0.9,3-0.9,4.8c0,1.8,0.3,3.4,0.9,4.8c0.6,1.4,1.4,2.6,2.4,3.6c1,1,2.3,1.7,3.7,2.2c1.4,0.5,3,0.7,4.7,0.7c0.8,0,1.5-0.1,2.3-0.2c0.7-0.1,1.4-0.3,2-0.4c0.6-0.2,1.1-0.3,1.5-0.5c0.4-0.2,0.7-0.4,0.9-0.6l0.3-1.9l-0.1-0.1c-0.3,0.2-0.7,0.5-1.1,0.8c-0.4,0.3-0.9,0.6-1.5,0.9c-0.5,0.3-1.1,0.5-1.8,0.7c-0.6,0.2-1.4,0.3-2.1,0.3c-1.3,0-2.4-0.2-3.5-0.6c-1.1-0.4-2-1-2.8-1.9c-0.8-0.8-1.4-1.9-1.9-3.2c-0.4-1.3-0.7-2.8-0.7-4.6c0-1.8,0.2-3.3,0.7-4.6 C250.5,477.3,251.1,476.3,251.9,475.4z M273.2,475.4c0.8-0.8,1.7-1.5,2.8-1.9c1.1-0.4,2.2-0.6,3.5-0.6c0.8,0,1.5,0.1,2.1,0.3c0.6,0.2,1.2,0.5,1.7,0.7c0.5,0.3,1,0.6,1.3,0.9c0.4,0.3,0.7,0.6,0.9,0.9l0.2-0.1c0.1-0.3,0.1-0.8,0.3-1.3c0.1-0.5,0.2-0.9,0.4-1.2c-0.9-0.4-1.9-0.7-3.1-1c-1.2-0.3-2.4-0.4-3.8-0.4c-1.8,0-3.4,0.3-4.8,0.8c-1.5,0.5-2.7,1.3-3.8,2.2c-1.1,1-1.9,2.2-2.5,3.6c-0.6,1.4-0.9,3-0.9,4.8c0,1.8,0.3,3.4,0.9,4.8c0.6,1.4,1.4,2.6,2.4,3.6c1,1,2.3,1.7,3.7,2.2c1.4,0.5,3,0.7,4.7,0.7c0.8,0,1.5-0.1,2.3-0.2c0.7-0.1,1.4-0.3,2-0.4c0.6-0.2,1.1-0.3,1.5-0.5c0.4-0.2,0.7-0.4,0.9-0.6l0.3-1.9l-0.1-0.1c-0.3,0.2-0.7,0.5-1.1,0.8c-0.4,0.3-0.9,0.6-1.5,0.9c-0.5,0.3-1.1,0.5-1.8,0.7c-0.6,0.2-1.4,0.3-2.1,0.3c-1.3,0-2.4-0.2-3.5-0.6c-1.1-0.4-2-1-2.8-1.9c-0.8-0.8-1.4-1.9-1.9-3.2c-0.4-1.3-0.7-2.8-0.7-4.6c0-1.8,0.2-3.3,0.7-4.6 C271.8,477.3,272.4,476.3,273.2,475.4z M308.2,482.9c-0.7-0.4-1.5-0.8-2.4-1.1c-0.9-0.3-1.7-0.7-2.4-1.1c-0.7-0.4-1.4-0.9-1.9-1.5c-0.5-0.6-0.7-1.4-0.7-2.4c0-0.6,0.1-1.1,0.3-1.6c0.2-0.5,0.5-0.9,0.9-1.3c0.4-0.4,0.8-0.6,1.3-0.8c0.5-0.2,1-0.3,1.6-0.3c0.6,0,1.1,0.1,1.5,0.3c0.4,0.2,0.8,0.5,1.1,0.7c0.3,0.3,0.6,0.6,0.7,1c0.2,0.4,0.3,0.7,0.4,1h0.4c0.1-0.6,0.3-1.1,0.4-1.5c0.1-0.4,0.3-0.8,0.5-1.1c-0.6-0.5-1.3-0.9-2.1-1.1c-0.7-0.2-1.6-0.4-2.6-0.4c-1.1,0-2,0.1-2.9,0.4c-0.9,0.3-1.6,0.7-2.2,1.2c-0.6,0.5-1.1,1.2-1.4,1.9c-0.3,0.7-0.5,1.5-0.5,2.4c0,1.3,0.2,2.3,0.7,3c0.5,0.7,1.1,1.4,1.9,1.8c0.7,0.5,1.5,0.9,2.4,1.2c0.9,0.3,1.7,0.7,2.4,1.1c0.7,0.4,1.4,0.9,1.9,1.4c0.5,0.6,0.7,1.3,0.7,2.3c0,0.6-0.1,1.2-0.3,1.8c-0.2,0.6-0.5,1.1-0.9,1.5c-0.4,0.4-0.9,0.7-1.4,1c-0.6,0.2-1.2,0.4-1.9,0.4c-0.7,0-1.3-0.1-1.8-0.3c-0.6-0.2-1-0.5-1.5-0.8c-0.4-0.3-0.8-0.7-1.1-1.1c-0.3-0.4-0.5-0.8-0.7-1.2h-0.4c-0.1,0.6-0.1,1.1-0.2,1.5c-0.1,0.4-0.2,0.8-0.4,1.3c0.6,0.4,1.2,0.8,2.1,1.2c0.8,0.4,1.9,0.5,3.2,0.5c1.2,0,2.3-0.2,3.3-0.5c1-0.4,1.8-0.8,2.5-1.5c0.7-0.6,1.2-1.4,1.5-2.3c0.4-0.9,0.5-1.8,0.5-2.8c0-1.2-0.2-2.1-0.7-2.8C309.6,483.9,309,483.3,308.2,482.9z M328.6,472.2c-0.4,0.9-0.9,1.9-1.4,2.8c-0.5,1-1,1.9-1.5,2.9c-0.5,1-1.1,1.9-1.6,2.8c-0.5,0.9-1,1.8-1.5,2.5c-1.1-1.9-2.2-3.8-3.1-5.6c-1-1.8-2-3.6-2.9-5.5c-0.3,0-0.6,0.1-0.9,0.1c-0.3,0-0.6,0-0.9,0c-0.3,0-0.6,0-0.9,0c-0.3,0-0.6-0.1-0.9-0.1c0.2,0.3,0.5,0.8,0.9,1.5c0.4,0.7,0.9,1.4,1.4,2.3c0.5,0.8,1,1.7,1.6,2.6c0.6,0.9,1.1,1.8,1.6,2.6c0.5,0.8,1,1.6,1.4,2.3c0.4,0.7,0.7,1.2,0.9,1.6c0,1.7,0,3.4,0,4.9c0,1.6-0.1,2.9-0.2,4c0.5,0,1-0.1,1.6-0.1c0.6,0,1.1,0,1.6,0.1c0-0.4-0.1-1-0.1-1.8c0-0.7-0.1-1.5-0.1-2.4c0-0.9,0-1.7,0-2.6c0-0.9,0-1.7,0-2.5c0.3-0.7,0.7-1.4,1.2-2.2c0.5-0.8,1-1.7,1.6-2.8c0.6-1,1.3-2.2,2.1-3.4c0.8-1.3,1.7-2.7,2.7-4.2c-0.5,0.1-0.9,0.2-1.2,0.2C329.5,472.3,329.1,472.3,328.6,472.2z M343.6,482.9c-0.7-0.4-1.5-0.8-2.4-1.1c-0.9-0.3-1.7-0.7-2.4-1.1c-0.7-0.4-1.4-0.9-1.9-1.5c-0.5-0.6-0.7-1.4-0.7-2.4c0-0.6,0.1-1.1,0.3-1.6c0.2-0.5,0.5-0.9,0.9-1.3c0.4-0.4,0.8-0.6,1.3-0.8c0.5-0.2,1-0.3,1.6-0.3c0.6,0,1.1,0.1,1.5,0.3c0.4,0.2,0.8,0.5,1.1,0.7c0.3,0.3,0.6,0.6,0.7,1c0.2,0.4,0.3,0.7,0.4,1h0.4c0.1-0.6,0.3-1.1,0.4-1.5c0.1-0.4,0.3-0.8,0.5-1.1c-0.6-0.5-1.3-0.9-2.1-1.1c-0.7-0.2-1.6-0.4-2.6-0.4c-1.1,0-2,0.1-2.9,0.4c-0.9,0.3-1.6,0.7-2.2,1.2c-0.6,0.5-1.1,1.2-1.4,1.9c-0.3,0.7-0.5,1.5-0.5,2.4c0,1.3,0.2,2.3,0.7,3c0.5,0.7,1.1,1.4,1.9,1.8c0.7,0.5,1.5,0.9,2.4,1.2c0.9,0.3,1.7,0.7,2.4,1.1c0.7,0.4,1.4,0.9,1.9,1.4c0.5,0.6,0.7,1.3,0.7,2.3c0,0.6-0.1,1.2-0.3,1.8c-0.2,0.6-0.5,1.1-0.9,1.5c-0.4,0.4-0.9,0.7-1.4,1c-0.6,0.2-1.2,0.4-1.9,0.4c-0.7,0-1.3-0.1-1.8-0.3c-0.6-0.2-1-0.5-1.5-0.8c-0.4-0.3-0.8-0.7-1.1-1.1c-0.3-0.4-0.5-0.8-0.7-1.2h-0.4c-0.1,0.6-0.1,1.1-0.2,1.5c-0.1,0.4-0.2,0.8-0.4,1.3c0.6,0.4,1.2,0.8,2.1,1.2c0.8,0.4,1.9,0.5,3.2,0.5c1.2,0,2.3-0.2,3.3-0.5c1-0.4,1.8-0.8,2.5-1.5c0.7-0.6,1.2-1.4,1.5-2.3c0.4-0.9,0.5-1.8,0.5-2.8c0-1.2-0.2-2.1-0.7-2.8C345,483.9,344.4,483.3,343.6,482.9z M360.7,472.3c-1.3,0-2.7,0-4.1,0c-1.4,0-2.8,0-4.1,0c-1.3,0-2.7-0.1-4.1-0.1c0.1,0.4,0.2,0.8,0.2,1c0,0.3-0.1,0.6-0.2,1c0.4-0.1,1-0.1,1.5-0.2c0.6,0,1.1-0.1,1.8-0.1c0.6,0,1.2-0.1,1.8-0.1c0.6,0,1.2,0,1.7,0c0.1,2.2,0.1,4.4,0.1,6.6v5.5c0,1.4,0,2.8-0.1,4.1c-0.1,1.4-0.1,2.7-0.2,4c0.5,0,1-0.1,1.6-0.1c0.6,0,1.1,0,1.6,0.1c-0.1-1.3-0.1-2.7-0.2-4c-0.1-1.4-0.1-2.7-0.1-4.1v-5.5c0-2.2,0-4.4,0.1-6.6c0.6,0,1.1,0,1.7,0c0.6,0,1.2,0,1.8,0.1c0.6,0,1.2,0.1,1.8,0.1c0.6,0,1.1,0.1,1.5,0.2c-0.1-0.4-0.2-0.7-0.2-1c0-0.3,0.1-0.6,0.2-1C363.4,472.2,362,472.3,360.7,472.3z M379.8,492.3c-0.5,0.1-1.1,0.2-1.8,0.2c-0.7,0.1-1.4,0.1-2.2,0.1c-0.8,0-1.6,0-2.4,0h-2.2c0-0.4,0-1,0-1.8c0-0.8,0-1.8,0-3v-3.2c0-0.3,0-0.6,0-0.8c0-0.2,0-0.4,0-0.6c0.4,0,0.9,0,1.5,0c0.6,0,1.3,0,2.1,0c0.7,0,1.5,0,2.2,0.1c0.7,0,1.4,0.1,1.9,0.2c-0.1-0.3-0.1-0.6-0.1-1c0-0.3,0-0.7,0.1-1c-0.5,0-1,0.1-1.5,0.1c-0.5,0-1.1,0.1-1.7,0.1c-0.6,0-1.3,0.1-2,0.1c-0.7,0-1.6,0-2.5,0c0-0.4,0-1,0-1.8c0-0.8,0-1.6,0-2.4c0-0.8,0-1.5,0-2.1c0-0.6,0.1-1.3,0.1-1.9c1,0,1.9,0,2.7,0c0.7,0,1.4,0.1,2.1,0.1c0.6,0,1.2,0.1,1.8,0.1c0.6,0,1.2,0.1,1.9,0.1c-0.1-0.3-0.1-0.6-0.1-1c0-0.3,0-0.6,0.1-1c-1,0-1.9,0.1-2.8,0.1c-0.9,0-1.9,0-2.8,0c-1,0-1.9,0-2.9,0c-0.9,0-1.9-0.1-2.9-0.1c0.1,1.4,0.1,2.7,0.2,4.1c0.1,1.4,0.1,2.7,0.1,4.1v5.5c0,1.4,0,2.8-0.1,4.1c-0.1,1.4-0.1,2.7-0.2,4.1c1,0,1.9-0.1,2.9-0.1h5.8c0.9,0,1.9,0,2.9,0.1c-0.1-0.2-0.1-0.5-0.1-0.8c0-0.1,0-0.3,0-0.5C379.7,492.6,379.8,492.4,379.8,492.3z M406.8,483.3c-0.2-1.8-0.4-3.7-0.6-5.6c-0.2-1.9-0.4-3.9-0.7-5.9h-0.4c-0.5,1-1.1,2-1.7,3.2c-0.6,1.1-1.2,2.3-1.9,3.4c-0.6,1.2-1.2,2.3-1.8,3.5c-0.6,1.1-1.2,2.2-1.7,3.2c-0.5,1-1,1.8-1.4,2.6c-0.4,0.8-0.7,1.3-0.9,1.7c-1.6-3-3.2-5.9-4.7-8.8c-1.5-2.8-3-5.8-4.4-8.8H386c-0.2,1.7-0.4,3.5-0.6,5.4c-0.2,1.9-0.5,3.8-0.8,5.7c-0.3,1.9-0.6,3.9-0.9,5.8c-0.3,1.9-0.6,3.7-0.9,5.5c0.3,0,0.7-0.1,1.1-0.1c0.4,0,0.8,0,1.1,0.1c0-0.9,0.1-1.9,0.2-3.3c0.1-1.3,0.2-2.7,0.4-4.2c0.1-1.5,0.3-3,0.5-4.6c0.2-1.5,0.3-3,0.5-4.3h0.1c1.4,2.8,2.8,5.6,4.2,8.2c1.4,2.7,2.7,5.4,4,8h0.3c1.3-2.9,2.6-5.7,4-8.3c1.4-2.6,2.9-5.3,4.3-8h0.1c0.3,2.8,0.6,5.5,0.9,8.1c0.2,2.7,0.5,5.4,0.7,8.2c0.3,0,0.5-0.1,0.7-0.1h1.5c0.2,0,0.5,0,0.7,0.1c-0.3-1.8-0.5-3.5-0.7-5.3 C407.2,486.9,407,485.1,406.8,483.3z M423.4,484.6c-0.5-0.7-1.1-1.3-1.9-1.7c-0.7-0.4-1.5-0.8-2.4-1.1c-0.9-0.3-1.7-0.7-2.4-1.1c-0.7-0.4-1.4-0.9-1.9-1.5c-0.5-0.6-0.7-1.4-0.7-2.4c0-0.6,0.1-1.1,0.3-1.6c0.2-0.5,0.5-0.9,0.9-1.3c0.4-0.4,0.8-0.6,1.3-0.8c0.5-0.2,1-0.3,1.6-0.3c0.6,0,1.1,0.1,1.5,0.3c0.4,0.2,0.8,0.5,1.1,0.7c0.3,0.3,0.6,0.6,0.7,1c0.2,0.4,0.3,0.7,0.4,1h0.4c0.1-0.6,0.3-1.1,0.4-1.5c0.1-0.4,0.3-0.8,0.5-1.1c-0.6-0.5-1.3-0.9-2.1-1.1c-0.7-0.2-1.6-0.4-2.6-0.4c-1.1,0-2,0.1-2.9,0.4c-0.9,0.3-1.6,0.7-2.2,1.2c-0.6,0.5-1.1,1.2-1.4,1.9c-0.3,0.7-0.5,1.5-0.5,2.4c0,1.3,0.2,2.3,0.7,3c0.5,0.7,1.1,1.4,1.9,1.8c0.7,0.5,1.5,0.9,2.4,1.2c0.9,0.3,1.7,0.7,2.4,1.1c0.7,0.4,1.4,0.9,1.9,1.4c0.5,0.6,0.7,1.3,0.7,2.3c0,0.6-0.1,1.2-0.3,1.8c-0.2,0.6-0.5,1.1-0.9,1.5c-0.4,0.4-0.9,0.7-1.4,1c-0.6,0.2-1.2,0.4-1.9,0.4c-0.7,0-1.3-0.1-1.8-0.3c-0.6-0.2-1-0.5-1.5-0.8c-0.4-0.3-0.8-0.7-1.1-1.1c-0.3-0.4-0.5-0.8-0.7-1.2h-0.4c-0.1,0.6-0.1,1.1-0.2,1.5c-0.1,0.4-0.2,0.8-0.4,1.3c0.6,0.4,1.2,0.8,2.1,1.2c0.8,0.4,1.9,0.5,3.2,0.5c1.2,0,2.3-0.2,3.3-0.5c1-0.4,1.8-0.8,2.5-1.5c0.7-0.6,1.2-1.4,1.5-2.3c0.4-0.9,0.5-1.8,0.5-2.8 C424.2,486.3,423.9,485.3,423.4,484.6z\")\n ;\n this.text_r = this.text.append(\"path\")\n .attr(\"fill\", \"#6E6E73\")\n .attr(\"d\", \"M433.1,472.1c2.2,0,3.9,1.8,3.9,3.9c0,2.2-1.8,3.9-3.9,3.9c-2.2,0-3.9-1.8-3.9-3.9 C429.2,473.8,430.9,472.1,433.1,472.1z M433.1,479.5c1.9,0,3.5-1.6,3.5-3.5s-1.5-3.5-3.5-3.5s-3.5,1.6-3.5,3.5 S431.2,479.5,433.1,479.5z M431.7,475c0-0.5,0-1.1-0.1-1.5c0.3,0,0.6,0.1,0.9,0.1c0.3,0,0.6-0.1,0.9-0.1c0.8,0,1.4,0.4,1.4,1.1c0,0.9-1,1.3-1.5,1.4c0.6,0.7,1.5,2,1.9,2.4v0.1c-0.1,0-0.3-0.1-0.4-0.1c-0.1,0-0.3,0-0.4,0.1c-0.5-0.8-1.1-1.6-1.8-2.4h-0.4v0.8c0,0.5,0,1.1,0.1,1.6c-0.1,0-0.2-0.1-0.4-0.1c-0.1,0-0.2,0-0.4,0.1c0-0.5,0.1-1,0.1-1.5V475z M432.2,475.7c0.1,0,0.3,0,0.5,0c0.7,0,1.4-0.3,1.4-1.1c0-0.6-0.4-0.9-1-0.9c-0.3,0-0.5,0-0.8,0.1c0,0.3-0.1,0.7-0.1,1V475.7z\")\n ;\n this.text_tm = this.text.append(\"path\")\n .attr(\"fill\", \"#6E6E73\")\n .attr(\"d\", \"M376.1,322.1c0-0.6,0-1.2,0-1.9c-0.6,0-1.4,0-1.9,0.1c0-0.1,0-0.2,0-0.3c0-0.1,0-0.2,0-0.3c0.8,0,1.5,0,2.3,0s1.5,0,2.3,0c0,0.1,0,0.2,0,0.3c0,0.1,0,0.2,0,0.3c-0.5-0.1-1.3-0.1-1.9-0.1c0,0.6,0,1.2,0,1.9v1.5c0,0.8,0,1.6,0.1,2.3c-0.2,0-0.3,0-0.4,0c-0.1,0-0.3,0-0.4,0c0-0.8,0.1-1.6,0.1-2.3V322.1zM380.5,319.7c0.8,1.7,1.7,3.3,2.6,5c0.4-0.7,1.8-3.3,2.7-5h0.1c0.3,2.3,0.5,4.3,0.7,6.3c-0.1,0-0.3,0-0.4,0c-0.1,0-0.3,0-0.4,0c-0.1-1.6-0.3-3.1-0.4-4.6h0c-0.8,1.5-1.6,3-2.4,4.6h-0.1c-0.7-1.5-1.5-3-2.3-4.6h0c-0.2,1.5-0.4,3.6-0.4,4.6c-0.1,0-0.2,0-0.3,0c-0.1,0-0.2,0-0.3,0c0.3-2,0.7-4.4,0.9-6.3H380.5z\")\n ;\n\n const bbox = this.root.node().getBBox();\n const centerX = bbox.x + bbox.width / 2;\n const centerY = bbox.y + bbox.height / 2;\n const scale = Math.min(this.width(), this.height()) / Math.max(bbox.width, bbox.height);\n this.root\n .attr(\"transform\", \"translate(\" + (-centerX * scale) + \",\" + (-centerY * scale) + \")scale(\" + scale + \")\")\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n switch (this.animation()) {\n case \"none\":\n break;\n case \"accentInOut\":\n this.logo.attr(\"opacity\", 0);\n this.logo_accent.attr(\"transform\", \"translate(-400, 0)\");\n this.text.attr(\"opacity\", 0);\n\n this.logo.transition().duration(1000)\n .attr(\"opacity\", 1)\n ;\n this.logo_accent.transition().delay(500).duration(1500)\n .attr(\"transform\", \"translate(0, 0)\")\n ;\n this.text.transition().delay(100).duration(1000)\n .attr(\"opacity\", 1)\n ;\n this.logo_accent.transition().ease(\"back\").delay(7000).duration(1500)\n .attr(\"transform\", \"translate(400, 0)\")\n ;\n this.text.transition().delay(8400).duration(1000)\n .attr(\"opacity\", 0)\n ;\n this.logo_accent.transition().delay(8500).duration(1000)\n .attr(\"opacity\", 0)\n ;\n this.logo.transition().delay(8500).duration(1000)\n .attr(\"opacity\", 0)\n ;\n break;\n case \"accentIn\":\n this.logo.attr(\"opacity\", 0);\n this.logo_accent.attr(\"transform\", \"translate(-400, 0)\");\n this.text.attr(\"opacity\", 0);\n\n this.logo.transition().duration(1000)\n .attr(\"opacity\", 1)\n ;\n this.logo_accent.transition().delay(500).duration(1500)\n .attr(\"transform\", \"translate(0, 0)\")\n ;\n this.text.transition().delay(100).duration(1000)\n .attr(\"opacity\", 1)\n ;\n break;\n case \"fade_in\":\n this.logo.attr(\"opacity\", 0);\n // this.logo_accent.attr(\"transform\", \"translate(-400, 0)\");\n this.logo_accent.attr(\"opacity\", 0);\n this.text.attr(\"opacity\", 0);\n\n this.logo.transition().duration(1000)\n .attr(\"opacity\", 1)\n ;\n /*\n this.logo_accent.transition().delay(500).duration(1500)\n .attr(\"transform\", \"translate(0, 0)\")\n ;\n */\n this.logo_accent.transition().duration(1000)\n .attr(\"opacity\", 1)\n ;\n this.text.transition().delay(100).duration(1000)\n .attr(\"opacity\", 1)\n ;\n /*\n this.logo_accent.transition().ease(\"back\").delay(7000).duration(1500)\n .attr(\"transform\", \"translate(400, 0)\")\n ;\n */\n /*\n this.text.transition().delay(8400).duration(1000)\n .attr(\"opacity\", 0)\n ;\n this.logo_accent.transition().delay(8500).duration(1000)\n .attr(\"opacity\", 0)\n ;\n this.logo.transition().delay(8500).duration(1000)\n .attr(\"opacity\", 0)\n ;\n */\n break;\n default:\n break;\n }\n }\n}\nHPCCBadge.prototype._class += \" other_HPCCBadge\";\n\nexport interface HPCCBadge {\n animation(): \"none\" | \"accentInOut\" | \"accentIn\" | \"fade_in\";\n animation(_: \"none\" | \"accentInOut\" | \"accentIn\" | \"fade_in\"): this;\n}\n\nHPCCBadge.prototype.publish(\"animation\", \"none\", \"set\", \"Animation Style\", [\"none\", \"accentInOut\", \"accentIn\", \"fade_in\"]);\n","import { HTMLWidget } from \"@hpcc-js/common\";\n\nimport \"../src/Html.css\";\n\nexport class Html extends HTMLWidget {\n constructor() {\n super();\n\n this._tag = \"div\";\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n element\n .style(\"overflow-x\", this.overflowX_exists() ? this.overflowX() : \"\")\n .style(\"overflow-y\", this.overflowY_exists() ? this.overflowY() : \"\")\n ;\n\n const html = element.selectAll(\".htmlWrapper\").data(this.data().length > 0 ? this.data() : [this.html()]);\n html.enter().append(\"div\")\n .attr(\"class\", \"htmlWrapper\")\n .merge(html)\n .html(function (d) { return d; })\n ;\n html.exit().remove();\n }\n\n html: { (): string; (_: string): Html };\n html_exists: () => boolean;\n overflowX: { (): string; (_: string): Html };\n overflowX_exists: () => boolean;\n overflowY: { (): string; (_: string): Html };\n overflowY_exists: () => boolean;\n}\nHtml.prototype._class += \" other_Html\";\n\nHtml.prototype.publish(\"html\", \"\", \"string\", \"Html to render\", null, { tags: [\"Basic\"] });\nHtml.prototype.publish(\"overflowX\", null, \"set\", \"CSS overflow-x\", [\"\", \"visible\", \"hidden\", \"scroll\", \"auto\", \"initial\", \"inherit\"], { tags: [\"Basic\"], optional: true });\nHtml.prototype.publish(\"overflowY\", null, \"set\", \"CSS overflow-y\", [\"\", \"visible\", \"hidden\", \"scroll\", \"auto\", \"initial\", \"inherit\"], { tags: [\"Basic\"], optional: true });\n","import { Entity, HTMLWidget } from \"@hpcc-js/common\";\nimport { HorizontalList, VerticalList } from \"@hpcc-js/layout\";\nimport { select as d3Select } from \"d3-selection\";\nimport { Html } from \"./Html\";\n\nimport \"../src/IconList.css\";\n\nexport class IconList extends HTMLWidget {\n protected _list;\n protected _entity_list = [];\n protected _content_list = [];\n constructor() {\n super();\n this._list = new HorizontalList()\n .orientation_default(\"horizontal\")\n .flexWrap_default(\"nowrap\")\n ;\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n element\n .style(\"height\", \"100%\")\n .style(\"width\", \"100%\")\n ;\n d3Select(domNode.parentElement)\n .style(\"height\", \"100%\")\n .style(\"width\", \"100%\")\n ;\n this._list.target(domNode);\n }\n update(domNode, element) {\n super.update(domNode, element);\n const listWidgets = this._list.widgets();\n this.data().forEach((row, idx) => {\n if (!listWidgets[idx]) {\n listWidgets[idx] = this.updateListProperties(new VerticalList(), idx)\n .widgets([\n this.updateEntityProperties(new Entity(), idx),\n new Html().html(this.data()[idx][this.htmlColumnIndex_exists() ? this.htmlColumnIndex() : 1])\n ]);\n } else {\n listWidgets[idx] = this.updateListProperties(listWidgets[idx], idx);\n this.updateEntityProperties(listWidgets[idx].widgets()[0], idx);\n listWidgets[idx]\n .widgets()[1]\n .html(this.data()[idx][this.htmlColumnIndex_exists() ? this.htmlColumnIndex() : 1])\n ;\n }\n });\n this._list.widgets(listWidgets.slice(0, this.data().length));\n this._list.resize().render();\n }\n updateListProperties(list, idx) {\n return list\n .disableScroll(true)\n .widgetsFlexBasis([this.iconSize() + \"px\", `calc(100% - ${this.iconSize()}px)`])\n ;\n }\n updateEntityProperties(entity, idx) {\n return entity\n .icon(this.iconColumnIndex_exists() ? this.data()[idx][this.iconColumnIndex()] : \"?\")\n .iconColor(this.iconColorColumnIndex_exists() ? this.data()[idx][this.iconColorColumnIndex()] : \"#000\")\n .iconDiameter(this.iconSize())\n .iconPaddingPercent(0)\n ;\n }\n}\nIconList.prototype._class += \" other_IconList\";\n\nexport interface IconList {\n iconSize(): number;\n iconSize(_: number): this;\n iconColumnIndex(): number;\n iconColumnIndex(_: number): this;\n iconColumnIndex_exists(): boolean;\n iconColorColumnIndex(): number;\n iconColorColumnIndex(_: number): this;\n iconColorColumnIndex_exists(): boolean;\n htmlColumnIndex(): number;\n htmlColumnIndex(_: number): this;\n htmlColumnIndex_exists(): boolean;\n}\nIconList.prototype.publish(\"iconSize\", 72, \"number\", \"Size of icon (pixels)\");\nIconList.prototype.publish(\"iconColumnIndex\", 0, \"number\", \"Index of column containing icon character\");\nIconList.prototype.publish(\"iconColorColumnIndex\", 1, \"number\", \"Index of column containing icon color\");\nIconList.prototype.publish(\"htmlColumnIndex\", 2, \"number\", \"Index of column containing html string\");\n","import { d3Event, HTMLWidget, select as d3Select } from \"@hpcc-js/common\";\n\nimport \"../src/Paginator.css\";\n\nexport class Paginator extends HTMLWidget {\n _tNumPages;\n _numList;\n paginator;\n side;\n _onSelect;\n\n constructor() {\n super();\n\n this._tag = \"div\";\n\n this._tNumPages = 1; // np\n\n this._numList = []; // pn\n }\n\n postUpdate(domNode, element) { }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n const context = this;\n\n this.paginator = element.append(\"ul\").attr(\"class\", \"paginator pagination pagination-sm\");\n this.side = element.append(\"div\").attr(\"class\", \"paginator pagination side\");\n\n this.side.append(\"span\")\n .classed(\"side\", true)\n .text(\"Page \")\n ;\n\n this.side.append(\"input\")\n .attr(\"type\", \"number\")\n .attr(\"class\", \"currentPageNumber\")\n .property(\"value\", 1)\n .attr(\"min\", 1)\n .on(\"change\", function () {\n context.pageNumber(this.value);\n context._onSelect(this.value);\n })\n ;\n\n this.side.append(\"span\")\n .classed(\"side total\", true)\n .text(\" of 1\")\n ;\n }\n\n update(domNode, element) {\n const context = this;\n element\n .style(\"bottom\", this.bottom() + \"px\")\n .style(\"right\", this.right() + \"px\")\n ;\n\n this._tNumPages = Math.ceil(this.numItems() / this.itemsPerPage()) || 1;\n\n if (this.pageNumber() > this._tNumPages) { this.pageNumber(1); }\n\n this._numList = [];\n if (this.numItems()) {\n this._numList.push(\"first\");\n for (let x = -this.adjacentPages(); x <= this.adjacentPages(); x++) {\n if (this.pageNumber() + x > 0 && this.pageNumber() + x <= this._tNumPages) {\n this._numList.push(this.pageNumber() + x);\n }\n }\n this._numList.push(\"last\");\n }\n\n this.side.select(\".total\").text(\" of \" + this._tNumPages);\n this.side.select(\".currentPageNumber\").property(\"value\", this.pageNumber());\n this.side.select(\".currentPageNumber\").attr(\"max\", this._tNumPages);\n\n const page = this.paginator.selectAll(\"li\").data(this._numList, function (d) { return d; });\n page\n .enter()\n .append(function (d) {\n const li = document.createElement(\"li\");\n\n if (d !== context.pageNumber()) {\n const a = document.createElement(\"a\");\n const linkText = document.createTextNode(d);\n\n a.appendChild(linkText);\n a.href = \"#\";\n li.appendChild(a);\n\n return li;\n } else {\n const span = document.createElement(\"span\");\n span.innerHTML = d;\n\n li.appendChild(span);\n\n return li;\n }\n })\n .on(\"click\", function (d, i) {\n d3Event().preventDefault();\n context.side.select(\".currentPageNumber\").property(\"value\", context.pageNumber());\n switch (d) {\n case \"first\":\n if (context.pageNumber() !== 1) {\n context.pageNumber(1);\n context._onSelect(1, \"previous\");\n }\n break;\n case \"last\":\n if (context.pageNumber() !== context._tNumPages) {\n context.pageNumber(context._tNumPages);\n context._onSelect(context._tNumPages, \"previous\");\n }\n break;\n default:\n context.pageNumber(d);\n context._onSelect(d);\n }\n })\n ;\n\n page.classed(\"active\", function (e, j) { return e === context.pageNumber(); })\n .select(\"a\")\n .text(function (d) { return d; })\n ;\n\n page.exit().remove();\n page.order();\n\n if (this.numItems() === 0) {\n d3Select(domNode).remove();\n }\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n\n itemsPerPage: { (): number; (_: number): Paginator };\n itemsPerPage_exists: () => boolean;\n numItems: { (): number; (_: number): Paginator };\n numItems_exists: () => boolean;\n pageNumber: { (): number; (_: number): Paginator };\n pageNumber_exists: () => boolean;\n adjacentPages: { (): number; (_: number): Paginator };\n adjacentPages_exists: () => boolean;\n bottom: { (): number; (_: number): Paginator };\n bottom_exists: () => boolean;\n right: { (): number; (_: number): Paginator };\n right_exists: () => boolean;\n}\nPaginator.prototype._class += \" other_Paginator\";\n\nPaginator.prototype.publish(\"itemsPerPage\", 2, \"number\", \"Pagination items per page\", null, { tags: [\"Private\"] });\n\nPaginator.prototype.publish(\"numItems\", 10, \"number\", \"Pagination total number of items\", null, { tags: [\"Private\"] });\nPaginator.prototype.publish(\"pageNumber\", 1, \"number\", \"Pagination set or get the page number\", null, { tags: [\"Private\"] });\nPaginator.prototype.publish(\"adjacentPages\", 2, \"number\", \"Number of page indexes either side of current one\", null, { tags: [\"Private\"] });\nPaginator.prototype.publish(\"bottom\", 20, \"number\", \"Pagination bottom offset\", null, { tags: [\"Private\"] });\nPaginator.prototype.publish(\"right\", 20, \"number\", \"Pagination right offset\", null, { tags: [\"Private\"] });\n","import { d3Event, HTMLWidget, Platform, select as d3Select, selectAll as d3SelectAll, Utility, Widget } from \"@hpcc-js/common\";\nimport { Paginator } from \"./Paginator\";\n\nimport \"../src/Table.css\";\n\nexport class Table extends HTMLWidget {\n protected _paginator;\n protected _selectionBag;\n protected _selectionPrevClick;\n protected _paginatorTableSpacing;\n\n tableDiv;\n thead;\n table;\n fixedHead;\n fixedHeadTable;\n fixedThead;\n unfixedThead;\n tbody;\n tfoot;\n fixedCol;\n fixedColTable;\n fixedColHead;\n fixedColHeadRow;\n fixedColBody;\n fixedColFoot;\n fixedColFootRow;\n protected _prevDescending;\n protected _prevSortByFieldIndex;\n protected _hasChildWidgets;\n protected _tNumPages;\n protected _empty_col_idx_arr: any[];\n\n constructor() {\n super();\n this._tag = \"div\";\n this.columns([]);\n this._paginator = new Paginator();\n this._selectionBag = new Utility.Selection(this);\n this._selectionPrevClick = null;\n this._paginatorTableSpacing = 4;\n }\n\n size(): any;\n size(_): Widget;\n size(_?): any | Widget {\n const retVal = super.size.apply(this, arguments);\n if (arguments.length) {\n if (this.tableDiv) {\n const topMargin = this.showHeader() && this.fixedHeader() ? this.thead.property(\"offsetHeight\") : 0;\n this.tableDiv\n .style(\"width\", this._size.width + \"px\")\n .style(\"height\", this._size.height - topMargin + \"px\")\n ;\n this._element\n .style(\"width\", this._size.width + \"px\")\n .style(\"height\", this._size.height + \"px\")\n ;\n }\n }\n\n return retVal;\n }\n\n isHidden(colIdx) {\n if (this.pivot()) return false;\n if (this.hiddenColumns().indexOf(colIdx) !== -1) return true;\n const fields = this.fields();\n if (fields && fields[colIdx] && (fields[colIdx].type() === \"hidden\" || this._empty_col_idx_arr.indexOf(colIdx) !== -1)) {\n return true;\n }\n return false;\n }\n\n tableColumns(_?: string[]): string[] {\n const retVal = this.columns.apply(this, arguments);\n if (!arguments.length && this.pivot()) {\n return this._db.column(0);\n }\n return retVal;\n }\n\n tableData(_?) {\n const retVal = this.data.apply(this, arguments);\n if (!arguments.length && this.pivot()) {\n return this._db.columns().filter(function (col, idx) { return idx > 0; });\n }\n return retVal;\n }\n\n field(rowIdx, colIdx) {\n const noTransform = { transform: d => d };\n if (this.pivot()) {\n if (colIdx === 0) return noTransform;\n return this.fields()[rowIdx + 1];\n }\n if (rowIdx === -1) return noTransform;\n return this.fields()[colIdx];\n }\n\n calcFieldsIndex(colIdx) {\n let i = -1;\n let offset = 0;\n const colLen = this.columns().length;\n let visibleCount = 0;\n while (i < colLen && visibleCount <= colIdx) {\n i++;\n if (this.isHidden(i)) {\n offset++;\n } else {\n visibleCount++;\n }\n }\n return colIdx + offset;\n }\n\n getEmptyColumnIdxArr(columns, data) {\n const ret_arr = [];\n if (this.hideEmptyColumns()) {\n for (let col_idx = 0; col_idx < columns.length; col_idx++) {\n let column_is_empty = true;\n for (let row_idx = 0; row_idx < data.length; row_idx++) {\n if ([\"\", null, undefined].indexOf(data[row_idx][col_idx]) === -1) {\n column_is_empty = false;\n break;\n }\n }\n if (column_is_empty) {\n ret_arr.push(col_idx);\n }\n }\n }\n return ret_arr;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._placeholderElement.style(\"overflow\", \"hidden\");\n\n this.tableDiv = element.append(\"div\").attr(\"class\", \"tableDiv\");\n this.table = this.tableDiv.append(\"table\");\n this.fixedHead = element.append(\"div\").classed(\"header-wrapper\", true);\n this.fixedHeadTable = this.fixedHead.append(\"table\");\n this.fixedThead = this.fixedHeadTable.append(\"thead\").append(\"tr\");\n this.unfixedThead = this.table.append(\"thead\").append(\"tr\");\n this.tbody = this.table.append(\"tbody\");\n this.tfoot = this.table.append(\"tfoot\").append(\"tr\");\n this.fixedCol = element.append(\"div\").classed(\"rows-wrapper\", true);\n this.fixedColTable = this.fixedCol.append(\"table\");\n this.fixedColHead = this.fixedColTable.append(\"thead\");\n this.fixedColHeadRow = this.fixedColHead.append(\"tr\");\n this.fixedColBody = this.fixedColTable.append(\"tbody\");\n this.fixedColFoot = this.fixedColTable.append(\"tfoot\");\n this.fixedColFootRow = this.fixedColFoot.append(\"tr\");\n\n this.tableDiv\n .style(\"overflow\", \"auto\")\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n const columns = context.tableColumns();\n const data = context.tableData();\n const scrollLeft = this.tableDiv.node().scrollLeft;\n this._empty_col_idx_arr = this.getEmptyColumnIdxArr(columns, data);\n\n this.element().selectAll(\"table,tbody,th,td\").style(\"width\", null);\n\n if (this.sortByFieldIndex_exists() && (this._prevSortByFieldIndex !== this.sortByFieldIndex() || this._prevDescending !== this.descending())) {\n Utility.multiSort(data, [{ idx: this.sortByFieldIndex(), reverse: this.descending() }]);\n this._prevSortByFieldIndex = this.sortByFieldIndex();\n this._prevDescending = this.descending();\n }\n\n this._hasChildWidgets = false;\n\n if (this.fixedHeader()) {\n this.thead = this.fixedThead;\n } else {\n this.thead = this.unfixedThead;\n }\n this.fixedHead.style(\"display\", this.fixedHeader() ? \"table-row\" : \"none\");\n this.unfixedThead.style(\"display\", this.fixedHeader() ? \"none\" : \"table-row\");\n\n const thSel = this.thead.selectAll(\"th\").data(this.showHeader() ? columns.filter(function (col, idx) {\n return !context.isHidden(idx) && context._empty_col_idx_arr.indexOf(idx) === -1;\n }) : []);\n const thUpdate = thSel.enter().append(\"th\")\n .each(function (d) {\n const element2 = d3Select(this);\n element2\n .append(\"span\")\n .attr(\"class\", \"thText\")\n ;\n element2\n .append(\"span\")\n .attr(\"class\", \"thIcon\")\n ;\n })\n .on(\"click\", function (column, idx) {\n context.headerClick(column, idx);\n })\n .merge(thSel)\n .style(\"background-color\", this.theadRowBackgroundColor())\n .style(\"border-color\", this.theadCellBorderColor())\n .style(\"color\", this.theadFontColor())\n .style(\"font-size\", this.theadFontSize())\n ;\n thUpdate.select(\".thText\")\n .style(\"font-family\", this.theadFontFamily())\n .text(function (column, idx) {\n const fieldsIdx = context.calcFieldsIndex(idx);\n return context.field(-1, fieldsIdx).transform(column);\n })\n ;\n thUpdate.select(\".thIcon\")\n .text(function (column, idx) {\n if (context.descending()) {\n return context.sortByFieldIndex() === idx ? \"\\uf078\" : \"\";\n } else {\n return context.sortByFieldIndex() === idx ? \"\\uf077\" : \"\";\n }\n })\n ;\n thSel.exit()\n .remove()\n ;\n thUpdate.order();\n\n if (this.paginationLimit()) {\n this.pagination(data.length >= parseInt(this.paginationLimit()) ? true : false);\n }\n if (this.pagination()) {\n if (this._paginator.target() === null) {\n this._paginator.target(element.node());\n }\n\n const ipp = this._calcRowsPerPage(thUpdate);\n this.itemsPerPage(ipp);\n\n this._paginator.numItems(data.length);\n this._tNumPages = Math.ceil(this._paginator.numItems() / this.itemsPerPage()) || 1;\n if (this.pageNumber() > this._tNumPages || this.pageNumber() <= 0) { this.pageNumber(1); } // resets if current pagenum selected out of range\n\n this._paginator._onSelect = function (p, d) {\n context.pageNumber(p);\n context.render();\n return;\n };\n } else {\n this._paginator.numItems(0); // remove widget\n }\n\n // pageNumber starts at index 1\n const startIndex = this.pageNumber() - 1;\n const itemsOnPage = this.itemsPerPage();\n\n const start = startIndex * itemsOnPage;\n const end = startIndex * parseInt(itemsOnPage) + parseInt(itemsOnPage);\n\n let tData = null;\n\n if (this.topN()) {\n tData = data.slice(0, this.topN());\n } else if (this.pagination()) {\n tData = data.slice(start, end);\n } else {\n tData = data;\n }\n\n const totalRow: any[] = [this.totalledLabel() ? this.totalledLabel() : null];\n if (this.totalledColumns().length !== 0) {\n for (let i = 0; i < this.totalledColumns().length; i++) this.totalledColumns()[i] = +this.totalledColumns()[i];\n for (let j = 1; j < columns.length; j++) {\n let sum = 0;\n if (this.totalledColumns().indexOf(j) !== -1) {\n for (let k = 0; k < tData.length; k++) {\n sum = sum + tData[k][j];\n }\n totalRow.push(sum);\n } else {\n totalRow.push(\"\");\n }\n }\n\n const tfSel = this.tfoot.selectAll(\"td\").data(totalRow);\n tfSel.enter()\n .append(\"td\")\n .merge(tfSel)\n .style(\"background-color\", this.tfootRowBackgroundColor())\n .style(\"border-color\", this.tfootCellBorderColor())\n .style(\"color\", this.tfootFontColor())\n .style(\"font-size\", this.tfootFontSize())\n [this.renderHtmlDataCells() ? \"html\" : \"text\"](function (d, idx) {\n return context.fields()[idx].transform(d);\n });\n tfSel.exit()\n .remove()\n ;\n }\n\n const rowsSel = this.tbody.selectAll(\"tr.tr_\" + this.id()).data(tData.map(function (d, idx) {\n // TODO - Move fix closer to data source?\n for (let i = 0; i < d.length; ++i) {\n if (d[i] === undefined) {\n d[i] = null;\n }\n }\n return {\n rowIdx: idx,\n row: d\n };\n }));\n const rowsUpdate = rowsSel.enter().append(\"tr\")\n .attr(\"class\", \"tr_\" + this.id())\n .on(\"click.selectionBag\", function (_d) {\n if (_d.row) {\n const d = _d.row;\n const i = _d.rowIdx;\n context.selectionBagClick(d, i);\n context.applyRowStyles(context.getBodyRow(i));\n context.applyFirstColRowStyles(context.getFixedRow(i));\n }\n }, true) // capture=true: event is caught on the way down the DOM before the cell click.\n .on(\"mouseover\", function (_d) {\n if (_d.row) {\n const i = _d.rowIdx;\n const fixedLeftRows = context.getFixedRow(i);\n if (!fixedLeftRows.empty()) {\n fixedLeftRows.classed(\"hover\", true);\n }\n const tbodyRows = context.getBodyRow(i);\n tbodyRows.classed(\"hover\", true);\n context.applyStyleToRows(tbodyRows);\n context.applyFirstColRowStyles(fixedLeftRows);\n }\n })\n .on(\"mouseout\", function (_d) {\n if (_d.row) {\n const i = _d.rowIdx;\n const fixedLeftRows = context.getFixedRow(i);\n fixedLeftRows.classed(\"hover\", false);\n const tbodyRows = context.getBodyRow(i);\n tbodyRows.classed(\"hover\", false);\n context.applyStyleToRows(tbodyRows);\n context.applyFirstColRowStyles(fixedLeftRows);\n }\n })\n .merge(rowsSel)\n .classed(\"selected\", function (_d) {\n const d = _d.row;\n return context._selectionBag.isSelected(context._createSelectionObject(d));\n })\n .classed(\"trId\" + this._id, true)\n ;\n rowsSel.exit()\n .remove()\n ;\n this.applyStyleToRows(rowsUpdate);\n\n const cellsSel = rowsUpdate.selectAll(\".td_\" + this.id()).data(function (_d, _trIdx) {\n return _d.row.filter(function (cell, idx) {\n return idx < columns.length && !context.isHidden(idx) && context._empty_col_idx_arr.indexOf(idx) === -1;\n }).map(function (cell, idx) {\n return {\n rowInfo: _d,\n colIdx: idx,\n cell\n };\n });\n });\n cellsSel.enter()\n .append(\"td\")\n .attr(\"class\", \"td_\" + this.id())\n .on(\"click\", function (tdContents) {\n if (tdContents.rowInfo) {\n context.click(context.rowToObj(tdContents.rowInfo.row), context.columns()[tdContents.colIdx], context._selectionBag.isSelected(context._createSelectionObject(tdContents.rowInfo.row)));\n }\n })\n .on(\"dblclick\", function (tdContents, idx) {\n if (tdContents.rowInfo) {\n context.dblclick(context.rowToObj(tdContents.rowInfo.row), context.columns()[tdContents.colIdx], context._selectionBag.isSelected(context._createSelectionObject(tdContents.rowInfo.row)));\n }\n })\n .each(function (tdContents, tdIdx) {\n const alignment = context.getColumnAlignment(tdContents.rowInfo.rowIdx, tdContents.colIdx, tdContents.cell);\n const el = d3Select(this);\n el\n .style(\"height\", null)\n .style(\"text-align\", alignment)\n .style(\"vertical-align\", context.verticalAlign())\n .classed(\"tr-\" + tdContents.rowInfo.rowIdx + \"-td-\" + tdIdx, true)\n ;\n })\n .merge(cellsSel)\n .each(function (tdContents) {\n const el = d3Select(this);\n if (tdContents.cell instanceof Widget) {\n el[context.renderHtmlDataCells() ? \"html\" : \"text\"](null);\n const widgetDiv = el.selectAll(\".div_\" + context.id()).data([tdContents.cell], function (d: any) { return d.id(); });\n widgetDiv.exit()\n .each(function (d: any) {\n d.target(null);\n })\n .remove()\n ;\n widgetDiv.enter().append(\"div\")\n .attr(\"class\", \"div_\" + context.id())\n .style(\"width\", context.minWidgetWidth() + \"px\")\n .style(\"height\", context.minWidgetHeight() + \"px\")\n .each(function (d) {\n const widgetDiv2 = d3Select(this);\n d._parentWidget = context;\n if (d._class.indexOf(\"childWidget\") < 0) {\n d._class = \"childWidget \" + d._class;\n }\n d\n .target(null)\n .target(widgetDiv2.node())\n ;\n })\n .merge(widgetDiv as any)\n .each(function (d) {\n d\n .resize()\n .lazyRender()\n ;\n context._hasChildWidgets = true;\n })\n ;\n } else {\n el.selectAll(\".div_\" + context.id()).remove();\n const fieldsIdx = context.calcFieldsIndex(tdContents.colIdx);\n el[context.renderHtmlDataCells() ? \"html\" : \"text\"](\n context.field(tdContents.rowInfo.rowIdx, fieldsIdx).transform(tdContents.cell)\n );\n }\n })\n ;\n cellsSel.exit()\n .remove()\n ;\n const tableMarginHeight = parseInt(this.thead.node().offsetHeight);\n\n if (this.pagination() && this._hasChildWidgets) {\n this.tableDiv.style(\"overflow-y\", \"auto\");\n this.table.style(\"margin-bottom\", \"50px\");\n console.warn(\"Warning: displaying another widget in the table may cause problems with pagination\");\n } else {\n this.tableDiv.style(\"overflow-y\", null);\n this.table.style(\"margin-bottom\", null);\n\n }\n this.size(this._size);\n\n let fixedColWidth = 0;\n const fixedColThSel = this.fixedColHeadRow.selectAll(\"th\").data(this.fixedColumn() && this.showHeader() ? [columns[0]] : []);\n const fixedColThUpdate = fixedColThSel.enter().append(\"th\")\n .each(function (d) {\n const element2 = d3Select(this);\n element2\n .append(\"span\")\n .attr(\"class\", \"thText\")\n ;\n element2\n .append(\"span\")\n .attr(\"class\", \"thIcon\")\n ;\n })\n .on(\"click\", function (column, idx) {\n context.headerClick(column, idx);\n })\n .merge(fixedColThSel)\n .style(\"background-color\", this.theadRowBackgroundColor())\n .style(\"border-color\", this.theadCellBorderColor())\n .style(\"color\", this.theadFontColor())\n .style(\"font-size\", this.theadFontSize())\n ;\n fixedColThUpdate.select(\".thText\")\n .style(\"font-family\", this.theadFontFamily())\n .text(function (column) {\n return column;\n })\n ;\n fixedColThUpdate.select(\".thIcon\")\n .text(function (column, idx) {\n if (context.descending()) {\n return context.sortByFieldIndex() === idx ? \"\\uf078\" : \"\";\n } else {\n return context.sortByFieldIndex() === idx ? \"\\uf077\" : \"\";\n }\n })\n ;\n fixedColThSel.exit()\n .remove()\n ;\n\n const fixedColTrSel = this.fixedColBody.selectAll(\"tr\").data(this.fixedColumn() ? tData : []);\n const fixedColTrUpdate = fixedColTrSel.enter().append(\"tr\")\n .attr(\"class\", function () {\n return \"trId\" + context._id;\n })\n .merge(fixedColTrSel)\n .on(\"click\", function (d, i) {\n (d3Select(rowsUpdate[0][i]).on(\"click.selectionBag\") as any)(rowsUpdate.data()[i], i)\n ;\n })\n .on(\"mouseover\", function (d, i) {\n (d3Select(rowsUpdate[0][i]).on(\"mouseover\") as any)(rowsUpdate.data()[i], i)\n ;\n })\n .on(\"mouseout\", function (d, i) {\n (d3Select(rowsUpdate[0][i]).on(\"mouseout\") as any)(rowsUpdate.data()[i], i)\n ;\n })\n .classed(\"selected\", function (d) {\n return context._selectionBag.isSelected(context._createSelectionObject(d));\n })\n ;\n fixedColTrSel.exit()\n .remove()\n ;\n const fixedColTdSel = fixedColTrUpdate.selectAll(\"td\").data(function (d, i) {\n return [d[0]];\n });\n const fixedColTdUpdate = fixedColTdSel.enter().append(\"td\")\n .merge(fixedColTdSel)[this.renderHtmlDataCells() ? \"html\" : \"text\"](function (d): any {\n if (typeof (d) === \"string\") {\n return d.trim();\n } else if (typeof (d) === \"number\") {\n return d;\n }\n return \"\";\n });\n fixedColTdSel.exit()\n .remove()\n ;\n\n const fixedColFootTdSel = this.fixedColFootRow.selectAll(\"td\").data(this.fixedColumn() && this.totalledLabel() ? [this.totalledLabel()] : []);\n const fixedColFootTdUpdate = fixedColFootTdSel.enter().append(\"td\")\n .merge(fixedColFootTdSel)[this.renderHtmlDataCells() ? \"html\" : \"text\"](function (d): any {\n if (typeof (d) === \"string\") {\n return d.trim();\n } else if (typeof (d) === \"number\") {\n return d;\n }\n return \"\";\n });\n fixedColFootTdSel.exit()\n .remove()\n ;\n\n if (this.fixedColumn() && !this.fixedSize() && fixedColFootTdUpdate.length) {\n if (this.showHeader()) {\n fixedColWidth = fixedColFootTdUpdate.property(\"offsetWidth\") > fixedColFootTdUpdate.property(\"offsetWidth\") ? fixedColFootTdUpdate.property(\"offsetWidth\") : fixedColFootTdUpdate.property(\"offsetWidth\");\n } else {\n fixedColWidth = fixedColFootTdUpdate.property(\"offsetWidth\");\n }\n this.fixedCol\n .style(\"position\", \"absolute\")\n .style(\"margin-top\", -this.tableDiv.property(\"scrollTop\") + tableMarginHeight + \"px\")\n ;\n fixedColTdUpdate\n .style(\"width\", fixedColWidth + \"px\")\n ;\n this.fixedColHead\n .style(\"position\", \"absolute\")\n .style(\"margin-top\", (this.fixedHeader() ? this.tableDiv.property(\"scrollTop\") : 0) - tableMarginHeight + \"px\")\n ;\n fixedColThUpdate\n .style(\"width\", fixedColWidth + \"px\")\n ;\n rowsUpdate.each(function (d, i) {\n const height = d3Select(this).select(\"td\").property(\"offsetHeight\");\n d3Select(fixedColTdUpdate[i][0]).style(\"height\", height + \"px\");\n });\n }\n\n this.table\n .style(\"margin-left\", -fixedColWidth + \"px\")\n ;\n this.tableDiv\n .style(\"margin-left\", fixedColWidth + \"px\")\n .style(\"width\", this.width() - fixedColWidth + \"px\")\n ;\n\n if (!rowsUpdate.empty()) this.setColumnWidths(rowsUpdate);\n\n let box;\n let newTableHeight;\n let finalWidth;\n let maxWidth;\n if (this.fixedSize()) {\n const node = d3Select(\".tableDiv > table\").node();\n if (node) {\n box = (node as any).getBoundingClientRect();\n let newTableHeight;\n let finalWidth;\n if (box.width !== 0 && box.height !== 0) {\n calcWidth();\n calcHeight();\n } else {\n if (box.height - tableMarginHeight <= context.tableDiv.property(\"offsetHeight\")) {\n calcHeight();\n } else {\n if (context.fixedHeader()) {\n newTableHeight = context.tableDiv.property(\"offsetHeight\"); // is tableDiv correct?\n newTableHeight = newTableHeight + \"px\";\n } else {\n newTableHeight = \"100%\";\n }\n }\n if (box.width - fixedColWidth < context.tableDiv.property(\"offsetWidth\")) {\n calcWidth();\n } else {\n if (context.fixedColumn()) {\n finalWidth = context.tableDiv.property(\"offsetWidth\") - fixedColWidth; // is tableDiv correct?\n finalWidth = finalWidth + \"px\";\n } else {\n finalWidth = \"100%\";\n }\n }\n }\n if (element.classed(\"childWidget\")) {\n context._placeholderElement\n .style(\"width\", finalWidth + \"px\")\n .style(\"height\", newTableHeight + \"px\")\n ;\n context.tableDiv\n .style(\"overflow\", \"hidden\")\n ;\n }\n context.size({ width: finalWidth, height: newTableHeight });\n }\n }\n\n this.setOnScrollEvents(this.tableDiv.node(), tableMarginHeight);\n\n function calcWidth() {\n const newTableWidth = box.width;\n maxWidth = context.tbody.property(\"offsetWidth\") + 1;\n finalWidth = newTableWidth > maxWidth ? maxWidth : newTableWidth;\n finalWidth = finalWidth;\n }\n\n function calcHeight() {\n newTableHeight = context.tbody.property(\"offsetHeight\") + tableMarginHeight;\n newTableHeight = newTableHeight;\n }\n\n this._paginator.render();\n setTimeout(function () {\n context._paginator\n .right((context.hasVScroll(element) ? Platform.getScrollbarWidth() : 0) + context._paginatorTableSpacing)\n .bottom((context.hasHScroll(element) ? Platform.getScrollbarWidth() : 0) + context._paginatorTableSpacing)\n .render(function () {\n context.tableDiv.node().scrollLeft = scrollLeft;\n })\n ;\n }, 0);\n }\n\n exit(domNode, element) {\n this._paginator.target(null);\n super.exit(domNode, element);\n }\n\n setColumnWidths(rows) {\n const context = this;\n const firstRow = rows.filter(function (d, i) { return i === 0; });\n\n let tds = d3Select(null);\n firstRow.each(function (d) {\n tds = d3SelectAll(this.childNodes);\n });\n\n const tableMarginHeight = this.fixedHeader() ? this.thead.property(\"offsetHeight\") : 0;\n let totalWidth = 1;\n const tdWidths = {};\n\n tds.each(function (d, i) {\n tdWidths[i] = (this as any).offsetWidth;\n });\n\n const th = this.thead.selectAll(\"th\");\n th.each(function (d, i) {\n const thwidth = this.offsetWidth;\n const tdwidth = tds.empty() ? 0 : tdWidths[i];\n const usewidth = thwidth >= tdwidth ? thwidth : tdwidth;\n this.style.width = usewidth + \"px\";\n tds\n .filter((_d, idx) => idx === 0)\n .each(function () {\n d3Select(this).style(\"width\", usewidth + \"px\");\n })\n ;\n totalWidth += usewidth;\n });\n this.thead\n .style(\"position\", this.fixedHeader() ? \"absolute\" : \"relative\")\n .style(\"width\", totalWidth + \"px\")\n .style(\"margin-top\", \"0px\")\n ;\n this.table\n .style(\"width\", totalWidth + \"px\")\n ;\n this.tableDiv\n .style(\"margin-top\", (context.fixedHeader() ? tableMarginHeight : 0) + \"px\")\n ;\n this.tbody\n .style(\"width\", totalWidth + \"px\")\n ;\n }\n\n getBodyRow(i) {\n return this.table.selectAll(\"tbody tr.trId\" + this._id)\n .filter(function (d, idx) {\n return idx === i;\n })\n ;\n }\n\n getFixedRow(i) {\n return this._element.selectAll(\".rows-wrapper tbody tr\")\n .filter(function (d, idx) {\n return idx === i;\n })\n ;\n }\n\n setOnScrollEvents(scrollNode, margHeight) {\n const context = this;\n scrollNode.onscroll = function (e) {\n const topDelta = e.target.scrollTop;\n const leftDelta = e.target.scrollLeft;\n if (context.fixedHeader()) {\n context.thead\n .style(\"margin-left\", -leftDelta + \"px\")\n ;\n }\n if (context.fixedColumn()) {\n context.fixedCol\n .style(\"margin-top\", -topDelta + margHeight + \"px\")\n ;\n if (context.fixedHeader()) {\n context.fixedColHead\n .style(\"margin-top\", topDelta - margHeight + \"px\")\n ;\n }\n }\n };\n }\n\n _generateTempRow() {\n const trow = this.tbody.append(\"tr\");\n trow.append(\"td\").text(\"QQQ\");\n return trow;\n }\n\n _createSelectionObject(d) {\n const context = this;\n return {\n _id: d,\n element: () => context.tbody ? context.tbody.selectAll(\"tr\").filter(function (d2) { return d2 === d; }) : d3Select(null)\n };\n }\n\n _calcRowsPerPage(th) {\n if (this._paginator.numItems() === 0) { // only run on first render\n this._paginator.numItems(1);\n this.itemsPerPage(1);\n }\n this._paginator.render();\n\n const thHeight = this.thead.selectAll(\"th\").node() ? this.thead.selectAll(\"th\").node().clientHeight : 0;\n const tfootHeight = this.tfoot.selectAll(\"td\").node() ? this.tfoot.selectAll(\"td\").node().clientHeight : 0;\n const tmpRow = this._generateTempRow();\n const tcellHeight = tmpRow.node().clientHeight;\n tmpRow.remove();\n const paginatorHeight = this.calcHeight(this._paginator.element());\n let ipp = Math.floor((this.height() - thHeight - tfootHeight - paginatorHeight - (this.table.style(\"width\") >= this.table.style(\"width\") ? Platform.getScrollbarWidth() : 0) - this._paginatorTableSpacing * 2) / tcellHeight) || 1;\n if (this.totalledColumns().length !== 0) {\n ipp -= 1;\n }\n return ipp;\n }\n\n sort(idx) {\n if (this.sortByFieldIndex() !== idx) {\n this.descending(false);\n } else {\n this.descending(!this.descending());\n }\n this.sortByFieldIndex(idx);\n\n return this;\n }\n\n selection(_) {\n if (!arguments.length) return this._selectionBag.get().map(function (d) { return d._id; });\n this._selectionBag.set(_.map(function (row) {\n return this._createSelectionObject(row);\n }, this));\n return this;\n }\n\n selectionBagClick(d, i) {\n if (this.multiSelect() && d3Event().shiftKey && this._selectionPrevClick) {\n let inRange = false;\n const rows = [];\n const selection = this.tableData().filter(function (row, i2) {\n let lastInRangeRow = false;\n if (row === d || row === this._selectionPrevClick) {\n if (inRange) {\n lastInRangeRow = true;\n }\n inRange = !inRange;\n rows.push(i2);\n }\n return inRange || lastInRangeRow;\n }, this);\n this.selection(selection);\n } else if (this.multiSelect()) {\n this._selectionBag.click(this._createSelectionObject(d), d3Event);\n this._selectionPrevClick = d;\n } else {\n const selObj = this._createSelectionObject(d);\n this._selectionBag.click(selObj, { ctrlKey: this._selectionBag.isSelected(selObj) });\n this._selectionPrevClick = d;\n }\n this.render();\n }\n\n applyHoverRowStyles(row) {\n const context = this;\n row\n .style(\"color\", context.tbodyHoverRowFontColor())\n .style(\"background-color\", context.tbodyHoverRowBackgroundColor())\n ;\n }\n applySelectedRowStyles(row) {\n const context = this;\n row\n .style(\"color\", context.tbodySelectedRowFontColor())\n .style(\"background-color\", context.tbodySelectedRowBackgroundColor())\n ;\n }\n applyRowStyles(row, isFirstCol: boolean = false) {\n const dataRow = row.datum().row;\n row\n .style(\"color\", isFirstCol ? this.tbodyFirstColFontColor() : this.tbodyFontColor())\n .style(\"background-color\", isFirstCol ? this.tbodyFirstColBackgroundColor() : this.tableZebraColor_exists() && this.tableData().indexOf(dataRow) % 2 ? this.tbodyRowBackgroundColor() : this.tableZebraColor())\n ;\n }\n applyFirstColRowStyles(rows) {\n this.applyStyleToRows(rows, true);\n }\n applyStyleToRows(rows, isFirstCol: boolean = false) {\n isFirstCol = typeof isFirstCol !== \"undefined\" ? isFirstCol : false;\n const context = this;\n rows.each(function () {\n const tr = d3Select(this);\n if (tr.classed(\"hover\")) {\n context.applyHoverRowStyles(tr);\n } else if (tr.classed(\"selected\")) {\n context.applySelectedRowStyles(tr);\n } else {\n context.applyRowStyles(tr, isFirstCol);\n }\n })\n ;\n }\n\n getColumnAlignment(rowIdx, colIdx, cell) {\n const fieldsIdx = this.calcFieldsIndex(colIdx);\n const field = this.field(rowIdx, fieldsIdx);\n switch ((field as any).__prop_type) {\n case \"string\":\n return this.stringAlign();\n case \"number\":\n return this.numberAlign();\n case \"\":\n case undefined:\n switch (typeof cell) {\n case \"string\":\n return this.stringAlign();\n case \"number\":\n return this.numberAlign();\n }\n }\n return null;\n }\n\n serializeState() {\n return {\n selection: this._selectionBag.get().map(function (d) {\n return d._id;\n }),\n data: this.data()\n };\n }\n\n deserializeState(state) {\n if (state) {\n if (state.selection) {\n const context = this;\n this._selectionBag.set(state.selection.map(function (d) {\n return context._createSelectionObject(d);\n }));\n }\n if (state.data) {\n this.data(state.data);\n }\n }\n return this;\n }\n\n click(row, column, selected) {\n }\n\n dblclick(row, column, selected) {\n }\n\n headerClick(column, idx) {\n this\n .sort(idx)\n .render()\n ;\n }\n renderHtmlDataCells: { (): boolean; (_: boolean): Table; };\n pagination: { (): boolean; (_: boolean): Table; };\n paginationLimit: { (): any; (_: any): Table; };\n itemsPerPage: { (): any; (_: any): Table; };\n pageNumber: { (): number; (_: number): Table; };\n adjacentPages: { (): number; (_: number): Table; };\n topN: { (): number; (_: number): Table; };\n pivot: { (): boolean; (_: boolean): Table; };\n showHeader: { (): boolean; (_: boolean): Table; };\n fixedHeader: { (): boolean; (_: boolean): Table; };\n fixedColumn: { (): boolean; (_: boolean): Table; };\n multiSelect: { (): boolean; (_: boolean): Table; };\n\n fixedSize: { (): boolean; (_: boolean): Table; };\n\n hideEmptyColumns: { (): boolean; (_: boolean): Table; };\n\n theadFontSize: { (): string; (_: string): Table; };\n tbodyFontSize: { (): string; (_: string): Table; };\n tfootFontSize: { (): string; (_: string): Table; };\n theadFontColor: { (): string; (_: string): Table; };\n tbodyFontColor: { (): string; (_: string): Table; };\n tfootFontColor: { (): string; (_: string): Table; };\n theadFontFamily: { (): string; (_: string): Table; };\n tbodyFontFamily: { (): string; (_: string): Table; };\n tfootFontFamily: { (): string; (_: string): Table; };\n\n theadCellBorderColor: { (): string; (_: string): Table; };\n tfootCellBorderColor: { (): string; (_: string): Table; };\n theadRowBackgroundColor: { (): string; (_: string): Table; };\n tfootRowBackgroundColor: { (): string; (_: string): Table; };\n\n tbodyCellBorderColor: { (): string; (_: string): Table; };\n\n tbodyRowBackgroundColor: { (): string; (_: string): Table; };\n tbodyFirstColFontColor: { (): string; (_: string): Table; };\n tbodyFirstColBackgroundColor: { (): string; (_: string): Table; };\n\n tbodyHoverRowFontColor: { (): string; (_: string): Table; };\n tbodyHoverRowBackgroundColor: { (): string; (_: string): Table; };\n\n tbodySelectedRowFontColor: { (): string; (_: string): Table; };\n tbodySelectedRowBackgroundColor: { (): string; (_: string): Table; };\n tableZebraColor: { (): string; (_: string): Table; };\n tableZebraColor_exists: () => boolean;\n totalledColumns: { (): any[]; (_: any[]): Table; };\n totalledLabel: { (): string; (_: string): Table; };\n hiddenColumns: { (): any[]; (_: any[]): Table; };\n\n stringAlign: { (): string; (_: string): Table; };\n numberAlign: { (): string; (_: string): Table; };\n verticalAlign: { (): string; (_: string): Table; };\n\n minWidgetWidth: { (): number; (_: number): Table; };\n minWidgetHeight: { (): number; (_: number): Table; };\n\n sortByFieldIndex: { (): number; (_: number): Table; };\n sortByFieldIndex_exists: () => boolean;\n descending: { (): boolean; (_: boolean): Table; };\n}\nTable.prototype._class += \" other_Table\";\n\nTable.prototype.publish(\"renderHtmlDataCells\", false, \"boolean\", \"enable or disable HTML within cells\", null, { tags: [\"Private\"] });\nTable.prototype.publish(\"pagination\", true, \"boolean\", \"Enable or disable pagination\", null, { tags: [\"Private\"] });\nTable.prototype.publish(\"paginationLimit\", null, \"number\", \"Maximum number of rows allowed before pagination defaults to on\", null, { tags: [\"Private\"] });\nTable.prototype.publishProxy(\"itemsPerPage\", \"_paginator\");\nTable.prototype.publishProxy(\"pageNumber\", \"_paginator\", \"pageNumber\", 1);\nTable.prototype.publishProxy(\"adjacentPages\", \"_paginator\");\nTable.prototype.publish(\"topN\", null, \"number\", \"Total number or rows of data to be displayed in the table\", null, { tags: [\"Private\"] });\nTable.prototype.publish(\"pivot\", false, \"boolean\", \"Pivot Table\");\nTable.prototype.publish(\"showHeader\", true, \"boolean\", \"Show or hide the table header\", null, { tags: [\"Private\"] });\nTable.prototype.publish(\"fixedHeader\", true, \"boolean\", \"Enable or disable fixed table header\", null, { tags: [\"Private\"] });\nTable.prototype.publish(\"fixedColumn\", false, \"boolean\", \"Enable or disable fixed first column\", null, { tags: [\"Private\"] });\nTable.prototype.publish(\"multiSelect\", false, \"boolean\", \"Multiple Selection\", null, { tags: [\"Basic\"] });\n\nTable.prototype.publish(\"fixedSize\", false, \"boolean\", \"Fix Size to Min Width/Height\");\n\nTable.prototype.publish(\"hideEmptyColumns\", false, \"boolean\", \"Hide columns with all empty cells\");\n\nTable.prototype.publish(\"theadFontSize\", null, \"string\", \"Table head font size\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tbodyFontSize\", null, \"string\", \"Table body font size\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tfootFontSize\", null, \"string\", \"Table body font size\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"theadFontColor\", null, \"html-color\", \"Table head font color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tbodyFontColor\", null, \"html-color\", \"Table body font color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tfootFontColor\", null, \"html-color\", \"Table body font color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"theadFontFamily\", null, \"string\", \"Table head font family\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tbodyFontFamily\", null, \"string\", \"Table body font family\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tfootFontFamily\", null, \"string\", \"Table body font family\", null, { tags: [\"Basic\"], optional: true });\n\nTable.prototype.publish(\"theadCellBorderColor\", null, \"html-color\", \"Table head cell border color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tfootCellBorderColor\", null, \"html-color\", \"Table head cell border color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"theadRowBackgroundColor\", null, \"html-color\", \"Table head row color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tfootRowBackgroundColor\", null, \"html-color\", \"Table head row color\", null, { tags: [\"Basic\"], optional: true });\n\nTable.prototype.publish(\"tbodyCellBorderColor\", null, \"html-color\", \"Table body cell border color\", null, { tags: [\"Basic\"], optional: true });\n\nTable.prototype.publish(\"tbodyRowBackgroundColor\", null, \"html-color\", \"Table body row color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tbodyFirstColFontColor\", null, \"html-color\", \"Table body first column font color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tbodyFirstColBackgroundColor\", null, \"html-color\", \"Table body first column background color\", null, { tags: [\"Basic\"], optional: true });\n\nTable.prototype.publish(\"tbodyHoverRowFontColor\", null, \"html-color\", \"Table body hover row font color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tbodyHoverRowBackgroundColor\", null, \"html-color\", \"Table body hover row background color\", null, { tags: [\"Basic\"], optional: true });\n\nTable.prototype.publish(\"tbodySelectedRowFontColor\", null, \"html-color\", \"Table body selected row color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tbodySelectedRowBackgroundColor\", null, \"html-color\", \"Table body selected row color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tableZebraColor\", null, \"html-color\", \"Table zebra row color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"totalledColumns\", [], \"array\", \"Array of indices of the columns to be totalled\", null, { tags: [\"Basic\"], optional: true, disable: (w: any) => w.pivot() });\nTable.prototype.publish(\"totalledLabel\", null, \"string\", \"Adds a label to the first column of the 'Totalled' row\", null, { tags: [\"Basic\"], optional: true, disable: (w: any) => w.pivot() });\nTable.prototype.publish(\"hiddenColumns\", [], \"array\", \"Array of indices of the columns to be hidden\", null, { tags: [\"Basic\"], optional: true, disable: (w) => w.pivot() });\n\nTable.prototype.publish(\"stringAlign\", \"left\", \"set\", \"Cell alignment for strings\", [\"left\", \"right\", \"center\"], { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"numberAlign\", \"right\", \"set\", \"Cell alignment for numbers\", [\"left\", \"right\", \"center\"], { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"verticalAlign\", null, \"set\", \"Cell vertical alignment\", [null, \"middle\", \"top\", \"bottom\"], { tags: [\"Basic\"], optional: true });\n\nTable.prototype.publish(\"minWidgetWidth\", 320, \"number\", \"Minimum width of a child widget\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"minWidgetHeight\", 240, \"number\", \"Minimum height of a child widget\", null, { tags: [\"Basic\"], optional: true });\n\nTable.prototype.publish(\"sortByFieldIndex\", null, \"number\", \"Index for the field/column to sort the data\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"descending\", false, \"boolean\", \"Direction for sorting the data: ascending (true) or descending (false)\", null, { tags: [\"Basic\"], optional: true });\n","import { Palette, Platform } from \"@hpcc-js/common\";\nimport { format as d3Format } from \"d3-format\";\nimport { select as d3Select } from \"d3-selection\";\nimport { Table } from \"./Table\";\n\nimport \"../src/Legend.css\";\n\nfunction _htmlColorBlock(hexColor) {\n return \"<div class=\\\"colorBlock\\\" style=\\\"background-color:\" + hexColor + \";\\\"></div>\";\n}\n\nexport class Legend extends Table {\n _targetWidget;\n _targetWidgetMonitor;\n\n constructor() {\n super();\n\n this.showHeader(false);\n this.pagination(false);\n }\n\n isRainbow() {\n const widget = this.getWidget();\n return widget && widget._palette && widget._palette.type() === \"rainbow\";\n }\n\n targetWidget(): any;\n targetWidget(_: any): this;\n targetWidget(_?: any): any | this {\n if (!arguments.length) return this._targetWidget;\n this._targetWidget = _;\n if (this._targetWidgetMonitor) {\n this._targetWidgetMonitor.remove();\n delete this._targetWidgetMonitor;\n }\n const context = this;\n this._targetWidgetMonitor = this._targetWidget.monitor(function (key, newProp, oldProp, source) {\n switch (key) {\n case \"chart\":\n case \"columns\":\n case \"data\":\n case \"paletteID\":\n context.lazyRender();\n break;\n }\n });\n return this;\n }\n\n getWidget() {\n if (this._targetWidget) {\n switch (this._targetWidget.classID()) {\n case \"chart_MultiChart\":\n return this._targetWidget.chart();\n }\n }\n return this._targetWidget;\n }\n\n getPalette() {\n const widget = this.getWidget();\n if (widget && widget._palette) {\n switch (widget._palette.type()) {\n case \"ordinal\":\n return Palette.ordinal(widget._palette.id());\n case \"rainbow\":\n return Palette.rainbow(widget._palette.id());\n }\n }\n return Palette.ordinal(\"default\");\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n d3Select(domNode.parentNode).style(\"overflow-y\", \"auto\");\n\n this.renderHtmlDataCells(true);\n this.fixedHeader(false);\n this.fixedSize(true);\n element.classed(\"other_Legend\", true);\n }\n\n update(domNode, element) {\n const colArr = [\"Key\", \"Label\"];\n let dataArr = [];\n if (this._targetWidget) {\n const _palette = this.getPalette();\n switch (_palette.type()) {\n case \"ordinal\":\n const oPalette = _palette as Palette.OrdinalPaletteFunc;\n switch (this.dataFamily()) {\n case \"2D\":\n dataArr = this._targetWidget.data().map(function (n) {\n return [_htmlColorBlock(oPalette(n[0])), n[0]];\n }, this);\n break;\n case \"ND\":\n const widgetColumns = this._targetWidget.columns();\n dataArr = widgetColumns.filter(function (n, i) { return i > 0; }).map(function (n) {\n return [_htmlColorBlock(oPalette(n)), n];\n }, this);\n break;\n }\n break;\n case \"rainbow\":\n const rPalette = _palette as Palette.RainbowPaletteFunc;\n const format = d3Format(this.rainbowFormat());\n const widget = this.getWidget();\n const steps = this.rainbowBins();\n const weightMin = widget._dataMinWeight;\n const weightMax = widget._dataMaxWeight;\n const stepWeightDiff = (weightMax - weightMin) / (steps - 1);\n dataArr.push([_htmlColorBlock(rPalette(weightMin, weightMin, weightMax)), format(weightMin)]);\n for (let x = 1; x < steps - 1; ++x) {\n const mid = stepWeightDiff * x;\n dataArr.push([_htmlColorBlock(rPalette(mid, weightMin, weightMax)), format(Math.floor(mid))]);\n }\n dataArr.push([_htmlColorBlock(rPalette(weightMax, weightMin, weightMax)), format(weightMax)]);\n break;\n }\n }\n this.columns(colArr);\n this.data(dataArr);\n super.update(domNode, element);\n\n element.classed(\"horiz-legend\", this.orientation() === \"horizontal\");\n\n const table = element.select(\".tableDiv > table\");\n const tableRect = table.node().getBoundingClientRect();\n const elementRect = this._placeholderElement.node().getBoundingClientRect();\n\n element.select(\".tableDiv\").style(\"overflow\", \"visible\");\n\n const top = elementRect.height / 2 - tableRect.height / 2;\n const left = elementRect.width / 2 - tableRect.width / 2;\n table\n .style(\"position\", \"absolute\")\n .style(\"top\", top + \"px\")\n .style(\"left\", left + \"px\")\n ;\n\n const startIndex = this.pageNumber() - 1;\n const itemsOnPage = this.itemsPerPage();\n\n const start = startIndex * itemsOnPage;\n const end = startIndex * parseInt(itemsOnPage) + parseInt(itemsOnPage);\n\n let tData = null;\n if (this.pagination()) {\n tData = this.data().slice(start, end);\n } else {\n tData = this.data();\n }\n\n const rows = this.tbody.selectAll(\"tr\").data(tData);\n const context = this;\n rows\n .on(\"click\", function (d, i) {\n context.onClick(d, i);\n })\n .on(\"dblclick\", function (d, i) {\n context.onDblClick(d, i);\n })\n .on(\"mouseover\", function (d, i) {\n context.onMouseOver(d, i);\n })\n ;\n }\n\n exit(domNode, element) {\n if (this._targetWidgetMonitor) {\n this._targetWidgetMonitor.remove();\n delete this._targetWidgetMonitor;\n }\n super.exit(domNode, element);\n }\n\n onClick(rowData, rowIdx) {\n }\n\n onDblClick(rowData, rowIdx) {\n }\n\n onMouseOver(rowData, rowIdx) {\n }\n\n dataFamily: { (): string; (_: string): Legend };\n dataFamily_exists: () => boolean;\n orientation: { (): string; (_: string): Legend };\n orientation_exists: () => boolean;\n rainbowFormat: { (): string; (_: string): Legend };\n rainbowFormat_exists: () => boolean;\n rainbowBins: { (): number; (_: number): Legend };\n rainbowBins_exists: () => boolean;\n}\nLegend.prototype._class += \" other_Legend\";\n\nLegend.prototype.publish(\"dataFamily\", \"ND\", \"set\", \"Type of data\", [\"1D\", \"2D\", \"ND\", \"map\", \"any\", \"other\"], { tags: [\"Private\"] });\nLegend.prototype.publish(\"orientation\", \"vertical\", \"set\", \"Orientation of Legend rows\", [\"vertical\", \"horizontal\"], { tags: [\"Private\"] });\nLegend.prototype.publish(\"rainbowFormat\", \",\", \"string\", \"Rainbow number formatting\", null, { tags: [\"Private\"], optional: true, disable: w => !w.isRainbow() });\nLegend.prototype.publish(\"rainbowBins\", 8, \"number\", \"Number of rainbow bins\", null, { tags: [\"Private\"], disable: w => !w.isRainbow() });\n\nconst origGetBBox = Table.prototype.getBBox;\nLegend.prototype.getBBox = function (refresh, round) {\n const retVal = origGetBBox.apply(this, arguments);\n const table = this.element().select(\".tableDiv > table\");\n if (!table.empty()) {\n const tableRect = table.node().getBoundingClientRect();\n const width = tableRect.width + 8 + (this.hasVScroll(this._placeholderElement) ? Platform.getScrollbarWidth() : 0);\n const height = tableRect.height + 8 + (this.hasHScroll(this._placeholderElement) ? Platform.getScrollbarWidth() : 0);\n return {\n x: retVal.x,\n y: retVal.y,\n width: (round ? Math.round(width) : width) * this._scale,\n height: (round ? Math.round(height) : height) * this._scale\n };\n }\n return retVal;\n};\n","import { SVGWidget } from \"@hpcc-js/common\";\n\nimport \"../src/MorphText.css\";\n\nexport class MorphText extends SVGWidget {\n _fontWidth;\n _textElement;\n\n constructor() {\n super();\n }\n\n enter(domNode, element) {\n if (!this.fontSize()) {\n const style = window.getComputedStyle(domNode, null);\n this.fontSize(parseInt(style.fontSize));\n }\n this._fontWidth = this.fontSize() * 32 / 48;\n this._textElement = element.append(\"g\")\n ;\n }\n\n dateTime() {\n const d = new Date();\n const seconds = d.getSeconds().toString().length === 1 ? \"0\" + d.getSeconds() : d.getSeconds();\n const minutes = d.getMinutes().toString().length === 1 ? \"0\" + d.getMinutes() : d.getMinutes();\n const hours = d.getHours().toString().length === 1 ? \"0\" + d.getHours() : d.getHours();\n const ampm = d.getHours() >= 12 ? \"pm\" : \"am\";\n const months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n const days = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n return days[d.getDay()] + \" \" + months[d.getMonth()] + \" \" + d.getDate() + \" \" + d.getFullYear() + \" \" + hours + \":\" + minutes + \":\" + seconds + ampm;\n }\n\n update(domNode, element) {\n const context = this;\n const text = this._textElement.selectAll(\"text\")\n .data(this.data(), function (d) { return d.id; })\n ;\n text\n .attr(\"class\", \"update\")\n ;\n this.transition.apply(text)\n .attr(\"x\", function (d, i) { return (-context.data().length / 2 + i) * context._fontWidth + context._fontWidth / 2; })\n ;\n\n const newText = text.enter().append(\"text\")\n .attr(\"class\", \"enter\")\n .attr(\"font-size\", this.fontSize())\n .attr(\"dy\", \".35em\")\n .attr(\"y\", (this.reverse() ? +1 : -1) * this._fontWidth * 2)\n .attr(\"x\", function (d, i) { return (-context.data().length / 2 + i) * context._fontWidth + context._fontWidth / 2; })\n .style(\"fill-opacity\", 1e-6)\n .style(\"text-anchor\", this.anchor())\n .text(function (d) { return d.text; })\n ;\n this.transition.apply(newText)\n .attr(\"y\", 0)\n .style(\"fill-opacity\", 1)\n ;\n\n text.exit()\n .attr(\"class\", \"exit\")\n ;\n this.transition.apply(text.exit())\n .attr(\"y\", (this.reverse() ? -1 : +1) * this._fontWidth * 2)\n .style(\"fill-opacity\", 1e-6)\n .remove()\n ;\n }\n anchor: { (): string; (_: string): MorphText };\n anchor_exists: () => boolean;\n fontSize: { (): number; (_: number): MorphText };\n fontSize_exists: () => boolean;\n reverse: { (): boolean; (_: boolean): MorphText };\n reverse_exists: () => boolean;\n text: (_?: string) => MorphText | this;\n text_exists: () => boolean;\n}\nMorphText.prototype._class += \" other_MorphText\";\n\nMorphText.prototype.publish(\"anchor\", \"middle\", \"set\", \"Sets anchor point\", [\"middle\"], { tags: [\"Basic\"] });\nMorphText.prototype.publish(\"fontSize\", 14, \"number\", \"Sets fontsize\", null, { tags: [\"Basic\"] });\nMorphText.prototype.publish(\"reverse\", false, \"boolean\", \"Reverse Animation\", null, { tags: [\"Basic\"] });\nMorphText.prototype.publish(\"text\", \"\", \"string\", \"Sets text/data of widget\", null, { tags: [\"Basic\"] });\n\nconst _origText = MorphText.prototype.text;\nMorphText.prototype.text = function (_) {\n const retVal = _origText.apply(this, arguments);\n if (arguments.length) {\n const usedChars = {};\n const chars = _.split(\"\");\n this.data(chars.map(function (d) {\n const id = \"_\" + d;\n if (usedChars[id] === undefined) {\n usedChars[id] = 0;\n }\n usedChars[id]++;\n return { text: d, id: d.charCodeAt(0) + (1024 * usedChars[id]) };\n }));\n }\n return retVal;\n};\n","import { Table } from \"./Table\";\n\nexport class NestedTable extends Table {\n constructor() {\n super();\n this.minWidgetHeight(240);\n this.minWidgetWidth(360);\n }\n}\nNestedTable.prototype._class += \" other_NestedTable\";\n\nconst origColumns = NestedTable.prototype.columns;\nNestedTable.prototype.columns = function (_?) {\n if (arguments.length) {\n this._columns = _;\n return origColumns.call(this, _.map(function (col) {\n if (typeof col === \"object\") {\n return col.label;\n }\n return col;\n }));\n }\n return origColumns.apply(this, arguments);\n};\n\nconst origData = NestedTable.prototype.data;\nNestedTable.prototype.data = function (_?: any): NestedTable | any {\n if (arguments.length) {\n const context = this;\n return origData.call(this, _.map(function (row) {\n return row.map(function (cell, idx) {\n if (cell instanceof Array) {\n let columns = [];\n if (typeof context._columns[idx] === \"object\" && context._columns[idx].columns) {\n columns = context._columns[idx].columns;\n } else {\n for (let i = 0; i < cell.length; ++i) {\n columns.push(context._columns[idx] + \".\" + i);\n }\n }\n return new Table()\n .columns(columns)\n .data(cell)\n ;\n }\n return cell;\n });\n }));\n }\n return origData.apply(this, arguments);\n};\n","import { d3Event, PropertyExt, select as d3Select, selectAll as d3SelectAll, SVGWidget } from \"@hpcc-js/common\";\n\nimport \"../src/Opportunity.css\";\n\nexport class Column extends PropertyExt {\n _owner: Opportunity;\n\n constructor() {\n super();\n }\n\n owner(): Opportunity;\n owner(_: Opportunity): this;\n owner(_?: Opportunity): Opportunity | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.headerLabel();\n }\n}\nColumn.prototype._class += \" other_Opportunity.Column\";\n\nexport interface Column {\n headerLabel(): string;\n headerLabel(_: string): this;\n}\nColumn.prototype.publish(\"headerLabel\", null, \"string\", \"Header value of a table\", function (this: Column) { return this._owner ? this._owner.columns() : []; }, { tags: [\"Basic\"], optional: true });\n\nexport class MouseHoverColumn extends PropertyExt {\n _owner: Opportunity;\n\n constructor() {\n super();\n }\n\n owner(): Opportunity;\n owner(_: Opportunity): this;\n owner(_?: Opportunity): Opportunity | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.hoverValue() && !!this.hoverList();\n }\n}\nMouseHoverColumn.prototype._class += \" other_Opportunity.MouseHoverColumn\";\n\nexport interface MouseHoverColumn {\n hoverValue(): string;\n hoverValue(_: string): this;\n hoverList(): string;\n hoverList(_: string): this;\n}\nMouseHoverColumn.prototype.publish(\"hoverValue\", null, \"string\", \"Hover value of a table\", function () { return this._owner ? this._owner.columns() : []; }, { tags: [\"Basic\"], optional: true });\nMouseHoverColumn.prototype.publish(\"hoverList\", null, \"set\", \"Hover value of a table\", function () { return this._owner ? this._owner.getIds() : []; }, { tags: [\"Basic\"], optional: true });\n\nexport class ColumnDropdown extends PropertyExt {\n _owner: Opportunity;\n\n constructor() {\n super();\n }\n\n owner(): Opportunity;\n owner(_: Opportunity): this;\n owner(_?: Opportunity): Opportunity | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.columnIndex() && !!this.ColumnDropdownList();\n }\n}\nColumnDropdown.prototype._class += \" other_Opportunity.ColumnDropdown\";\n\nexport interface ColumnDropdown {\n columnIndex(): number;\n columnIndex(_: number): this;\n ColumnDropdownList(): string;\n ColumnDropdownList(_: string): this;\n}\nColumnDropdown.prototype.publish(\"columnIndex\", null, \"number\", \"Column index for display context data based on column dropdown list selction\", {}, { tags: [\"Basic\", \"Shared\"] });\nColumnDropdown.prototype.publish(\"ColumnDropdownList\", null, \"set\", \"column value of a table\", function () { return this._owner ? this._owner.getIds() : []; }, { tags: [\"Basic\"], optional: true });\n\nexport class Opportunity extends SVGWidget {\n groupCount;\n svg;\n tooltipdiv;\n Column;\n MouseHoverColumn;\n ColumnDropdown;\n\n constructor() {\n super();\n this._drawStartPos = \"origin\";\n this.groupCount = 7;\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n const paddingTop = 30;\n const nodeRectHeight = 14;\n const verticalPadding = 10;\n const h = (this.data().length + 1) * (nodeRectHeight + verticalPadding + 1) + paddingTop;\n this.svg = element.append(\"g\")\n .attr(\"width\", ((this.groupCount * 100) + 1))\n .attr(\"height\", h);\n this.svg.append(\"defs\").append(\"marker\")\n .classed(\"arrowhead\", true)\n .attr(\"id\", \"end-arrow\")\n .attr(\"viewBox\", \"0 -5 10 10\")\n .attr(\"refX\", 6)\n .attr(\"markerWidth\", 8)\n .attr(\"markerHeight\", 8)\n .attr(\"orient\", \"auto\")\n .append(\"svg:path\")\n .attr(\"d\", \"M0,-5L10,0L0,5\")\n .attr(\"fill\", \"rgb(100,100,100)\");\n this.tooltipdiv = d3Select(\"body\").append(\"div\")\n .attr(\"class\", \"other_Opportunity-tooltip tooltip\")\n .style(\"opacity\", 0);\n }\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n const data = this.data();\n const dropDownOption = this.opportunityId();\n data.sort(function (a, b) {\n if (a.cur_group > b.cur_group) return 1;\n else if (a.cur_group < b.cur_group) return -1;\n else return 0;\n });\n const groups = [];\n for (let i = 1; i <= context.groupCount; i++) {\n groups.push(i);\n }\n const paddingTop = 30;\n const nodeRectHeight = 14;\n const verticalPadding = 10;\n const h = (data.length + 1) * (nodeRectHeight + verticalPadding + 1) + paddingTop;\n const w = this.width();\n const nodeRectWidthPadding = 30;\n const nodeRectWidth = ((w / context.groupCount) - nodeRectWidthPadding);\n // Groups ---\n const group = this.svg.selectAll(\".group\").data(groups);\n group.enter().append(\"rect\")\n .attr(\"class\", \"group\");\n group\n .attr(\"x\", function (d, i) {\n return (i * w / context.groupCount) + 1;\n })\n .attr(\"y\", paddingTop)\n .attr(\"width\", w / this.groupCount)\n .attr(\"height\", h - paddingTop);\n group.exit().remove();\n // Group Headings ---\n const groupHeadings = this.svg.selectAll(\".group_headings\").data(groups);\n groupHeadings.enter().append(\"text\")\n .attr(\"class\", \"group_headings\")\n .attr(\"y\", 20);\n groupHeadings\n .attr(\"x\", function (d, i) {\n return (i * w / context.groupCount) + ((w / context.groupCount) / context.groupCount);\n })\n .text(function (d, i) {\n if (context.headerLabels().length > 0) {\n if (context.headerLabels()[i] && (context.headerLabels()[i]).headerLabel()) {\n return (context.headerLabels()[i]).headerLabel();\n }\n }\n return \"\";\n });\n groupHeadings.exit().remove();\n if (this.previousGroup() === \"prev_group\" && this.currentGroup() === \"cur_group\") {\n // Node Date Change ---\n const node_date_change = this.svg.selectAll(\".node_date_change\").data(data);\n node_date_change.enter().append(\"g\")\n .attr(\"class\", \"node_date_change update\")\n .on(\"mouseover\", function (d) {\n context.tooltipdiv.transition()\n .duration(200)\n .style(\"opacity\", 0.9);\n let htmlInput = \"<span style='font-weight:bolder'>\" + \"Close Date Change \" + \"</span>\" + \"<br/>\";\n const mouseHoverMapping = context.mouseHover();\n mouseHoverMapping.forEach(function (obj, index) {\n if (obj.hoverValue() !== undefined) {\n htmlInput = htmlInput + \"<span style='font-weight:bold'>\" + obj.hoverValue() + \": \" + \"</span>\" + d[obj.hoverList()] + \"<br/>\";\n }\n });\n let prevDate = d.prevdate + \"\";\n prevDate = prevDate.replace(/(\\d\\d\\d\\d)(\\d\\d)(\\d\\d)/g, \"$3-$2-$1\");\n let fromDate = d.curdate + \"\";\n fromDate = fromDate.replace(/(\\d\\d\\d\\d)(\\d\\d)(\\d\\d)/g, \"$3-$2-$1\");\n htmlInput = htmlInput + \"<span style='font-weight:bold'>\" + \"From: \" + \"</span>\" + prevDate + \"<br/>\" + \"<span style='font-weight:bold'>\" + \"To: \" + \"</span>\" + fromDate + \"<br/>\";\n const event = d3Event();\n context.tooltipdiv.html(htmlInput)\n .style(\"left\", (event.pageX) + \"px\")\n .style(\"top\", (event.pageY - 50) + \"px\");\n })\n .on(\"mouseout\", function (d) {\n context.tooltipdiv.transition()\n .duration(500)\n .style(\"opacity\", 0);\n })\n .each(function (d) {\n const element2 = d3Select(this);\n element2.append(\"rect\")\n .attr(\"class\", \"node_date_change_rect\")\n .attr(\"width\", 5)\n .attr(\"height\", nodeRectHeight)\n .attr(\"rx\", 6)\n .attr(\"ry\", 6);\n });\n node_date_change\n .attr(\"transform\", function (d, i) {\n return \"translate(\" + ((9 * w / context.groupCount) + (nodeRectWidthPadding) - 80) + \",\" + ((i + (i * (nodeRectHeight + verticalPadding))) + 12 + paddingTop) + \")\";\n });\n node_date_change.exit().remove();\n // Node Prev Group ---\n const node_prev_group = this.svg.selectAll(\".node_prev_group\").data(data);\n node_prev_group.enter().append(\"g\")\n .attr(\"class\", \"node_prev_group\")\n .on(\"mouseover\", function (d, i) {\n context.tooltipdiv.transition()\n .duration(200)\n .style(\"opacity\", 0.9);\n let tooltipHtml = \"\";\n const mouseHoverMapping = context.mouseHover();\n mouseHoverMapping.forEach(function (obj, index) {\n if (obj.hoverValue() !== undefined) {\n tooltipHtml = tooltipHtml + \"<span style='font-weight:bold'>\" + obj.hoverValue() + \": \" + \"</span>\" + d[obj.hoverList()] + \"<br/>\";\n }\n });\n const event = d3Event();\n context.tooltipdiv.html(tooltipHtml)\n .style(\"left\", (event.pageX) + \"px\")\n .style(\"top\", (event.pageY - 100) + \"px\");\n })\n .on(\"mouseout\", function (d) {\n context.tooltipdiv.transition()\n .duration(500)\n .style(\"opacity\", 0);\n })\n .each(function (d) {\n const element2 = d3Select(this);\n element2.append(\"rect\")\n .attr(\"class\", \"node_prev_rect\")\n .attr(\"rx\", 6)\n .attr(\"ry\", 6);\n element2.append(\"text\")\n .attr(\"class\", \"node_prev_text\");\n });\n node_prev_group\n .classed(\"update\", true)\n .classed(\"changed\", function (d) {\n return d.delta !== 0;\n })\n .attr(\"transform\", function (d, i) {\n return \"translate(\" + ((((d.prev_group - 1)) * w / context.groupCount) + (nodeRectWidthPadding / 2)) + \",\" + ((i + (i * (nodeRectHeight + verticalPadding))) + 10 + paddingTop) + \")\";\n })\n .each(function (d) {\n const element2 = d3Select(this);\n // Change Lines ---\n const changeLines = element2.selectAll(\".arrow\").data(d.delta !== 0 ? [d] : []);\n changeLines.enter().append(\"line\")\n .attr(\"class\", \"arrow update\");\n changeLines\n .attr(\"x1\", function (d2) {\n return (d2.delta > 0) ? nodeRectWidth : 0;\n })\n .attr(\"y1\", nodeRectHeight / 2)\n .attr(\"x2\", function (d2) {\n return (d2.delta > 0) ? (nodeRectWidth + nodeRectWidthPadding - 4) + ((Math.abs(d2.delta) - 1)) * (w / context.groupCount) : ((-nodeRectWidthPadding - ((Math.abs(d2.delta) - 1)) * (w / context.groupCount)) + 4);\n })\n .attr(\"y2\", nodeRectHeight / 2)\n .style(\"stroke-dasharray\", (\"3, 3\"))\n .style(\"stroke\", \"rgb(100,100,100)\")\n .style(\"marker-end\", \"url(#end-arrow)\")\n .style(\"opacity\", \"1\");\n changeLines.exit().remove();\n });\n const node_previous_rect = node_prev_group.select(\".node_prev_rect\");\n node_previous_rect\n .attr(\"width\", nodeRectWidth)\n .attr(\"height\", nodeRectHeight);\n const node_previous_text = node_prev_group.select(\".node_prev_text\");\n node_previous_text\n .attr(\"dy\", (nodeRectHeight / 2) + 3)\n .attr(\"dx\", (nodeRectWidth / 4))\n .text(function (d) {\n if (typeof d[dropDownOption] === \"number\")\n return d[dropDownOption];\n else\n return d[dropDownOption].substring(0, 14);\n });\n node_prev_group.exit().remove();\n // Node Cur Group ---\n const node_cur_group = this.svg.selectAll(\".node_cur_group\").data(data);\n node_cur_group.enter().append(\"g\")\n .attr(\"class\", \"node_cur_group\")\n .attr(\"transform\", function (d, i) {\n return \"translate(\" + ((((d.prev_group - 1)) * w / context.groupCount) + (nodeRectWidthPadding / 2)) + \",\" + ((i + (i * (nodeRectHeight + verticalPadding))) + 10 + paddingTop) + \")\";\n })\n .on(\"mouseover\", function (d, i) {\n context.tooltipdiv.transition()\n .duration(200)\n .style(\"opacity\", 0.9);\n let tooltipHtml = \"\";\n const mouseHoverMapping = context.mouseHover();\n mouseHoverMapping.forEach(function (obj, index) {\n if (obj.hoverValue() !== undefined) {\n tooltipHtml = tooltipHtml + \"<span style='font-weight:bold'>\" + obj.hoverValue() + \": \" + \"</span>\" + d[obj.hoverList()] + \"<br/>\";\n }\n });\n const event = d3Event();\n context.tooltipdiv.html(tooltipHtml)\n .style(\"left\", (event.pageX) + \"px\")\n .style(\"top\", (event.pageY - 100) + \"px\");\n })\n .on(\"mouseout\", function (d) {\n context.tooltipdiv.transition()\n .duration(500)\n .style(\"opacity\", 0);\n })\n .each(function (d) {\n const element2 = d3Select(this);\n element2.append(\"rect\")\n .attr(\"class\", \"node_cur_rect\")\n .attr(\"fill\", function (d2: any) {\n let color;\n if (d2.delta < 0 || d2.cur_group === 7) {\n color = \"#F78181\";\n } else {\n color = \"#A9F5A9\";\n }\n return color;\n })\n .attr(\"rx\", 6)\n .attr(\"ry\", 6);\n element2.append(\"a\")\n .append(\"text\")\n .attr(\"class\", \"node_cur_text\");\n });\n node_cur_group\n .classed(\"update\", true)\n .classed(\"changed\", function (d) {\n return d.delta !== 0;\n })\n .transition().duration(800)\n .ease(\"linear\")\n .attr(\"transform\", function (d, i) {\n return \"translate(\" + ((((d.cur_group) - 1) * w / context.groupCount) + (nodeRectWidthPadding / 2)) + \",\" + ((i + (i * (nodeRectHeight + verticalPadding))) + 10 + paddingTop) + \")\";\n })\n .each(\"end\", function () {\n d3SelectAll(\".arrow\").style(\"opacity\", \"1\");\n });\n const node_current_anchor = node_cur_group.select(\".node_cur_group a\");\n node_current_anchor.classed(\"update\", true)\n .attr(\"xlink:href\", function (d) {\n return context.url() + d.id;\n })\n .attr(\"xlink:show\", \"new\");\n const node_current_rect = node_cur_group.select(\".node_cur_rect\");\n node_current_rect\n .attr(\"width\", nodeRectWidth)\n .attr(\"height\", nodeRectHeight);\n const node_current_text = node_cur_group.select(\".node_cur_text\");\n node_current_text\n .classed(\"update\", true)\n .attr(\"dy\", (nodeRectHeight / 2) + 3)\n .attr(\"dx\", (nodeRectWidth / 4))\n .style(\"fill\", \"blue\")\n .text(function (d) {\n if (typeof d[dropDownOption] === \"number\")\n return d[dropDownOption];\n else\n return d[dropDownOption].substring(0, 14);\n });\n node_cur_group.exit().remove();\n }\n for (let colIndex = 0; colIndex < context.columnData().length; colIndex++) {\n if ((context.columnData()[colIndex]) && (context.columnData()[colIndex]).ColumnDropdownList()) {\n const columnData = this.svg.selectAll(\".columnDataText_\" + colIndex).data(data);\n columnData.enter().append(\"g\")\n .attr(\"class\", \"columnDataText_\" + colIndex + \" update\")\n .each(function (d) {\n const element2 = d3Select(this);\n element2.append(\"text\");\n });\n columnData\n .attr(\"transform\", function (d, i) {\n return \"translate(\" + (((context.columnData()[colIndex]).columnIndex() * w / context.groupCount) + (nodeRectWidthPadding / 2)) + \",\" + ((i + (i * (nodeRectHeight + verticalPadding))) + 12 + paddingTop) + \")\";\n })\n .attr(\"width\", 5)\n .attr(\"height\", nodeRectHeight)\n .attr(\"rx\", 6)\n .attr(\"ry\", 6);\n const textLable = columnData.select(\"text\");\n textLable\n .attr(\"y\", -6)\n .attr(\"dy\", (nodeRectHeight) + 14)\n .attr(\"dx\", 0)\n .attr(\"height\", 20)\n .attr(\"width\", 29)\n .text(function (d, i) {\n return d[(context.columnData()[colIndex]).ColumnDropdownList()];\n });\n columnData.exit().remove();\n }\n }\n }\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n\n getIds() {\n const dropdownList = this.columns();\n dropdownList.unshift(\"default\");\n return dropdownList;\n }\n previousGroup: { (): string; (_: string): Opportunity };\n previousGroup_exists: () => boolean;\n currentGroup: { (): string; (_: string): Opportunity };\n currentGroup_exists: () => boolean;\n opportunityId: { (): string; (_: string): Opportunity };\n opportunityId_exists: () => boolean;\n url: { (): string; (_: string): Opportunity };\n url_exists: () => boolean;\n // width: { (): number; (_: number): Opportunity };\n width_exists: () => boolean;\n addColumn: { (): string; (_: string): Opportunity };\n addColumn_exists: () => boolean;\n removeColumn: { (): string; (_: string): Opportunity };\n removeColumn_exists: () => boolean;\n headerLabels: { (): any[]; (_: any[]): Opportunity };\n headerLabels_exists: () => boolean;\n mouseHover: { (): any[]; (_: any[]): Opportunity };\n mouseHover_exists: () => boolean;\n columnData: { (): any[]; (_: any[]): Opportunity };\n columnData_exists: () => boolean;\n}\nOpportunity.prototype._class += \" other_Opportunity\";\nOpportunity.prototype.Column = Column;\nOpportunity.prototype.MouseHoverColumn = MouseHoverColumn;\nOpportunity.prototype.ColumnDropdown = ColumnDropdown;\n\nOpportunity.prototype.publish(\"previousGroup\", \"\", \"set\", \"label in Opportunity\", function () { return this.getIds(); }, { tags: [\"Basic\", \"Shared\"] });\nOpportunity.prototype.publish(\"currentGroup\", \"\", \"set\", \"label in Opportunity\", function () { return this.getIds(); }, { tags: [\"Basic\", \"Shared\"] });\nOpportunity.prototype.publish(\"opportunityId\", \"id\", \"set\", \"Id for label in Opportunity\", function () { return this.getIds(); }, { tags: [\"Basic\", \"Shared\"] });\nOpportunity.prototype.publish(\"url\", null, \"string\", \"URL in Opportunity\", {}, { tags: [\"Basic\", \"Shared\"] });\nOpportunity.prototype.publish(\"width\", 1100, \"number\", \"label in Opportunity\", {}, { tags: [\"Basic\", \"Shared\"] });\nOpportunity.prototype.publish(\"addColumn\", null, \"string\", \"number of columns in a table\", {}, {\n tags: [\"Basic\", \"Shared\"],\n editor_input: (context, widget, cell, param) => {\n cell.append(\"button\")\n .attr(\"id\", context.id() + \"_addColumn\" + param.id)\n .classed(\"property-input custom-editor-input addColumn update\", true)\n .text(\"AddColumn\")\n .on(\"click\", function () {\n widget.groupCount = widget.groupCount + 1;\n const new_value_after_click = \"Added a new column\";\n context.setProperty(widget, param.id, new_value_after_click);\n });\n }\n});\nOpportunity.prototype.publish(\"removeColumn\", null, \"string\", \"number of columns in a table\", function () { return this.columns(); }, {\n tags: [\"Basic\", \"Shared\"],\n editor_input: (context, widget, cell, param) => {\n cell.append(\"button\")\n .attr(\"id\", context.id() + \"_removeColumn\" + param.id)\n .classed(\"property-input custom-editor-input removeColumn update\", true)\n .text(\"RemoveColumn\")\n .on(\"click\", function () {\n widget.groupCount = widget.groupCount - 1;\n const new_value_after_click = \"Removed a column\";\n context.setProperty(widget, param.id, new_value_after_click);\n });\n }\n});\nOpportunity.prototype.publish(\"headerLabels\", [], \"propertyArray\", \"Source Columns\", null, { autoExpand: Column });\nOpportunity.prototype.publish(\"mouseHover\", [], \"propertyArray\", \"mouse hover options\", null, { autoExpand: MouseHoverColumn });\nOpportunity.prototype.publish(\"columnData\", [], \"propertyArray\", \"column data\", null, { autoExpand: ColumnDropdown });\n","export function discover(widget) {\n return widget.publishedProperties(false, true);\n}\n\nexport function widgetArrayWalker(widgets, visitor) {\n if (!widgets)\n return;\n widgets.forEach(function (widget) {\n widget.widgetWalker(visitor);\n });\n}\n\nexport function widgetPropertyWalker(widget2, visitor, filter?) {\n widget2.widgetWalker(function (widget) {\n widget.propertyWalker(visitor, filter);\n });\n}\n\nexport function serializeTheme(widget, filter) {\n return JSON.stringify(serializeThemeToObject(widget, filter));\n}\n\nexport function serializeThemeToObject(widget2, filter?) {\n filter = filter || [\"surface\", \"Color\", \"Font\", \"palette\"];\n\n const propObj = {};\n widgetPropertyWalker(widget2, null, function (widget, item) {\n if (widget[item.id + \"_modified\"]() || widget.publishedProperty(item.id).origDefaultValue !== widget.publishedProperty(item.id).defaultValue) {\n if (_isFilterMatch(item.id, filter)) {\n const classParts = widget._class.trim().split(\" \");\n for (const i in classParts) {\n if (classParts.HasOwnProperty(i)) {\n if (propObj[classParts[i]] === undefined) {\n propObj[classParts[i]] = {};\n }\n if (propObj[classParts[i]][item.id] === undefined) {\n propObj[classParts[i]][item.id] = widget[item.id]();\n break;\n } else if (propObj[classParts[i]][item.id] === widget[item.id]()) {\n break;\n }\n }\n }\n }\n }\n });\n\n function _isFilterMatch(str, arr) {\n let ret = false;\n for (const i in arr) {\n if (str.indexOf(arr[i]) !== -1) {\n ret = true;\n break;\n }\n }\n return ret;\n }\n return propObj;\n}\nexport function removeTheme(widget2, callback) {\n widgetPropertyWalker(widget2, null, function (widget, item) {\n widget.publishedProperty(item.id).defaultValue = widget.publishedProperty(item.id).origDefaultValue;\n });\n\n if (typeof (callback) === \"function\") {\n callback.call(this);\n }\n}\nexport function applyTheme(widget2, themeObj, callback) {\n const context = this;\n widgetPropertyWalker(widget2, null, function (widget3, item) {\n switch (item.type) {\n case \"widget\":\n context.applyTheme(widget3[item.id](), themeObj);\n return true;\n case \"widgetArray\":\n const widgetArray = widget3[item.id]();\n widgetArray.forEach(function (widget) {\n context.applyTheme(widget, themeObj);\n }, this);\n return true;\n default:\n widget3.applyTheme(themeObj);\n break;\n }\n });\n if (typeof (callback) === \"function\") {\n callback.call(this);\n }\n}\n\nexport function serializeToObject(widget, filter?, includeData?, includeState?) {\n const retVal: any = {\n __class: widget.classID()\n };\n if (widget._id.indexOf(widget._idSeed) !== 0) {\n retVal.__id = widget._id;\n }\n if (widget.version) {\n retVal.__version = widget.version();\n }\n retVal.__properties = {};\n\n widget.propertyWalker((childWwidget2, item) => {\n if (childWwidget2[item.id + \"_modified\"]()) {\n switch (item.type) {\n case \"widget\":\n retVal.__properties[item.id] = serializeToObject(childWwidget2[item.id](), null, includeData, includeState && !widget.serializeState); // Only include state once\n return true;\n case \"widgetArray\":\n case \"propertyArray\":\n retVal.__properties[item.id] = [];\n const widgetArray = childWwidget2[item.id]();\n widgetArray.forEach((childWwidget) => {\n retVal.__properties[item.id].push(serializeToObject(childWwidget, null, includeData, includeState && !widget.serializeState)); // Only include state once\n });\n return true;\n default:\n retVal.__properties[item.id] = childWwidget2[item.id]();\n break;\n }\n }\n }, filter);\n\n if (widget.classID() === \"marshaller_Graph\") {\n const vertices = widget.data().vertices;\n if (vertices) {\n this.__vertices = vertices.map(item => {\n return serializeToObject(item, null, includeData, includeState && !widget.serializeState);\n });\n }\n }\n if (includeData && widget.data) {\n if (!retVal.__data) retVal.__data = {};\n retVal.__data.data = widget.data();\n }\n if (includeState) {\n if (widget.serializeState) {\n retVal.__state = widget.serializeState();\n } else if (widget.data) {\n retVal.__state = {\n data: widget.data()\n };\n }\n }\n return retVal;\n}\n\nexport function serialize(widget, filter?, includeData?, includeState?) {\n return JSON.stringify(serializeToObject(widget, filter, includeData, includeState));\n}\n","import { HTMLWidget, Platform, PropertyExt, Widget } from \"@hpcc-js/common\";\nimport { Grid } from \"@hpcc-js/layout\";\nimport { local as d3Local, select as d3Select, selectAll as d3SelectAll } from \"d3-selection\";\nimport * as Persist from \"./Persist\";\n\nimport \"../src/PropertyEditor.css\";\n\nfunction hasProperties(type) {\n switch (type) {\n case \"widget\":\n case \"widgetArray\":\n case \"propertyArray\":\n return true;\n default:\n }\n return false;\n}\n\nexport class PropertyEditor extends HTMLWidget {\n _widgetOrig;\n _parentPropertyEditor;\n _show_settings: boolean;\n _selectedItems;\n __meta_sorting;\n _watch;\n private _childPE = d3Local<PropertyEditor>();\n\n constructor() {\n super();\n this._parentPropertyEditor = null;\n\n this._tag = \"div\";\n this._show_settings = false;\n }\n\n parentPropertyEditor(_?: PropertyEditor): PropertyEditor {\n if (!arguments.length) return this._parentPropertyEditor;\n this._parentPropertyEditor = _;\n return this;\n }\n\n depth(): number {\n let retVal = 0;\n let parent = this.parentPropertyEditor();\n while (parent) {\n ++retVal;\n parent = parent.parentPropertyEditor();\n }\n return retVal;\n }\n\n _show_header = true;\n show_header(): boolean;\n show_header(_: boolean): PropertyEditor;\n show_header(_?: boolean): boolean | PropertyEditor {\n if (!arguments.length) {\n return this._show_header;\n }\n this._show_header = _;\n return this;\n }\n\n show_settings(): boolean;\n show_settings(_: boolean): PropertyEditor;\n show_settings(_?: boolean): boolean | PropertyEditor {\n if (!arguments.length) {\n return this._show_settings;\n }\n this._show_settings = _;\n return this;\n }\n\n rootWidgets() {\n if (this._selectedItems && this._selectedItems.length) {\n return this._selectedItems;\n }\n return this.show_settings() ? [this] : this.widget() ? [this.widget()] : [];\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n const context = this;\n\n const rootWidgets = this.rootWidgets().filter(function (w) {\n if (w._owningWidget && w._owningWidget.excludeObjs instanceof Array) {\n if (w._owningWidget.excludeObjs.indexOf(w.classID()) !== -1) {\n return false;\n }\n }\n return true;\n });\n\n const table = element.selectAll(`table.property-table.table-${this.depth()}`).data(rootWidgets, function (d) {\n // We reuse the existing DOM Nodes and this node _might_ have been a regular Input previously ---\n if (typeof d.id !== \"function\") {\n return `meta-${d.id}`;\n }\n return d.id();\n });\n table.enter().append(\"table\")\n .attr(\"class\", `property-table table-${this.depth()}`)\n .each(function () {\n const tableElement = d3Select(this);\n\n // Header ---\n if (context._show_header && context.parentPropertyEditor() === null) {\n tableElement.append(\"thead\").append(\"tr\").append(\"th\")// .datum(tableElement)\n .attr(\"colspan\", \"2\")\n .each(function () {\n context.enterHeader(d3Select(this));\n })\n ;\n }\n\n // Body ---\n tableElement.append(\"tbody\");\n })\n .merge(table)\n .each(function (tableData) {\n const tableElement = d3Select(this);\n\n // Header ---\n if (context._show_header && context.parentPropertyEditor() === null) {\n context.updateHeader(tableElement.select(\"thead > tr > th\"));\n }\n\n // Body ---\n context.renderInputs(tableElement.select(\"tbody\"), tableData);\n })\n ;\n table.exit()\n .each(function () {\n context.renderInputs(element.select(\"tbody\"), null);\n })\n .remove()\n ;\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n this.watchWidget(null);\n }\n\n private watchDepth = 0;\n watchWidget(widget) {\n if (this._watch) {\n if ((window as any).__hpcc_debug) {\n --this.watchDepth;\n console.info(\"watchDepth: \" + this.watchDepth);\n }\n this._watch.remove();\n delete this._watch;\n }\n if (widget) {\n const context = this;\n this._watch = widget.monitor(function (_paramId, newVal, oldVal) {\n if (oldVal !== newVal) {\n const propEditor = context.parentPropertyEditor() || context;\n propEditor.lazyRender();\n }\n });\n if ((window as any).__hpcc_debug) {\n ++this.watchDepth;\n console.info(\"watchDepth: \" + this.watchDepth);\n }\n }\n }\n\n enterHeader(th) {\n const context = this;\n\n th.append(\"span\");\n th.append(\"i\")\n .attr(\"class\", \"expandIcon fa\")\n .on(\"click\", function () {\n switch (context.peInputIcon()) {\n case \"fa-caret-up\":\n case \"fa-caret-right\":\n context.element().selectAll(`.table-${context.depth()} > tbody > tr > .headerRow > .peInput > .property-table-collapsed`)\n .classed(\"property-table-collapsed\", false)\n ;\n context.element().selectAll(`.table-${context.depth()} > tbody > tr > .headerRow > .peInput > i`)\n .classed(\"fa-minus-square-o\", true)\n .classed(\"fa-plus-square-o\", false)\n ;\n break;\n case \"fa-caret-down\":\n context.element().selectAll(`.table-${context.depth()} > tbody > tr > .headerRow > .peInput > div`)\n .classed(\"property-table-collapsed\", true)\n ;\n context.element().selectAll(`.table-${context.depth()} > tbody > tr > .headerRow > .peInput > i`)\n .classed(\"fa-minus-square-o\", false)\n .classed(\"fa-plus-square-o\", true)\n ;\n break;\n }\n context.refreshExpandIcon();\n })\n ;\n\n const sortIcon = th.append(\"i\")\n .attr(\"class\", \"sortIcon fa\")\n .on(\"click\", function () {\n context.refreshSortIcon(sortIcon, true);\n })\n ;\n\n th.append(\"i\")\n .attr(\"class\", \"hideParamsIcon fa\")\n .on(\"click\", function () {\n context.hideNonWidgets(!context.hideNonWidgets()).render();\n })\n ;\n }\n\n updateHeader(th) {\n const widget: any = this.widget();\n let spanText = \"\";\n if (widget) {\n if (widget.label) {\n spanText += widget.label();\n }\n if (widget.classID) {\n if (spanText) {\n spanText += \" - \";\n }\n spanText += widget.classID();\n }\n }\n th.select(\"span\")\n .text(spanText)\n ;\n this.refreshExpandIcon();\n this.refreshSortIcon(th.select(\".sortIcon\"));\n this.refreshHideParamsIcon(th.select(\".hideParamsIcon\"));\n }\n\n peInputCount() {\n return this.element().selectAll(`.table-${this.depth()} > tbody > tr > .headerRow > .peInput > div`).size();\n }\n\n peInputCollapsedCount() {\n return this.element().selectAll(`.table-${this.depth()} > tbody > tr > .headerRow > .peInput > div.property-table-collapsed`).size();\n }\n\n peInputIcon(): \"fa-caret-down\" | \"fa-caret-up\" | \"fa-caret-right\" {\n const collapsed = this.peInputCollapsedCount();\n if (collapsed === 0) {\n return \"fa-caret-down\";\n } else if (collapsed === this.peInputCount()) {\n return \"fa-caret-up\";\n }\n return \"fa-caret-right\";\n }\n\n refreshExpandIcon() {\n const newIcon = this.peInputIcon();\n this.element().select(`.table-${this.depth()} > thead > tr > th > .expandIcon`)\n .classed(\"fa-caret-up\", false)\n .classed(\"fa-caret-right\", false)\n .classed(\"fa-caret-down\", false)\n .classed(newIcon, true)\n ;\n }\n\n refreshSortIcon(sortIcon, increment = false) {\n const sort = this.sorting();\n const types = this.sorting_options();\n const icons = this.__meta_sorting.ext.icons;\n if (increment) {\n sortIcon.classed(icons[types.indexOf(sort)], false);\n this.sorting(types[(types.indexOf(sort) + 1) % types.length]).render();\n } else {\n sortIcon\n .classed(icons[(types.indexOf(sort)) % types.length], true)\n .attr(\"title\", sort)\n ;\n }\n }\n\n refreshHideParamsIcon(hideParamsIcon) {\n hideParamsIcon\n .classed(\"fa-eye\", !this.hideNonWidgets())\n .classed(\"fa-eye-slash\", this.hideNonWidgets())\n ;\n }\n\n gatherDataTree(widget) {\n if (!widget) return null;\n const retVal = {\n label: widget.id() + \" (\" + widget.classID() + \")\",\n children: []\n };\n const arr2 = Persist.discover(widget);\n arr2.forEach(function (prop) {\n const node = {\n label: prop.id,\n children: []\n };\n switch (prop.type) {\n case \"widget\":\n node.children.push(this.gatherDataTree(widget[prop.id]()));\n break;\n case \"widgetArray\":\n case \"propertyArray\":\n const arr = widget[prop.id]();\n if (arr) {\n arr.forEach(function (item) {\n node.children.push(this.gatherDataTree(item));\n }, this);\n }\n break;\n default:\n }\n retVal.children.push(node);\n }, this);\n return retVal;\n }\n\n getDataTree() {\n return this.gatherDataTree(this.widget());\n }\n\n _rowSorting(paramArr) {\n if (this.sorting() === \"type\") {\n const typeOrder = [\"boolean\", \"number\", \"string\", \"html-color\", \"array\", \"object\", \"widget\", \"widgetArray\", \"propertyArray\"];\n paramArr.sort(function (a, b) {\n if (a.type === b.type) {\n return a.id < b.id ? -1 : 1;\n } else {\n return typeOrder.indexOf(a.type) < typeOrder.indexOf(b.type) ? -1 : 1;\n }\n });\n } else if (this.sorting() === \"A-Z\") {\n paramArr.sort(function (a, b) { return a.id < b.id ? -1 : 1; });\n } else if (this.sorting() === \"Z-A\") {\n paramArr.sort(function (a, b) { return a.id > b.id ? -1 : 1; });\n }\n }\n\n filterInputs(d) {\n const discArr = Persist.discover(d);\n if ((this.filterTags() || this.excludeTags().length > 0 || this.excludeParams.length > 0) && d instanceof PropertyEditor === false) {\n const context = this;\n return discArr.filter(function (param, _idx) {\n if (d[param.id + \"_hidden\"] && d[param.id + \"_hidden\"]()) return false;\n for (const excludeParamItem of context.excludeParams()) {\n const arr = excludeParamItem.split(\".\");\n let widgetName;\n let excludeParam;\n if (arr.length > 2) {\n widgetName = arr[0];\n excludeParam = arr[2];\n } else {\n widgetName = arr[0];\n excludeParam = arr[1];\n }\n if (d.class().indexOf(widgetName) !== -1) {\n if (param.id === excludeParam) {\n return false;\n }\n return true;\n }\n }\n if (context.excludeTags().length > 0 && param.ext && param.ext.tags && param.ext.tags.some(function (item) { return (context.excludeTags().indexOf(item) > -1); })) {\n return false;\n }\n if ((context.filterTags() && param.ext && param.ext.tags && param.ext.tags.indexOf(context.filterTags()) !== -1) || !context.filterTags()) {\n return true;\n }\n return false;\n });\n }\n return discArr;\n }\n\n renderInputs(element, d) {\n const context = this;\n let discArr = [];\n const showFields = !this.show_settings() && this.showFields();\n if (d) {\n discArr = this.filterInputs(d).filter(function (prop) { return prop.id !== \"fields\" ? true : showFields; });\n if (!this.show_settings() && this.showData() && d.data) {\n discArr.push({ id: \"data\", type: \"array\" });\n }\n if (this.hideNonWidgets()) {\n discArr = discArr.filter(function (n) {\n return hasProperties(n.type);\n });\n }\n this._rowSorting(discArr);\n }\n\n const rows = element.selectAll(\"tr.prop\" + this.id()).data(discArr, function (d2) { return d2.id; });\n rows.enter().append(\"tr\")\n .attr(\"class\", \"property-wrapper prop\" + this.id())\n .each(function (param) {\n const tr = d3Select(this);\n if (hasProperties(param.type)) {\n tr.classed(\"property-widget-wrapper\", true);\n tr.append(\"td\")\n .attr(\"colspan\", \"2\")\n ;\n } else {\n tr.classed(\"property-input-wrapper\", true);\n tr.append(\"td\")\n .classed(\"property-label\", true)\n .text(param.id)\n ;\n const inputCell = tr.append(\"td\")\n .classed(\"property-input-cell\", true)\n ;\n context.enterInputs(d, inputCell, param);\n }\n }).merge(rows)\n .each(function (param) {\n const tr = d3Select(this);\n tr.classed(\"disabled\", d[param.id + \"_disabled\"] && d[param.id + \"_disabled\"]());\n tr.classed(\"invalid\", d[param.id + \"_valid\"] && !d[param.id + \"_valid\"]());\n tr.attr(\"title\", param.description);\n if (hasProperties(param.type)) {\n context.updateWidgetRow(d, tr.select(\"td\"), param);\n } else {\n context.updateInputs(d, param);\n }\n });\n rows.exit().each(function (param) {\n const tr = d3Select(this);\n if (hasProperties(param.type)) {\n context.updateWidgetRow(d, tr.select(\"td\"), null);\n }\n }).remove();\n rows.order();\n }\n\n updateWidgetRow(widget: PropertyExt, element, param) {\n let tmpWidget = [];\n if (widget && param) {\n tmpWidget = widget[param.id]() || [];\n }\n let widgetArr = tmpWidget instanceof Array ? tmpWidget : [tmpWidget];\n if (param && param.ext && param.ext.autoExpand) {\n // remove empties and ensure last row is an empty ---\n let lastModified = true;\n const noEmpties = widgetArr.filter(function (row, idx) {\n lastModified = row.valid();\n row._owner = widget;\n return lastModified || idx === widgetArr.length - 1;\n }, this);\n const widgetDisabled = widget[param.id + \"_disabled\"] && widget[param.id + \"_disabled\"]();\n let changed = !!(widgetArr.length - noEmpties.length);\n if (lastModified && !widgetDisabled) {\n changed = true;\n const autoExpandWidget = new param.ext.autoExpand()\n .owner(widget)\n ;\n // autoExpandWidget.monitor((id, newVal, oldVal, source) => {\n // widget.broadcast(param.id, newVal, oldVal, source);\n // });\n noEmpties.push(autoExpandWidget);\n }\n if (changed) {\n widget[param.id](noEmpties);\n widgetArr = noEmpties;\n }\n }\n\n const context = this;\n element.classed(\"headerRow\", true);\n const peInput = element.selectAll(`div.peInput-${this.depth()}`).data(widgetArr, function (d) { return d.id(); });\n peInput.enter().append(\"div\")\n .attr(\"class\", `peInput peInput-${this.depth()}`)\n .each(function (w) {\n const peInputElement = d3Select(this);\n\n // Header ---\n peInputElement.append(\"span\");\n peInputElement.append(\"i\")\n .attr(\"class\", \"fa\")\n .on(\"click\", function (d) {\n const clickTarget = peInputElement.select(\"div\");\n clickTarget\n .classed(\"property-table-collapsed\", !clickTarget.classed(\"property-table-collapsed\"))\n ;\n d3Select(this)\n .classed(\"fa-minus-square-o\", !clickTarget.classed(\"property-table-collapsed\"))\n .classed(\"fa-plus-square-o\", clickTarget.classed(\"property-table-collapsed\"))\n ;\n context.refreshExpandIcon();\n })\n ;\n\n // Body ---\n const peDiv = peInputElement.append(\"div\")\n // .attr(\"class\", `property- input - cell propEditor-${context.depth() }`)\n ;\n context._childPE.set(this, new PropertyEditor().label(param.id).target(peDiv.node() as HTMLElement));\n })\n .merge(peInput)\n .each(function (w) {\n const peInputElement = d3Select(this);\n const clickTarget = peInputElement.select(\"div\");\n\n // Header ---\n d3Select(this).select(\"span\")\n .text(`${param.id}`)\n ;\n\n d3Select(this).select(\"i\")\n .classed(\"fa-minus-square-o\", !clickTarget.classed(\"property-table-collapsed\"))\n .classed(\"fa-plus-square-o\", clickTarget.classed(\"property-table-collapsed\"))\n ;\n\n // Body ---\n context._childPE.get(this)\n .parentPropertyEditor(context)\n .showFields(context.showFields())\n .showData(context.showData())\n .sorting(context.sorting())\n .filterTags(context.filterTags())\n .excludeTags(context.excludeTags())\n .excludeParams(context.excludeParams())\n .hideNonWidgets(context.hideNonWidgets() && w._class.indexOf(\"layout_\") >= 0)\n .widget(w)\n .render()\n ;\n })\n ;\n peInput.exit()\n .each(function (w) {\n context._childPE.get(this)\n .widget(null)\n .render()\n .target(null)\n ;\n context._childPE.remove(this);\n })\n .remove()\n ;\n }\n\n setProperty(widget, id, value) {\n // With PropertyExt not all \"widgets\" have a render, if not use top most render...\n let topWidget: Widget;\n let topPropEditor: Widget;\n let propEditor: PropertyEditor = this;\n let oldValue;\n while (propEditor && widget) {\n if (propEditor === this) {\n oldValue = widget[id]();\n widget[id](value);\n }\n if (propEditor) {\n topPropEditor = propEditor;\n const w: PropertyExt = propEditor.widget();\n if (w instanceof Widget) {\n topWidget = w;\n }\n }\n propEditor = propEditor.parentPropertyEditor();\n }\n if (topWidget) {\n topWidget.render();\n }\n if (topPropEditor) {\n topPropEditor.broadcast(id, value, oldValue, widget);\n }\n }\n\n enterInputs(widget, cell, param) {\n cell.classed(param.type + \"-cell\", true);\n const context = this;\n if (typeof (param.ext.editor_input) === \"function\") {\n param.ext.editor_input(this, widget, cell, param);\n }\n switch (param.type) {\n case \"boolean\":\n cell.append(\"input\")\n .attr(\"id\", this.id() + \"_\" + param.id)\n .classed(\"property-input\", true)\n .attr(\"type\", \"checkbox\")\n .on(\"change\", function () {\n context.setProperty(widget, param.id, this.checked);\n })\n ;\n break;\n case \"set\":\n cell.append(\"select\")\n .attr(\"id\", this.id() + \"_\" + param.id)\n .classed(\"property-input\", true)\n .on(\"change\", function () {\n context.setProperty(widget, param.id, this.value);\n })\n ;\n break;\n case \"array\":\n case \"object\":\n cell.append(\"textarea\")\n .attr(\"id\", this.id() + \"_\" + param.id)\n .classed(\"property-input\", true)\n .attr(\"autocomplete\", \"off\")\n .attr(\"autocorrect\", \"off\")\n .attr(\"autocapitalize\", \"off\")\n .attr(\"spellcheck\", \"false\")\n .on(\"change\", function () {\n let value;\n try {\n value = JSON.parse(this.value);\n } catch (e) {\n value = this.value;\n }\n context.setProperty(widget, param.id, value);\n })\n ;\n break;\n default:\n if (param.ext && param.ext.range) {\n cell.append(\"span\")\n .classed(\"property-input-span\", true)\n .attr(\"id\", this.id() + \"_\" + param.id + \"_currentVal\")\n .text(param.defaultValue)\n ;\n cell.append(\"input\")\n .attr(\"type\", \"range\")\n .attr(\"step\", param.ext.range.step)\n .attr(\"min\", param.ext.range.min)\n .attr(\"max\", param.ext.range.max)\n .attr(\"id\", this.id() + \"_\" + param.id)\n .classed(\"property-input\", true)\n .on(\"input\", function () {\n context.setProperty(widget, param.id, this.value);\n d3Select(\"#\" + this.id + \"_currentVal\").text(\"Current Value: \" + this.value);\n })\n .on(\"change\", function () {\n context.setProperty(widget, param.id, this.value);\n d3Select(\"#\" + this.id + \"_currentVal\").text(\"Current Value: \" + this.value);\n })\n ;\n } else {\n cell.append(param.ext && param.ext.multiline ? \"textarea\" : \"input\")\n .attr(\"id\", this.id() + \"_\" + param.id)\n .classed(\"property-input\", true)\n .attr(\"autocomplete\", \"off\")\n .attr(\"autocorrect\", \"off\")\n .attr(\"autocapitalize\", \"off\")\n .attr(\"spellcheck\", \"false\")\n .on(\"change\", function () {\n context.setProperty(widget, param.id, this.value);\n })\n ;\n if (param.type === \"html-color\" && !Platform.isIE) {\n cell.append(\"input\")\n .attr(\"id\", this.id() + \"_\" + param.id + \"_2\")\n .classed(\"property-input\", true)\n .attr(\"type\", \"color\")\n .on(\"change\", function () {\n context.setProperty(widget, param.id, this.value);\n })\n ;\n }\n }\n break;\n }\n }\n\n updateInputs(widget, param) {\n const element = d3SelectAll(\"#\" + this.id() + \"_\" + param.id + \", #\" + this.id() + \"_\" + param.id + \"_2\");\n const val = widget ? widget[param.id]() : \"\";\n element.property(\"disabled\", widget[param.id + \"_disabled\"] && widget[param.id + \"_disabled\"]());\n element.property(\"invalid\", widget[param.id + \"_valid\"] && !widget[param.id + \"_valid\"]());\n switch (param.type) {\n case \"boolean\":\n element.property(\"checked\", val);\n break;\n case \"set\":\n const options = element.selectAll(\"option\").data<string | { value: string, text: string }>(widget[param.id + \"_options\"]());\n options.enter().append(\"option\")\n .merge(options as any)\n .attr(\"value\", (d: any) => (d && d.value !== undefined) ? d.value : d)\n .text((d: any) => (d && d.text !== undefined) ? d.text : d)\n ;\n options.exit().remove();\n element.property(\"value\", val);\n break;\n case \"array\":\n case \"object\":\n element.property(\"value\", JSON.stringify(val, function replacer(_key, value) {\n if (value instanceof Widget) {\n return Persist.serialize(value);\n }\n return value;\n }, \" \"));\n break;\n default:\n if (param.ext && param.ext.range) {\n d3Select(\"#\" + this.id() + \"_\" + param.id + \"_currentVal\").text(\"Current Value: \" + val);\n }\n element.property(\"value\", val && val.length && val.length > 100000 ? \"...too big to display...\" : val);\n break;\n }\n }\n\n showFields: { (): boolean; (_: boolean): PropertyEditor; };\n showData: { (): boolean; (_: boolean): PropertyEditor; };\n\n sorting: { (): string; (_: string): PropertyEditor; };\n sorting_options: () => string[];\n\n hideNonWidgets: { (): boolean; (_: boolean): PropertyEditor; };\n\n label: { (): string; (_: string): PropertyEditor; };\n filterTags: { (): string; (_: string): PropertyEditor; };\n excludeTags: { (): string[]; (_: string[]): PropertyEditor; };\n excludeParams: { (): string[]; (_: string[]): PropertyEditor; };\n\n widget: { (): PropertyExt; (_: PropertyExt): PropertyEditor };\n}\nPropertyEditor.prototype._class += \" other_PropertyEditor\";\n\nPropertyEditor.prototype.publish(\"showFields\", false, \"boolean\", \"If true, widget.fields() will display as if it was a publish parameter.\", null, { tags: [\"Basic\"] });\nPropertyEditor.prototype.publish(\"showData\", false, \"boolean\", \"If true, widget.data() will display as if it was a publish parameter.\", null, { tags: [\"Basic\"] });\n\nPropertyEditor.prototype.publish(\"sorting\", \"none\", \"set\", \"Specify the sorting type\", [\"none\", \"A-Z\", \"Z-A\", \"type\"], { tags: [\"Basic\"], icons: [\"fa-sort\", \"fa-sort-alpha-asc\", \"fa-sort-alpha-desc\", \"fa-sort-amount-asc\"] });\n\nPropertyEditor.prototype.publish(\"hideNonWidgets\", false, \"boolean\", \"Hides non-widget params (at this tier only)\", null, { tags: [\"Basic\"] });\n\nPropertyEditor.prototype.publish(\"label\", \"\", \"string\", \"Label to display in header of property editor table\", null, { tags: [\"Basic\"] });\nPropertyEditor.prototype.publish(\"filterTags\", \"\", \"set\", \"Only show Publish Params of this type\", [\"Basic\", \"Intermediate\", \"Advance\", \"\"], {});\nPropertyEditor.prototype.publish(\"excludeTags\", [\"Private\"], \"array\", \"Exclude this array of tags\", null, {});\nPropertyEditor.prototype.publish(\"excludeParams\", [], \"array\", \"Exclude this array of params (widget.param)\", null, {});\n\nPropertyEditor.prototype.publish(\"widget\", null, \"widget\", \"Widget\", null, { tags: [\"Basic\"], render: false });\n\nconst _widgetOrig = PropertyEditor.prototype.widget;\n(PropertyEditor.prototype as any).widget = function (_?: Widget): Widget | PropertyEditor {\n if (arguments.length && _widgetOrig.call(this) === _) return this;\n const retVal = _widgetOrig.apply(this, arguments);\n if (arguments.length) {\n this.watchWidget(_);\n if (_ instanceof Grid) {\n const context = this;\n _.postSelectionChange = function () {\n context._selectedItems = _._selectionBag.get().map(function (item) { return item.widget; });\n context.lazyRender();\n };\n }\n }\n return retVal;\n};\n","import { HTMLWidget } from \"@hpcc-js/common\";\nimport { select as d3Select } from \"d3-selection\";\n\nimport \"../src/RadioCheckbox.css\";\n\nexport class RadioCheckbox extends HTMLWidget {\n _span;\n _label;\n _Checkbox;\n\n constructor() {\n super();\n }\n\n rcData() {\n if (this.data().length === 0) return [];\n const view = this._db.rollupView([this.textColumn(), this.valueColumn()]);\n let retVal = [];\n retVal = retVal.concat(view.entries().map(function (row) {\n return {\n text: row.key,\n value: row.values.length ? row.values[0].key : \"\",\n origRow: row.values.length && row.values[0].values.length ? row.values[0].values[0] : []\n };\n }, this));\n if (this.sort_exists()) {\n const descending = this.sort() === \"descending\";\n retVal.sort(function (l, r) {\n if (l.text < r.text) return descending ? 1 : -1;\n if (l.text > r.text) return descending ? -1 : 1;\n return 0;\n });\n }\n return retVal;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._span = element.append(\"span\");\n this._label = this._span.append(\"label\")\n .attr(\"for\", this.id() + \"_radioCheckbox\")\n ;\n this._Checkbox = this._span.append(\"div\")\n .attr(\"id\", this.id() + \"_radioCheckbox\");\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n this._label\n .text(this.label())\n ;\n const radioCheckbox = this._Checkbox.selectAll(\".dataRow\").data(this.rcData());\n radioCheckbox.enter().append(\"div\")\n .attr(\"class\", \"dataRow\")\n .each(function (row, idx) {\n const checkboxDiv = d3Select(this);\n const id = context.id() + \"_checkbox_\" + idx;\n checkboxDiv.append(\"input\")\n .attr(\"id\", id)\n .attr(\"name\", context.id() + \"_radioCheckbox\")\n .on(\"change\", function (selectedData) {\n context.handleClick();\n });\n checkboxDiv.append(\"label\")\n .attr(\"for\", id);\n });\n radioCheckbox\n .each(function (row, idx) {\n const rcDiv = d3Select(this);\n rcDiv.select(\"input\")\n .attr(\"type\", context.multiple() ? \"checkbox\" : \"radio\")\n .attr(\"value\", row.value);\n rcDiv.select(\"label\")\n .text(row.text);\n });\n radioCheckbox.exit().remove();\n radioCheckbox.order();\n }\n\n exit(domNode, element) {\n this._span.remove();\n super.exit(domNode, element);\n }\n\n handleClick() {\n const options = [];\n this._Checkbox.selectAll(\".dataRow > input\")\n .each(function (row, idx) {\n const input = d3Select(this);\n if (input.property(\"checked\") && row && row.origRow) {\n options.push(row.origRow);\n }\n });\n if (options.length) {\n // TODO Handle Multiple Selections - part of 1.16.x\n this.click(this.rowToObj(options[0]), this.valueColumn(), true);\n } else {\n this.click([], this.valueColumn(), false);\n }\n }\n\n click(row, column, selected) {\n }\n\n label: { (): string; (_: string): RadioCheckbox };\n label_exists: () => boolean;\n valueColumn: { (): string; (_: string): RadioCheckbox };\n valueColumn_exists: () => boolean;\n textColumn: { (): string; (_: string): RadioCheckbox };\n textColumn_exists: () => boolean;\n sort: { (): string; (_: string): RadioCheckbox };\n sort_exists: () => boolean;\n multiple: { (): boolean; (_: boolean): RadioCheckbox };\n multiple_exists: () => boolean;\n}\nRadioCheckbox.prototype._class += \" other_RadioCheckbox\";\n\nRadioCheckbox.prototype.publish(\"label\", null, \"string\", \"Label for RadioCheckbox\");\nRadioCheckbox.prototype.publish(\"valueColumn\", null, \"set\", \"RadioCheckbox display value\", function () { return this.columns(); }, { optional: true });\nRadioCheckbox.prototype.publish(\"textColumn\", null, \"set\", \"RadioCheckbox value(s)\", function () { return this.columns(); }, { optional: true });\nRadioCheckbox.prototype.publish(\"sort\", null, \"set\", \"Sort contents\", [\"\", \"ascending\", \"descending\"], { optional: true });\nRadioCheckbox.prototype.publish(\"multiple\", false, \"boolean\", \"Multiple selection\");\n","import { HTMLWidget } from \"@hpcc-js/common\";\nimport { select as d3Select } from \"d3-selection\";\n\nimport \"../src/Select.css\";\n\nexport class Select extends HTMLWidget {\n _span;\n _prompt;\n _select;\n\n constructor() {\n super();\n }\n\n selectData() {\n if (this.data().length === 0) return [];\n const view = this._db.rollupView([this.textColumn(), this.valueColumn()]);\n let retVal = [];\n retVal = retVal.concat(view.entries().map(function (row) {\n return {\n text: row.key,\n value: row.values.length ? row.values[0].key : \"\",\n origRow: row.values.length && row.values[0].value.length ? row.values[0].value[0] : []\n };\n }, this));\n if (this.sort_exists()) {\n const descending = this.sort() === \"descending\";\n retVal.sort(function (l, r) {\n if (l.text < r.text) return descending ? 1 : -1;\n if (l.text > r.text) return descending ? -1 : 1;\n return 0;\n });\n }\n if (this.optional()) {\n retVal.unshift({ value: \"\", text: \"\" });\n }\n return retVal;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._span = element.append(\"span\");\n this._prompt = this._span.append(\"label\")\n .attr(\"for\", this.id() + \"_select\")\n ;\n\n const context = this;\n this._select = this._span.append(\"select\")\n .attr(\"id\", this.id() + \"_select\")\n .on(\"change\", function (d) {\n const options = [];\n const options_dom_node = context._select.node().options;\n for (let i = 0; i < options_dom_node.length; ++i) {\n const optionNode = options_dom_node[i];\n if (optionNode.selected) {\n options.push((d3Select(optionNode).datum() as any).origRow);\n }\n }\n if (options.length) {\n context.click(context.rowToObj(options[0]), context.valueColumn(), true); // TODO: Multiselect not support in HIPIE\n } else {\n context.click([], context.valueColumn(), false);\n }\n })\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n this._prompt\n .text(this.label())\n ;\n this._select\n .attr(\"multiple\", this.multiple() ? this.multiple() : null)\n .attr(\"size\", this.multiple() && this.selectSize() ? this.selectSize() : null)\n ;\n\n const option = this._select.selectAll(\".dataRow\").data(this.selectData());\n const optionUpdate = option.enter().append(\"option\")\n .attr(\"class\", \"dataRow\")\n .merge(option)\n .attr(\"value\", function (row) { return row.value; })\n .text(function (row) { return row.text; })\n ;\n option.exit().remove();\n optionUpdate.order();\n }\n\n exit(domNode, element) {\n this._span.remove();\n super.exit(domNode, element);\n }\n\n click(row, column, selected) {\n }\n label: { (): string; (_: string): Select };\n label_exists: () => boolean;\n valueColumn: { (): string; (_: string): Select };\n valueColumn_exists: () => boolean;\n textColumn: { (): string; (_: string): Select };\n textColumn_exists: () => boolean;\n optional: { (): boolean; (_: boolean): Select };\n optional_exists: () => boolean;\n sort: { (): string; (_: string): Select };\n sort_exists: () => boolean;\n multiple: { (): boolean; (_: boolean): Select };\n multiple_exists: () => boolean;\n selectSize: { (): number; (_: number): Select };\n selectSize_exists: () => boolean;\n}\nSelect.prototype._class += \" other_Select\";\n\nSelect.prototype.publish(\"label\", null, \"string\", \"Label for select\");\nSelect.prototype.publish(\"valueColumn\", null, \"set\", \"Select display value\", function () { return this.columns(); }, { optional: true });\nSelect.prototype.publish(\"textColumn\", null, \"set\", \"Select value(s)\", function () { return this.columns(); }, { optional: true });\nSelect.prototype.publish(\"optional\", true, \"boolean\", \"Optional Select\");\nSelect.prototype.publish(\"sort\", null, \"set\", \"Sort contents\", [\"\", \"ascending\", \"descending\"], { optional: true });\nSelect.prototype.publish(\"multiple\", false, \"boolean\", \"Multiple selection\");\nSelect.prototype.publish(\"selectSize\", 5, \"number\", \"Size of multiselect box\", null, { disable: w => !w.multiple() });\n","import { HTMLWidget } from \"@hpcc-js/common\";\nimport * as Persist from \"./Persist\";\n\nimport \"../src/ThemeEditor.css\";\n\nfunction hasLocalStorage(): boolean {\n const mod = \"@hpcc-js/other\";\n try {\n localStorage.setItem(mod, mod);\n localStorage.removeItem(mod);\n return true;\n } catch (e) {\n return false;\n }\n}\n\n// Polyfill for IE in file:// mode ----\nconst _localStorage: { getItem: (id: string) => any; } = hasLocalStorage() ? localStorage : {\n getItem(id: string): any {\n return undefined;\n }\n};\n\nconst getThemes = function (idx?) {\n if (typeof ((window as any).g_defaultThemes) === \"function\") {\n (window as any).g_defaultThemes(idx);\n }\n return JSON.parse(_localStorage.getItem(\"themeEditorThemes\") || \"{}\");\n};\nconst getSerials = function (idx?) {\n if (typeof ((window as any).g_defaultSerials) === \"function\") {\n (window as any).g_defaultSerials(idx);\n }\n return JSON.parse(_localStorage.getItem(\"themeEditorSerials\") || \"{}\");\n};\nconst getThemeNames = function (idx?) {\n const loadedThemes = getThemes();\n let themes = [];\n for (const themeName in loadedThemes) {\n themes.push(themeName);\n }\n if (typeof (idx) !== \"undefined\" && typeof (themes[idx]) !== \"undefined\") {\n themes = themes[idx];\n }\n return themes;\n};\nconst getSerialNames = function (idx?) {\n const loadedSerials = getSerials();\n let serials = [];\n for (const serialName in loadedSerials) {\n serials.push(serialName);\n }\n if (typeof (idx) !== \"undefined\" && typeof (serials[idx]) !== \"undefined\") {\n serials = serials[idx];\n }\n return serials;\n};\nconst tableNeedsRedraw = function (context) {\n let needsRedraw = false;\n if (typeof (context._current_grouping) === \"undefined\") {\n context._current_grouping = context._group_params_by;\n } else if (context._current_grouping !== context._group_params_by) {\n needsRedraw = true;\n }\n if (typeof (context._showing_columns) === \"undefined\") {\n context._showing_columns = context.showColumns();\n } else if (context._showing_columns !== context.showColumns()) {\n needsRedraw = true;\n }\n if (typeof (context._showing_data) === \"undefined\") {\n context._showing_data = context.showData();\n } else if (context._showing_data !== context.showData()) {\n needsRedraw = true;\n }\n return needsRedraw;\n};\nconst camelizeString = function (str) {\n const spacedText = str.split(/(?=[0-9A-Z])/).map(function (n) { return n.length > 1 ? n + \" \" : n; }).join(\"\");\n return spacedText.replace(/(?:^|\\s)\\S/g, function (a) { return a.toUpperCase(); });\n};\n\nconst tableInputHtml = function (rowObj, value, widgetArr, idSuffix) {\n let inputHtml = \"\";\n let id = \"te-input-\" + rowObj.id + \"-\" + idSuffix;\n\n let inputType;\n if (typeof (rowObj.ext) !== \"undefined\" && typeof (rowObj.ext.inputType) !== \"undefined\") {\n inputType = rowObj.ext.inputType;\n }\n\n if (typeof (rowObj.inputID) !== \"undefined\") {\n id = rowObj.inputID;\n }\n\n const dataWIDs = \"data-paramid='\" + rowObj.id + \"' data-wids='\" + widgetArr.map(function (w) {\n if (typeof (w.widget) === \"object\") {\n return w.widget._id;\n } else {\n return w;\n }\n }).join(\",\") + \"'\";\n switch (rowObj.type) {\n case \"boolean\":\n const checked = value ? \" checked\" : \"\";\n inputHtml = \"<input id='\" + id + \"' \" + dataWIDs + \" type='checkbox' class='te-checkbox te-input'\" + checked + \">\"; break;\n case \"number\":\n if (typeof (inputType) !== \"undefined\") {\n if (inputType === \"textarea\") {\n inputHtml = \"<textarea id='\" + id + \"' class='te-textarea te-input' \" + dataWIDs + \">\" + value + \"</textarea>\";\n } else if (inputType === \"range\") {\n inputHtml = \"<input id='\" + id + \"' class='te-input' type='range' \" + dataWIDs + \" value='\" + value + \"' min='\" + rowObj.ext.min + \"' max='\" + rowObj.ext.max + \"' step='\" + rowObj.ext.step + \"'>\";\n }\n } else {\n inputHtml = \"<input id='\" + id + \"' type='text' class='te-text te-input' \" + dataWIDs + \" value='\" + value + \"'>\";\n }\n break;\n case \"string\":\n if (typeof (inputType) !== \"undefined\") {\n if (inputType === \"textarea\") {\n inputHtml = \"<textarea id='\" + id + \"' class='te-textarea te-input' \" + dataWIDs + \">\" + value + \"</textarea>\";\n }\n } else {\n inputHtml = \"<input id='\" + id + \"' type='text' class='te-text te-input' value='\" + value + \"' \" + dataWIDs + \">\";\n }\n break;\n case \"html-color\":\n const valueAttr = value === \"\" ? \"\" : \" value='\" + value + \"'\";\n inputHtml = \"<input id='\" + id + \"' type='text' class='te-html-color-input te-input' \" + dataWIDs + \" \" + valueAttr + \">\";\n inputHtml += \"<input type='color' class='te-html-color-button te-input' \" + dataWIDs + \" \" + valueAttr + \">\";\n break;\n case \"set\":\n const options = _options(rowObj, value);\n inputHtml = \"<select id='\" + id + \"' class='te-select te-input'\" + dataWIDs + \">\" + options + \"</select>\";\n break;\n case \"array\":\n inputHtml = \"<textarea id='\" + id + \"' class='te-textarea te-input' data-type='array' \" + dataWIDs + \">\" + value + \"</textarea>\";\n break;\n default:\n break;\n }\n if (typeof (rowObj.ext.saveButton) !== \"undefined\") {\n inputHtml += \"<button id='\" + rowObj.ext.saveButtonID + \"'>\" + rowObj.ext.saveButton + \"</button>\";\n }\n return inputHtml;\n\n function _options(obj, val) {\n let options = \"\";\n obj.set.forEach(function (s) {\n const selected = s === val ? \" selected\" : \"\";\n options += \"<option value='\" + s + \"'\" + selected + \">\" + s + \"</option>\";\n });\n return options;\n }\n};\n\nexport class ThemeEditor extends HTMLWidget {\n _current_grouping;\n _showing_columns;\n _showing_data;\n _contentEditors;\n _showSettings;\n _defaultThemes;\n _widgetObjsById;\n _sharedProperties;\n getThemes;\n getSerials;\n getDefaultThemes;\n getDefaultSerials;\n\n constructor() {\n super();\n\n this._tag = \"div\";\n this._current_grouping = undefined;\n this._showing_columns = undefined;\n this._showing_data = undefined;\n this.columns([\"Key\", \"Value\"]);\n this._contentEditors = [];\n this._showSettings = true;\n\n this._defaultThemes = [];\n\n this._widgetObjsById = {};\n }\n\n showSettings(_?) {\n if (!arguments.length) {\n return this._showSettings;\n }\n this._showSettings = _;\n return this;\n }\n\n onChange(widget, propID) { }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._placeholderElement.style(\"overflow\", \"auto\");\n }\n\n widgetProperty(widget, propID, _?) {\n if (_ === undefined) {\n return widget[propID]();\n }\n return widget[propID](_);\n }\n\n load(elmValue) { }\n\n save(themeName) { }\n\n needsPropTableRedraw() {\n const ret = document.getElementById(\"te-themeEditorOptions\") === null;\n return ret;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n if (tableNeedsRedraw(this)) {\n element.selectAll(\"#\" + this._id + \" > table\").remove();\n }\n this._current_grouping = this.paramGrouping();\n this._widgetObjsById[this._id] = this;\n this._sharedProperties = this.findSharedProperties(this.data());\n\n const needsPropertiesTableRedraw = this.needsPropTableRedraw();\n if (needsPropertiesTableRedraw && this.showSettings()) {\n const teParams = Persist.discover(this);\n for (const i in teParams) {\n if (teParams[i].ext.tags.indexOf(this.editorComplexity()) !== -1) {\n const teParamVal = this[teParams[i].id]();\n if (teParams[i].id === \"loadedTheme\" || teParams[i].id === \"loadedSerial\") {\n teParams[i].inputID = \"te-load-theme\";\n }\n teParams[i].input = tableInputHtml(teParams[i], teParamVal, [this._id], this._id);\n } else {\n delete teParams[i];\n }\n }\n domNode.innerHTML = this.propertiesTableHtml(teParams);\n const evt = document.createEvent(\"Events\");\n evt.initEvent(\"TE Properties Ready\", true, true);\n document.dispatchEvent(evt);\n }\n\n this.buildTableObjects(domNode, this._sharedProperties);\n\n this.initFunctionality(domNode);\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n\n click(d) {\n }\n\n propertiesTableHtml(editorParams) {\n const tableObj = {\n id: \"te-themeEditorOptions\",\n label: \"Editor Options\",\n rowArr: []\n };\n const modeTableObj = {\n id: \"te-tableModeOptions\",\n label: this.themeMode() ? \"Save/Load Theme\" : \"Save/Load Serial\",\n rowArr: []\n };\n for (const i in editorParams) {\n if (this.themeMode()) {\n if (editorParams[i].ext.tags.indexOf(\"Theme\") === -1 && editorParams[i].ext.tags.indexOf(\"Serial\") === -1) {\n tableObj.rowArr.push({\n th: camelizeString(editorParams[i].id),\n td: editorParams[i].input,\n trClass: \"propertyRow\"\n });\n } else if (editorParams[i].ext.tags.indexOf(\"Theme\") !== -1) {\n modeTableObj.rowArr.push({\n th: camelizeString(editorParams[i].id),\n td: editorParams[i].input,\n trClass: \"propertyRow\"\n });\n }\n } else {\n if (editorParams[i].ext.tags.indexOf(\"Serial\") === -1 && editorParams[i].ext.tags.indexOf(\"Theme\") === -1) {\n tableObj.rowArr.push({\n th: camelizeString(editorParams[i].id),\n td: editorParams[i].input,\n trClass: \"propertyRow\"\n });\n } else if (editorParams[i].ext.tags.indexOf(\"Serial\") !== -1) {\n modeTableObj.rowArr.push({\n th: camelizeString(editorParams[i].id),\n td: editorParams[i].input,\n trClass: \"propertyRow\"\n });\n }\n }\n\n }\n let html = \"\";\n if (tableObj.rowArr.length > 0) {\n html += this.tableObjHtml(tableObj);\n }\n if (modeTableObj.rowArr.length > 0) {\n html += this.tableObjHtml(modeTableObj);\n }\n return html;\n }\n buildTableObjects(targetElement, propObjs) {\n let sectionObjs = {};\n if (this.themeMode()) {\n sectionObjs = {\n chartColorSection: {\n id: \"te-colorOptions\",\n label: \"Chart Colors\",\n rowObjArr: []\n },\n surfaceSection: {\n id: \"te-containerOptions\",\n label: \"Container Styles/Colors\",\n rowObjArr: []\n },\n fontSection: {\n id: \"te-fontOptions\",\n label: \"Font Styles/Colors\",\n rowObjArr: []\n }\n };\n } else {\n sectionObjs = {\n nonSurfaceSection: {\n id: \"te-chartOptions\",\n label: \"Chart Properties\",\n rowObjArr: []\n }\n };\n }\n for (const p in propObjs) {\n if (this.themeMode()) {\n if (p.toUpperCase().indexOf(\"FONT\") !== -1 && !(propObjs[p].arr[0].widget._class.indexOf(\"layout_Surface\") !== -1 && p.toUpperCase().indexOf(\"COLOR\") !== -1)) {\n sectionObjs[\"fontSection\"].rowObjArr.push(propObjs[p]);\n } else if (p === \"paletteID\") {\n sectionObjs[\"chartColorSection\"].rowObjArr.push(propObjs[p]);\n } else if (propObjs[p].arr[0].widget._class.indexOf(\"layout_Surface\") !== -1) {\n sectionObjs[\"surfaceSection\"].rowObjArr.push(propObjs[p]);\n }\n } else {\n if (propObjs[p].arr[0].widget._class.indexOf(\"layout_Surface\") === -1) {\n sectionObjs[\"nonSurfaceSection\"].rowObjArr.push(propObjs[p]);\n }\n }\n }\n let html = \"\";\n for (const i in sectionObjs) {\n html += this.sharedPropertyTableHtml(sectionObjs[i]);\n }\n targetElement.innerHTML += html;\n }\n\n initFunctionality(elm) {\n const context = this;\n _expandCollapse(elm);\n _inputOnChange(elm);\n _inputOnClick(elm);\n function _inputOnClick(elm2) {\n if (context.showSettings()) {\n const saveBtn = document.getElementById(\"te-save-button\");\n saveBtn.onclick = function (e) {\n const clickedElm: any = e.target;\n const themeName = clickedElm.previousSibling.value;\n if (themeName.length > 1) {\n const loadSelect = document.getElementById(\"te-load-theme\");\n const loadOptions = loadSelect.getElementsByTagName(\"option\");\n let saveExists = false;\n for (const i in loadOptions) {\n const val = loadOptions[i].value;\n if (val === themeName) {\n saveExists = true;\n }\n }\n if (!saveExists) {\n loadSelect.innerHTML += \"<option value='\" + themeName + \"'>\" + themeName + \"</option>\";\n }\n clickedElm.previousSibling.value = \"\";\n (loadSelect as any).value = themeName;\n } else {\n alert(\"Save Name cannot be empty.\");\n }\n };\n }\n }\n function _inputOnChange(elm2) {\n const teInputs = elm2.getElementsByClassName(\"te-input\");\n for (const i in teInputs) {\n if (isNaN(parseInt(i))) break;\n const inputElm = teInputs[i];\n const inputID = inputElm.getAttribute(\"id\");\n if (inputID === \"te-load-theme\") {\n inputElm.onchange = function (e) {\n const elm3 = e.srcElement;\n context.load(elm3.value);\n };\n } else if (inputID !== null && inputID.indexOf(\"te-input-themeMode\") !== -1) {\n inputElm.onchange = function (e) {\n const elm3 = e.srcElement;\n context.themeMode(elm3.checked);\n\n const name = document.getElementById(\"te-load-theme\");\n const nameToLoad = name !== null ? (name as any).value : \"Default\";\n context.load(nameToLoad);\n };\n } else if (inputElm.tagName === \"INPUT\" || inputElm.tagName === \"SELECT\" || inputElm.tagName === \"TEXTAREA\") {\n inputElm.onchange = function (e) {\n const elm3 = e.srcElement;\n\n let id = elm3.getAttribute(\"id\");\n\n if (elm3.className.split(\" \").indexOf(\"te-html-color-button\") !== -1) {\n id = elm3.previousSibling.getAttribute(\"id\");\n elm3.previousSibling.value = elm3.value;\n }\n const elmType = elm3.getAttribute(\"type\");\n const splitId = id.split(\"-\");\n const genericId = splitId.slice(0, splitId.length - 1).join(\"-\") + \"-\";\n\n const widsStr = elm3.getAttribute(\"data-wids\");\n const paramId = elm3.getAttribute(\"data-paramid\");\n const widArr = widsStr.split(\",\");\n widArr.forEach(function (wid) {\n const individualId = genericId + wid;\n const indElm = document.getElementById(individualId);\n if (elmType === \"checkbox\") {\n (indElm as any).checked = elm3.checked;\n context._widgetObjsById[wid][paramId](elm3.checked);\n } else if (elm3.getAttribute(\"data-type\") === \"array\") {\n (indElm as any).value = elm3.value;\n try {\n context._widgetObjsById[wid][paramId](JSON.parse(elm3.value));\n } catch (e) { }\n } else {\n (indElm as any).value = elm3.value;\n context._widgetObjsById[wid][paramId](elm3.value);\n\n if (indElm.className.split(\" \").indexOf(\"te-html-color-input\") !== -1) {\n (indElm.nextSibling as any).value = elm3.value;\n } else if (indElm.className.split(\" \").indexOf(\"te-html-color-button\") !== -1) {\n (indElm.previousSibling as any).value = elm3.value;\n }\n }\n });\n context.data().forEach(function (d) {\n d.render();\n });\n };\n }\n }\n }\n function _expandCollapse(elm2) {\n const tableArr = elm2.getElementsByClassName(\"te-section-table\");\n for (const i in tableArr) {\n if (typeof (tableArr[i].getElementsByTagName) === \"function\") {\n const thead = tableArr[i].getElementsByTagName(\"thead\");\n thead[0].onclick = function (e) {\n let elm3 = e.toElement;\n if (elm3.tagName === \"TH\") {\n elm3 = elm3.parentElement.parentElement;\n }\n const parent = elm3.parentElement;\n let tbodyClass = \"\";\n if (parent.className.split(\" \").indexOf(\"expanded\") === -1) {\n parent.className = \"te-section-table expanded\";\n tbodyClass = \"shown\";\n } else {\n parent.className = \"te-section-table collapsed\";\n tbodyClass = \"hidden\";\n }\n const tbody = parent.getElementsByTagName(\"tbody\");\n tbody[0].className = tbodyClass;\n };\n }\n }\n const sharedRowArr = elm2.getElementsByClassName(\"sharedPropertyRow\");\n for (const n in sharedRowArr) {\n if (typeof (sharedRowArr[n].getElementsByClassName) === \"function\") {\n const label = sharedRowArr[n].getElementsByClassName(\"te-label\");\n label[0].onclick = function (e) {\n const elm3 = e.toElement;\n const parent = elm3.parentElement;\n let subRowClass = \"\";\n if (parent.className.split(\" \").indexOf(\"expanded\") === -1) {\n parent.className = \"sharedPropertyRow expanded\";\n subRowClass = \"shown\";\n } else {\n parent.className = \"sharedPropertyRow collapsed\";\n subRowClass = \"hidden\";\n }\n let nextSib = parent.nextSibling;\n while (nextSib !== null) {\n if (nextSib.className.split(\" \").indexOf(\"sharedPropertyRow\") === -1) {\n nextSib.className = \"propertyRow \" + subRowClass;\n nextSib = nextSib.nextSibling;\n } else {\n nextSib = null;\n }\n }\n };\n }\n }\n }\n }\n sharedPropertyTableHtml(sectionObj) {\n const tableObj = {\n id: sectionObj.id,\n label: sectionObj.label,\n rowArr: []\n };\n sectionObj.rowObjArr.forEach(function (rowObj) {\n rowObj.arr.forEach(function (widgetObj, widgetIdx) {\n if (widgetIdx === 0) {\n tableObj.rowArr.push({\n th: _sharedPropertyLabel(rowObj),\n td: _sharedPropertyInput(rowObj),\n trClass: \"sharedPropertyRow collapsed\"\n });\n }\n tableObj.rowArr.push({\n th: _propertyLabel(widgetObj),\n td: _propertyInput(rowObj, widgetIdx),\n trClass: \"propertyRow hidden\"\n });\n });\n });\n\n return this.tableObjHtml(tableObj);\n\n function _propertyLabel(widgetObj) {\n const splitClass = widgetObj.widget.classID().split(\"_\");\n const displayClass = splitClass.join(\"/\");\n return displayClass + \" <i>[\" + widgetObj.widget._id + \"]</i>\";\n }\n function _sharedPropertyLabel(rowObj) {\n return camelizeString(rowObj.id);\n }\n\n function _propertyInput(rowObj, idx) {\n const value = _value(rowObj, idx);\n const html = tableInputHtml(rowObj, value, [rowObj.arr[idx]], rowObj.arr[idx].widget._id);\n return html;\n\n function _value(rowObj2, idx2) {\n const value2 = rowObj2.arr[idx2].widget[rowObj2.id]();\n return value2 !== null ? value2 : \"\";\n }\n }\n function _sharedPropertyInput(rowObj) {\n const value = _sharedValue(rowObj);\n const html = tableInputHtml(rowObj, value, rowObj.arr, \"shared\");\n return html;\n\n function _sharedValue(rowObj2) {\n const value2 = rowObj2.arr[0].widget[rowObj2.id]();\n rowObj2.arr.forEach(function (w, i) {\n if (value2 !== w.widget[w.id]()) {\n return \"\";\n }\n });\n if (value2 !== null) {\n if (rowObj2.type === \"array\") {\n return JSON.stringify(value2);\n }\n return value2;\n }\n return \"\";\n }\n }\n }\n\n tableObjHtml(tableObj) {\n let html = \"<table id='\" + tableObj.id + \"' class='te-section-table expanded'>\";\n html += \"<thead><tr><th colspan='2'>\" + tableObj.label + \"</th></tr></thead>\";\n html += \"<tbody>\";\n tableObj.rowArr.forEach(function (rowObj) {\n html += this.tableRowObjHtml(rowObj);\n }, this);\n html += \"</tbody>\";\n return html + \"</table>\";\n }\n tableRowObjHtml(rowObj) {\n let html = typeof (rowObj.trClass) !== \"undefined\" ? \"<tr class='\" + rowObj.trClass + \"'>\" : \"<tr>\";\n html += \"<th class='te-label'>\" + rowObj.th + \"</th>\";\n html += \"<td>\" + rowObj.td + \"</td>\";\n return html + \"</tr>\";\n }\n\n setWidgetObjsById(widgetProp) {\n const context = this;\n const val = widgetProp.widget[widgetProp.id]();\n if (widgetProp.type === \"widgetArray\") {\n val.forEach(function (widget) {\n context._widgetObjsById[widget._id] = widget;\n });\n } else if (widgetProp.type === \"widget\" && val !== null) {\n this._widgetObjsById[val._id] = val;\n }\n }\n checkTagFilter(tagArr) {\n const allowTags = [\"Basic\"];\n let ret = false;\n tagArr.forEach(function (tag) {\n if (allowTags.indexOf(tag) !== -1) {\n ret = true;\n }\n });\n return ret;\n }\n findSharedProperties(data) {\n const context = this;\n let propsByID;\n if (typeof (data) !== \"undefined\" && data.length > 0) {\n let allProps = [];\n propsByID = {};\n const surfacePropsByID = {};\n const nonSurfacePropsByID = {};\n data.forEach(function (widget) {\n const gpResponse = _getParams(widget, 0);\n allProps = allProps.concat(gpResponse);\n });\n allProps.forEach(function (prop) {\n if ([\"widget\", \"widgetArray\"].indexOf(prop.type) !== -1) {\n context.setWidgetObjsById(prop);\n } else if (context.checkTagFilter(prop.ext.tags)) {\n const tempIdx = prop.id;\n if (prop.widget._class.indexOf(\"Surface\") !== -1) {\n if (typeof (surfacePropsByID[tempIdx]) === \"undefined\") {\n surfacePropsByID[tempIdx] = { arr: [] };\n }\n surfacePropsByID[tempIdx].id = prop.id;\n surfacePropsByID[tempIdx].description = prop.description;\n surfacePropsByID[tempIdx].type = prop.type;\n surfacePropsByID[tempIdx].set = prop.set;\n surfacePropsByID[tempIdx].ext = prop.ext;\n surfacePropsByID[tempIdx].arr.push(prop);\n } else {\n if (typeof (nonSurfacePropsByID[tempIdx]) === \"undefined\") {\n nonSurfacePropsByID[tempIdx] = { arr: [] };\n }\n nonSurfacePropsByID[tempIdx].id = prop.id;\n nonSurfacePropsByID[tempIdx].description = prop.description;\n nonSurfacePropsByID[tempIdx].type = prop.type;\n nonSurfacePropsByID[tempIdx].set = prop.set;\n nonSurfacePropsByID[tempIdx].ext = prop.ext;\n nonSurfacePropsByID[tempIdx].arr.push(prop);\n }\n if (typeof (propsByID[tempIdx]) === \"undefined\") {\n propsByID[tempIdx] = { arr: [] };\n }\n propsByID[tempIdx].id = prop.id;\n propsByID[tempIdx].description = prop.description;\n propsByID[tempIdx].type = prop.type;\n propsByID[tempIdx].set = prop.set;\n propsByID[tempIdx].ext = prop.ext;\n propsByID[tempIdx].arr.push(prop);\n }\n });\n }\n return propsByID;\n\n function _getParams(widgetObj, depth) {\n let retArr = [];\n if (widgetObj !== null) {\n const paramArr = Persist.discover(widgetObj);\n paramArr.forEach(function (param, i1) {\n if (typeof (param.ext.tags) !== \"undefined\") {\n retArr.push({\n id: param.id,\n type: param.type,\n description: param.description,\n set: param.set,\n ext: param.ext,\n widget: widgetObj\n });\n }\n if (param.type === \"widgetArray\") {\n const childWidgetArray = context.widgetProperty(widgetObj, param.id);\n childWidgetArray.forEach(function (childWidget) {\n const cwArr = _getParams(childWidget, depth + 1);\n retArr = retArr.concat(cwArr);\n });\n } else if (param.type === \"widget\") {\n const childWidget = context.widgetProperty(widgetObj, param.id);\n const temp = _getParams(childWidget, depth + 1);\n retArr = retArr.concat(temp);\n }\n });\n }\n return retArr;\n }\n }\n\n themeMode: { (): boolean; (_: boolean): ThemeEditor };\n themeMode_exists: () => boolean;\n saveTheme: { (): string; (_: string): ThemeEditor };\n saveTheme_exists: () => boolean;\n loadedTheme: { (): string; (_: string): ThemeEditor };\n loadedTheme_exists: () => boolean;\n saveSerial: { (): string; (_: string): ThemeEditor };\n saveSerial_exists: () => boolean;\n loadedSerial: { (): string; (_: string): ThemeEditor };\n loadedSerial_exists: () => boolean;\n showColumns: { (): boolean; (_: boolean): ThemeEditor };\n showColumns_exists: () => boolean;\n showData: { (): boolean; (_: boolean): ThemeEditor };\n showData_exists: () => boolean;\n shareCountMin: { (): number; (_: number): ThemeEditor };\n shareCountMin_exists: () => boolean;\n paramGrouping: { (): string; (_: string): ThemeEditor };\n paramGrouping_exists: () => boolean;\n editorComplexity: { (): string; (_: string): ThemeEditor };\n editorComplexity_exists: () => boolean;\n sectionTitle: { (): string; (_: string): ThemeEditor };\n sectionTitle_exists: () => boolean;\n collapsibleSections: { (): boolean; (_: boolean): ThemeEditor };\n collapsibleSections_exists: () => boolean;\n}\nThemeEditor.prototype._class += \" other_ThemeEditor\";\n\nThemeEditor.prototype.publish(\"themeMode\", true, \"boolean\", \"Edit default values\", null, { tags: [\"Basic\"] });\nThemeEditor.prototype.publish(\"saveTheme\", \"\", \"string\", \"Save Theme\", null, { tags: [\"Basic\", \"Theme\"], saveButton: \"Save\", saveButtonID: \"te-save-button\" });\nThemeEditor.prototype.publish(\"loadedTheme\", getThemeNames(1), \"set\", \"Loaded Theme\", getThemeNames(), { tags: [\"Basic\", \"Theme\"] });\nThemeEditor.prototype.publish(\"saveSerial\", \"\", \"string\", \"Save Serial\", null, { tags: [\"Basic\", \"Serial\"], saveButton: \"Save\", saveButtonID: \"te-save-button\" });\nThemeEditor.prototype.publish(\"loadedSerial\", getSerialNames(0), \"set\", \"Loaded Serial\", getSerialNames(), { tags: [\"Basic\", \"Serial\"] });\nThemeEditor.prototype.publish(\"showColumns\", true, \"boolean\", \"Show Columns\", null, { tags: [\"Intermediate\"] });\nThemeEditor.prototype.publish(\"showData\", true, \"boolean\", \"Show Data\", null, { tags: [\"Intermediate\"] });\nThemeEditor.prototype.publish(\"shareCountMin\", 1, \"number\", \"Share Count Min\", null, { tags: [\"Private\"] });\nThemeEditor.prototype.publish(\"paramGrouping\", \"By Param\", \"set\", \"Param Grouping\", [\"By Param\", \"By Widget\"], { tags: [\"Private\"] });\nThemeEditor.prototype.publish(\"editorComplexity\", \"Basic\", \"set\", \"Choose what publish properties to display within the editor.\", [\"Basic\", \"Intermediate\", \"Advanced\", \"Private\"], { tags: [\"Private\"] });\nThemeEditor.prototype.publish(\"sectionTitle\", \"\", \"string\", \"Section Title\", null, { tags: [\"Private\"] });\nThemeEditor.prototype.publish(\"collapsibleSections\", true, \"boolean\", \"Collapsible Sections\", null, { tags: [\"Intermediate\"] });\n\nThemeEditor.prototype.getThemes = getThemes;\nThemeEditor.prototype.getSerials = getSerials;\nThemeEditor.prototype.getDefaultThemes = getThemeNames;\nThemeEditor.prototype.getDefaultSerials = getSerialNames;\n"],"names":["d3Timer","HTMLWidget","interval","Utility","d3TimeParse","d3Format","d3Select","d3Map","d3Extent","d3Range","d3TimeMonths","d3TimeDays","d3TimeWeek","d3TimeYear","Palette","serialize","locateRoxieResponse","WsWorkunits","Comms.Basic","Comms.ESPUrl","Comms.createESPConnection","Comms.WsWorkunits","_simpleheat.default","CanvasWidget","SVGWidget","HorizontalList","VerticalList","Entity","d3Event","Widget","Platform","d3SelectAll","PropertyExt","d3Local","Persist.discover","Persist.serialize","Grid"],"mappings":"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","x_google_ignoreList":[1,2,4,5,7,8,9,10,11,12,16]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/__package__.ts","../../../node_modules/tslib/tslib.es6.mjs","../../../node_modules/d3-timer/src/timer.js","../src/Audio.ts","../../../node_modules/javascript-autocomplete/auto-complete.js","../../../node_modules/style-inject/dist/style-inject.es.js","../src/AutoCompleteText.ts","../../../node_modules/d3-time/src/interval.js","../../../node_modules/d3-time/src/duration.js","../../../node_modules/d3-time/src/day.js","../../../node_modules/d3-time/src/week.js","../../../node_modules/d3-time/src/month.js","../../../node_modules/d3-time/src/year.js","../src/CalendarHeatMap.ts","../src/Comms.ts","../src/ESP.ts","../../../node_modules/simpleheat/simpleheat.js","../src/HeatMap.ts","../src/HPCCBadge.ts","../src/Html.ts","../src/IconList.ts","../src/Paginator.ts","../src/Table.ts","../src/Legend.ts","../src/MorphText.ts","../src/NestedTable.ts","../src/Opportunity.ts","../src/Persist.ts","../src/PropertyEditor.ts","../src/RadioCheckbox.ts","../src/Select.ts","../src/ThemeEditor.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/other\";\nexport const PKG_VERSION = \"2.16.1\";\nexport const BUILD_VERSION = \"2.106.1\";\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import { HTMLWidget } from \"@hpcc-js/common\";\nimport { timer as d3Timer } from \"d3-timer\";\n\nexport class Audio extends HTMLWidget {\n _sections;\n\n constructor() {\n super();\n this._tag = \"audio\";\n\n this._sections = {};\n }\n\n section(label, offset, beatLength, beatCount) {\n if (!arguments.length) return this._sections;\n if (arguments.length === 1) return this._sections[label];\n this._sections[label] = {\n label,\n offset,\n beatLength,\n beatCount,\n endOffset: offset + beatCount * beatLength\n };\n return this;\n }\n\n getType(fileExt) {\n switch (fileExt) {\n case \"mp3\":\n return \"audio/mpeg; codecs='mp3'\";\n case \"ogg\":\n return \"audio/ogg; codecs='vorbis'\";\n }\n return \"\";\n }\n\n enter(domNode, element) {\n const context = this;\n element.on(\"play\", function (d) { context.onPlay(d); });\n }\n\n update(domNode, element) {\n const source = element.selectAll(\"source\").data(this.source(), function (d) { return d; });\n source.enter().append(\"source\")\n .attr(\"src\", function (d) { return d; })\n ;\n }\n\n createTimer(params, startTime, beat) {\n const context = this;\n d3Timer(function () {\n context.onTick(params.label, beat, params);\n return true;\n }, beat * params.beatLength, startTime + params.offset);\n }\n\n onTick(label, beat, params) {\n }\n\n onPlay(d) {\n const startTime = Date.now();\n for (const key in this._sections) {\n const section = this._sections[key];\n for (let i = 0; i < section.beatCount; ++i) {\n this.createTimer(section, startTime, i);\n }\n }\n }\n\n play(d) {\n const context = this;\n this._element.on(\"canplaythrough\", function (d2) {\n context.node().play();\n });\n this.node().load();\n }\n\n source: { (): string; (_: string): Audio };\n source_exists: () => boolean;\n}\nAudio.prototype._class += \" other_Audio\";\n\nAudio.prototype.publish(\"source\", \"\", \"string\", \"Audio Source\");\n","/*\n JavaScript autoComplete v1.0.5\n Copyright (c) 2014 Simon Steinberger / Pixabay\n GitHub: https://github.com/Pixabay/JavaScript-autoComplete\n License: http://www.opensource.org/licenses/mit-license.php\n*/\n\nvar autoComplete = (function(){\n // \"use strict\";\n function autoComplete(options){\n if (!document.querySelector) return;\n\n // helpers\n function hasClass(el, className){ return el.classList ? el.classList.contains(className) : new RegExp('\\\\b'+ className+'\\\\b').test(el.className); }\n\n function addEvent(el, type, handler){\n if (el.attachEvent) el.attachEvent('on'+type, handler); else el.addEventListener(type, handler);\n }\n function removeEvent(el, type, handler){\n // if (el.removeEventListener) not working in IE11\n if (el.detachEvent) el.detachEvent('on'+type, handler); else el.removeEventListener(type, handler);\n }\n function live(elClass, event, cb, context){\n addEvent(context || document, event, function(e){\n var found, el = e.target || e.srcElement;\n while (el && !(found = hasClass(el, elClass))) el = el.parentElement;\n if (found) cb.call(el, e);\n });\n }\n\n var o = {\n selector: 0,\n source: 0,\n minChars: 3,\n delay: 150,\n offsetLeft: 0,\n offsetTop: 1,\n cache: 1,\n menuClass: '',\n renderItem: function (item, search){\n // escape special characters\n search = search.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n var re = new RegExp(\"(\" + search.split(' ').join('|') + \")\", \"gi\");\n return '<div class=\"autocomplete-suggestion\" data-val=\"' + item + '\">' + item.replace(re, \"<b>$1</b>\") + '</div>';\n },\n onSelect: function(e, term, item){}\n };\n for (var k in options) { if (options.hasOwnProperty(k)) o[k] = options[k]; }\n\n // init\n var elems = typeof o.selector == 'object' ? [o.selector] : document.querySelectorAll(o.selector);\n for (var i=0; i<elems.length; i++) {\n var that = elems[i];\n\n // create suggestions container \"sc\"\n that.sc = document.createElement('div');\n that.sc.className = 'autocomplete-suggestions '+o.menuClass;\n\n that.autocompleteAttr = that.getAttribute('autocomplete');\n that.setAttribute('autocomplete', 'off');\n that.cache = {};\n that.last_val = '';\n\n that.updateSC = function(resize, next){\n var rect = that.getBoundingClientRect();\n that.sc.style.left = Math.round(rect.left + (window.pageXOffset || document.documentElement.scrollLeft) + o.offsetLeft) + 'px';\n that.sc.style.top = Math.round(rect.bottom + (window.pageYOffset || document.documentElement.scrollTop) + o.offsetTop) + 'px';\n that.sc.style.width = Math.round(rect.right - rect.left) + 'px'; // outerWidth\n if (!resize) {\n that.sc.style.display = 'block';\n that.sc.classList.remove('hide')\n if (!that.sc.maxHeight) { that.sc.maxHeight = parseInt((window.getComputedStyle ? getComputedStyle(that.sc, null) : that.sc.currentStyle).maxHeight); }\n if (!that.sc.suggestionHeight) that.sc.suggestionHeight = that.sc.querySelector('.autocomplete-suggestion').offsetHeight;\n if (that.sc.suggestionHeight)\n if (!next) that.sc.scrollTop = 0;\n else {\n var scrTop = that.sc.scrollTop, selTop = next.getBoundingClientRect().top - that.sc.getBoundingClientRect().top;\n if (selTop + that.sc.suggestionHeight - that.sc.maxHeight > 0)\n that.sc.scrollTop = selTop + that.sc.suggestionHeight + scrTop - that.sc.maxHeight;\n else if (selTop < 0)\n that.sc.scrollTop = selTop + scrTop;\n }\n }\n }\n addEvent(window, 'resize', that.updateSC);\n document.body.appendChild(that.sc);\n\n live('autocomplete-suggestion', 'mouseleave', function(e){\n var sel = that.sc.querySelector('.autocomplete-suggestion.selected');\n if (sel) setTimeout(function(){ sel.className = sel.className.replace('selected', ''); }, 20);\n }, that.sc);\n\n live('autocomplete-suggestion', 'mouseover', function(e){\n var sel = that.sc.querySelector('.autocomplete-suggestion.selected');\n if (sel) sel.className = sel.className.replace('selected', '');\n this.className += ' selected';\n }, that.sc);\n\n live('autocomplete-suggestion', 'mousedown', function(e){\n if (hasClass(this, 'autocomplete-suggestion')) { // else outside click\n var v = this.getAttribute('data-val');\n that.value = v;\n o.onSelect(e, v, this);\n that.sc.style.display = 'none';\n that.sc.classList.add(\"hide\");\n\n }\n }, that.sc);\n\n that.blurHandler = function(){\n try { var over_sb = document.querySelector('.autocomplete-suggestions:hover'); } catch(e){ var over_sb = 0; }\n if (!over_sb) {\n that.last_val = that.value;\n that.sc.style.display = 'none';\n that.sc.classList.add(\"hide\");\n setTimeout(function(){\n that.sc.style.display = 'none';\n that.sc.classList.add(\"hide\");\n }, 350); // hide suggestions on fast input\n } else if (that !== document.activeElement) setTimeout(function(){ that.focus(); }, 20);\n };\n addEvent(that, 'blur', that.blurHandler);\n\n var suggest = function(data, val){\n if (!val) {\n var val = that.value;\n }\n that.cache[val] = data;\n if (data.length && val.length >= o.minChars) {\n var s = '';\n for (var i=0;i<data.length;i++) s += o.renderItem(data[i], val);\n that.sc.innerHTML = s;\n that.updateSC(0);\n }\n else {\n that.sc.style.display = 'none';\n that.sc.classList.add(\"hide\");\n }\n }\n\n that.keydownHandler = function(e){\n var key = window.event ? e.keyCode : e.which;\n // down (40), up (38)\n if ((key == 40 || key == 38) && that.sc.innerHTML) {\n var next, sel = that.sc.querySelector('.autocomplete-suggestion.selected');\n if (!sel) {\n next = (key == 40) ? that.sc.querySelector('.autocomplete-suggestion') : that.sc.childNodes[that.sc.childNodes.length - 1]; // first : last\n next.className += ' selected';\n that.value = next.getAttribute('data-val');\n } else {\n next = (key == 40) ? sel.nextSibling : sel.previousSibling;\n if (next) {\n sel.className = sel.className.replace('selected', '');\n next.className += ' selected';\n that.value = next.getAttribute('data-val');\n }\n else { sel.className = sel.className.replace('selected', ''); that.value = that.last_val; next = 0; }\n }\n that.updateSC(0, next);\n return false;\n }\n // esc\n else if (key == 27) {\n that.value = that.last_val;\n that.sc.style.display = 'none';\n that.sc.classList.add(\"hide\");\n }\n // enter\n else if (key == 13 || key == 9) {\n if (that.sc.style.display !== 'none') {\n e.preventDefault();\n }\n var sel = that.sc.querySelector('.autocomplete-suggestion.selected');\n if (sel && that.sc.style.display != 'none') {\n o.onSelect(e, sel.getAttribute('data-val'), sel);\n setTimeout(function(){\n that.sc.style.display = 'none';\n that.sc.classList.add(\"hide\");\n }, 20); }\n }\n };\n addEvent(that, 'keydown', that.keydownHandler);\n\n that.keyupHandler = function(e){\n var key = window.event ? e.keyCode : e.which;\n if (!key || (key < 35 || key > 40) && key != 13 && key != 27) {\n var val = that.value;\n if (val.length >= o.minChars) {\n if (val != that.last_val) {\n that.last_val = val;\n clearTimeout(that.timer);\n if (o.cache) {\n if (val in that.cache) { suggest(that.cache[val]); return; }\n // no requests if previous suggestions were empty\n for (var i=1; i<val.length-o.minChars; i++) {\n var part = val.slice(0, val.length-i);\n if (part in that.cache && !that.cache[part].length) { suggest([]); return; }\n }\n }\n that.timer = setTimeout(function(){ o.source(val, suggest) }, o.delay);\n }\n } else {\n that.last_val = val;\n that.sc.style.display = 'none';\n that.sc.classList.add(\"hide\");\n }\n }\n };\n addEvent(that, 'keyup', that.keyupHandler);\n\n that.focusHandler = function(e){\n that.last_val = '\\n';\n that.keyupHandler(e)\n };\n if (!o.minChars) addEvent(that, 'focus', that.focusHandler);\n }\n\n // public destroy method\n this.destroy = function(){\n for (var i=0; i<elems.length; i++) {\n var that = elems[i];\n removeEvent(window, 'resize', that.updateSC);\n removeEvent(that, 'blur', that.blurHandler);\n removeEvent(that, 'focus', that.focusHandler);\n removeEvent(that, 'keydown', that.keydownHandler);\n removeEvent(that, 'keyup', that.keyupHandler);\n if (that.autocompleteAttr)\n that.setAttribute('autocomplete', that.autocompleteAttr);\n else\n that.removeAttribute('autocomplete');\n document.body.removeChild(that.sc);\n that = null;\n }\n };\n }\n return autoComplete;\n})();\n\n(function(){\n if (typeof define === 'function' && define.amd)\n define('autoComplete', function () { return autoComplete; });\n else if (typeof module !== 'undefined' && module.exports)\n module.exports = autoComplete;\n else\n window.autoComplete = autoComplete;\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 { HTMLWidget } from \"@hpcc-js/common\";\nimport * as AutoComplete from \"javascript-autocomplete\";\n\nimport \"../src/AutoCompleteText.css\";\n\nexport class AutoCompleteText extends HTMLWidget {\n _span;\n _prompt;\n _input;\n _prevMinCharsText;\n _autoComplete;\n\n constructor() {\n super();\n this._tag = \"div\";\n }\n\n autoCompleteTextData() {\n if (this.data().length === 0) return [];\n const view = this._db.rollupView([this.textColumn(), this.valueColumn()]);\n return view.entries().map(function (row, idx) {\n return {\n idx,\n text: row.key,\n value: row.values.length ? row.values[0].key : \"\",\n origRow: row.values.length && row.values[0].value.length ? row.values[0].value[0] : []\n };\n }, this);\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._span = element.append(\"span\");\n this._prompt = this._span.append(\"label\")\n .attr(\"for\", this.id() + \"_input\")\n ;\n this._input = this._span.append(\"input\")\n .attr(\"id\", this.id() + \"_input\")\n .attr(\"name\", this.id() + \"_input_name\")\n .attr(\"type\", \"text\")\n .attr(\"placeholder\", this.placeholder())\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n this._prompt.text(this.label());\n this._input.style(\"width\", this.textboxWidth_exists() ? this.textboxWidth() + \"px\" : null);\n\n if (this._prevMinCharsText !== this.minCharsText()) {\n this._prevMinCharsText = this.minCharsText();\n\n if (this._autoComplete) {\n this._autoComplete.destroy();\n }\n const context = this;\n this._autoComplete = new AutoComplete({\n selector: \"#\" + this.id() + \"_input\",\n minChars: this.minCharsText(),\n delay: 150,\n offsetLeft: 0,\n offsetTop: 1,\n source: (term, suggest) => {\n const field = context._db.fieldByLabel(context.textColumn());\n if (field) {\n term = term.toLowerCase();\n const suggestions = context.autoCompleteTextData().filter(function (row) {\n return row.origRow[field.idx].toLowerCase().indexOf(term) >= 0;\n }).map(function (row) {\n return {\n text: row.origRow[field.idx],\n rowIdx: row.idx\n };\n });\n suggest(suggestions);\n }\n },\n renderItem: (item, search) => {\n search = search.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n const re = new RegExp(\"(\" + search.split(\" \").join(\"|\") + \")\", \"gi\");\n return '<div class=\"autocomplete-suggestion\" data-val=\"' + item.text + '\" data-row-idx=\"' + item.rowIdx + '\">' + item.text.replace(re, \"<b>$1</b>\") + \"</div>\";\n },\n onSelect: (e, term, item) => {\n const rowIdx = +item.getAttribute(\"data-row-idx\");\n const row = context.autoCompleteTextData()[rowIdx];\n context.click(context.rowToObj(row.origRow), context.valueColumn(), true);\n }\n });\n }\n }\n\n exit(domNode, element) {\n if (this._autoComplete) {\n this._autoComplete.destroy();\n }\n this._span.remove();\n super.exit(domNode, element);\n }\n\n click(row, column, selected) {\n }\n\n label: { (): string; (_: string): AutoCompleteText };\n label_exists: () => boolean;\n textboxWidth: { (): number; (_: number): AutoCompleteText };\n textboxWidth_exists: () => boolean;\n placeholder: { (): string; (_: string): AutoCompleteText };\n placeholder_exists: () => boolean;\n valueColumn: { (): string; (_: string): AutoCompleteText };\n valueColumn_exists: () => boolean;\n textColumn: { (): string; (_: string): AutoCompleteText };\n textColumn_exists: () => boolean;\n minCharsText: { (): number; (_: number): AutoCompleteText };\n minCharsText_exists: () => boolean;\n}\nAutoCompleteText.prototype._class += \" other_AutoCompleteText\";\n\nAutoCompleteText.prototype.publish(\"label\", \"Label: \", \"string\", \"Label for AutoCompleteText\");\nAutoCompleteText.prototype.publish(\"textboxWidth\", null, \"number\", \"width of textbox\", null, { optional: true });\nAutoCompleteText.prototype.publish(\"placeholder\", \"Search...\", \"string\", \"Placeholder for AutoCompleteText\");\nAutoCompleteText.prototype.publish(\"valueColumn\", null, \"set\", \"Select column for autocomplete\", function () { return this.columns(); }, { optional: true });\nAutoCompleteText.prototype.publish(\"textColumn\", null, \"set\", \"Select value(s)\", function () { return this.columns(); }, { optional: true });\nAutoCompleteText.prototype.publish(\"minCharsText\", 1, \"number\", \"Size of multiAutoCompleteText box\");\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import { HTMLWidget, Palette, Utility } from \"@hpcc-js/common\";\nimport { extent as d3Extent, range as d3Range } from \"d3-array\";\nimport { map as d3Map } from \"d3-collection\";\nimport { format as d3Format } from \"d3-format\";\nimport { select as d3Select } from \"d3-selection\";\nimport { timeDays as d3TimeDays, timeMonths as d3TimeMonths, timeWeek as d3TimeWeek, timeYear as d3TimeYear } from \"d3-time\";\nimport { timeParse as d3TimeParse } from \"d3-time-format\";\n\nimport \"../src/CalendarHeatMap.css\";\n\nexport class CalendarHeatMap extends HTMLWidget {\n _prevDateColumn;\n _prevAggrType;\n _prevAggrColumn;\n _prevAggrDeltaColumn;\n _view;\n _parentNode;\n\n constructor() {\n super();\n\n Utility.SimpleSelectionMixin.call(this);\n }\n\n calendarData() {\n if (this.fields().length === 0 || this.data().length === 0) {\n return [];\n }\n const dateParser = d3TimeParse(this.datePattern());\n const valueFormatter = this.aggrDeltaColumn() ? d3Format(\".1%\") : d3Format(\"s\");\n if (this._prevDateColumn !== this.dateColumn() ||\n this._prevAggrType !== this.aggrType() ||\n this._prevAggrColumn !== this.aggrColumn() ||\n this._prevAggrDeltaColumn !== this.aggrDeltaColumn()) {\n this._prevDateColumn = this.dateColumn();\n this._prevAggrType = this.aggrType();\n this._prevAggrColumn = this.aggrColumn();\n this._prevAggrDeltaColumn = this.aggrDeltaColumn();\n this._view = this._db.aggregateView([this.dateColumn()], this.aggrType(), this.aggrColumn(), this.aggrDeltaColumn());\n }\n return this._view.entries().map(function (row) {\n row.dateKey = dateParser(row.key);\n row.formattedValues = valueFormatter(row.value.aggregate);\n row.origRows = row.value;\n return row;\n });\n }\n\n calcDelta(row) {\n return (row.Close - row.Open) / row.Open;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n d3Select(domNode.parentNode)\n .style(\"overflow-y\", \"scroll\")\n .style(\"overflow-x\", \"hidden\")\n .style(\"height\", \"100%\")\n .style(\"width\", \"100%\")\n ;\n this._selection.widgetElement(element);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n this._palette = this._palette.switch(this.paletteID());\n\n const width = this.width();\n const cellSize = (width / 12) / 5;\n const height = cellSize * 8;\n\n const data = this.calendarData();\n const mappedData = d3Map(data, function (d: any) { return d.dateKey; });\n const dateExtent = d3Extent(data, function (d: any) {\n return d.dateKey.getFullYear();\n });\n const context = this;\n const svg = element.selectAll(\"svg\").data(d3Range(+dateExtent[0], +dateExtent[1] + 1));\n const svgUpdate = svg.enter().append(\"svg\")\n .each(function (d) {\n const svgElement = d3Select(this);\n const g = svgElement.append(\"g\");\n g.append(\"text\")\n .style(\"text-anchor\", \"middle\")\n ;\n g.append(\"g\")\n .attr(\"class\", \"days\")\n ;\n\n const _d3TimeMonths = d3TimeMonths(new Date(d, 0, 1), new Date(d + 1, 0, 1));\n const _months = g.append(\"g\").attr(\"class\", \"months\");\n _d3TimeMonths.forEach(function (_m) {\n _months.append(\"path\")\n .attr(\"class\", \"month\")\n .attr(\"d\", calcMonthPath(_m))\n .style(\"stroke\", context.monthStrokeColor())\n .style(\"stroke-width\", context.monthStrokeWidth())\n ;\n });\n })\n .merge(svg)\n .attr(\"width\", width)\n .attr(\"height\", height)\n ;\n svgUpdate.select(\"g\")\n .attr(\"transform\", \"translate(\" + ((width - cellSize * 53) / 2) + \",\" + (height - cellSize * 7 - 1) + \")\")\n ;\n svgUpdate.select(\"text\")\n .attr(\"transform\", \"translate(-6,\" + cellSize * 3.5 + \")rotate(-90)\")\n .text(d => d)\n ;\n svg.exit().remove();\n\n let dataExtent: [any, any] = d3Extent<number>(data, function (d: any) {\n return d.value.aggregate;\n });\n if (this.aggrDeltaColumn()) {\n const max = Math.max(Math.abs(+dataExtent[0]), Math.abs(+dataExtent[1]));\n dataExtent = [-max, max];\n }\n const dayRect = svgUpdate.select(\".days\").selectAll(\".day\").data(function (d) { return d3TimeDays(new Date(d, 0, 1), new Date(d + 1, 0, 1)); });\n const dayRectUpdate = dayRect.enter().append(\"rect\")\n .attr(\"class\", \"day\")\n .call(this._selection.enter.bind(this._selection))\n .on(\"click\", function (d) {\n const data2 = mappedData.get(d);\n if (data2 && data2.value && data2.value && data2.value.length) {\n context.click(context.rowToObj(data2.value[0]), context.dateColumn(), context._selection.selected(this));\n }\n })\n .on(\"dblclick\", function (d) {\n const data2 = mappedData.get(d);\n if (data2 && data2.value && data2.value && data2.value.length) {\n context.dblclick(context.rowToObj(data2.value[0]), context.dateColumn(), context._selection.selected(this));\n }\n }).each(function (d) {\n const dayRectElement = d3Select(this);\n dayRectElement.append(\"title\");\n })\n .merge(dayRect)\n .attr(\"x\", function (d) { return d3TimeWeek.count(d3TimeYear(d), d) * cellSize; })\n .attr(\"y\", function (d) { return d.getDay() * cellSize; })\n .attr(\"width\", cellSize)\n .attr(\"height\", cellSize)\n .style(\"stroke\", this.dayStrokeColor())\n .style(\"stroke-width\", this.dayStrokeWidth())\n .style(\"fill\", null)\n ;\n dayRectUpdate.select(\"title\")\n .text(d => d)\n ;\n dayRectUpdate.filter(function (d) { return mappedData.has(d); })\n .style(\"fill\", function (d) {\n const row = mappedData.get(d);\n if (!row || !row.value || !row.value.aggregate) {\n return null;\n }\n return context._palette(row.value.aggregate, dataExtent[0], dataExtent[1]);\n })\n .select(\"title\")\n .text(function (d) {\n const data2 = mappedData.get(d);\n return data2.key + \": \" + data2.formattedValues;\n })\n ;\n dayRect.exit().remove();\n\n const monthPath = svg.select(\".months\").selectAll(\".month\").data(function (d) { return d3TimeMonths(new Date(d, 0, 1), new Date(d + 1, 0, 1)); });\n monthPath.enter().append(\"path\")\n .attr(\"class\", \"month\")\n .merge(monthPath)\n .attr(\"d\", calcMonthPath)\n .style(\"stroke\", this.monthStrokeColor())\n .style(\"stroke-width\", this.monthStrokeWidth())\n ;\n monthPath.exit().remove();\n\n function calcMonthPath(t0) {\n const t1 = new Date(t0.getFullYear(), t0.getMonth() + 1, 0);\n const d0 = t0.getDay();\n const w0 = d3TimeWeek.count(d3TimeYear(t0), t0);\n const d1 = t1.getDay();\n const w1 = d3TimeWeek.count(d3TimeYear(t1), t1);\n return \"M\" + (w0 + 1) * cellSize + \",\" + d0 * cellSize +\n \"H\" + w0 * cellSize + \"V\" + 7 * cellSize +\n \"H\" + w1 * cellSize + \"V\" + (d1 + 1) * cellSize +\n \"H\" + (w1 + 1) * cellSize + \"V\" + 0 +\n \"H\" + (w0 + 1) * cellSize + \"Z\";\n }\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n\n // Events ---\n click(row, column, selected) {\n }\n\n dblclick(row, column, selected) {\n }\n\n _palette;\n paletteID: { (): string; (_: string): CalendarHeatMap };\n paletteID_exists: () => boolean;\n dateColumn: { (): string; (_: string): CalendarHeatMap };\n dateColumn_exists: () => boolean;\n datePattern: { (): string; (_: string): CalendarHeatMap };\n datePattern_exists: () => boolean;\n aggrType: { (): string; (_: string): CalendarHeatMap };\n aggrType_exists: () => boolean;\n aggrColumn: { (): string; (_: string): CalendarHeatMap };\n aggrColumn_exists: () => boolean;\n aggrDeltaColumn: { (): string; (_: string): CalendarHeatMap };\n aggrDeltaColumn_exists: () => boolean;\n\n // SimpleSelectionMixin\n _selection;\n}\nCalendarHeatMap.prototype._class += \" other_CalendarHeatMap\";\nCalendarHeatMap.prototype.mixin(Utility.SimpleSelectionMixin);\nCalendarHeatMap.prototype._palette = Palette.rainbow(\"default\");\n\nexport interface CalendarHeatMap {\n dayStrokeColor(): string;\n dayStrokeColor(_: string): this;\n monthStrokeColor(): string;\n monthStrokeColor(_: string): this;\n dayStrokeWidth(): number;\n dayStrokeWidth(_: number): this;\n monthStrokeWidth(): number;\n monthStrokeWidth(_: number): this;\n}\nCalendarHeatMap.prototype.publish(\"paletteID\", \"YlOrRd\", \"set\", \"Color palette for this widget\", CalendarHeatMap.prototype._palette.switch(), { tags: [\"Basic\", \"Shared\"] });\nCalendarHeatMap.prototype.publish(\"dayStrokeColor\", \"#ccc\", \"html-color\", \"Color of day border\");\nCalendarHeatMap.prototype.publish(\"monthStrokeColor\", \"#000\", \"html-color\", \"Color of month border\");\nCalendarHeatMap.prototype.publish(\"dayStrokeWidth\", 1, \"number\", \"Pixel width of day border\");\nCalendarHeatMap.prototype.publish(\"monthStrokeWidth\", 2, \"number\", \"Pixel width of month border\");\nCalendarHeatMap.prototype.publish(\"dateColumn\", null, \"set\", \"Date Column\", function () { return this.columns(); }, { optional: true });\nCalendarHeatMap.prototype.publish(\"datePattern\", \"%Y-%m-%d\", \"string\", \"Date Pattern\");\nCalendarHeatMap.prototype.publish(\"aggrType\", null, \"set\", \"Aggregation Type\", [null, \"mean\", \"median\", \"sum\", \"min\", \"max\"], { optional: true });\nCalendarHeatMap.prototype.publish(\"aggrColumn\", null, \"set\", \"Aggregation Field\", function () { return this.columns(); }, { optional: true, disable: (w) => !w.aggrType() });\nCalendarHeatMap.prototype.publish(\"aggrDeltaColumn\", null, \"set\", \"Aggregation Field\", function () { return this.columns(); }, { optional: true, disable: (w) => !w.aggrType() });\n","import { Utility } from \"@hpcc-js/common\";\n\nconst TIMEOUT_DEFAULT = 60;\nfunction espValFix(val) {\n if (val === undefined || val === null) {\n return null;\n }\n if (!val.trim) {\n if (val.Row) {\n return espRowFix(val.Row);\n }\n return val;\n }\n const retVal = val.trim();\n if (retVal !== \"\" && !isNaN(retVal)) {\n if (retVal.length <= 1 || retVal[0] !== \"0\" || retVal[1] === \".\") {\n return Number(retVal);\n }\n }\n return retVal;\n}\n\nfunction espRowFix(row) {\n for (const key in row) {\n row[key] = espValFix(row[key]);\n }\n return row;\n}\n\nexport class ESPUrl {\n protected _protocol = \"http:\";\n protected _hostname = \"localhost\";\n protected _url;\n protected _port;\n protected _search;\n protected _pathname;\n protected _params;\n protected _hash;\n protected _host;\n\n constructor() {\n }\n\n url(_: string): this;\n url(): string;\n url(_?): string | this {\n if (!arguments.length) return this._url;\n this._url = _;\n const parser = document.createElement(\"a\");\n parser.href = this._url;\n // eslint-disable-next-line no-self-assign\n parser.href = parser.href; // This fixes an IE9/IE10 DOM value issue\n\n const params = {};\n if (parser.search.length) {\n let tmp: any = parser.search;\n if (tmp[0] === \"?\") {\n tmp = tmp.substring(1);\n }\n tmp = tmp.split(\"&\");\n tmp.map(function (item) {\n const tmpItem = item.split(\"=\");\n params[decodeURIComponent(tmpItem[0])] = decodeURIComponent(tmpItem[1]);\n });\n }\n this._protocol = parser.protocol;\n this._hostname = parser.hostname;\n this._port = parser.port;\n this._pathname = parser.pathname;\n while (this._pathname.length && this._pathname[0] === \"/\") {\n this._pathname = this._pathname.substring(1);\n }\n this._search = parser.search;\n this._params = params;\n this._hash = parser.hash;\n this._host = parser.host;\n\n return this;\n }\n\n protocol(_: string): this;\n protocol(): string;\n protocol(_?: string): string | this {\n if (!arguments.length) return this._protocol;\n this._protocol = _;\n return this;\n }\n\n hostname(_: string): this;\n hostname(): string;\n hostname(_?: string): string | this {\n if (!arguments.length) return this._hostname;\n this._hostname = _;\n return this;\n }\n\n port(_: string): this;\n port(): string;\n port(_?: string) {\n if (!arguments.length) return this._port;\n this._port = _;\n return this;\n }\n\n search(_: string): this;\n search(): string;\n search(_?: string) {\n if (!arguments.length) return this._search;\n this._search = _;\n return this;\n }\n\n pathname(_: string): this;\n pathname(): string;\n pathname(_?: string) {\n if (!arguments.length) return this._pathname;\n this._pathname = _;\n return this;\n }\n\n hash(_: string): this;\n hash(): string;\n hash(_?: string) {\n if (!arguments.length) return this._hash;\n this._hash = _;\n return this;\n }\n\n host(_: string): this;\n host(): string;\n host(_?: string) {\n if (!arguments.length) return this._host;\n this._host = _;\n return this;\n }\n\n params(_: string): this;\n params(): string;\n params(_?: string) {\n if (!arguments.length) return this._params;\n this._params = _;\n return this;\n }\n\n param(key: string) {\n return this._params[key];\n }\n\n isWsWorkunits() {\n return this._pathname.toLowerCase().indexOf(\"wsworkunits\") >= 0 || this._params[\"Wuid\"];\n }\n\n isWorkunitResult() {\n return this.isWsWorkunits() && (this._params[\"Sequence\"] || this._params[\"ResultName\"]);\n }\n\n isWsEcl() {\n return this._pathname.toLowerCase().indexOf(\"wsecl\") >= 0 || (this._params[\"QuerySetId\"] && this._params[\"Id\"]);\n }\n\n isWsWorkunits_GetStats() {\n return this._pathname.toLowerCase().indexOf(\"wsworkunits/wugetstats\") >= 0 && this._params[\"WUID\"];\n }\n\n getUrl(overrides) {\n overrides = overrides || {};\n return (overrides.protocol !== undefined ? overrides.protocol : this._protocol) + \"//\" +\n (overrides.hostname !== undefined ? overrides.hostname : this._hostname) + \":\" +\n (overrides.port !== undefined ? overrides.port : this._port) + \"/\" +\n (overrides.pathname !== undefined ? overrides.pathname : this._pathname);\n }\n}\n\nexport function ESPMappings(mappings) {\n this._mappings = mappings;\n this._reverseMappings = {};\n for (const resultName in this._mappings) {\n this._reverseMappings[resultName] = {};\n for (const key in this._mappings[resultName]) {\n this._reverseMappings[resultName][this._mappings[resultName][key]] = key;\n }\n }\n}\n\nESPMappings.prototype.contains = function (resultName, origField) {\n return Utility.exists(resultName + \".\" + origField, this._mappings);\n};\n\nESPMappings.prototype.mapResult = function (response, resultName) {\n const mapping = this._mappings[resultName];\n if (mapping) {\n response[resultName] = response[resultName].map(function (item) {\n let row = [];\n if (mapping.x && mapping.x instanceof Array) {\n // LINE Mapping ---\n row = [];\n for (let i = 0; i < mapping.x.length; ++i) {\n row.push(item[mapping.y[i]]);\n }\n } else {\n // Regular Mapping ---\n for (const key in mapping) {\n if (mapping[key] === \"label\") {\n row[0] = item[key];\n } else if (mapping[key] === \"weight\") {\n row[1] = item[key];\n }\n }\n }\n return row;\n }, this);\n }\n};\n\nESPMappings.prototype.mapResponse = function (response) {\n for (const key in response) {\n this.mapResult(response, key);\n }\n};\n\nconst serialize = function (obj) {\n const str = [];\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n const val = obj[key];\n if (val !== undefined && val !== null) {\n str.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(val));\n }\n }\n }\n return str.join(\"&\");\n};\n\nlet jsonp = function (url, request, timeout) {\n return new Promise(function (resolve, reject) {\n let respondedTimeout = timeout * 1000;\n const respondedTick = 5000;\n const callbackName = \"jsonp_callback_\" + Math.round(Math.random() * 999999);\n window[callbackName] = function (response) {\n respondedTimeout = 0;\n doCallback();\n resolve(response);\n };\n const script = document.createElement(\"script\");\n script.src = url + (url.indexOf(\"?\") >= 0 ? \"&\" : \"?\") + \"jsonp=\" + callbackName + \"&\" + serialize(request);\n document.body.appendChild(script);\n const progress = setInterval(function () {\n if (respondedTimeout <= 0) {\n clearInterval(progress);\n } else {\n respondedTimeout -= respondedTick;\n if (respondedTimeout <= 0) {\n clearInterval(progress);\n doCallback();\n reject(Error(\"Request timeout: \" + script.src));\n }\n }\n }, respondedTick);\n\n function doCallback() {\n delete window[callbackName];\n document.body.removeChild(script);\n }\n });\n};\n\nexport class Comms extends ESPUrl {\n protected _proxyMappings;\n protected _mappings;\n protected _timeout;\n protected _hipieResults;\n protected _hipieResultsLength;\n\n constructor() {\n super();\n this._proxyMappings = {};\n this._mappings = new ESPMappings({});\n this._timeout = TIMEOUT_DEFAULT;\n this._hipieResults = {};\n }\n\n hipieResults(_) {\n if (!arguments.length) return this._hipieResults;\n this._hipieResultsLength = 0;\n this._hipieResults = {};\n const context = this;\n _.forEach(function (item) {\n context._hipieResultsLength++;\n context._hipieResults[item.id] = item;\n });\n return this;\n }\n\n jsonp(url, request) {\n for (const key in this._proxyMappings) {\n const newUrlParts = url.split(key);\n const newUrl = newUrlParts[0];\n if (newUrlParts.length > 1) {\n const espUrl = new ESPUrl()\n .url(url)\n ;\n url = newUrl + this._proxyMappings[key];\n request.IP = espUrl.hostname();\n request.PORT = espUrl.port();\n if (newUrlParts.length > 0) {\n request.PATH = newUrlParts[1];\n }\n break;\n }\n }\n return jsonp(url, request, this.timeout());\n }\n\n ajax(method, url, request?) {\n return new Promise(function (resolve, reject) {\n let uri = url;\n if (method === \"GET\" && request) {\n uri += \"?\" + serialize(request);\n }\n const xhr: any = new XMLHttpRequest();\n xhr.onload = function (e) {\n if (this.status >= 200 && this.status < 300) {\n resolve(JSON.parse(this.response));\n } else {\n reject(Error(this.statusText));\n }\n };\n xhr.onerror = function () {\n reject(Error(this.statusText));\n };\n xhr.open(method, uri);\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n if (method === \"GET\") {\n xhr.send();\n } else {\n xhr.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\n xhr.send(serialize(request));\n }\n });\n }\n\n get(url, request?) {\n return this.ajax(\"GET\", url, request);\n }\n\n post(url, request) {\n return this.ajax(\"POST\", url, request);\n }\n\n mappings(_?) {\n if (!arguments.length) return this._mappings;\n this._mappings = new ESPMappings(_);\n return this;\n }\n\n proxyMappings(_?) {\n if (!arguments.length) return this._proxyMappings;\n this._proxyMappings = _;\n return this;\n }\n\n timeout(_?) {\n if (!arguments.length) return this._timeout;\n this._timeout = _ || TIMEOUT_DEFAULT;\n return this;\n }\n}\n\nexport class Basic extends Comms {\n\n protected _cacheCalls;\n\n constructor() {\n super();\n }\n\n cacheCalls(_?) {\n if (!arguments.length) return this._cacheCalls;\n this._cacheCalls = _;\n return this;\n }\n\n call(request, callback) {\n const url = this._url + (this._url.indexOf(\"?\") >= 0 ? \"&\" : \"?\") + serialize(request);\n if (this._cacheCalls) {\n const context = this;\n return new Promise(function (resolve, reject) {\n const response = JSON.parse(localStorage.getItem(\"hpcc.viz.\" + url));\n if (!response) {\n throw Error(\"not cached\");\n }\n if (callback) {\n console.error(\"Deprecated: callback, use promise (Basic.prototype.call)\");\n callback(response);\n }\n resolve(response);\n }).catch(function (response) {\n return context.get(url).then(function (response2) {\n localStorage.setItem(\"hpcc.viz.\" + url, JSON.stringify(response2));\n if (callback) {\n console.error(\"Deprecated: callback, use promise (Basic.prototype.call)\");\n callback(response2);\n }\n return response2;\n });\n });\n } else {\n localStorage.removeItem(\"hpcc.viz.\" + url);\n return this.get(url).then(function (response) {\n if (callback) {\n console.error(\"Deprecated: callback, use promise (Basic.prototype.call)\");\n callback(response);\n }\n return response;\n });\n }\n }\n}\n\nfunction locateRoxieResponse(response): object {\n // v5 and v6 compatible ---\n for (const key in response) {\n if (response[key].Row && response[key].Row instanceof Array) {\n return response;\n }\n let retVal;\n if (typeof (response[key]) !== \"string\") {\n retVal = locateRoxieResponse(response[key]);\n }\n if (retVal) {\n return retVal;\n }\n }\n return null;\n}\n\nfunction locateRoxieException(response) {\n for (const key in response) {\n if (response[key].Exception && response[key].Exception instanceof Array) {\n return response[key];\n }\n const retVal = locateRoxieException(response[key]);\n if (retVal) {\n return retVal;\n }\n }\n return null;\n}\n\nexport class WsECL extends Comms {\n\n protected _target;\n protected _query;\n\n constructor() {\n super();\n\n this._port = \"8002\";\n this._target = \"\";\n this._query = \"\";\n }\n\n url(_?) {\n const retVal = super.url.apply(this, arguments);\n if (arguments.length) {\n // http://localhost:8010/esp/files/stub.htm?QuerySetId=roxie&Id=stock.3&Widget=QuerySetDetailsWidget\n this._port = this._port === \"8010\" ? \"8002\" : this._port; // Need a better way ---\n for (const key in this._params) {\n switch (key) {\n case \"QuerySetId\":\n this.target(this._params[key]);\n break;\n case \"Id\":\n this.query(this._params[key]);\n break;\n }\n }\n\n let pathParts;\n let queryParts;\n if (!this._target || !this._query) {\n // http://localhost:8002/WsEcl/forms/default/query/roxie/wecare\n pathParts = this._pathname.split(\"/query/\");\n if (pathParts.length >= 2) {\n queryParts = pathParts[1].split(\"/\");\n if (queryParts.length >= 2) {\n this.target(queryParts[0]);\n this.query(queryParts[1]);\n }\n }\n }\n }\n return retVal;\n }\n\n target(_?) {\n if (!arguments.length) return this._target;\n this._target = _;\n return this;\n }\n\n query(_?) {\n if (!arguments.length) return this._query;\n this._query = _;\n return this;\n }\n\n constructUrl() {\n return Comms.prototype.getUrl.call(this, {\n pathname: \"WsEcl/submit/query/\" + this._target + \"/\" + this._query + \"/json\"\n });\n }\n\n call(target, request, callback) {\n target = target || {};\n target.target = target.target || this._target;\n target.query = target.query || this._query;\n const context = this;\n const url = this.getUrl({\n pathname: \"WsEcl/submit/query/\" + target.target + \"/\" + target.query + \"/json\"\n });\n return this.jsonp(url, request).then(function (response: any) {\n let _response = locateRoxieResponse(response);\n if (!_response) {\n _response = locateRoxieException(response);\n }\n response = _response;\n\n // Check for exceptions\n if (response.Exception) {\n throw Error(response.Exception.reduce(function (previousValue, exception, index, array) {\n if (previousValue.length) {\n previousValue += \"\\n\";\n }\n return previousValue + exception.Source + \" \" + exception.Code + \": \" + exception.Message;\n }, \"\"));\n }\n // Remove \"response.result.Row\"\n for (const key in response) {\n if (response[key].Row) {\n response[key] = response[key].Row.map(espRowFix);\n }\n }\n context._mappings.mapResponse(response);\n if (callback) {\n console.error(\"Deprecated: callback, use promise (WsECL.prototype.call)\");\n callback(response);\n }\n return response;\n });\n }\n\n send(request, callback) {\n return this.call({ target: this._target, query: this._query }, request, callback);\n }\n}\n\nexport class WsWorkunits extends Comms {\n\n protected _wuid = \"\";\n protected _jobname = \"\";\n protected _sequence = null;\n protected _resultName = null;\n\n protected _fetchResultNamesPromise = null;\n protected _fetchResultPromise = {};\n protected _resultNameCache = {};\n protected _resultNameCacheCount = 0;\n protected _total;\n\n constructor() {\n super();\n this._port = \"8010\";\n }\n\n url(_?) {\n const retVal = Comms.prototype.url.apply(this, arguments);\n if (arguments.length) {\n // http://localhost:8010/WsWorkunit/WuResult?Wuid=xxx&ResultName=yyy\n for (const key in this._params) {\n switch (key) {\n case \"Wuid\":\n this.wuid(this._params[key]);\n break;\n case \"ResultName\":\n this.resultName(this._params[key]);\n break;\n case \"Sequence\":\n this.sequence(this._params[key]);\n break;\n }\n }\n if (!this._wuid) {\n // http://localhost:8010/WsWorkunits/res/W20140922-213329/c:/temp/index.html\n const urlParts = this._url.split(\"/res/\");\n if (urlParts.length >= 2) {\n const urlParts2 = urlParts[1].split(\"/\");\n this.wuid(urlParts2[0]);\n }\n }\n }\n return retVal;\n }\n\n wuid(_?) {\n if (!arguments.length) return this._wuid;\n this._wuid = _;\n return this;\n }\n\n jobname(_?) {\n if (!arguments.length) return this._jobname;\n this._jobname = _;\n return this;\n }\n\n sequence(_?) {\n if (!arguments.length) return this._sequence;\n this._sequence = _;\n return this;\n }\n\n resultName(_?) {\n if (!arguments.length) return this._resultName;\n this._resultName = _;\n return this;\n }\n\n appendParam(label, value, params) {\n if (value) {\n if (params) {\n params += \"&\";\n }\n return params + label + \"=\" + value;\n }\n return params;\n }\n\n constructUrl() {\n const url = Comms.prototype.getUrl.call(this, {\n pathname: \"WsWorkunits/res/\" + this._wuid + \"/\"\n });\n let params = \"\";\n params = this.appendParam(\"ResultName\", this._resultName, params);\n return url + (params ? \"?\" + params : \"\");\n }\n\n _fetchResult(target, callback, skipMapping) {\n target = target || {};\n if (!this._fetchResultPromise[target.resultname]) {\n target._start = target._start || 0;\n target._count = target._count || -1;\n const url = this.getUrl({\n pathname: \"WsWorkunits/WUResult.json\"\n });\n const request = {\n Wuid: target.wuid,\n ResultName: target.resultname,\n SuppressXmlSchema: true,\n Start: target._start,\n Count: target._count\n };\n this._resultNameCache[target.resultname] = {};\n const context = this;\n this._fetchResultPromise[target.resultname] = this.jsonp(url, request).then(function (response: any) {\n // Remove \"xxxResponse.Result\"\n for (const key in response) {\n if (!response[key].Result) {\n throw new Error(\"No result found.\");\n }\n context._total = response[key].Total;\n response = response[key].Result;\n for (const responseKey in response) {\n response = response[responseKey].Row.map(espRowFix);\n break;\n }\n break;\n }\n context._resultNameCache[target.resultname] = response;\n if (!skipMapping) {\n context._mappings.mapResult(context._resultNameCache, target.resultname);\n }\n if (callback) {\n console.error(\"Deprecated: callback, use promise (WsWorkunits.prototype._fetchResult)\");\n callback(context._resultNameCache[target.resultname]);\n }\n return context._resultNameCache[target.resultname];\n });\n }\n return this._fetchResultPromise[target.resultname];\n }\n\n fetchResult(target, callback, skipMapping) {\n if (target.wuid) {\n return this._fetchResult(target, callback, skipMapping);\n } else if (target.jobname) {\n const context = this;\n return this.WUQuery(target, function (response) {\n target.wuid = response[0].Wuid;\n return context._fetchResult(target, callback, skipMapping);\n });\n }\n }\n\n WUQuery(_request, callback) {\n const url = this.getUrl({\n pathname: \"WsWorkunits/WUQuery.json\"\n });\n const request = {\n Jobname: _request.jobname,\n Count: 1\n };\n\n this._resultNameCache = {};\n this._resultNameCacheCount = 0;\n return this.jsonp(url, request).then(function (response: any) {\n if (!Utility.exists(\"WUQueryResponse.Workunits.ECLWorkunit\", response)) {\n throw Error(\"No workunit found.\");\n }\n response = response.WUQueryResponse.Workunits.ECLWorkunit;\n if (callback) {\n console.error(\"Deprecated: callback, use promise (WsWorkunits.prototype.WUQuery)\");\n callback(response);\n }\n return response;\n });\n }\n\n fetchResultNames(callback?) {\n if (!this._fetchResultNamesPromise) {\n const url = this.getUrl({\n pathname: \"WsWorkunits/WUInfo.json\"\n });\n const request = {\n Wuid: this._wuid,\n TruncateEclTo64k: true,\n IncludeExceptions: false,\n IncludeGraphs: false,\n IncludeSourceFiles: false,\n IncludeResults: true,\n IncludeResultsViewNames: false,\n IncludeVariables: false,\n IncludeTimers: false,\n IncludeResourceURLs: false,\n IncludeDebugValues: false,\n IncludeApplicationValues: false,\n IncludeWorkflows: false,\n IncludeXmlSchemas: false,\n SuppressResultSchemas: true\n };\n\n this._resultNameCache = {};\n this._resultNameCacheCount = 0;\n const context = this;\n this._fetchResultNamesPromise = this.jsonp(url, request).then(function (response: any) {\n if (Utility.exists(\"WUInfoResponse.Workunit.Archived\", response) && response.WUInfoResponse.Workunit.Archived) {\n console.warn(\"WU is archived: \" + url + \" \" + JSON.stringify(request));\n }\n if (Utility.exists(\"WUInfoResponse.Workunit.Results.ECLResult\", response)) {\n response.WUInfoResponse.Workunit.Results.ECLResult.map(function (item) {\n context._resultNameCache[item.Name] = [];\n ++context._resultNameCacheCount;\n });\n }\n if (callback) {\n console.error(\"Deprecated: callback, use promise (WsWorkunits.prototype.fetchResultNames)\");\n callback(context._resultNameCache);\n }\n return context._resultNameCache;\n });\n }\n return this._fetchResultNamesPromise;\n }\n\n fetchResults(callback, skipMapping) {\n const context = this;\n return this.fetchResultNames().then(function (response) {\n const fetchArray = [];\n for (const key in context._resultNameCache) {\n fetchArray.push(context.fetchResult({ wuid: context._wuid, resultname: key }, null, skipMapping));\n }\n return Promise.all(fetchArray).then(function (responseArray) {\n if (callback) {\n console.error(\"Deprecated: callback, use promise (WsWorkunits.prototype.fetchResults)\");\n callback(context._resultNameCache);\n }\n return context._resultNameCache;\n });\n });\n }\n\n postFilter(request, response) {\n const retVal = {};\n for (const key in response) {\n retVal[key] = response[key].filter(function (row, idx) {\n for (const request_key in request) {\n if (row[request_key] !== undefined && request[request_key] !== undefined && row[request_key] != request[request_key]) {\n return false;\n }\n }\n return true;\n });\n }\n this._mappings.mapResponse(retVal);\n return retVal;\n }\n\n send(request, callback) {\n const context = this;\n if (!this._resultNameCacheCount) {\n this.fetchResults(function (response) {\n callback(context.postFilter(request, response));\n }, true);\n } else {\n callback(context.postFilter(request, this._resultNameCache));\n }\n }\n}\n\nfunction WsWorkunits_GetStats() {\n Comms.call(this);\n\n this._port = \"8010\";\n this._wuid = null;\n}\nWsWorkunits_GetStats.prototype = Object.create(Comms.prototype);\n\nWsWorkunits_GetStats.prototype.url = function (_) {\n const retVal = Comms.prototype.url.apply(this, arguments);\n if (arguments.length) {\n // http://localhost:8010/WsWorkunits/WUGetStats?WUID=\"xxx\"\n for (const key in this._params) {\n switch (key) {\n case \"WUID\":\n this.wuid(this._params[key]);\n break;\n }\n }\n }\n return retVal;\n};\n\nWsWorkunits_GetStats.prototype.wuid = function (_) {\n if (!arguments.length) return this._wuid;\n this._wuid = _;\n return this;\n};\n\nWsWorkunits_GetStats.prototype.constructUrl = function () {\n return Comms.prototype.getUrl.call(this, {\n pathname: \"WsWorkunits/WUGetStats?WUID=\" + this._wuid\n });\n};\n\nWsWorkunits_GetStats.prototype.send = function (request, callback) {\n const url = this.getUrl({\n pathname: \"WsWorkunits/WUGetStats.json?WUID=\" + this._wuid\n });\n return this.jsonp(url, request).then(function (response) {\n if (Utility.exists(\"WUGetStatsResponse.Statistics.WUStatisticItem\", response)) {\n if (callback) {\n console.error(\"Deprecated: callback, use promise (WsWorkunits_GetStats.prototype.send)\");\n callback(response.WUGetStatsResponse.Statistics.WUStatisticItem);\n }\n return response.WUGetStatsResponse.Statistics.WUStatisticItem;\n } else {\n if (callback) {\n console.error(\"Deprecated: callback, use promise (WsWorkunits_GetStats.prototype.send)\");\n callback([]);\n }\n return [];\n }\n });\n};\n\n// HIPIERoxie ---\nfunction HIPIERoxie() {\n Comms.call(this);\n}\nHIPIERoxie.prototype = Object.create(Comms.prototype);\n\nHIPIERoxie.prototype.fetchResults = function (request, callback) {\n const url = this.getUrl({});\n this._resultNameCache = {};\n this._resultNameCacheCount = 0;\n const context = this;\n return this.jsonp(url, request).then(function (response) {\n let _response = locateRoxieResponse(response);\n if (!_response) {\n _response = locateRoxieException(response);\n }\n response = _response;\n\n // Check for exceptions\n if (response.Exception) {\n throw Error(response.Exception.reduce(function (previousValue, exception, index, array) {\n if (previousValue.length) {\n previousValue += \"\\n\";\n }\n return previousValue + exception.Source + \" \" + exception.Code + \": \" + exception.Message;\n }, \"\"));\n }\n // Remove \"response.result.Row\"\n for (const key in response) {\n if (response[key].Row) {\n context._resultNameCache[key] = response[key].Row.map(espRowFix);\n ++context._resultNameCacheCount;\n }\n }\n if (callback) {\n console.error(\"Deprecated: callback, use promise (HIPIERoxie.prototype.fetchResults)\");\n callback(context._resultNameCache);\n }\n return context._resultNameCache;\n });\n};\n\nHIPIERoxie.prototype.fetchResult = function (name, callback) {\n const context = this;\n return new Promise(function (resolve, reject) {\n if (callback) {\n console.error(\"Deprecated: callback, use promise (HIPIERoxie.prototype.fetchResult)\");\n callback(context._resultNameCache[name]);\n }\n resolve(context._resultNameCache[name]);\n });\n};\n\nHIPIERoxie.prototype.call = function (request, callback) {\n const context = this;\n return this.fetchResults(request, callback).then(function (response) {\n const retVal = {};\n for (const hipieKey in context._hipieResults) {\n const item = context._hipieResults[hipieKey];\n retVal[item.id] = response[item.from];\n }\n return retVal;\n });\n};\n\n// HIPIEWorkunit ---\nfunction HIPIEWorkunit() {\n WsWorkunits.call(this);\n}\nHIPIEWorkunit.prototype = Object.create(WsWorkunits.prototype);\n\nHIPIEWorkunit.prototype.fetchResults = function (callback) {\n const context = this;\n return WsWorkunits.prototype.fetchResultNames.call(this).then(function (response) {\n const fetchArray = [];\n for (const key in context._hipieResults) {\n const item = context._hipieResults[key];\n fetchArray.push(context.fetchResult(item.from));\n }\n return Promise.all(fetchArray).then(function (response2) {\n if (callback) {\n console.error(\"Deprecated: callback, use promise (HIPIEWorkunit.prototype.fetchResults)\");\n callback(context._resultNameCache);\n }\n return context._resultNameCache;\n });\n });\n};\n\nHIPIEWorkunit.prototype.fetchResult = function (name, callback) {\n return WsWorkunits.prototype.fetchResult.call(this, { wuid: this._wuid, resultname: name }).then(function (response) {\n if (callback) {\n console.error(\"Deprecated: callback, use promise (HIPIEWorkunit.prototype.fetchResult)\");\n callback(response);\n }\n return response;\n });\n};\n\nHIPIEWorkunit.prototype.call = function (request, callback) {\n const context = this;\n if (request.refresh || !this._resultNameCache || !this._resultNameCacheCount) {\n return this.fetchResults(callback).then(function (response) {\n return filterResults(request);\n });\n } else {\n return new Promise(function (resolve, reject) {\n resolve(filterResults(request));\n });\n }\n\n function filterResults(request2) {\n const changedFilter = {};\n for (const key in request2) {\n if (request2[key + \"_changed\"] !== undefined) {\n changedFilter[key] = {\n value: request2[key]\n };\n }\n }\n const retVal = {};\n for (const hipieKey in context._hipieResults) {\n const hipieResult = context._hipieResults[hipieKey];\n const outputFilter = {};\n for (let i = 0; i < hipieResult.filters.length; ++i) {\n const filter = hipieResult.filters[i];\n if (!filter.isRange()) {\n outputFilter[filter.fieldid] = changedFilter[filter.fieldid] || { value: undefined };\n outputFilter[filter.fieldid].filter = filter;\n }\n }\n retVal[hipieResult.id] = context._resultNameCache[hipieResult.from].filter(function (row) {\n for (const key2 in outputFilter) {\n if (!outputFilter[key2].filter.matches(row, outputFilter[key2].value)) {\n return false;\n }\n }\n return true;\n });\n }\n return retVal;\n }\n};\n\n// HIPIEDatabomb ---\nfunction HIPIEDatabomb() {\n HIPIEWorkunit.call(this);\n}\nHIPIEDatabomb.prototype = Object.create(HIPIEWorkunit.prototype);\n\nHIPIEDatabomb.prototype.databomb = function (_) {\n if (!arguments.length) return this._databomb;\n this._databomb = _;\n return this;\n};\n\nHIPIEDatabomb.prototype.databombOutput = function (from, id) {\n if (!arguments.length) return undefined;\n this._resultNameCacheCount++;\n if (this._databomb instanceof Array) {\n this._resultNameCache[from] = this._databomb.map(espRowFix);\n } else {\n this._resultNameCache[from] = this._databomb[from].map(espRowFix);\n }\n return this;\n};\n\nHIPIEDatabomb.prototype.fetchResults = function (callback) {\n const context = this;\n return new Promise(function (resolve, reject) {\n if (callback) {\n console.error(\"Deprecated: callback, use promise (HIPIEDatabomb.prototype.fetchResults)\");\n callback(context._resultNameCache);\n }\n resolve(context._resultNameCache);\n });\n};\n\nexport function createESPConnection(url) {\n url = url || document.URL;\n const testURL = new ESPUrl()\n .url(url)\n ;\n if (testURL.isWsWorkunits_GetStats()) {\n return new WsWorkunits_GetStats()\n .url(url)\n ;\n }\n if (testURL.isWsWorkunits()) {\n return new WsWorkunits()\n .url(url)\n ;\n }\n if (testURL.isWsEcl()) {\n return new WsECL()\n .url(url)\n ;\n }\n return null;\n}\n\nexport function hookJsonp(func) {\n jsonp = func;\n}\n\nexport {\n HIPIEWorkunit,\n HIPIERoxie,\n HIPIEDatabomb\n};\n","import { Utility } from \"@hpcc-js/common\";\nimport * as Comms from \"./Comms\";\n\nfunction nestedRowFix(row) {\n if (row.Row && row.Row instanceof Array) {\n return row.Row.map(nestedRowFix);\n } else if (row instanceof Object) {\n for (const key in row) {\n row[key] = nestedRowFix(row[key]);\n }\n }\n return row;\n}\n\n// Basic Comms ---\nlet enableBasicCommsCache = false;\nlet basicCommsCache = {};\nfunction BasicComms() {\n Comms.Basic.call(this);\n}\nBasicComms.prototype = Object.create(Comms.Basic.prototype);\n\nBasicComms.prototype.jsonp = function (url, request) {\n const requestStr = JSON.stringify(request);\n if (enableBasicCommsCache && basicCommsCache[url] && basicCommsCache[url][requestStr]) {\n return Promise.resolve(basicCommsCache[url][requestStr]);\n }\n return Comms.Basic.prototype.jsonp.apply(this, arguments).then(function (response) {\n if (enableBasicCommsCache) {\n if (!basicCommsCache[url]) {\n basicCommsCache[url] = {};\n }\n basicCommsCache[url][requestStr] = response;\n }\n return response;\n });\n};\n\n// WsWorkunits ---\nfunction WsWorkunits(baseUrl) {\n BasicComms.call(this);\n\n this.url(baseUrl + \"WsWorkunits/\");\n}\nWsWorkunits.prototype = Object.create(BasicComms.prototype);\n\nWsWorkunits.prototype.wuQuery = function (options) {\n const url = this.getUrl({\n pathname: \"WsWorkunits/WUQuery.json\"\n });\n const request = {\n Wuid: \"\",\n Type: \"\",\n Cluster: \"\",\n RoxieCluster: \"\",\n Owner: \"\",\n State: \"\",\n StartDate: \"\",\n EndDate: \"\",\n ECL: \"\",\n Jobname: \"\",\n LogicalFile: \"\",\n LogicalFileSearchType: \"\",\n /*\n ApplicationValues>\n ApplicationValue>\n Application: \"\",\n Name: \"\",\n Value: \"\",\n /ApplicationValue>\n /ApplicationValues>\n */\n After: \"\",\n Before: \"\",\n Count: \"\",\n PageSize: 100,\n PageStartFrom: 0,\n PageEndAt: \"\",\n LastNDays: \"\",\n Sortby: \"\",\n Descending: 0,\n CacheHint: \"\"\n };\n for (const key in options) {\n request[key] = options[key];\n }\n return this.jsonp(url, request).then(function (response) {\n if (response.WUQueryResponse && response.WUQueryResponse.Workunits) {\n return response.WUQueryResponse.Workunits.ECLWorkunit;\n }\n return [];\n });\n};\n\n// Workunit ---\nfunction Workunit(baseUrl, wuid) {\n BasicComms.call(this);\n\n this.url(baseUrl + \"WsWorkunits/\");\n this._wuid = wuid;\n}\nWorkunit.prototype = Object.create(BasicComms.prototype);\n\nWorkunit.prototype.wuInfo = function (options) {\n const url = this.getUrl({\n pathname: \"WsWorkunits/WUInfo.json\"\n });\n const request = {\n Wuid: this._wuid,\n TruncateEclTo64k: true,\n IncludeExceptions: false,\n IncludeGraphs: false,\n IncludeSourceFiles: false,\n IncludeResults: false,\n IncludeResultsViewNames: false,\n IncludeVariables: false,\n IncludeTimers: false,\n IncludeResourceURLs: false,\n IncludeDebugValues: false,\n IncludeApplicationValues: false,\n IncludeWorkflows: false,\n IncludeXmlSchemas: false,\n SuppressResultSchemas: true\n };\n for (const key in options) {\n request[key] = options[key];\n }\n return this.jsonp(url, request).then(function (response) {\n if (enableBasicCommsCache) {\n const retVal = { WUInfoResponse: { Workunit: {} } };\n for (const key in options) {\n const includeKey = key.substring(7);\n retVal.WUInfoResponse.Workunit[includeKey] = response.WUInfoResponse.Workunit[includeKey];\n }\n basicCommsCache[url][JSON.stringify(request)] = retVal;\n }\n return response;\n });\n};\n\nWorkunit.prototype.wuUpdate = function (options) {\n const url = this.getUrl({\n pathname: \"WsWorkunits/WUUpdate.json\"\n });\n const request = {\n Wuid: this._wuid\n };\n for (const key in options) {\n request[key] = options[key];\n }\n return this.post(url, request);\n};\n\nWorkunit.prototype.appData = function (appID, key, _) {\n if (arguments.length === 2) {\n return this.wuInfo({\n IncludeApplicationValues: true\n }).then(function (response) {\n let persistString;\n if (response.WUInfoResponse && response.WUInfoResponse.Workunit && response.WUInfoResponse.Workunit.ApplicationValues && response.WUInfoResponse.Workunit.ApplicationValues.ApplicationValue) {\n response.WUInfoResponse.Workunit.ApplicationValues.ApplicationValue.filter(function (row) {\n return row.Application === appID && row.Name === key;\n }).forEach(function (row) {\n persistString = row.Value;\n });\n }\n return persistString;\n });\n } else if (arguments.length === 3) {\n return this.wuUpdate({\n \"ApplicationValues.ApplicationValue.0.Application\": appID,\n \"ApplicationValues.ApplicationValue.0.Name\": key,\n \"ApplicationValues.ApplicationValue.0.Value\": _,\n \"ApplicationValues.ApplicationValue.itemcount\": 1\n });\n }\n};\n\nWorkunit.prototype.results = function () {\n const context = this;\n return this.wuInfo({\n IncludeResults: true\n }).then(function (response) {\n let retVal = [];\n if (Utility.exists(\"WUInfoResponse.Workunit.Results.ECLResult\", response)) {\n retVal = response.WUInfoResponse.Workunit.Results.ECLResult.map(function (result) {\n return new WUResult(context.getUrl({ pathname: \"WsWorkunits/\" }), context._wuid, result.Name);\n });\n }\n return retVal;\n });\n};\n\nWorkunit.prototype.result = function (dataSource, resultName) {\n dataSource = dataSource || this._wuid;\n return createResult(dataSource, resultName);\n};\n\n// Workunit Result ---\nfunction WUResult(baseUrl, wuid, name) {\n BasicComms.call(this);\n this.url(baseUrl + \"WUResult.json\");\n this._wuid = wuid;\n this._name = name;\n this._xmlSchema = null;\n}\nWUResult.prototype = Object.create(BasicComms.prototype);\n\nWUResult.prototype.wuid = function (_) {\n if (!arguments.length) return this._wuid;\n this._wuid = _;\n return this;\n};\n\nWUResult.prototype.name = function (_) {\n if (!arguments.length) return this._name;\n this._name = _;\n return this;\n};\n\nWUResult.prototype.query = function (options, filter) {\n options = options || {};\n filter = filter || {};\n const request = {\n Wuid: this._wuid,\n ResultName: this._name,\n SuppressXmlSchema: true,\n Start: 0,\n Count: -1\n };\n for (const key in options) {\n request[key] = options[key];\n }\n let filterIdx = 0;\n for (const fKey in filter) {\n request[\"FilterBy.NamedValue.\" + filterIdx + \".Name\"] = fKey;\n request[\"FilterBy.NamedValue.\" + filterIdx + \".Value\"] = filter[fKey];\n ++filterIdx;\n }\n if (filterIdx) {\n request[\"FilterBy.NamedValue.itemcount\"] = filterIdx;\n }\n const context = this;\n return this.jsonp(this.url(), request).then(function (response) {\n if (response.WUResultResponse &&\n response.WUResultResponse.Result &&\n response.WUResultResponse.Result[context._name]) {\n if (enableBasicCommsCache) {\n basicCommsCache[context.url()][JSON.stringify(request)] = {\n WUResultResponse: {\n Result: response.WUResultResponse.Result\n }\n };\n }\n context._xmlSchema = response.WUResultResponse.Result.XmlSchema;\n return nestedRowFix(response.WUResultResponse.Result[context._name]);\n }\n return [];\n });\n};\n\n// Logical File ---\nfunction LogicalFile(baseUrl, logicalName) {\n BasicComms.call(this);\n this.url(baseUrl + \"WUResult.json\");\n this._logicalName = logicalName;\n this._xmlSchema = null;\n}\nLogicalFile.prototype = Object.create(BasicComms.prototype);\n\nLogicalFile.prototype.query = function (options, filter) {\n options = options || {};\n filter = filter || {};\n const request = {\n Cluster: \"hthor\", // TODO: Should not be needed ---\n LogicalName: this._logicalName,\n SuppressXmlSchema: this._xmlSchema !== null,\n Start: 0,\n Count: -1\n };\n for (const key in options) {\n request[key] = options[key];\n }\n let filterIdx = 0;\n for (const fKey in filter) {\n request[\"FilterBy.NamedValue.\" + filterIdx + \".Name\"] = fKey;\n request[\"FilterBy.NamedValue.\" + filterIdx + \".Value\"] = filter[fKey];\n ++filterIdx;\n }\n if (filterIdx) {\n request[\"FilterBy.NamedValue.itemcount\"] = filterIdx;\n }\n const context = this;\n return this.jsonp(this.url(), request).then(function (response) {\n if (response.WUResultResponse &&\n response.WUResultResponse.Result &&\n response.WUResultResponse.Result.Row) {\n context._xmlSchema = response.WUResultResponse.Result.XmlSchema;\n return nestedRowFix(response.WUResultResponse.Result.Row);\n }\n return [];\n });\n};\n\n// Roxie Query ---\nfunction RoxieQuery(baseUrl, resultName) {\n BasicComms.call(this);\n const urlParts = baseUrl.split(\"/\");\n let queryName = urlParts.pop();\n if (queryName.toLowerCase() === \"json\") {\n queryName = urlParts.pop();\n }\n this._queryName = queryName;\n this._resultName = resultName;\n this.url(urlParts.join(\"/\") + \"/\" + queryName + \"/json\");\n}\nRoxieQuery.prototype = Object.create(BasicComms.prototype);\n\nfunction trimRight(str) {\n if (str && str.replace) {\n return str.replace(/ +$/, \"\");\n }\n return str;\n}\n\nfunction postFilter(results, filter) {\n return results.filter(function (row) {\n for (const key in filter) {\n if (row[key] !== undefined && trimRight(filter[key]) !== trimRight(row[key])) {\n return false;\n }\n }\n return true;\n });\n}\n\nfunction locateRoxieResponse(response) {\n // v5 and v6 compatible ---\n for (const key in response) {\n if (response[key].Row && response[key].Row instanceof Array) {\n return response;\n }\n const retVal = locateRoxieResponse(response[key]);\n if (retVal) {\n return retVal;\n }\n }\n return null;\n}\n\nRoxieQuery.prototype.query = function (options, filter) {\n options = options || {};\n filter = filter || {};\n const request = {\n };\n for (const key in options) {\n request[key] = options[key];\n }\n for (const fKey in filter) {\n request[fKey] = filter[fKey];\n }\n const context = this;\n return this.jsonp(this.url(), request).then(function (response) {\n response = locateRoxieResponse(response);\n if (response) {\n if (context._resultName) {\n if (response && response[context._resultName] && response[context._resultName].Row) {\n return nestedRowFix(postFilter(response[context._resultName].Row, filter));\n }\n } else {\n for (const key in response) {\n if (response[key].Row) {\n return nestedRowFix(postFilter(response[key].Row, filter));\n }\n }\n }\n }\n return [];\n });\n};\n\nexport function createResult(_espUrl, dataSource, resultName?) {\n const espUrl = new Comms.ESPUrl()\n .url(_espUrl)\n ;\n if (dataSource.indexOf(\"http\") === 0) {\n return new RoxieQuery(dataSource, resultName);\n } else if (dataSource.indexOf(\"~\") === 0 || dataSource.indexOf(\"::\") >= 0) {\n return new LogicalFile(espUrl.getUrl({ pathname: \"WsWorkunits/\" }), dataSource);\n } else if (dataSource) {\n return new WUResult(espUrl.getUrl({ pathname: \"WsWorkunits/\" }), dataSource, resultName);\n }\n return null;\n}\n\nexport function enableCache(_?: any): any | undefined {\n if (!arguments.length) return enableBasicCommsCache;\n enableBasicCommsCache = _;\n if (!_) {\n basicCommsCache = {};\n }\n}\nexport function cache(_?: any): any | undefined {\n if (!arguments.length) return basicCommsCache;\n basicCommsCache = _;\n}\nexport function createConnection(url) {\n url = url || document.URL;\n const testURL = new Comms.ESPUrl()\n .url(url)\n ;\n if (testURL.isWsWorkunits()) {\n const espConnection = Comms.createESPConnection(url);\n if (espConnection instanceof Comms.WsWorkunits && espConnection.wuid()) {\n return new Workunit(espConnection.getUrl({ pathname: \"\" }), espConnection.wuid())\n .url(url)\n ;\n }\n }\n return null;\n}\nexport function flattenResult(result, mappings) {\n const retVal = {\n columns: [],\n data: []\n };\n if (result && result.length) {\n const colIdx = {};\n if (mappings && mappings.length) {\n mappings.forEach(function (mapping) {\n colIdx[mapping.value.toLowerCase()] = retVal.columns.length;\n retVal.columns.push(mapping.key);\n });\n } else {\n for (const key in result[0]) {\n colIdx[key.toLowerCase()] = retVal.columns.length;\n retVal.columns.push(key);\n }\n }\n result.forEach(function (row, rowIdx) {\n const rowArr = [];\n for (const key in row) {\n if (colIdx[key.toLowerCase()] !== undefined) {\n rowArr[colIdx[key.toLowerCase()]] = row[key];\n }\n }\n retVal.data.push(rowArr);\n });\n }\n return retVal;\n}\n","'use strict';\n\nif (typeof module !== 'undefined') module.exports = simpleheat;\n\nfunction simpleheat(canvas) {\n if (!(this instanceof simpleheat)) return new simpleheat(canvas);\n\n this._canvas = canvas = typeof canvas === 'string' ? document.getElementById(canvas) : canvas;\n\n this._ctx = canvas.getContext('2d');\n this._width = canvas.width;\n this._height = canvas.height;\n\n this._max = 1;\n this._data = [];\n}\n\nsimpleheat.prototype = {\n\n defaultRadius: 25,\n\n defaultGradient: {\n 0.4: 'blue',\n 0.6: 'cyan',\n 0.7: 'lime',\n 0.8: 'yellow',\n 1.0: 'red'\n },\n\n data: function (data) {\n this._data = data;\n return this;\n },\n\n max: function (max) {\n this._max = max;\n return this;\n },\n\n add: function (point) {\n this._data.push(point);\n return this;\n },\n\n clear: function () {\n this._data = [];\n return this;\n },\n\n radius: function (r, blur) {\n blur = blur === undefined ? 15 : blur;\n\n // create a grayscale blurred circle image that we'll use for drawing points\n var circle = this._circle = this._createCanvas(),\n ctx = circle.getContext('2d'),\n r2 = this._r = r + blur;\n\n circle.width = circle.height = r2 * 2;\n\n ctx.shadowOffsetX = ctx.shadowOffsetY = r2 * 2;\n ctx.shadowBlur = blur;\n ctx.shadowColor = 'black';\n\n ctx.beginPath();\n ctx.arc(-r2, -r2, r, 0, Math.PI * 2, true);\n ctx.closePath();\n ctx.fill();\n\n return this;\n },\n\n resize: function () {\n this._width = this._canvas.width;\n this._height = this._canvas.height;\n },\n\n gradient: function (grad) {\n // create a 256x1 gradient that we'll use to turn a grayscale heatmap into a colored one\n var canvas = this._createCanvas(),\n ctx = canvas.getContext('2d'),\n gradient = ctx.createLinearGradient(0, 0, 0, 256);\n\n canvas.width = 1;\n canvas.height = 256;\n\n for (var i in grad) {\n gradient.addColorStop(+i, grad[i]);\n }\n\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, 1, 256);\n\n this._grad = ctx.getImageData(0, 0, 1, 256).data;\n\n return this;\n },\n\n draw: function (minOpacity) {\n if (!this._circle) this.radius(this.defaultRadius);\n if (!this._grad) this.gradient(this.defaultGradient);\n\n var ctx = this._ctx;\n\n ctx.clearRect(0, 0, this._width, this._height);\n\n // draw a grayscale heatmap by putting a blurred circle at each data point\n for (var i = 0, len = this._data.length, p; i < len; i++) {\n p = this._data[i];\n ctx.globalAlpha = Math.max(p[2] / this._max, minOpacity === undefined ? 0.05 : minOpacity);\n ctx.drawImage(this._circle, p[0] - this._r, p[1] - this._r);\n }\n\n // colorize the heatmap, using opacity value of each pixel to get the right color from our gradient\n var colored = ctx.getImageData(0, 0, this._width, this._height);\n this._colorize(colored.data, this._grad);\n ctx.putImageData(colored, 0, 0);\n\n return this;\n },\n\n _colorize: function (pixels, gradient) {\n for (var i = 0, len = pixels.length, j; i < len; i += 4) {\n j = pixels[i + 3] * 4; // get gradient color from opacity value\n\n if (j) {\n pixels[i] = gradient[j];\n pixels[i + 1] = gradient[j + 1];\n pixels[i + 2] = gradient[j + 2];\n }\n }\n },\n\n _createCanvas: function () {\n if (typeof document !== 'undefined') {\n return document.createElement('canvas');\n } else {\n // create a new canvas instance in node.js\n // the canvas class needs to have a default constructor without any parameter\n return new this._canvas.constructor();\n }\n }\n};\n","import { CanvasWidget, Palette } from \"@hpcc-js/common\";\nimport * as _simpleheat from \"simpleheat\";\n\nconst simpleheat = (window as any).simpleheat || (_simpleheat && _simpleheat.default) || _simpleheat;\n\nexport class HeatMap extends CanvasWidget {\n _heat;\n _palette;\n\n constructor() {\n super();\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n // canvas size needs to be set before render\n this.resize(this._size);\n this._heat = simpleheat(domNode);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n this._palette = this._palette.switch(this.paletteID());\n if (this.useClonedPalette()) {\n this._palette = this._palette.cloneNotExists(this.paletteID() + \"_\" + this.id());\n }\n\n if (this.topLeftX_exists() && this.topLeftY_exists() && this.bottomRightX_exists() && this.bottomRightY_exists()) {\n this._heat.data(this.skewedData());\n } else {\n this._heat.data(this.data());\n }\n\n if (this.radius()) {\n this._heat.radius(this.radius(), this.blur());\n }\n if (this.usePalette()) {\n const grad = {};\n for (let idx = 1; idx <= this.colorCount(); idx++) {\n const value = idx / this.colorCount();\n grad[value] = this._palette(idx, 1, this.colorCount());\n }\n this._heat.defaultGradient = grad;\n this._heat.gradient(grad);\n } else if (this.gradient()) {\n this._heat.defaultGradient = this.gradient();\n this._heat.gradient(this.gradient());\n }\n\n this._heat.draw();\n }\n\n exit(domNode, element) {\n delete this._heat;\n super.exit(domNode, element);\n }\n\n resize(size: any): this {\n const retVal = CanvasWidget.prototype.resize.apply(this, arguments);\n if (this._heat !== undefined) {\n this._heat.resize();\n }\n return retVal;\n }\n\n skewedData() {\n const context = this;\n const retArr = [];\n const arr = this.data();\n const box = this.size();\n\n const coordsWidth = this.bottomRightX() - this.topLeftX();\n const coordsHeight = this.bottomRightY() - this.topLeftY();\n\n const pixelValueX = coordsWidth / box.width;\n const pixelValueY = coordsHeight / box.height;\n\n arr.forEach(function (n) {\n const left = Math.abs(n[0] - context.topLeftX());\n const top = Math.abs(n[1] - context.topLeftY());\n\n const newX = left / pixelValueX;\n const newY = top / pixelValueY;\n\n retArr.push([newX, newY, n[2]]);\n });\n\n return retArr;\n }\n\n radius: { (): number; (_: number): HeatMap };\n radius_exists: () => boolean;\n blur: { (): number; (_: number): HeatMap };\n blur_exists: () => boolean;\n max: { (): number; (_: number): HeatMap };\n max_exists: () => boolean;\n gradient: { (): object; (_: object): HeatMap };\n gradient_exists: () => boolean;\n usePalette: { (): boolean; (_: boolean): HeatMap };\n usePalette_exists: () => boolean;\n colorCount: { (): number; (_: number): HeatMap };\n colorCount_exists: () => boolean;\n paletteID: { (): string; (_: string): HeatMap };\n paletteID_exists: () => boolean;\n useClonedPalette: { (): boolean; (_: boolean): HeatMap };\n useClonedPalette_exists: () => boolean;\n topLeftX: { (): number; (_: number): HeatMap };\n topLeftX_exists: () => boolean;\n topLeftY: { (): number; (_: number): HeatMap };\n topLeftY_exists: () => boolean;\n bottomRightX: { (): number; (_: number): HeatMap };\n bottomRightX_exists: () => boolean;\n bottomRightY: { (): number; (_: number): HeatMap };\n bottomRightY_exists: () => boolean;\n}\nHeatMap.prototype._class += \" other_HeatMap\";\nHeatMap.prototype._palette = Palette.rainbow(\"default\");\n\nHeatMap.prototype.publish(\"radius\", 15, \"number\", \"Set point radius\", null, { tags: [\"Basic\"] });\nHeatMap.prototype.publish(\"blur\", 15, \"number\", \"Set point blur\", null, { tags: [\"Basic\"] });\nHeatMap.prototype.publish(\"max\", 1, \"number\", \"Set max data value\", null, { tags: [\"Basic\"] });\n\nHeatMap.prototype.publish(\"gradient\", { 0.4: \"blue\", 0.6: \"cyan\", 0.7: \"lime\", 0.8: \"yellow\", 1.0: \"red\" }, \"object\", \"Set gradient colors\", null, { tags: [\"Basic\"] });\n\nHeatMap.prototype.publish(\"usePalette\", false, \"boolean\", \"If true, uses paletteID and colorCount to determine gradient\", null, { tags: [\"Basic\"] });\n\nHeatMap.prototype.publish(\"colorCount\", 10, \"number\", \"Top left x-value\", null, { tags: [\"Basic\"] });\nHeatMap.prototype.publish(\"paletteID\", \"default\", \"set\", \"Color palette for this widget\", HeatMap.prototype._palette.switch(), { tags: [\"Basic\"] });\nHeatMap.prototype.publish(\"useClonedPalette\", false, \"boolean\", \"Enable or disable using a cloned palette\", null, { tags: [\"Intermediate\", \"Shared\"] });\n\nHeatMap.prototype.publish(\"topLeftX\", null, \"number\", \"Top left x-value\", null, { tags: [\"Basic\"], optional: true });\nHeatMap.prototype.publish(\"topLeftY\", null, \"number\", \"Top left y-value\", null, { tags: [\"Basic\"], optional: true });\nHeatMap.prototype.publish(\"bottomRightX\", null, \"number\", \"Bottom right x-value\", null, { tags: [\"Basic\"], optional: true });\nHeatMap.prototype.publish(\"bottomRightY\", null, \"number\", \"Bottom right y-value\", null, { tags: [\"Basic\"], optional: true });\n","import { SVGWidget } from \"@hpcc-js/common\";\n\nexport class HPCCBadge extends SVGWidget {\n protected root;\n protected logo;\n protected logo_accent;\n protected logo_circles;\n protected line;\n protected circle_1;\n protected circle_2;\n protected circle_3;\n protected circle_4;\n protected circle_5;\n protected circle_6;\n protected circle_7;\n protected circle_8;\n protected circle_accent;\n protected text;\n protected text_hpccsystems;\n protected text_r;\n protected text_tm;\n\n constructor() {\n super();\n }\n\n testData(domNode, element) {\n return this;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n\n this.root = element.append(\"g\");\n this.logo = this.root.append(\"g\");\n this.logo_accent = this.root.append(\"g\");\n this.line = this.logo_accent.append(\"path\")\n .attr(\"fill-rule\", \"evenodd\")\n .attr(\"clip-rule\", \"evenodd\")\n .attr(\"fill\", \"#179BD7\")\n .attr(\"d\", \"m 189.38849,364.55373 c 191.6,3.8 0,0 191.6,3.8 l 0.1,-4.2 c -191.7,0.4 0,0 -191.7,0.4 z\")\n ;\n this.circle_accent = this.logo_accent.append(\"path\")\n .attr(\"fill-rule\", \"evenodd\")\n .attr(\"clip-rule\", \"evenodd\")\n .attr(\"fill\", \"#6E6E73\")\n .attr(\"d\", \"M421.3,354.2c6.9,6.9,3.1,18.7-8.6,26.1c-11.8,7.4-26.3,6.9-32.1-0.6c-5.5-7.2-1.1-18.2,9.6-25C401,348,414.7,347.6,421.3,354.2z\")\n ;\n this.logo_circles = this.logo.append(\"g\");\n this.circle_1 = this.logo_circles.append(\"path\")\n .attr(\"fill-rule\", \"evenodd\")\n .attr(\"clip-rule\", \"evenodd\")\n .attr(\"fill\", \"#179BD7\")\n .attr(\"d\", \"m 258.9815,363.84947 c 1.3,-3 1.5,-5.9 0.4,-8.1 -2.6,-5.4 -11.8,-5.1 -20.6,0.4 -3.5,2.2 -6.5,4.9 -8.7,7.8 -0.11933,0.35821 -0.39477,0.60735 -0.6,0.9 -2.9,4.1 -4.2,8.3 -3,11.6 2.1,6 11.4,6.3 20.9,0.4 5,-3.2 8.9,-7.3 11,-11.4 -0.59813,0.54778 0.47385,-1.28911 0.6,-1.6 z\")\n ;\n this.circle_2 = this.logo_circles.append(\"path\")\n .attr(\"fill-rule\", \"evenodd\")\n .attr(\"clip-rule\", \"evenodd\")\n .attr(\"fill\", \"#179BD7\")\n .attr(\"d\", \"M291.3,349.3c9.5-5.9,14.1-15,10.5-20c-3.5-4.8-13.3-4.2-22.1,1.3c-8.8,5.5-13.7,14.1-10.9,19.3C271.7,355.4,281.9,355.2,291.3,349.3z\")\n ;\n this.circle_3 = this.logo_circles.append(\"path\")\n .attr(\"fill-rule\", \"evenodd\")\n .attr(\"clip-rule\", \"evenodd\")\n .attr(\"fill\", \"#179BD7\")\n .attr(\"d\", \"M335.3,321.7c9.5-5.9,13.3-14.5,8.9-19c-4.3-4.3-14.8-3.2-23.6,2.3c-8.8,5.5-13.1,13.7-9.4,18.4C315,328.3,325.9,327.7,335.3,321.7z\")\n ;\n this.circle_4 = this.logo_circles.append(\"path\")\n .attr(\"fill-rule\", \"evenodd\")\n .attr(\"clip-rule\", \"evenodd\")\n .attr(\"fill\", \"#179BD7\")\n .attr(\"d\", \"M273.2,384c-3.2-6.5-13.5-6.7-23.2-0.7c-9.7,6-15.6,16.4-13.2,23.4c2.5,7.3,13.1,8.2,23.6,1.7 C270.8,401.9,276.5,390.8,273.2,384z\")\n ;\n this.circle_5 = this.logo_circles.append(\"path\")\n .attr(\"fill-rule\", \"evenodd\")\n .attr(\"clip-rule\", \"evenodd\")\n .attr(\"fill\", \"#179BD7\")\n .attr(\"d\", \"m 320.84499,363.83119 c 1,-3.4 0.8,-6.6 -1,-9.1 -4.2,-5.9 -15.3,-5.6 -25,0.5 -3.89999,2.4 -7.09999,5.5 -9.19999,8.7 -1.18854,2.2092 -0.0404,-0.09 -1.2,2.2 -2.2,4.1 -2.7,8.3 -0.9,11.5 3.6,6.7 15.09999,7 25.59999,0.5 5,-3.2 8.7,-7.2 10.7,-11.3 0.95557,-2.97582 0.0423,0.0306 1,-3 z\")\n ;\n this.circle_6 = this.logo_circles.append(\"path\")\n .attr(\"fill-rule\", \"evenodd\")\n .attr(\"clip-rule\", \"evenodd\")\n .attr(\"fill\", \"#179BD7\")\n .attr(\"d\", \"M330.4,348.2c4.6,6,17,5.8,27.5-0.8c10.5-6.6,14.3-16.5,8.9-22c-5.2-5.3-17.1-4.4-26.8,1.6C330.3,333.1,325.9,342.4,330.4,348.2z\")\n ;\n this.circle_7 = this.logo_circles.append(\"path\")\n .attr(\"fill-rule\", \"evenodd\")\n .attr(\"clip-rule\", \"evenodd\")\n .attr(\"fill\", \"#179BD7\")\n .attr(\"d\", \"M264.1,417.4c-10.8,6.7-17.2,19-14.2,27.8c3.2,9.2,15.4,11.1,27.2,3.7c11.8-7.4,17.8-20.6,13.6-29.2C286.6,411.6,274.8,410.7,264.1,417.4z\")\n ;\n this.circle_8 = this.logo_circles.append(\"path\")\n .attr(\"fill-rule\", \"evenodd\")\n .attr(\"clip-rule\", \"evenodd\")\n .attr(\"fill\", \"#179BD7\")\n .attr(\"d\", \"M314.2,386.1c-10.8,6.7-16.2,18.4-11.9,26.4c4.5,8.4,17.8,9.5,29.6,2.2c11.8-7.4,16.6-19.9,11.1-27.7C337.7,379.6,324.9,379.3,314.2,386.1z\")\n ;\n\n // Text ---\n this.text = this.root.append(\"g\");\n this.text_hpccsystems = this.text.append(\"path\")\n .attr(\"fill\", \"#6E6E73\")\n .attr(\"d\", \"M224.2,476.3c0.1-1.3,0.1-2.7,0.2-4.1c-0.3,0-0.5,0.1-0.8,0.1c-0.3,0-0.5,0-0.8,0c-0.3,0-0.5,0-0.8,0c-0.3,0-0.5-0.1-0.8-0.1c0.1,1.4,0.1,2.8,0.2,4.1c0.1,1.3,0.1,2.7,0.1,4.1v1.1c-1.1,0-2.3,0-3.3,0.1c-1.1,0-2.2,0-3.3,0c-1.1,0-2.3,0-3.3,0c-1.1,0-2.2,0-3.3-0.1v-1.1c0-1.4,0-2.8,0.1-4.1c0.1-1.3,0.1-2.7,0.2-4.1c-0.3,0-0.5,0.1-0.8,0.1c-0.3,0-0.5,0-0.8,0c-0.3,0-0.5,0-0.8,0c-0.3,0-0.5-0.1-0.8-0.1c0.1,1.4,0.1,2.8,0.2,4.1c0.1,1.3,0.1,2.7,0.1,4.1v5.5c0,1.4,0,2.8-0.1,4.1c-0.1,1.4-0.1,2.7-0.2,4c0.5,0,1-0.1,1.6-0.1c0.6,0,1.1,0,1.6,0.1c-0.1-1.3-0.1-2.7-0.2-4c-0.1-1.4-0.1-2.7-0.1-4.1v-2.9c1.1,0,2.3,0,3.3,0c1.1,0,2.2,0,3.3,0c1.1,0,2.3,0,3.3,0c1.1,0,2.2,0,3.3,0v2.9c0,1.4,0,2.8-0.1,4.1c-0.1,1.4-0.1,2.7-0.2,4c0.5,0,1-0.1,1.6-0.1c0.6,0,1.1,0,1.6,0.1c-0.1-1.3-0.1-2.7-0.2-4c-0.1-1.4-0.1-2.7-0.1-4.1v-5.5C224.1,479,224.1,477.7,224.2,476.3z M242.7,473.8c-0.4-0.4-0.9-0.7-1.4-0.9c-0.5-0.2-1-0.4-1.5-0.5c-0.5-0.1-1-0.2-1.5-0.2c-0.5,0-0.9,0-1.2,0c-0.2,0-0.5,0-0.9,0c-0.3,0-0.7,0-1.1,0c-0.4,0-0.7,0-1.1,0c-0.4,0-0.7,0-0.9,0c-0.5,0-1,0-1.5,0c-0.5,0-1-0.1-1.5-0.1c0.1,1.4,0.1,2.8,0.2,4.1c0.1,1.3,0.1,2.7,0.1,4.1v5.5c0,1.4,0,2.8-0.1,4.1c-0.1,1.4-0.1,2.7-0.2,4c0.5,0,1-0.1,1.6-0.1c0.6,0,1.1,0,1.6,0.1c-0.1-1.3-0.1-2.7-0.2-4c-0.1-1.4-0.1-2.7-0.1-4.1v-1.8c0.4,0,0.8,0.1,1.2,0.1c0.4,0,0.8,0,1.3,0c0.8,0,1.6-0.1,2.6-0.3c1-0.2,1.9-0.5,2.8-1c0.9-0.5,1.6-1.2,2.2-2c0.6-0.9,0.9-2,0.9-3.4c0-0.9-0.1-1.6-0.4-2.2C243.5,474.7,243.1,474.2,242.7,473.8z M240.6,480.4c-0.4,0.7-0.9,1.2-1.4,1.6c-0.6,0.4-1.2,0.7-1.9,0.8c-0.7,0.1-1.4,0.2-2,0.2c-0.8,0-1.5-0.1-2.3-0.3v-9.5h2.9c0.8,0,1.6,0.1,2.2,0.2c0.7,0.1,1.2,0.3,1.7,0.7c0.5,0.3,0.8,0.8,1.1,1.3c0.3,0.6,0.4,1.3,0.4,2.2C241.2,478.8,241,479.7,240.6,480.4z M251.9,475.4c0.8-0.8,1.7-1.5,2.8-1.9c1.1-0.4,2.2-0.6,3.5-0.6c0.8,0,1.5,0.1,2.1,0.3c0.6,0.2,1.2,0.5,1.7,0.7c0.5,0.3,1,0.6,1.3,0.9c0.4,0.3,0.7,0.6,0.9,0.9l0.2-0.1c0.1-0.3,0.1-0.8,0.3-1.3c0.1-0.5,0.2-0.9,0.4-1.2c-0.9-0.4-1.9-0.7-3.1-1c-1.2-0.3-2.4-0.4-3.8-0.4c-1.8,0-3.4,0.3-4.8,0.8c-1.5,0.5-2.7,1.3-3.8,2.2c-1.1,1-1.9,2.2-2.5,3.6c-0.6,1.4-0.9,3-0.9,4.8c0,1.8,0.3,3.4,0.9,4.8c0.6,1.4,1.4,2.6,2.4,3.6c1,1,2.3,1.7,3.7,2.2c1.4,0.5,3,0.7,4.7,0.7c0.8,0,1.5-0.1,2.3-0.2c0.7-0.1,1.4-0.3,2-0.4c0.6-0.2,1.1-0.3,1.5-0.5c0.4-0.2,0.7-0.4,0.9-0.6l0.3-1.9l-0.1-0.1c-0.3,0.2-0.7,0.5-1.1,0.8c-0.4,0.3-0.9,0.6-1.5,0.9c-0.5,0.3-1.1,0.5-1.8,0.7c-0.6,0.2-1.4,0.3-2.1,0.3c-1.3,0-2.4-0.2-3.5-0.6c-1.1-0.4-2-1-2.8-1.9c-0.8-0.8-1.4-1.9-1.9-3.2c-0.4-1.3-0.7-2.8-0.7-4.6c0-1.8,0.2-3.3,0.7-4.6 C250.5,477.3,251.1,476.3,251.9,475.4z M273.2,475.4c0.8-0.8,1.7-1.5,2.8-1.9c1.1-0.4,2.2-0.6,3.5-0.6c0.8,0,1.5,0.1,2.1,0.3c0.6,0.2,1.2,0.5,1.7,0.7c0.5,0.3,1,0.6,1.3,0.9c0.4,0.3,0.7,0.6,0.9,0.9l0.2-0.1c0.1-0.3,0.1-0.8,0.3-1.3c0.1-0.5,0.2-0.9,0.4-1.2c-0.9-0.4-1.9-0.7-3.1-1c-1.2-0.3-2.4-0.4-3.8-0.4c-1.8,0-3.4,0.3-4.8,0.8c-1.5,0.5-2.7,1.3-3.8,2.2c-1.1,1-1.9,2.2-2.5,3.6c-0.6,1.4-0.9,3-0.9,4.8c0,1.8,0.3,3.4,0.9,4.8c0.6,1.4,1.4,2.6,2.4,3.6c1,1,2.3,1.7,3.7,2.2c1.4,0.5,3,0.7,4.7,0.7c0.8,0,1.5-0.1,2.3-0.2c0.7-0.1,1.4-0.3,2-0.4c0.6-0.2,1.1-0.3,1.5-0.5c0.4-0.2,0.7-0.4,0.9-0.6l0.3-1.9l-0.1-0.1c-0.3,0.2-0.7,0.5-1.1,0.8c-0.4,0.3-0.9,0.6-1.5,0.9c-0.5,0.3-1.1,0.5-1.8,0.7c-0.6,0.2-1.4,0.3-2.1,0.3c-1.3,0-2.4-0.2-3.5-0.6c-1.1-0.4-2-1-2.8-1.9c-0.8-0.8-1.4-1.9-1.9-3.2c-0.4-1.3-0.7-2.8-0.7-4.6c0-1.8,0.2-3.3,0.7-4.6 C271.8,477.3,272.4,476.3,273.2,475.4z M308.2,482.9c-0.7-0.4-1.5-0.8-2.4-1.1c-0.9-0.3-1.7-0.7-2.4-1.1c-0.7-0.4-1.4-0.9-1.9-1.5c-0.5-0.6-0.7-1.4-0.7-2.4c0-0.6,0.1-1.1,0.3-1.6c0.2-0.5,0.5-0.9,0.9-1.3c0.4-0.4,0.8-0.6,1.3-0.8c0.5-0.2,1-0.3,1.6-0.3c0.6,0,1.1,0.1,1.5,0.3c0.4,0.2,0.8,0.5,1.1,0.7c0.3,0.3,0.6,0.6,0.7,1c0.2,0.4,0.3,0.7,0.4,1h0.4c0.1-0.6,0.3-1.1,0.4-1.5c0.1-0.4,0.3-0.8,0.5-1.1c-0.6-0.5-1.3-0.9-2.1-1.1c-0.7-0.2-1.6-0.4-2.6-0.4c-1.1,0-2,0.1-2.9,0.4c-0.9,0.3-1.6,0.7-2.2,1.2c-0.6,0.5-1.1,1.2-1.4,1.9c-0.3,0.7-0.5,1.5-0.5,2.4c0,1.3,0.2,2.3,0.7,3c0.5,0.7,1.1,1.4,1.9,1.8c0.7,0.5,1.5,0.9,2.4,1.2c0.9,0.3,1.7,0.7,2.4,1.1c0.7,0.4,1.4,0.9,1.9,1.4c0.5,0.6,0.7,1.3,0.7,2.3c0,0.6-0.1,1.2-0.3,1.8c-0.2,0.6-0.5,1.1-0.9,1.5c-0.4,0.4-0.9,0.7-1.4,1c-0.6,0.2-1.2,0.4-1.9,0.4c-0.7,0-1.3-0.1-1.8-0.3c-0.6-0.2-1-0.5-1.5-0.8c-0.4-0.3-0.8-0.7-1.1-1.1c-0.3-0.4-0.5-0.8-0.7-1.2h-0.4c-0.1,0.6-0.1,1.1-0.2,1.5c-0.1,0.4-0.2,0.8-0.4,1.3c0.6,0.4,1.2,0.8,2.1,1.2c0.8,0.4,1.9,0.5,3.2,0.5c1.2,0,2.3-0.2,3.3-0.5c1-0.4,1.8-0.8,2.5-1.5c0.7-0.6,1.2-1.4,1.5-2.3c0.4-0.9,0.5-1.8,0.5-2.8c0-1.2-0.2-2.1-0.7-2.8C309.6,483.9,309,483.3,308.2,482.9z M328.6,472.2c-0.4,0.9-0.9,1.9-1.4,2.8c-0.5,1-1,1.9-1.5,2.9c-0.5,1-1.1,1.9-1.6,2.8c-0.5,0.9-1,1.8-1.5,2.5c-1.1-1.9-2.2-3.8-3.1-5.6c-1-1.8-2-3.6-2.9-5.5c-0.3,0-0.6,0.1-0.9,0.1c-0.3,0-0.6,0-0.9,0c-0.3,0-0.6,0-0.9,0c-0.3,0-0.6-0.1-0.9-0.1c0.2,0.3,0.5,0.8,0.9,1.5c0.4,0.7,0.9,1.4,1.4,2.3c0.5,0.8,1,1.7,1.6,2.6c0.6,0.9,1.1,1.8,1.6,2.6c0.5,0.8,1,1.6,1.4,2.3c0.4,0.7,0.7,1.2,0.9,1.6c0,1.7,0,3.4,0,4.9c0,1.6-0.1,2.9-0.2,4c0.5,0,1-0.1,1.6-0.1c0.6,0,1.1,0,1.6,0.1c0-0.4-0.1-1-0.1-1.8c0-0.7-0.1-1.5-0.1-2.4c0-0.9,0-1.7,0-2.6c0-0.9,0-1.7,0-2.5c0.3-0.7,0.7-1.4,1.2-2.2c0.5-0.8,1-1.7,1.6-2.8c0.6-1,1.3-2.2,2.1-3.4c0.8-1.3,1.7-2.7,2.7-4.2c-0.5,0.1-0.9,0.2-1.2,0.2C329.5,472.3,329.1,472.3,328.6,472.2z M343.6,482.9c-0.7-0.4-1.5-0.8-2.4-1.1c-0.9-0.3-1.7-0.7-2.4-1.1c-0.7-0.4-1.4-0.9-1.9-1.5c-0.5-0.6-0.7-1.4-0.7-2.4c0-0.6,0.1-1.1,0.3-1.6c0.2-0.5,0.5-0.9,0.9-1.3c0.4-0.4,0.8-0.6,1.3-0.8c0.5-0.2,1-0.3,1.6-0.3c0.6,0,1.1,0.1,1.5,0.3c0.4,0.2,0.8,0.5,1.1,0.7c0.3,0.3,0.6,0.6,0.7,1c0.2,0.4,0.3,0.7,0.4,1h0.4c0.1-0.6,0.3-1.1,0.4-1.5c0.1-0.4,0.3-0.8,0.5-1.1c-0.6-0.5-1.3-0.9-2.1-1.1c-0.7-0.2-1.6-0.4-2.6-0.4c-1.1,0-2,0.1-2.9,0.4c-0.9,0.3-1.6,0.7-2.2,1.2c-0.6,0.5-1.1,1.2-1.4,1.9c-0.3,0.7-0.5,1.5-0.5,2.4c0,1.3,0.2,2.3,0.7,3c0.5,0.7,1.1,1.4,1.9,1.8c0.7,0.5,1.5,0.9,2.4,1.2c0.9,0.3,1.7,0.7,2.4,1.1c0.7,0.4,1.4,0.9,1.9,1.4c0.5,0.6,0.7,1.3,0.7,2.3c0,0.6-0.1,1.2-0.3,1.8c-0.2,0.6-0.5,1.1-0.9,1.5c-0.4,0.4-0.9,0.7-1.4,1c-0.6,0.2-1.2,0.4-1.9,0.4c-0.7,0-1.3-0.1-1.8-0.3c-0.6-0.2-1-0.5-1.5-0.8c-0.4-0.3-0.8-0.7-1.1-1.1c-0.3-0.4-0.5-0.8-0.7-1.2h-0.4c-0.1,0.6-0.1,1.1-0.2,1.5c-0.1,0.4-0.2,0.8-0.4,1.3c0.6,0.4,1.2,0.8,2.1,1.2c0.8,0.4,1.9,0.5,3.2,0.5c1.2,0,2.3-0.2,3.3-0.5c1-0.4,1.8-0.8,2.5-1.5c0.7-0.6,1.2-1.4,1.5-2.3c0.4-0.9,0.5-1.8,0.5-2.8c0-1.2-0.2-2.1-0.7-2.8C345,483.9,344.4,483.3,343.6,482.9z M360.7,472.3c-1.3,0-2.7,0-4.1,0c-1.4,0-2.8,0-4.1,0c-1.3,0-2.7-0.1-4.1-0.1c0.1,0.4,0.2,0.8,0.2,1c0,0.3-0.1,0.6-0.2,1c0.4-0.1,1-0.1,1.5-0.2c0.6,0,1.1-0.1,1.8-0.1c0.6,0,1.2-0.1,1.8-0.1c0.6,0,1.2,0,1.7,0c0.1,2.2,0.1,4.4,0.1,6.6v5.5c0,1.4,0,2.8-0.1,4.1c-0.1,1.4-0.1,2.7-0.2,4c0.5,0,1-0.1,1.6-0.1c0.6,0,1.1,0,1.6,0.1c-0.1-1.3-0.1-2.7-0.2-4c-0.1-1.4-0.1-2.7-0.1-4.1v-5.5c0-2.2,0-4.4,0.1-6.6c0.6,0,1.1,0,1.7,0c0.6,0,1.2,0,1.8,0.1c0.6,0,1.2,0.1,1.8,0.1c0.6,0,1.1,0.1,1.5,0.2c-0.1-0.4-0.2-0.7-0.2-1c0-0.3,0.1-0.6,0.2-1C363.4,472.2,362,472.3,360.7,472.3z M379.8,492.3c-0.5,0.1-1.1,0.2-1.8,0.2c-0.7,0.1-1.4,0.1-2.2,0.1c-0.8,0-1.6,0-2.4,0h-2.2c0-0.4,0-1,0-1.8c0-0.8,0-1.8,0-3v-3.2c0-0.3,0-0.6,0-0.8c0-0.2,0-0.4,0-0.6c0.4,0,0.9,0,1.5,0c0.6,0,1.3,0,2.1,0c0.7,0,1.5,0,2.2,0.1c0.7,0,1.4,0.1,1.9,0.2c-0.1-0.3-0.1-0.6-0.1-1c0-0.3,0-0.7,0.1-1c-0.5,0-1,0.1-1.5,0.1c-0.5,0-1.1,0.1-1.7,0.1c-0.6,0-1.3,0.1-2,0.1c-0.7,0-1.6,0-2.5,0c0-0.4,0-1,0-1.8c0-0.8,0-1.6,0-2.4c0-0.8,0-1.5,0-2.1c0-0.6,0.1-1.3,0.1-1.9c1,0,1.9,0,2.7,0c0.7,0,1.4,0.1,2.1,0.1c0.6,0,1.2,0.1,1.8,0.1c0.6,0,1.2,0.1,1.9,0.1c-0.1-0.3-0.1-0.6-0.1-1c0-0.3,0-0.6,0.1-1c-1,0-1.9,0.1-2.8,0.1c-0.9,0-1.9,0-2.8,0c-1,0-1.9,0-2.9,0c-0.9,0-1.9-0.1-2.9-0.1c0.1,1.4,0.1,2.7,0.2,4.1c0.1,1.4,0.1,2.7,0.1,4.1v5.5c0,1.4,0,2.8-0.1,4.1c-0.1,1.4-0.1,2.7-0.2,4.1c1,0,1.9-0.1,2.9-0.1h5.8c0.9,0,1.9,0,2.9,0.1c-0.1-0.2-0.1-0.5-0.1-0.8c0-0.1,0-0.3,0-0.5C379.7,492.6,379.8,492.4,379.8,492.3z M406.8,483.3c-0.2-1.8-0.4-3.7-0.6-5.6c-0.2-1.9-0.4-3.9-0.7-5.9h-0.4c-0.5,1-1.1,2-1.7,3.2c-0.6,1.1-1.2,2.3-1.9,3.4c-0.6,1.2-1.2,2.3-1.8,3.5c-0.6,1.1-1.2,2.2-1.7,3.2c-0.5,1-1,1.8-1.4,2.6c-0.4,0.8-0.7,1.3-0.9,1.7c-1.6-3-3.2-5.9-4.7-8.8c-1.5-2.8-3-5.8-4.4-8.8H386c-0.2,1.7-0.4,3.5-0.6,5.4c-0.2,1.9-0.5,3.8-0.8,5.7c-0.3,1.9-0.6,3.9-0.9,5.8c-0.3,1.9-0.6,3.7-0.9,5.5c0.3,0,0.7-0.1,1.1-0.1c0.4,0,0.8,0,1.1,0.1c0-0.9,0.1-1.9,0.2-3.3c0.1-1.3,0.2-2.7,0.4-4.2c0.1-1.5,0.3-3,0.5-4.6c0.2-1.5,0.3-3,0.5-4.3h0.1c1.4,2.8,2.8,5.6,4.2,8.2c1.4,2.7,2.7,5.4,4,8h0.3c1.3-2.9,2.6-5.7,4-8.3c1.4-2.6,2.9-5.3,4.3-8h0.1c0.3,2.8,0.6,5.5,0.9,8.1c0.2,2.7,0.5,5.4,0.7,8.2c0.3,0,0.5-0.1,0.7-0.1h1.5c0.2,0,0.5,0,0.7,0.1c-0.3-1.8-0.5-3.5-0.7-5.3 C407.2,486.9,407,485.1,406.8,483.3z M423.4,484.6c-0.5-0.7-1.1-1.3-1.9-1.7c-0.7-0.4-1.5-0.8-2.4-1.1c-0.9-0.3-1.7-0.7-2.4-1.1c-0.7-0.4-1.4-0.9-1.9-1.5c-0.5-0.6-0.7-1.4-0.7-2.4c0-0.6,0.1-1.1,0.3-1.6c0.2-0.5,0.5-0.9,0.9-1.3c0.4-0.4,0.8-0.6,1.3-0.8c0.5-0.2,1-0.3,1.6-0.3c0.6,0,1.1,0.1,1.5,0.3c0.4,0.2,0.8,0.5,1.1,0.7c0.3,0.3,0.6,0.6,0.7,1c0.2,0.4,0.3,0.7,0.4,1h0.4c0.1-0.6,0.3-1.1,0.4-1.5c0.1-0.4,0.3-0.8,0.5-1.1c-0.6-0.5-1.3-0.9-2.1-1.1c-0.7-0.2-1.6-0.4-2.6-0.4c-1.1,0-2,0.1-2.9,0.4c-0.9,0.3-1.6,0.7-2.2,1.2c-0.6,0.5-1.1,1.2-1.4,1.9c-0.3,0.7-0.5,1.5-0.5,2.4c0,1.3,0.2,2.3,0.7,3c0.5,0.7,1.1,1.4,1.9,1.8c0.7,0.5,1.5,0.9,2.4,1.2c0.9,0.3,1.7,0.7,2.4,1.1c0.7,0.4,1.4,0.9,1.9,1.4c0.5,0.6,0.7,1.3,0.7,2.3c0,0.6-0.1,1.2-0.3,1.8c-0.2,0.6-0.5,1.1-0.9,1.5c-0.4,0.4-0.9,0.7-1.4,1c-0.6,0.2-1.2,0.4-1.9,0.4c-0.7,0-1.3-0.1-1.8-0.3c-0.6-0.2-1-0.5-1.5-0.8c-0.4-0.3-0.8-0.7-1.1-1.1c-0.3-0.4-0.5-0.8-0.7-1.2h-0.4c-0.1,0.6-0.1,1.1-0.2,1.5c-0.1,0.4-0.2,0.8-0.4,1.3c0.6,0.4,1.2,0.8,2.1,1.2c0.8,0.4,1.9,0.5,3.2,0.5c1.2,0,2.3-0.2,3.3-0.5c1-0.4,1.8-0.8,2.5-1.5c0.7-0.6,1.2-1.4,1.5-2.3c0.4-0.9,0.5-1.8,0.5-2.8 C424.2,486.3,423.9,485.3,423.4,484.6z\")\n ;\n this.text_r = this.text.append(\"path\")\n .attr(\"fill\", \"#6E6E73\")\n .attr(\"d\", \"M433.1,472.1c2.2,0,3.9,1.8,3.9,3.9c0,2.2-1.8,3.9-3.9,3.9c-2.2,0-3.9-1.8-3.9-3.9 C429.2,473.8,430.9,472.1,433.1,472.1z M433.1,479.5c1.9,0,3.5-1.6,3.5-3.5s-1.5-3.5-3.5-3.5s-3.5,1.6-3.5,3.5 S431.2,479.5,433.1,479.5z M431.7,475c0-0.5,0-1.1-0.1-1.5c0.3,0,0.6,0.1,0.9,0.1c0.3,0,0.6-0.1,0.9-0.1c0.8,0,1.4,0.4,1.4,1.1c0,0.9-1,1.3-1.5,1.4c0.6,0.7,1.5,2,1.9,2.4v0.1c-0.1,0-0.3-0.1-0.4-0.1c-0.1,0-0.3,0-0.4,0.1c-0.5-0.8-1.1-1.6-1.8-2.4h-0.4v0.8c0,0.5,0,1.1,0.1,1.6c-0.1,0-0.2-0.1-0.4-0.1c-0.1,0-0.2,0-0.4,0.1c0-0.5,0.1-1,0.1-1.5V475z M432.2,475.7c0.1,0,0.3,0,0.5,0c0.7,0,1.4-0.3,1.4-1.1c0-0.6-0.4-0.9-1-0.9c-0.3,0-0.5,0-0.8,0.1c0,0.3-0.1,0.7-0.1,1V475.7z\")\n ;\n this.text_tm = this.text.append(\"path\")\n .attr(\"fill\", \"#6E6E73\")\n .attr(\"d\", \"M376.1,322.1c0-0.6,0-1.2,0-1.9c-0.6,0-1.4,0-1.9,0.1c0-0.1,0-0.2,0-0.3c0-0.1,0-0.2,0-0.3c0.8,0,1.5,0,2.3,0s1.5,0,2.3,0c0,0.1,0,0.2,0,0.3c0,0.1,0,0.2,0,0.3c-0.5-0.1-1.3-0.1-1.9-0.1c0,0.6,0,1.2,0,1.9v1.5c0,0.8,0,1.6,0.1,2.3c-0.2,0-0.3,0-0.4,0c-0.1,0-0.3,0-0.4,0c0-0.8,0.1-1.6,0.1-2.3V322.1zM380.5,319.7c0.8,1.7,1.7,3.3,2.6,5c0.4-0.7,1.8-3.3,2.7-5h0.1c0.3,2.3,0.5,4.3,0.7,6.3c-0.1,0-0.3,0-0.4,0c-0.1,0-0.3,0-0.4,0c-0.1-1.6-0.3-3.1-0.4-4.6h0c-0.8,1.5-1.6,3-2.4,4.6h-0.1c-0.7-1.5-1.5-3-2.3-4.6h0c-0.2,1.5-0.4,3.6-0.4,4.6c-0.1,0-0.2,0-0.3,0c-0.1,0-0.2,0-0.3,0c0.3-2,0.7-4.4,0.9-6.3H380.5z\")\n ;\n\n const bbox = this.root.node().getBBox();\n const centerX = bbox.x + bbox.width / 2;\n const centerY = bbox.y + bbox.height / 2;\n const scale = Math.min(this.width(), this.height()) / Math.max(bbox.width, bbox.height);\n this.root\n .attr(\"transform\", \"translate(\" + (-centerX * scale) + \",\" + (-centerY * scale) + \")scale(\" + scale + \")\")\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n switch (this.animation()) {\n case \"none\":\n break;\n case \"accentInOut\":\n this.logo.attr(\"opacity\", 0);\n this.logo_accent.attr(\"transform\", \"translate(-400, 0)\");\n this.text.attr(\"opacity\", 0);\n\n this.logo.transition().duration(1000)\n .attr(\"opacity\", 1)\n ;\n this.logo_accent.transition().delay(500).duration(1500)\n .attr(\"transform\", \"translate(0, 0)\")\n ;\n this.text.transition().delay(100).duration(1000)\n .attr(\"opacity\", 1)\n ;\n this.logo_accent.transition().ease(\"back\").delay(7000).duration(1500)\n .attr(\"transform\", \"translate(400, 0)\")\n ;\n this.text.transition().delay(8400).duration(1000)\n .attr(\"opacity\", 0)\n ;\n this.logo_accent.transition().delay(8500).duration(1000)\n .attr(\"opacity\", 0)\n ;\n this.logo.transition().delay(8500).duration(1000)\n .attr(\"opacity\", 0)\n ;\n break;\n case \"accentIn\":\n this.logo.attr(\"opacity\", 0);\n this.logo_accent.attr(\"transform\", \"translate(-400, 0)\");\n this.text.attr(\"opacity\", 0);\n\n this.logo.transition().duration(1000)\n .attr(\"opacity\", 1)\n ;\n this.logo_accent.transition().delay(500).duration(1500)\n .attr(\"transform\", \"translate(0, 0)\")\n ;\n this.text.transition().delay(100).duration(1000)\n .attr(\"opacity\", 1)\n ;\n break;\n case \"fade_in\":\n this.logo.attr(\"opacity\", 0);\n // this.logo_accent.attr(\"transform\", \"translate(-400, 0)\");\n this.logo_accent.attr(\"opacity\", 0);\n this.text.attr(\"opacity\", 0);\n\n this.logo.transition().duration(1000)\n .attr(\"opacity\", 1)\n ;\n /*\n this.logo_accent.transition().delay(500).duration(1500)\n .attr(\"transform\", \"translate(0, 0)\")\n ;\n */\n this.logo_accent.transition().duration(1000)\n .attr(\"opacity\", 1)\n ;\n this.text.transition().delay(100).duration(1000)\n .attr(\"opacity\", 1)\n ;\n /*\n this.logo_accent.transition().ease(\"back\").delay(7000).duration(1500)\n .attr(\"transform\", \"translate(400, 0)\")\n ;\n */\n /*\n this.text.transition().delay(8400).duration(1000)\n .attr(\"opacity\", 0)\n ;\n this.logo_accent.transition().delay(8500).duration(1000)\n .attr(\"opacity\", 0)\n ;\n this.logo.transition().delay(8500).duration(1000)\n .attr(\"opacity\", 0)\n ;\n */\n break;\n default:\n break;\n }\n }\n}\nHPCCBadge.prototype._class += \" other_HPCCBadge\";\n\nexport interface HPCCBadge {\n animation(): \"none\" | \"accentInOut\" | \"accentIn\" | \"fade_in\";\n animation(_: \"none\" | \"accentInOut\" | \"accentIn\" | \"fade_in\"): this;\n}\n\nHPCCBadge.prototype.publish(\"animation\", \"none\", \"set\", \"Animation Style\", [\"none\", \"accentInOut\", \"accentIn\", \"fade_in\"]);\n","import { HTMLWidget } from \"@hpcc-js/common\";\n\nimport \"../src/Html.css\";\n\nexport class Html extends HTMLWidget {\n constructor() {\n super();\n\n this._tag = \"div\";\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n element\n .style(\"overflow-x\", this.overflowX_exists() ? this.overflowX() : \"\")\n .style(\"overflow-y\", this.overflowY_exists() ? this.overflowY() : \"\")\n ;\n\n const html = element.selectAll(\".htmlWrapper\").data(this.data().length > 0 ? this.data() : [this.html()]);\n html.enter().append(\"div\")\n .attr(\"class\", \"htmlWrapper\")\n .merge(html)\n .html(function (d) { return d; })\n ;\n html.exit().remove();\n }\n\n html: { (): string; (_: string): Html };\n html_exists: () => boolean;\n overflowX: { (): string; (_: string): Html };\n overflowX_exists: () => boolean;\n overflowY: { (): string; (_: string): Html };\n overflowY_exists: () => boolean;\n}\nHtml.prototype._class += \" other_Html\";\n\nHtml.prototype.publish(\"html\", \"\", \"string\", \"Html to render\", null, { tags: [\"Basic\"] });\nHtml.prototype.publish(\"overflowX\", null, \"set\", \"CSS overflow-x\", [\"\", \"visible\", \"hidden\", \"scroll\", \"auto\", \"initial\", \"inherit\"], { tags: [\"Basic\"], optional: true });\nHtml.prototype.publish(\"overflowY\", null, \"set\", \"CSS overflow-y\", [\"\", \"visible\", \"hidden\", \"scroll\", \"auto\", \"initial\", \"inherit\"], { tags: [\"Basic\"], optional: true });\n","import { Entity, HTMLWidget } from \"@hpcc-js/common\";\nimport { HorizontalList, VerticalList } from \"@hpcc-js/layout\";\nimport { select as d3Select } from \"d3-selection\";\nimport { Html } from \"./Html\";\n\nimport \"../src/IconList.css\";\n\nexport class IconList extends HTMLWidget {\n protected _list;\n protected _entity_list = [];\n protected _content_list = [];\n constructor() {\n super();\n this._list = new HorizontalList()\n .orientation_default(\"horizontal\")\n .flexWrap_default(\"nowrap\")\n ;\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n element\n .style(\"height\", \"100%\")\n .style(\"width\", \"100%\")\n ;\n d3Select(domNode.parentElement)\n .style(\"height\", \"100%\")\n .style(\"width\", \"100%\")\n ;\n this._list.target(domNode);\n }\n update(domNode, element) {\n super.update(domNode, element);\n const listWidgets = this._list.widgets();\n this.data().forEach((row, idx) => {\n if (!listWidgets[idx]) {\n listWidgets[idx] = this.updateListProperties(new VerticalList(), idx)\n .widgets([\n this.updateEntityProperties(new Entity(), idx),\n new Html().html(this.data()[idx][this.htmlColumnIndex_exists() ? this.htmlColumnIndex() : 1])\n ]);\n } else {\n listWidgets[idx] = this.updateListProperties(listWidgets[idx], idx);\n this.updateEntityProperties(listWidgets[idx].widgets()[0], idx);\n listWidgets[idx]\n .widgets()[1]\n .html(this.data()[idx][this.htmlColumnIndex_exists() ? this.htmlColumnIndex() : 1])\n ;\n }\n });\n this._list.widgets(listWidgets.slice(0, this.data().length));\n this._list.resize().render();\n }\n updateListProperties(list, idx) {\n return list\n .disableScroll(true)\n .widgetsFlexBasis([this.iconSize() + \"px\", `calc(100% - ${this.iconSize()}px)`])\n ;\n }\n updateEntityProperties(entity, idx) {\n return entity\n .icon(this.iconColumnIndex_exists() ? this.data()[idx][this.iconColumnIndex()] : \"?\")\n .iconColor(this.iconColorColumnIndex_exists() ? this.data()[idx][this.iconColorColumnIndex()] : \"#000\")\n .iconDiameter(this.iconSize())\n .iconPaddingPercent(0)\n ;\n }\n}\nIconList.prototype._class += \" other_IconList\";\n\nexport interface IconList {\n iconSize(): number;\n iconSize(_: number): this;\n iconColumnIndex(): number;\n iconColumnIndex(_: number): this;\n iconColumnIndex_exists(): boolean;\n iconColorColumnIndex(): number;\n iconColorColumnIndex(_: number): this;\n iconColorColumnIndex_exists(): boolean;\n htmlColumnIndex(): number;\n htmlColumnIndex(_: number): this;\n htmlColumnIndex_exists(): boolean;\n}\nIconList.prototype.publish(\"iconSize\", 72, \"number\", \"Size of icon (pixels)\");\nIconList.prototype.publish(\"iconColumnIndex\", 0, \"number\", \"Index of column containing icon character\");\nIconList.prototype.publish(\"iconColorColumnIndex\", 1, \"number\", \"Index of column containing icon color\");\nIconList.prototype.publish(\"htmlColumnIndex\", 2, \"number\", \"Index of column containing html string\");\n","import { d3Event, HTMLWidget, select as d3Select } from \"@hpcc-js/common\";\n\nimport \"../src/Paginator.css\";\n\nexport class Paginator extends HTMLWidget {\n _tNumPages;\n _numList;\n paginator;\n side;\n _onSelect;\n\n constructor() {\n super();\n\n this._tag = \"div\";\n\n this._tNumPages = 1; // np\n\n this._numList = []; // pn\n }\n\n postUpdate(domNode, element) { }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n const context = this;\n\n this.paginator = element.append(\"ul\").attr(\"class\", \"paginator pagination pagination-sm\");\n this.side = element.append(\"div\").attr(\"class\", \"paginator pagination side\");\n\n this.side.append(\"span\")\n .classed(\"side\", true)\n .text(\"Page \")\n ;\n\n this.side.append(\"input\")\n .attr(\"type\", \"number\")\n .attr(\"class\", \"currentPageNumber\")\n .property(\"value\", 1)\n .attr(\"min\", 1)\n .on(\"change\", function () {\n context.pageNumber(this.value);\n context._onSelect(this.value);\n })\n ;\n\n this.side.append(\"span\")\n .classed(\"side total\", true)\n .text(\" of 1\")\n ;\n }\n\n update(domNode, element) {\n const context = this;\n element\n .style(\"bottom\", this.bottom() + \"px\")\n .style(\"right\", this.right() + \"px\")\n ;\n\n this._tNumPages = Math.ceil(this.numItems() / this.itemsPerPage()) || 1;\n\n if (this.pageNumber() > this._tNumPages) { this.pageNumber(1); }\n\n this._numList = [];\n if (this.numItems()) {\n this._numList.push(\"first\");\n for (let x = -this.adjacentPages(); x <= this.adjacentPages(); x++) {\n if (this.pageNumber() + x > 0 && this.pageNumber() + x <= this._tNumPages) {\n this._numList.push(this.pageNumber() + x);\n }\n }\n this._numList.push(\"last\");\n }\n\n this.side.select(\".total\").text(\" of \" + this._tNumPages);\n this.side.select(\".currentPageNumber\").property(\"value\", this.pageNumber());\n this.side.select(\".currentPageNumber\").attr(\"max\", this._tNumPages);\n\n const page = this.paginator.selectAll(\"li\").data(this._numList, function (d) { return d; });\n page\n .enter()\n .append(function (d) {\n const li = document.createElement(\"li\");\n\n if (d !== context.pageNumber()) {\n const a = document.createElement(\"a\");\n const linkText = document.createTextNode(d);\n\n a.appendChild(linkText);\n a.href = \"#\";\n li.appendChild(a);\n\n return li;\n } else {\n const span = document.createElement(\"span\");\n span.innerHTML = d;\n\n li.appendChild(span);\n\n return li;\n }\n })\n .on(\"click\", function (d, i) {\n d3Event().preventDefault();\n context.side.select(\".currentPageNumber\").property(\"value\", context.pageNumber());\n switch (d) {\n case \"first\":\n if (context.pageNumber() !== 1) {\n context.pageNumber(1);\n context._onSelect(1, \"previous\");\n }\n break;\n case \"last\":\n if (context.pageNumber() !== context._tNumPages) {\n context.pageNumber(context._tNumPages);\n context._onSelect(context._tNumPages, \"previous\");\n }\n break;\n default:\n context.pageNumber(d);\n context._onSelect(d);\n }\n })\n ;\n\n page.classed(\"active\", function (e, j) { return e === context.pageNumber(); })\n .select(\"a\")\n .text(function (d) { return d; })\n ;\n\n page.exit().remove();\n page.order();\n\n if (this.numItems() === 0) {\n d3Select(domNode).remove();\n }\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n\n itemsPerPage: { (): number; (_: number): Paginator };\n itemsPerPage_exists: () => boolean;\n numItems: { (): number; (_: number): Paginator };\n numItems_exists: () => boolean;\n pageNumber: { (): number; (_: number): Paginator };\n pageNumber_exists: () => boolean;\n adjacentPages: { (): number; (_: number): Paginator };\n adjacentPages_exists: () => boolean;\n bottom: { (): number; (_: number): Paginator };\n bottom_exists: () => boolean;\n right: { (): number; (_: number): Paginator };\n right_exists: () => boolean;\n}\nPaginator.prototype._class += \" other_Paginator\";\n\nPaginator.prototype.publish(\"itemsPerPage\", 2, \"number\", \"Pagination items per page\", null, { tags: [\"Private\"] });\n\nPaginator.prototype.publish(\"numItems\", 10, \"number\", \"Pagination total number of items\", null, { tags: [\"Private\"] });\nPaginator.prototype.publish(\"pageNumber\", 1, \"number\", \"Pagination set or get the page number\", null, { tags: [\"Private\"] });\nPaginator.prototype.publish(\"adjacentPages\", 2, \"number\", \"Number of page indexes either side of current one\", null, { tags: [\"Private\"] });\nPaginator.prototype.publish(\"bottom\", 20, \"number\", \"Pagination bottom offset\", null, { tags: [\"Private\"] });\nPaginator.prototype.publish(\"right\", 20, \"number\", \"Pagination right offset\", null, { tags: [\"Private\"] });\n","import { d3Event, HTMLWidget, Platform, select as d3Select, selectAll as d3SelectAll, Utility, Widget } from \"@hpcc-js/common\";\nimport { Paginator } from \"./Paginator\";\n\nimport \"../src/Table.css\";\n\nexport class Table extends HTMLWidget {\n protected _paginator;\n protected _selectionBag;\n protected _selectionPrevClick;\n protected _paginatorTableSpacing;\n\n tableDiv;\n thead;\n table;\n fixedHead;\n fixedHeadTable;\n fixedThead;\n unfixedThead;\n tbody;\n tfoot;\n fixedCol;\n fixedColTable;\n fixedColHead;\n fixedColHeadRow;\n fixedColBody;\n fixedColFoot;\n fixedColFootRow;\n protected _prevDescending;\n protected _prevSortByFieldIndex;\n protected _hasChildWidgets;\n protected _tNumPages;\n protected _empty_col_idx_arr: any[];\n\n constructor() {\n super();\n this._tag = \"div\";\n this.columns([]);\n this._paginator = new Paginator();\n this._selectionBag = new Utility.Selection(this);\n this._selectionPrevClick = null;\n this._paginatorTableSpacing = 4;\n }\n\n size(): any;\n size(_): Widget;\n size(_?): any | Widget {\n const retVal = super.size.apply(this, arguments);\n if (arguments.length) {\n if (this.tableDiv) {\n const topMargin = this.showHeader() && this.fixedHeader() ? this.thead.property(\"offsetHeight\") : 0;\n this.tableDiv\n .style(\"width\", this._size.width + \"px\")\n .style(\"height\", this._size.height - topMargin + \"px\")\n ;\n this._element\n .style(\"width\", this._size.width + \"px\")\n .style(\"height\", this._size.height + \"px\")\n ;\n }\n }\n\n return retVal;\n }\n\n isHidden(colIdx) {\n if (this.pivot()) return false;\n if (this.hiddenColumns().indexOf(colIdx) !== -1) return true;\n const fields = this.fields();\n if (fields && fields[colIdx] && (fields[colIdx].type() === \"hidden\" || this._empty_col_idx_arr.indexOf(colIdx) !== -1)) {\n return true;\n }\n return false;\n }\n\n tableColumns(_?: string[]): string[] {\n const retVal = this.columns.apply(this, arguments);\n if (!arguments.length && this.pivot()) {\n return this._db.column(0);\n }\n return retVal;\n }\n\n tableData(_?) {\n const retVal = this.data.apply(this, arguments);\n if (!arguments.length && this.pivot()) {\n return this._db.columns().filter(function (col, idx) { return idx > 0; });\n }\n return retVal;\n }\n\n field(rowIdx, colIdx) {\n const noTransform = { transform: d => d };\n if (this.pivot()) {\n if (colIdx === 0) return noTransform;\n return this.fields()[rowIdx + 1];\n }\n if (rowIdx === -1) return noTransform;\n return this.fields()[colIdx];\n }\n\n calcFieldsIndex(colIdx) {\n let i = -1;\n let offset = 0;\n const colLen = this.columns().length;\n let visibleCount = 0;\n while (i < colLen && visibleCount <= colIdx) {\n i++;\n if (this.isHidden(i)) {\n offset++;\n } else {\n visibleCount++;\n }\n }\n return colIdx + offset;\n }\n\n getEmptyColumnIdxArr(columns, data) {\n const ret_arr = [];\n if (this.hideEmptyColumns()) {\n for (let col_idx = 0; col_idx < columns.length; col_idx++) {\n let column_is_empty = true;\n for (let row_idx = 0; row_idx < data.length; row_idx++) {\n if ([\"\", null, undefined].indexOf(data[row_idx][col_idx]) === -1) {\n column_is_empty = false;\n break;\n }\n }\n if (column_is_empty) {\n ret_arr.push(col_idx);\n }\n }\n }\n return ret_arr;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._placeholderElement.style(\"overflow\", \"hidden\");\n\n this.tableDiv = element.append(\"div\").attr(\"class\", \"tableDiv\");\n this.table = this.tableDiv.append(\"table\");\n this.fixedHead = element.append(\"div\").classed(\"header-wrapper\", true);\n this.fixedHeadTable = this.fixedHead.append(\"table\");\n this.fixedThead = this.fixedHeadTable.append(\"thead\").append(\"tr\");\n this.unfixedThead = this.table.append(\"thead\").append(\"tr\");\n this.tbody = this.table.append(\"tbody\");\n this.tfoot = this.table.append(\"tfoot\").append(\"tr\");\n this.fixedCol = element.append(\"div\").classed(\"rows-wrapper\", true);\n this.fixedColTable = this.fixedCol.append(\"table\");\n this.fixedColHead = this.fixedColTable.append(\"thead\");\n this.fixedColHeadRow = this.fixedColHead.append(\"tr\");\n this.fixedColBody = this.fixedColTable.append(\"tbody\");\n this.fixedColFoot = this.fixedColTable.append(\"tfoot\");\n this.fixedColFootRow = this.fixedColFoot.append(\"tr\");\n\n this.tableDiv\n .style(\"overflow\", \"auto\")\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n const columns = context.tableColumns();\n const data = context.tableData();\n const scrollLeft = this.tableDiv.node().scrollLeft;\n this._empty_col_idx_arr = this.getEmptyColumnIdxArr(columns, data);\n\n this.element().selectAll(\"table,tbody,th,td\").style(\"width\", null);\n\n if (this.sortByFieldIndex_exists() && (this._prevSortByFieldIndex !== this.sortByFieldIndex() || this._prevDescending !== this.descending())) {\n Utility.multiSort(data, [{ idx: this.sortByFieldIndex(), reverse: this.descending() }]);\n this._prevSortByFieldIndex = this.sortByFieldIndex();\n this._prevDescending = this.descending();\n }\n\n this._hasChildWidgets = false;\n\n if (this.fixedHeader()) {\n this.thead = this.fixedThead;\n } else {\n this.thead = this.unfixedThead;\n }\n this.fixedHead.style(\"display\", this.fixedHeader() ? \"table-row\" : \"none\");\n this.unfixedThead.style(\"display\", this.fixedHeader() ? \"none\" : \"table-row\");\n\n const thSel = this.thead.selectAll(\"th\").data(this.showHeader() ? columns.filter(function (col, idx) {\n return !context.isHidden(idx) && context._empty_col_idx_arr.indexOf(idx) === -1;\n }) : []);\n const thUpdate = thSel.enter().append(\"th\")\n .each(function (d) {\n const element2 = d3Select(this);\n element2\n .append(\"span\")\n .attr(\"class\", \"thText\")\n ;\n element2\n .append(\"span\")\n .attr(\"class\", \"thIcon\")\n ;\n })\n .on(\"click\", function (column, idx) {\n context.headerClick(column, idx);\n })\n .merge(thSel)\n .style(\"background-color\", this.theadRowBackgroundColor())\n .style(\"border-color\", this.theadCellBorderColor())\n .style(\"color\", this.theadFontColor())\n .style(\"font-size\", this.theadFontSize())\n ;\n thUpdate.select(\".thText\")\n .style(\"font-family\", this.theadFontFamily())\n .text(function (column, idx) {\n const fieldsIdx = context.calcFieldsIndex(idx);\n return context.field(-1, fieldsIdx).transform(column);\n })\n ;\n thUpdate.select(\".thIcon\")\n .text(function (column, idx) {\n if (context.descending()) {\n return context.sortByFieldIndex() === idx ? \"\\uf078\" : \"\";\n } else {\n return context.sortByFieldIndex() === idx ? \"\\uf077\" : \"\";\n }\n })\n ;\n thSel.exit()\n .remove()\n ;\n thUpdate.order();\n\n if (this.paginationLimit()) {\n this.pagination(data.length >= parseInt(this.paginationLimit()) ? true : false);\n }\n if (this.pagination()) {\n if (this._paginator.target() === null) {\n this._paginator.target(element.node());\n }\n\n const ipp = this._calcRowsPerPage(thUpdate);\n this.itemsPerPage(ipp);\n\n this._paginator.numItems(data.length);\n this._tNumPages = Math.ceil(this._paginator.numItems() / this.itemsPerPage()) || 1;\n if (this.pageNumber() > this._tNumPages || this.pageNumber() <= 0) { this.pageNumber(1); } // resets if current pagenum selected out of range\n\n this._paginator._onSelect = function (p, d) {\n context.pageNumber(p);\n context.render();\n return;\n };\n } else {\n this._paginator.numItems(0); // remove widget\n }\n\n // pageNumber starts at index 1\n const startIndex = this.pageNumber() - 1;\n const itemsOnPage = this.itemsPerPage();\n\n const start = startIndex * itemsOnPage;\n const end = startIndex * parseInt(itemsOnPage) + parseInt(itemsOnPage);\n\n let tData = null;\n\n if (this.topN()) {\n tData = data.slice(0, this.topN());\n } else if (this.pagination()) {\n tData = data.slice(start, end);\n } else {\n tData = data;\n }\n\n const totalRow: any[] = [this.totalledLabel() ? this.totalledLabel() : null];\n if (this.totalledColumns().length !== 0) {\n for (let i = 0; i < this.totalledColumns().length; i++) this.totalledColumns()[i] = +this.totalledColumns()[i];\n for (let j = 1; j < columns.length; j++) {\n let sum = 0;\n if (this.totalledColumns().indexOf(j) !== -1) {\n for (let k = 0; k < tData.length; k++) {\n sum = sum + tData[k][j];\n }\n totalRow.push(sum);\n } else {\n totalRow.push(\"\");\n }\n }\n\n const tfSel = this.tfoot.selectAll(\"td\").data(totalRow);\n tfSel.enter()\n .append(\"td\")\n .merge(tfSel)\n .style(\"background-color\", this.tfootRowBackgroundColor())\n .style(\"border-color\", this.tfootCellBorderColor())\n .style(\"color\", this.tfootFontColor())\n .style(\"font-size\", this.tfootFontSize())\n [this.renderHtmlDataCells() ? \"html\" : \"text\"](function (d, idx) {\n return context.fields()[idx].transform(d);\n });\n tfSel.exit()\n .remove()\n ;\n }\n\n const rowsSel = this.tbody.selectAll(\"tr.tr_\" + this.id()).data(tData.map(function (d, idx) {\n // TODO - Move fix closer to data source?\n for (let i = 0; i < d.length; ++i) {\n if (d[i] === undefined) {\n d[i] = null;\n }\n }\n return {\n rowIdx: idx,\n row: d\n };\n }));\n const rowsUpdate = rowsSel.enter().append(\"tr\")\n .attr(\"class\", \"tr_\" + this.id())\n .on(\"click.selectionBag\", function (_d) {\n if (_d.row) {\n const d = _d.row;\n const i = _d.rowIdx;\n context.selectionBagClick(d, i);\n context.applyRowStyles(context.getBodyRow(i));\n context.applyFirstColRowStyles(context.getFixedRow(i));\n }\n }, true) // capture=true: event is caught on the way down the DOM before the cell click.\n .on(\"mouseover\", function (_d) {\n if (_d.row) {\n const i = _d.rowIdx;\n const fixedLeftRows = context.getFixedRow(i);\n if (!fixedLeftRows.empty()) {\n fixedLeftRows.classed(\"hover\", true);\n }\n const tbodyRows = context.getBodyRow(i);\n tbodyRows.classed(\"hover\", true);\n context.applyStyleToRows(tbodyRows);\n context.applyFirstColRowStyles(fixedLeftRows);\n }\n })\n .on(\"mouseout\", function (_d) {\n if (_d.row) {\n const i = _d.rowIdx;\n const fixedLeftRows = context.getFixedRow(i);\n fixedLeftRows.classed(\"hover\", false);\n const tbodyRows = context.getBodyRow(i);\n tbodyRows.classed(\"hover\", false);\n context.applyStyleToRows(tbodyRows);\n context.applyFirstColRowStyles(fixedLeftRows);\n }\n })\n .merge(rowsSel)\n .classed(\"selected\", function (_d) {\n const d = _d.row;\n return context._selectionBag.isSelected(context._createSelectionObject(d));\n })\n .classed(\"trId\" + this._id, true)\n ;\n rowsSel.exit()\n .remove()\n ;\n this.applyStyleToRows(rowsUpdate);\n\n const cellsSel = rowsUpdate.selectAll(\".td_\" + this.id()).data(function (_d, _trIdx) {\n return _d.row.filter(function (cell, idx) {\n return idx < columns.length && !context.isHidden(idx) && context._empty_col_idx_arr.indexOf(idx) === -1;\n }).map(function (cell, idx) {\n return {\n rowInfo: _d,\n colIdx: idx,\n cell\n };\n });\n });\n cellsSel.enter()\n .append(\"td\")\n .attr(\"class\", \"td_\" + this.id())\n .on(\"click\", function (tdContents) {\n if (tdContents.rowInfo) {\n context.click(context.rowToObj(tdContents.rowInfo.row), context.columns()[tdContents.colIdx], context._selectionBag.isSelected(context._createSelectionObject(tdContents.rowInfo.row)));\n }\n })\n .on(\"dblclick\", function (tdContents, idx) {\n if (tdContents.rowInfo) {\n context.dblclick(context.rowToObj(tdContents.rowInfo.row), context.columns()[tdContents.colIdx], context._selectionBag.isSelected(context._createSelectionObject(tdContents.rowInfo.row)));\n }\n })\n .each(function (tdContents, tdIdx) {\n const alignment = context.getColumnAlignment(tdContents.rowInfo.rowIdx, tdContents.colIdx, tdContents.cell);\n const el = d3Select(this);\n el\n .style(\"height\", null)\n .style(\"text-align\", alignment)\n .style(\"vertical-align\", context.verticalAlign())\n .classed(\"tr-\" + tdContents.rowInfo.rowIdx + \"-td-\" + tdIdx, true)\n ;\n })\n .merge(cellsSel)\n .each(function (tdContents) {\n const el = d3Select(this);\n if (tdContents.cell instanceof Widget) {\n el[context.renderHtmlDataCells() ? \"html\" : \"text\"](null);\n const widgetDiv = el.selectAll(\".div_\" + context.id()).data([tdContents.cell], function (d: any) { return d.id(); });\n widgetDiv.exit()\n .each(function (d: any) {\n d.target(null);\n })\n .remove()\n ;\n widgetDiv.enter().append(\"div\")\n .attr(\"class\", \"div_\" + context.id())\n .style(\"width\", context.minWidgetWidth() + \"px\")\n .style(\"height\", context.minWidgetHeight() + \"px\")\n .each(function (d) {\n const widgetDiv2 = d3Select(this);\n d._parentWidget = context;\n if (d._class.indexOf(\"childWidget\") < 0) {\n d._class = \"childWidget \" + d._class;\n }\n d\n .target(null)\n .target(widgetDiv2.node())\n ;\n })\n .merge(widgetDiv as any)\n .each(function (d) {\n d\n .resize()\n .lazyRender()\n ;\n context._hasChildWidgets = true;\n })\n ;\n } else {\n el.selectAll(\".div_\" + context.id()).remove();\n const fieldsIdx = context.calcFieldsIndex(tdContents.colIdx);\n el[context.renderHtmlDataCells() ? \"html\" : \"text\"](\n context.field(tdContents.rowInfo.rowIdx, fieldsIdx).transform(tdContents.cell)\n );\n }\n })\n ;\n cellsSel.exit()\n .remove()\n ;\n const tableMarginHeight = parseInt(this.thead.node().offsetHeight);\n\n if (this.pagination() && this._hasChildWidgets) {\n this.tableDiv.style(\"overflow-y\", \"auto\");\n this.table.style(\"margin-bottom\", \"50px\");\n console.warn(\"Warning: displaying another widget in the table may cause problems with pagination\");\n } else {\n this.tableDiv.style(\"overflow-y\", null);\n this.table.style(\"margin-bottom\", null);\n\n }\n this.size(this._size);\n\n let fixedColWidth = 0;\n const fixedColThSel = this.fixedColHeadRow.selectAll(\"th\").data(this.fixedColumn() && this.showHeader() ? [columns[0]] : []);\n const fixedColThUpdate = fixedColThSel.enter().append(\"th\")\n .each(function (d) {\n const element2 = d3Select(this);\n element2\n .append(\"span\")\n .attr(\"class\", \"thText\")\n ;\n element2\n .append(\"span\")\n .attr(\"class\", \"thIcon\")\n ;\n })\n .on(\"click\", function (column, idx) {\n context.headerClick(column, idx);\n })\n .merge(fixedColThSel)\n .style(\"background-color\", this.theadRowBackgroundColor())\n .style(\"border-color\", this.theadCellBorderColor())\n .style(\"color\", this.theadFontColor())\n .style(\"font-size\", this.theadFontSize())\n ;\n fixedColThUpdate.select(\".thText\")\n .style(\"font-family\", this.theadFontFamily())\n .text(function (column) {\n return column;\n })\n ;\n fixedColThUpdate.select(\".thIcon\")\n .text(function (column, idx) {\n if (context.descending()) {\n return context.sortByFieldIndex() === idx ? \"\\uf078\" : \"\";\n } else {\n return context.sortByFieldIndex() === idx ? \"\\uf077\" : \"\";\n }\n })\n ;\n fixedColThSel.exit()\n .remove()\n ;\n\n const fixedColTrSel = this.fixedColBody.selectAll(\"tr\").data(this.fixedColumn() ? tData : []);\n const fixedColTrUpdate = fixedColTrSel.enter().append(\"tr\")\n .attr(\"class\", function () {\n return \"trId\" + context._id;\n })\n .merge(fixedColTrSel)\n .on(\"click\", function (d, i) {\n (d3Select(rowsUpdate[0][i]).on(\"click.selectionBag\") as any)(rowsUpdate.data()[i], i)\n ;\n })\n .on(\"mouseover\", function (d, i) {\n (d3Select(rowsUpdate[0][i]).on(\"mouseover\") as any)(rowsUpdate.data()[i], i)\n ;\n })\n .on(\"mouseout\", function (d, i) {\n (d3Select(rowsUpdate[0][i]).on(\"mouseout\") as any)(rowsUpdate.data()[i], i)\n ;\n })\n .classed(\"selected\", function (d) {\n return context._selectionBag.isSelected(context._createSelectionObject(d));\n })\n ;\n fixedColTrSel.exit()\n .remove()\n ;\n const fixedColTdSel = fixedColTrUpdate.selectAll(\"td\").data(function (d, i) {\n return [d[0]];\n });\n const fixedColTdUpdate = fixedColTdSel.enter().append(\"td\")\n .merge(fixedColTdSel)[this.renderHtmlDataCells() ? \"html\" : \"text\"](function (d): any {\n if (typeof (d) === \"string\") {\n return d.trim();\n } else if (typeof (d) === \"number\") {\n return d;\n }\n return \"\";\n });\n fixedColTdSel.exit()\n .remove()\n ;\n\n const fixedColFootTdSel = this.fixedColFootRow.selectAll(\"td\").data(this.fixedColumn() && this.totalledLabel() ? [this.totalledLabel()] : []);\n const fixedColFootTdUpdate = fixedColFootTdSel.enter().append(\"td\")\n .merge(fixedColFootTdSel)[this.renderHtmlDataCells() ? \"html\" : \"text\"](function (d): any {\n if (typeof (d) === \"string\") {\n return d.trim();\n } else if (typeof (d) === \"number\") {\n return d;\n }\n return \"\";\n });\n fixedColFootTdSel.exit()\n .remove()\n ;\n\n if (this.fixedColumn() && !this.fixedSize() && fixedColFootTdUpdate.length) {\n if (this.showHeader()) {\n fixedColWidth = fixedColFootTdUpdate.property(\"offsetWidth\") > fixedColFootTdUpdate.property(\"offsetWidth\") ? fixedColFootTdUpdate.property(\"offsetWidth\") : fixedColFootTdUpdate.property(\"offsetWidth\");\n } else {\n fixedColWidth = fixedColFootTdUpdate.property(\"offsetWidth\");\n }\n this.fixedCol\n .style(\"position\", \"absolute\")\n .style(\"margin-top\", -this.tableDiv.property(\"scrollTop\") + tableMarginHeight + \"px\")\n ;\n fixedColTdUpdate\n .style(\"width\", fixedColWidth + \"px\")\n ;\n this.fixedColHead\n .style(\"position\", \"absolute\")\n .style(\"margin-top\", (this.fixedHeader() ? this.tableDiv.property(\"scrollTop\") : 0) - tableMarginHeight + \"px\")\n ;\n fixedColThUpdate\n .style(\"width\", fixedColWidth + \"px\")\n ;\n rowsUpdate.each(function (d, i) {\n const height = d3Select(this).select(\"td\").property(\"offsetHeight\");\n d3Select(fixedColTdUpdate[i][0]).style(\"height\", height + \"px\");\n });\n }\n\n this.table\n .style(\"margin-left\", -fixedColWidth + \"px\")\n ;\n this.tableDiv\n .style(\"margin-left\", fixedColWidth + \"px\")\n .style(\"width\", this.width() - fixedColWidth + \"px\")\n ;\n\n if (!rowsUpdate.empty()) this.setColumnWidths(rowsUpdate);\n\n let box;\n let newTableHeight;\n let finalWidth;\n let maxWidth;\n if (this.fixedSize()) {\n const node = d3Select(\".tableDiv > table\").node();\n if (node) {\n box = (node as any).getBoundingClientRect();\n let newTableHeight;\n let finalWidth;\n if (box.width !== 0 && box.height !== 0) {\n calcWidth();\n calcHeight();\n } else {\n if (box.height - tableMarginHeight <= context.tableDiv.property(\"offsetHeight\")) {\n calcHeight();\n } else {\n if (context.fixedHeader()) {\n newTableHeight = context.tableDiv.property(\"offsetHeight\"); // is tableDiv correct?\n newTableHeight = newTableHeight + \"px\";\n } else {\n newTableHeight = \"100%\";\n }\n }\n if (box.width - fixedColWidth < context.tableDiv.property(\"offsetWidth\")) {\n calcWidth();\n } else {\n if (context.fixedColumn()) {\n finalWidth = context.tableDiv.property(\"offsetWidth\") - fixedColWidth; // is tableDiv correct?\n finalWidth = finalWidth + \"px\";\n } else {\n finalWidth = \"100%\";\n }\n }\n }\n if (element.classed(\"childWidget\")) {\n context._placeholderElement\n .style(\"width\", finalWidth + \"px\")\n .style(\"height\", newTableHeight + \"px\")\n ;\n context.tableDiv\n .style(\"overflow\", \"hidden\")\n ;\n }\n context.size({ width: finalWidth, height: newTableHeight });\n }\n }\n\n this.setOnScrollEvents(this.tableDiv.node(), tableMarginHeight);\n\n function calcWidth() {\n const newTableWidth = box.width;\n maxWidth = context.tbody.property(\"offsetWidth\") + 1;\n finalWidth = newTableWidth > maxWidth ? maxWidth : newTableWidth;\n finalWidth = finalWidth;\n }\n\n function calcHeight() {\n newTableHeight = context.tbody.property(\"offsetHeight\") + tableMarginHeight;\n newTableHeight = newTableHeight;\n }\n\n this._paginator.render();\n setTimeout(function () {\n context._paginator\n .right((context.hasVScroll(element) ? Platform.getScrollbarWidth() : 0) + context._paginatorTableSpacing)\n .bottom((context.hasHScroll(element) ? Platform.getScrollbarWidth() : 0) + context._paginatorTableSpacing)\n .render(function () {\n context.tableDiv.node().scrollLeft = scrollLeft;\n })\n ;\n }, 0);\n }\n\n exit(domNode, element) {\n this._paginator.target(null);\n super.exit(domNode, element);\n }\n\n setColumnWidths(rows) {\n const context = this;\n const firstRow = rows.filter(function (d, i) { return i === 0; });\n\n let tds = d3Select(null);\n firstRow.each(function (d) {\n tds = d3SelectAll(this.childNodes);\n });\n\n const tableMarginHeight = this.fixedHeader() ? this.thead.property(\"offsetHeight\") : 0;\n let totalWidth = 1;\n const tdWidths = {};\n\n tds.each(function (d, i) {\n tdWidths[i] = (this as any).offsetWidth;\n });\n\n const th = this.thead.selectAll(\"th\");\n th.each(function (d, i) {\n const thwidth = this.offsetWidth;\n const tdwidth = tds.empty() ? 0 : tdWidths[i];\n const usewidth = thwidth >= tdwidth ? thwidth : tdwidth;\n this.style.width = usewidth + \"px\";\n tds\n .filter((_d, idx) => idx === 0)\n .each(function () {\n d3Select(this).style(\"width\", usewidth + \"px\");\n })\n ;\n totalWidth += usewidth;\n });\n this.thead\n .style(\"position\", this.fixedHeader() ? \"absolute\" : \"relative\")\n .style(\"width\", totalWidth + \"px\")\n .style(\"margin-top\", \"0px\")\n ;\n this.table\n .style(\"width\", totalWidth + \"px\")\n ;\n this.tableDiv\n .style(\"margin-top\", (context.fixedHeader() ? tableMarginHeight : 0) + \"px\")\n ;\n this.tbody\n .style(\"width\", totalWidth + \"px\")\n ;\n }\n\n getBodyRow(i) {\n return this.table.selectAll(\"tbody tr.trId\" + this._id)\n .filter(function (d, idx) {\n return idx === i;\n })\n ;\n }\n\n getFixedRow(i) {\n return this._element.selectAll(\".rows-wrapper tbody tr\")\n .filter(function (d, idx) {\n return idx === i;\n })\n ;\n }\n\n setOnScrollEvents(scrollNode, margHeight) {\n const context = this;\n scrollNode.onscroll = function (e) {\n const topDelta = e.target.scrollTop;\n const leftDelta = e.target.scrollLeft;\n if (context.fixedHeader()) {\n context.thead\n .style(\"margin-left\", -leftDelta + \"px\")\n ;\n }\n if (context.fixedColumn()) {\n context.fixedCol\n .style(\"margin-top\", -topDelta + margHeight + \"px\")\n ;\n if (context.fixedHeader()) {\n context.fixedColHead\n .style(\"margin-top\", topDelta - margHeight + \"px\")\n ;\n }\n }\n };\n }\n\n _generateTempRow() {\n const trow = this.tbody.append(\"tr\");\n trow.append(\"td\").text(\"QQQ\");\n return trow;\n }\n\n _createSelectionObject(d) {\n const context = this;\n return {\n _id: d,\n element: () => context.tbody ? context.tbody.selectAll(\"tr\").filter(function (d2) { return d2 === d; }) : d3Select(null)\n };\n }\n\n _calcRowsPerPage(th) {\n if (this._paginator.numItems() === 0) { // only run on first render\n this._paginator.numItems(1);\n this.itemsPerPage(1);\n }\n this._paginator.render();\n\n const thHeight = this.thead.selectAll(\"th\").node() ? this.thead.selectAll(\"th\").node().clientHeight : 0;\n const tfootHeight = this.tfoot.selectAll(\"td\").node() ? this.tfoot.selectAll(\"td\").node().clientHeight : 0;\n const tmpRow = this._generateTempRow();\n const tcellHeight = tmpRow.node().clientHeight;\n tmpRow.remove();\n const paginatorHeight = this.calcHeight(this._paginator.element());\n let ipp = Math.floor((this.height() - thHeight - tfootHeight - paginatorHeight - (this.table.style(\"width\") >= this.table.style(\"width\") ? Platform.getScrollbarWidth() : 0) - this._paginatorTableSpacing * 2) / tcellHeight) || 1;\n if (this.totalledColumns().length !== 0) {\n ipp -= 1;\n }\n return ipp;\n }\n\n sort(idx) {\n if (this.sortByFieldIndex() !== idx) {\n this.descending(false);\n } else {\n this.descending(!this.descending());\n }\n this.sortByFieldIndex(idx);\n\n return this;\n }\n\n selection(_) {\n if (!arguments.length) return this._selectionBag.get().map(function (d) { return d._id; });\n this._selectionBag.set(_.map(function (row) {\n return this._createSelectionObject(row);\n }, this));\n return this;\n }\n\n selectionBagClick(d, i) {\n if (this.multiSelect() && d3Event().shiftKey && this._selectionPrevClick) {\n let inRange = false;\n const rows = [];\n const selection = this.tableData().filter(function (row, i2) {\n let lastInRangeRow = false;\n if (row === d || row === this._selectionPrevClick) {\n if (inRange) {\n lastInRangeRow = true;\n }\n inRange = !inRange;\n rows.push(i2);\n }\n return inRange || lastInRangeRow;\n }, this);\n this.selection(selection);\n } else if (this.multiSelect()) {\n this._selectionBag.click(this._createSelectionObject(d), d3Event);\n this._selectionPrevClick = d;\n } else {\n const selObj = this._createSelectionObject(d);\n this._selectionBag.click(selObj, { ctrlKey: this._selectionBag.isSelected(selObj) });\n this._selectionPrevClick = d;\n }\n this.render();\n }\n\n applyHoverRowStyles(row) {\n const context = this;\n row\n .style(\"color\", context.tbodyHoverRowFontColor())\n .style(\"background-color\", context.tbodyHoverRowBackgroundColor())\n ;\n }\n applySelectedRowStyles(row) {\n const context = this;\n row\n .style(\"color\", context.tbodySelectedRowFontColor())\n .style(\"background-color\", context.tbodySelectedRowBackgroundColor())\n ;\n }\n applyRowStyles(row, isFirstCol: boolean = false) {\n const dataRow = row.datum().row;\n row\n .style(\"color\", isFirstCol ? this.tbodyFirstColFontColor() : this.tbodyFontColor())\n .style(\"background-color\", isFirstCol ? this.tbodyFirstColBackgroundColor() : this.tableZebraColor_exists() && this.tableData().indexOf(dataRow) % 2 ? this.tbodyRowBackgroundColor() : this.tableZebraColor())\n ;\n }\n applyFirstColRowStyles(rows) {\n this.applyStyleToRows(rows, true);\n }\n applyStyleToRows(rows, isFirstCol: boolean = false) {\n isFirstCol = typeof isFirstCol !== \"undefined\" ? isFirstCol : false;\n const context = this;\n rows.each(function () {\n const tr = d3Select(this);\n if (tr.classed(\"hover\")) {\n context.applyHoverRowStyles(tr);\n } else if (tr.classed(\"selected\")) {\n context.applySelectedRowStyles(tr);\n } else {\n context.applyRowStyles(tr, isFirstCol);\n }\n })\n ;\n }\n\n getColumnAlignment(rowIdx, colIdx, cell) {\n const fieldsIdx = this.calcFieldsIndex(colIdx);\n const field = this.field(rowIdx, fieldsIdx);\n switch ((field as any).__prop_type) {\n case \"string\":\n return this.stringAlign();\n case \"number\":\n return this.numberAlign();\n case \"\":\n case undefined:\n switch (typeof cell) {\n case \"string\":\n return this.stringAlign();\n case \"number\":\n return this.numberAlign();\n }\n }\n return null;\n }\n\n serializeState() {\n return {\n selection: this._selectionBag.get().map(function (d) {\n return d._id;\n }),\n data: this.data()\n };\n }\n\n deserializeState(state) {\n if (state) {\n if (state.selection) {\n const context = this;\n this._selectionBag.set(state.selection.map(function (d) {\n return context._createSelectionObject(d);\n }));\n }\n if (state.data) {\n this.data(state.data);\n }\n }\n return this;\n }\n\n click(row, column, selected) {\n }\n\n dblclick(row, column, selected) {\n }\n\n headerClick(column, idx) {\n this\n .sort(idx)\n .render()\n ;\n }\n renderHtmlDataCells: { (): boolean; (_: boolean): Table; };\n pagination: { (): boolean; (_: boolean): Table; };\n paginationLimit: { (): any; (_: any): Table; };\n itemsPerPage: { (): any; (_: any): Table; };\n pageNumber: { (): number; (_: number): Table; };\n adjacentPages: { (): number; (_: number): Table; };\n topN: { (): number; (_: number): Table; };\n pivot: { (): boolean; (_: boolean): Table; };\n showHeader: { (): boolean; (_: boolean): Table; };\n fixedHeader: { (): boolean; (_: boolean): Table; };\n fixedColumn: { (): boolean; (_: boolean): Table; };\n multiSelect: { (): boolean; (_: boolean): Table; };\n\n fixedSize: { (): boolean; (_: boolean): Table; };\n\n hideEmptyColumns: { (): boolean; (_: boolean): Table; };\n\n theadFontSize: { (): string; (_: string): Table; };\n tbodyFontSize: { (): string; (_: string): Table; };\n tfootFontSize: { (): string; (_: string): Table; };\n theadFontColor: { (): string; (_: string): Table; };\n tbodyFontColor: { (): string; (_: string): Table; };\n tfootFontColor: { (): string; (_: string): Table; };\n theadFontFamily: { (): string; (_: string): Table; };\n tbodyFontFamily: { (): string; (_: string): Table; };\n tfootFontFamily: { (): string; (_: string): Table; };\n\n theadCellBorderColor: { (): string; (_: string): Table; };\n tfootCellBorderColor: { (): string; (_: string): Table; };\n theadRowBackgroundColor: { (): string; (_: string): Table; };\n tfootRowBackgroundColor: { (): string; (_: string): Table; };\n\n tbodyCellBorderColor: { (): string; (_: string): Table; };\n\n tbodyRowBackgroundColor: { (): string; (_: string): Table; };\n tbodyFirstColFontColor: { (): string; (_: string): Table; };\n tbodyFirstColBackgroundColor: { (): string; (_: string): Table; };\n\n tbodyHoverRowFontColor: { (): string; (_: string): Table; };\n tbodyHoverRowBackgroundColor: { (): string; (_: string): Table; };\n\n tbodySelectedRowFontColor: { (): string; (_: string): Table; };\n tbodySelectedRowBackgroundColor: { (): string; (_: string): Table; };\n tableZebraColor: { (): string; (_: string): Table; };\n tableZebraColor_exists: () => boolean;\n totalledColumns: { (): any[]; (_: any[]): Table; };\n totalledLabel: { (): string; (_: string): Table; };\n hiddenColumns: { (): any[]; (_: any[]): Table; };\n\n stringAlign: { (): string; (_: string): Table; };\n numberAlign: { (): string; (_: string): Table; };\n verticalAlign: { (): string; (_: string): Table; };\n\n minWidgetWidth: { (): number; (_: number): Table; };\n minWidgetHeight: { (): number; (_: number): Table; };\n\n sortByFieldIndex: { (): number; (_: number): Table; };\n sortByFieldIndex_exists: () => boolean;\n descending: { (): boolean; (_: boolean): Table; };\n}\nTable.prototype._class += \" other_Table\";\n\nTable.prototype.publish(\"renderHtmlDataCells\", false, \"boolean\", \"enable or disable HTML within cells\", null, { tags: [\"Private\"] });\nTable.prototype.publish(\"pagination\", true, \"boolean\", \"Enable or disable pagination\", null, { tags: [\"Private\"] });\nTable.prototype.publish(\"paginationLimit\", null, \"number\", \"Maximum number of rows allowed before pagination defaults to on\", null, { tags: [\"Private\"] });\nTable.prototype.publishProxy(\"itemsPerPage\", \"_paginator\");\nTable.prototype.publishProxy(\"pageNumber\", \"_paginator\", \"pageNumber\", 1);\nTable.prototype.publishProxy(\"adjacentPages\", \"_paginator\");\nTable.prototype.publish(\"topN\", null, \"number\", \"Total number or rows of data to be displayed in the table\", null, { tags: [\"Private\"] });\nTable.prototype.publish(\"pivot\", false, \"boolean\", \"Pivot Table\");\nTable.prototype.publish(\"showHeader\", true, \"boolean\", \"Show or hide the table header\", null, { tags: [\"Private\"] });\nTable.prototype.publish(\"fixedHeader\", true, \"boolean\", \"Enable or disable fixed table header\", null, { tags: [\"Private\"] });\nTable.prototype.publish(\"fixedColumn\", false, \"boolean\", \"Enable or disable fixed first column\", null, { tags: [\"Private\"] });\nTable.prototype.publish(\"multiSelect\", false, \"boolean\", \"Multiple Selection\", null, { tags: [\"Basic\"] });\n\nTable.prototype.publish(\"fixedSize\", false, \"boolean\", \"Fix Size to Min Width/Height\");\n\nTable.prototype.publish(\"hideEmptyColumns\", false, \"boolean\", \"Hide columns with all empty cells\");\n\nTable.prototype.publish(\"theadFontSize\", null, \"string\", \"Table head font size\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tbodyFontSize\", null, \"string\", \"Table body font size\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tfootFontSize\", null, \"string\", \"Table body font size\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"theadFontColor\", null, \"html-color\", \"Table head font color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tbodyFontColor\", null, \"html-color\", \"Table body font color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tfootFontColor\", null, \"html-color\", \"Table body font color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"theadFontFamily\", null, \"string\", \"Table head font family\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tbodyFontFamily\", null, \"string\", \"Table body font family\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tfootFontFamily\", null, \"string\", \"Table body font family\", null, { tags: [\"Basic\"], optional: true });\n\nTable.prototype.publish(\"theadCellBorderColor\", null, \"html-color\", \"Table head cell border color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tfootCellBorderColor\", null, \"html-color\", \"Table head cell border color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"theadRowBackgroundColor\", null, \"html-color\", \"Table head row color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tfootRowBackgroundColor\", null, \"html-color\", \"Table head row color\", null, { tags: [\"Basic\"], optional: true });\n\nTable.prototype.publish(\"tbodyCellBorderColor\", null, \"html-color\", \"Table body cell border color\", null, { tags: [\"Basic\"], optional: true });\n\nTable.prototype.publish(\"tbodyRowBackgroundColor\", null, \"html-color\", \"Table body row color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tbodyFirstColFontColor\", null, \"html-color\", \"Table body first column font color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tbodyFirstColBackgroundColor\", null, \"html-color\", \"Table body first column background color\", null, { tags: [\"Basic\"], optional: true });\n\nTable.prototype.publish(\"tbodyHoverRowFontColor\", null, \"html-color\", \"Table body hover row font color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tbodyHoverRowBackgroundColor\", null, \"html-color\", \"Table body hover row background color\", null, { tags: [\"Basic\"], optional: true });\n\nTable.prototype.publish(\"tbodySelectedRowFontColor\", null, \"html-color\", \"Table body selected row color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tbodySelectedRowBackgroundColor\", null, \"html-color\", \"Table body selected row color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"tableZebraColor\", null, \"html-color\", \"Table zebra row color\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"totalledColumns\", [], \"array\", \"Array of indices of the columns to be totalled\", null, { tags: [\"Basic\"], optional: true, disable: (w: any) => w.pivot() });\nTable.prototype.publish(\"totalledLabel\", null, \"string\", \"Adds a label to the first column of the 'Totalled' row\", null, { tags: [\"Basic\"], optional: true, disable: (w: any) => w.pivot() });\nTable.prototype.publish(\"hiddenColumns\", [], \"array\", \"Array of indices of the columns to be hidden\", null, { tags: [\"Basic\"], optional: true, disable: (w) => w.pivot() });\n\nTable.prototype.publish(\"stringAlign\", \"left\", \"set\", \"Cell alignment for strings\", [\"left\", \"right\", \"center\"], { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"numberAlign\", \"right\", \"set\", \"Cell alignment for numbers\", [\"left\", \"right\", \"center\"], { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"verticalAlign\", null, \"set\", \"Cell vertical alignment\", [null, \"middle\", \"top\", \"bottom\"], { tags: [\"Basic\"], optional: true });\n\nTable.prototype.publish(\"minWidgetWidth\", 320, \"number\", \"Minimum width of a child widget\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"minWidgetHeight\", 240, \"number\", \"Minimum height of a child widget\", null, { tags: [\"Basic\"], optional: true });\n\nTable.prototype.publish(\"sortByFieldIndex\", null, \"number\", \"Index for the field/column to sort the data\", null, { tags: [\"Basic\"], optional: true });\nTable.prototype.publish(\"descending\", false, \"boolean\", \"Direction for sorting the data: ascending (true) or descending (false)\", null, { tags: [\"Basic\"], optional: true });\n","import { Palette, Platform } from \"@hpcc-js/common\";\nimport { format as d3Format } from \"d3-format\";\nimport { select as d3Select } from \"d3-selection\";\nimport { Table } from \"./Table\";\n\nimport \"../src/Legend.css\";\n\nfunction _htmlColorBlock(hexColor) {\n return \"<div class=\\\"colorBlock\\\" style=\\\"background-color:\" + hexColor + \";\\\"></div>\";\n}\n\nexport class Legend extends Table {\n _targetWidget;\n _targetWidgetMonitor;\n\n constructor() {\n super();\n\n this.showHeader(false);\n this.pagination(false);\n }\n\n isRainbow() {\n const widget = this.getWidget();\n return widget && widget._palette && widget._palette.type() === \"rainbow\";\n }\n\n targetWidget(): any;\n targetWidget(_: any): this;\n targetWidget(_?: any): any | this {\n if (!arguments.length) return this._targetWidget;\n this._targetWidget = _;\n if (this._targetWidgetMonitor) {\n this._targetWidgetMonitor.remove();\n delete this._targetWidgetMonitor;\n }\n const context = this;\n this._targetWidgetMonitor = this._targetWidget.monitor(function (key, newProp, oldProp, source) {\n switch (key) {\n case \"chart\":\n case \"columns\":\n case \"data\":\n case \"paletteID\":\n context.lazyRender();\n break;\n }\n });\n return this;\n }\n\n getWidget() {\n if (this._targetWidget) {\n switch (this._targetWidget.classID()) {\n case \"chart_MultiChart\":\n return this._targetWidget.chart();\n }\n }\n return this._targetWidget;\n }\n\n getPalette() {\n const widget = this.getWidget();\n if (widget && widget._palette) {\n switch (widget._palette.type()) {\n case \"ordinal\":\n return Palette.ordinal(widget._palette.id());\n case \"rainbow\":\n return Palette.rainbow(widget._palette.id());\n }\n }\n return Palette.ordinal(\"default\");\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n d3Select(domNode.parentNode).style(\"overflow-y\", \"auto\");\n\n this.renderHtmlDataCells(true);\n this.fixedHeader(false);\n this.fixedSize(true);\n element.classed(\"other_Legend\", true);\n }\n\n update(domNode, element) {\n const colArr = [\"Key\", \"Label\"];\n let dataArr = [];\n if (this._targetWidget) {\n const _palette = this.getPalette();\n switch (_palette.type()) {\n case \"ordinal\":\n const oPalette = _palette as Palette.OrdinalPaletteFunc;\n switch (this.dataFamily()) {\n case \"2D\":\n dataArr = this._targetWidget.data().map(function (n) {\n return [_htmlColorBlock(oPalette(n[0])), n[0]];\n }, this);\n break;\n case \"ND\":\n const widgetColumns = this._targetWidget.columns();\n dataArr = widgetColumns.filter(function (n, i) { return i > 0; }).map(function (n) {\n return [_htmlColorBlock(oPalette(n)), n];\n }, this);\n break;\n }\n break;\n case \"rainbow\":\n const rPalette = _palette as Palette.RainbowPaletteFunc;\n const format = d3Format(this.rainbowFormat());\n const widget = this.getWidget();\n const steps = this.rainbowBins();\n const weightMin = widget._dataMinWeight;\n const weightMax = widget._dataMaxWeight;\n const stepWeightDiff = (weightMax - weightMin) / (steps - 1);\n dataArr.push([_htmlColorBlock(rPalette(weightMin, weightMin, weightMax)), format(weightMin)]);\n for (let x = 1; x < steps - 1; ++x) {\n const mid = stepWeightDiff * x;\n dataArr.push([_htmlColorBlock(rPalette(mid, weightMin, weightMax)), format(Math.floor(mid))]);\n }\n dataArr.push([_htmlColorBlock(rPalette(weightMax, weightMin, weightMax)), format(weightMax)]);\n break;\n }\n }\n this.columns(colArr);\n this.data(dataArr);\n super.update(domNode, element);\n\n element.classed(\"horiz-legend\", this.orientation() === \"horizontal\");\n\n const table = element.select(\".tableDiv > table\");\n const tableRect = table.node().getBoundingClientRect();\n const elementRect = this._placeholderElement.node().getBoundingClientRect();\n\n element.select(\".tableDiv\").style(\"overflow\", \"visible\");\n\n const top = elementRect.height / 2 - tableRect.height / 2;\n const left = elementRect.width / 2 - tableRect.width / 2;\n table\n .style(\"position\", \"absolute\")\n .style(\"top\", top + \"px\")\n .style(\"left\", left + \"px\")\n ;\n\n const startIndex = this.pageNumber() - 1;\n const itemsOnPage = this.itemsPerPage();\n\n const start = startIndex * itemsOnPage;\n const end = startIndex * parseInt(itemsOnPage) + parseInt(itemsOnPage);\n\n let tData = null;\n if (this.pagination()) {\n tData = this.data().slice(start, end);\n } else {\n tData = this.data();\n }\n\n const rows = this.tbody.selectAll(\"tr\").data(tData);\n const context = this;\n rows\n .on(\"click\", function (d, i) {\n context.onClick(d, i);\n })\n .on(\"dblclick\", function (d, i) {\n context.onDblClick(d, i);\n })\n .on(\"mouseover\", function (d, i) {\n context.onMouseOver(d, i);\n })\n ;\n }\n\n exit(domNode, element) {\n if (this._targetWidgetMonitor) {\n this._targetWidgetMonitor.remove();\n delete this._targetWidgetMonitor;\n }\n super.exit(domNode, element);\n }\n\n onClick(rowData, rowIdx) {\n }\n\n onDblClick(rowData, rowIdx) {\n }\n\n onMouseOver(rowData, rowIdx) {\n }\n\n dataFamily: { (): string; (_: string): Legend };\n dataFamily_exists: () => boolean;\n orientation: { (): string; (_: string): Legend };\n orientation_exists: () => boolean;\n rainbowFormat: { (): string; (_: string): Legend };\n rainbowFormat_exists: () => boolean;\n rainbowBins: { (): number; (_: number): Legend };\n rainbowBins_exists: () => boolean;\n}\nLegend.prototype._class += \" other_Legend\";\n\nLegend.prototype.publish(\"dataFamily\", \"ND\", \"set\", \"Type of data\", [\"1D\", \"2D\", \"ND\", \"map\", \"any\", \"other\"], { tags: [\"Private\"] });\nLegend.prototype.publish(\"orientation\", \"vertical\", \"set\", \"Orientation of Legend rows\", [\"vertical\", \"horizontal\"], { tags: [\"Private\"] });\nLegend.prototype.publish(\"rainbowFormat\", \",\", \"string\", \"Rainbow number formatting\", null, { tags: [\"Private\"], optional: true, disable: w => !w.isRainbow() });\nLegend.prototype.publish(\"rainbowBins\", 8, \"number\", \"Number of rainbow bins\", null, { tags: [\"Private\"], disable: w => !w.isRainbow() });\n\nconst origGetBBox = Table.prototype.getBBox;\nLegend.prototype.getBBox = function (refresh, round) {\n const retVal = origGetBBox.apply(this, arguments);\n const table = this.element().select(\".tableDiv > table\");\n if (!table.empty()) {\n const tableRect = table.node().getBoundingClientRect();\n const width = tableRect.width + 8 + (this.hasVScroll(this._placeholderElement) ? Platform.getScrollbarWidth() : 0);\n const height = tableRect.height + 8 + (this.hasHScroll(this._placeholderElement) ? Platform.getScrollbarWidth() : 0);\n return {\n x: retVal.x,\n y: retVal.y,\n width: (round ? Math.round(width) : width) * this._scale,\n height: (round ? Math.round(height) : height) * this._scale\n };\n }\n return retVal;\n};\n","import { SVGWidget } from \"@hpcc-js/common\";\n\nimport \"../src/MorphText.css\";\n\nexport class MorphText extends SVGWidget {\n _fontWidth;\n _textElement;\n\n constructor() {\n super();\n }\n\n enter(domNode, element) {\n if (!this.fontSize()) {\n const style = window.getComputedStyle(domNode, null);\n this.fontSize(parseInt(style.fontSize));\n }\n this._fontWidth = this.fontSize() * 32 / 48;\n this._textElement = element.append(\"g\")\n ;\n }\n\n dateTime() {\n const d = new Date();\n const seconds = d.getSeconds().toString().length === 1 ? \"0\" + d.getSeconds() : d.getSeconds();\n const minutes = d.getMinutes().toString().length === 1 ? \"0\" + d.getMinutes() : d.getMinutes();\n const hours = d.getHours().toString().length === 1 ? \"0\" + d.getHours() : d.getHours();\n const ampm = d.getHours() >= 12 ? \"pm\" : \"am\";\n const months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n const days = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n return days[d.getDay()] + \" \" + months[d.getMonth()] + \" \" + d.getDate() + \" \" + d.getFullYear() + \" \" + hours + \":\" + minutes + \":\" + seconds + ampm;\n }\n\n update(domNode, element) {\n const context = this;\n const text = this._textElement.selectAll(\"text\")\n .data(this.data(), function (d) { return d.id; })\n ;\n text\n .attr(\"class\", \"update\")\n ;\n this.transition.apply(text)\n .attr(\"x\", function (d, i) { return (-context.data().length / 2 + i) * context._fontWidth + context._fontWidth / 2; })\n ;\n\n const newText = text.enter().append(\"text\")\n .attr(\"class\", \"enter\")\n .attr(\"font-size\", this.fontSize())\n .attr(\"dy\", \".35em\")\n .attr(\"y\", (this.reverse() ? +1 : -1) * this._fontWidth * 2)\n .attr(\"x\", function (d, i) { return (-context.data().length / 2 + i) * context._fontWidth + context._fontWidth / 2; })\n .style(\"fill-opacity\", 1e-6)\n .style(\"text-anchor\", this.anchor())\n .text(function (d) { return d.text; })\n ;\n this.transition.apply(newText)\n .attr(\"y\", 0)\n .style(\"fill-opacity\", 1)\n ;\n\n text.exit()\n .attr(\"class\", \"exit\")\n ;\n this.transition.apply(text.exit())\n .attr(\"y\", (this.reverse() ? -1 : +1) * this._fontWidth * 2)\n .style(\"fill-opacity\", 1e-6)\n .remove()\n ;\n }\n anchor: { (): string; (_: string): MorphText };\n anchor_exists: () => boolean;\n fontSize: { (): number; (_: number): MorphText };\n fontSize_exists: () => boolean;\n reverse: { (): boolean; (_: boolean): MorphText };\n reverse_exists: () => boolean;\n text: (_?: string) => MorphText | this;\n text_exists: () => boolean;\n}\nMorphText.prototype._class += \" other_MorphText\";\n\nMorphText.prototype.publish(\"anchor\", \"middle\", \"set\", \"Sets anchor point\", [\"middle\"], { tags: [\"Basic\"] });\nMorphText.prototype.publish(\"fontSize\", 14, \"number\", \"Sets fontsize\", null, { tags: [\"Basic\"] });\nMorphText.prototype.publish(\"reverse\", false, \"boolean\", \"Reverse Animation\", null, { tags: [\"Basic\"] });\nMorphText.prototype.publish(\"text\", \"\", \"string\", \"Sets text/data of widget\", null, { tags: [\"Basic\"] });\n\nconst _origText = MorphText.prototype.text;\nMorphText.prototype.text = function (_) {\n const retVal = _origText.apply(this, arguments);\n if (arguments.length) {\n const usedChars = {};\n const chars = _.split(\"\");\n this.data(chars.map(function (d) {\n const id = \"_\" + d;\n if (usedChars[id] === undefined) {\n usedChars[id] = 0;\n }\n usedChars[id]++;\n return { text: d, id: d.charCodeAt(0) + (1024 * usedChars[id]) };\n }));\n }\n return retVal;\n};\n","import { Table } from \"./Table\";\n\nexport class NestedTable extends Table {\n constructor() {\n super();\n this.minWidgetHeight(240);\n this.minWidgetWidth(360);\n }\n}\nNestedTable.prototype._class += \" other_NestedTable\";\n\nconst origColumns = NestedTable.prototype.columns;\nNestedTable.prototype.columns = function (_?) {\n if (arguments.length) {\n this._columns = _;\n return origColumns.call(this, _.map(function (col) {\n if (typeof col === \"object\") {\n return col.label;\n }\n return col;\n }));\n }\n return origColumns.apply(this, arguments);\n};\n\nconst origData = NestedTable.prototype.data;\nNestedTable.prototype.data = function (_?: any): NestedTable | any {\n if (arguments.length) {\n const context = this;\n return origData.call(this, _.map(function (row) {\n return row.map(function (cell, idx) {\n if (cell instanceof Array) {\n let columns = [];\n if (typeof context._columns[idx] === \"object\" && context._columns[idx].columns) {\n columns = context._columns[idx].columns;\n } else {\n for (let i = 0; i < cell.length; ++i) {\n columns.push(context._columns[idx] + \".\" + i);\n }\n }\n return new Table()\n .columns(columns)\n .data(cell)\n ;\n }\n return cell;\n });\n }));\n }\n return origData.apply(this, arguments);\n};\n","import { d3Event, PropertyExt, select as d3Select, selectAll as d3SelectAll, SVGWidget } from \"@hpcc-js/common\";\n\nimport \"../src/Opportunity.css\";\n\nexport class Column extends PropertyExt {\n _owner: Opportunity;\n\n constructor() {\n super();\n }\n\n owner(): Opportunity;\n owner(_: Opportunity): this;\n owner(_?: Opportunity): Opportunity | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.headerLabel();\n }\n}\nColumn.prototype._class += \" other_Opportunity.Column\";\n\nexport interface Column {\n headerLabel(): string;\n headerLabel(_: string): this;\n}\nColumn.prototype.publish(\"headerLabel\", null, \"string\", \"Header value of a table\", function (this: Column) { return this._owner ? this._owner.columns() : []; }, { tags: [\"Basic\"], optional: true });\n\nexport class MouseHoverColumn extends PropertyExt {\n _owner: Opportunity;\n\n constructor() {\n super();\n }\n\n owner(): Opportunity;\n owner(_: Opportunity): this;\n owner(_?: Opportunity): Opportunity | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.hoverValue() && !!this.hoverList();\n }\n}\nMouseHoverColumn.prototype._class += \" other_Opportunity.MouseHoverColumn\";\n\nexport interface MouseHoverColumn {\n hoverValue(): string;\n hoverValue(_: string): this;\n hoverList(): string;\n hoverList(_: string): this;\n}\nMouseHoverColumn.prototype.publish(\"hoverValue\", null, \"string\", \"Hover value of a table\", function () { return this._owner ? this._owner.columns() : []; }, { tags: [\"Basic\"], optional: true });\nMouseHoverColumn.prototype.publish(\"hoverList\", null, \"set\", \"Hover value of a table\", function () { return this._owner ? this._owner.getIds() : []; }, { tags: [\"Basic\"], optional: true });\n\nexport class ColumnDropdown extends PropertyExt {\n _owner: Opportunity;\n\n constructor() {\n super();\n }\n\n owner(): Opportunity;\n owner(_: Opportunity): this;\n owner(_?: Opportunity): Opportunity | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.columnIndex() && !!this.ColumnDropdownList();\n }\n}\nColumnDropdown.prototype._class += \" other_Opportunity.ColumnDropdown\";\n\nexport interface ColumnDropdown {\n columnIndex(): number;\n columnIndex(_: number): this;\n ColumnDropdownList(): string;\n ColumnDropdownList(_: string): this;\n}\nColumnDropdown.prototype.publish(\"columnIndex\", null, \"number\", \"Column index for display context data based on column dropdown list selction\", {}, { tags: [\"Basic\", \"Shared\"] });\nColumnDropdown.prototype.publish(\"ColumnDropdownList\", null, \"set\", \"column value of a table\", function () { return this._owner ? this._owner.getIds() : []; }, { tags: [\"Basic\"], optional: true });\n\nexport class Opportunity extends SVGWidget {\n groupCount;\n svg;\n tooltipdiv;\n Column;\n MouseHoverColumn;\n ColumnDropdown;\n\n constructor() {\n super();\n this._drawStartPos = \"origin\";\n this.groupCount = 7;\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n const paddingTop = 30;\n const nodeRectHeight = 14;\n const verticalPadding = 10;\n const h = (this.data().length + 1) * (nodeRectHeight + verticalPadding + 1) + paddingTop;\n this.svg = element.append(\"g\")\n .attr(\"width\", ((this.groupCount * 100) + 1))\n .attr(\"height\", h);\n this.svg.append(\"defs\").append(\"marker\")\n .classed(\"arrowhead\", true)\n .attr(\"id\", \"end-arrow\")\n .attr(\"viewBox\", \"0 -5 10 10\")\n .attr(\"refX\", 6)\n .attr(\"markerWidth\", 8)\n .attr(\"markerHeight\", 8)\n .attr(\"orient\", \"auto\")\n .append(\"svg:path\")\n .attr(\"d\", \"M0,-5L10,0L0,5\")\n .attr(\"fill\", \"rgb(100,100,100)\");\n this.tooltipdiv = d3Select(\"body\").append(\"div\")\n .attr(\"class\", \"other_Opportunity-tooltip tooltip\")\n .style(\"opacity\", 0);\n }\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n const data = this.data();\n const dropDownOption = this.opportunityId();\n data.sort(function (a, b) {\n if (a.cur_group > b.cur_group) return 1;\n else if (a.cur_group < b.cur_group) return -1;\n else return 0;\n });\n const groups = [];\n for (let i = 1; i <= context.groupCount; i++) {\n groups.push(i);\n }\n const paddingTop = 30;\n const nodeRectHeight = 14;\n const verticalPadding = 10;\n const h = (data.length + 1) * (nodeRectHeight + verticalPadding + 1) + paddingTop;\n const w = this.width();\n const nodeRectWidthPadding = 30;\n const nodeRectWidth = ((w / context.groupCount) - nodeRectWidthPadding);\n // Groups ---\n const group = this.svg.selectAll(\".group\").data(groups);\n group.enter().append(\"rect\")\n .attr(\"class\", \"group\");\n group\n .attr(\"x\", function (d, i) {\n return (i * w / context.groupCount) + 1;\n })\n .attr(\"y\", paddingTop)\n .attr(\"width\", w / this.groupCount)\n .attr(\"height\", h - paddingTop);\n group.exit().remove();\n // Group Headings ---\n const groupHeadings = this.svg.selectAll(\".group_headings\").data(groups);\n groupHeadings.enter().append(\"text\")\n .attr(\"class\", \"group_headings\")\n .attr(\"y\", 20);\n groupHeadings\n .attr(\"x\", function (d, i) {\n return (i * w / context.groupCount) + ((w / context.groupCount) / context.groupCount);\n })\n .text(function (d, i) {\n if (context.headerLabels().length > 0) {\n if (context.headerLabels()[i] && (context.headerLabels()[i]).headerLabel()) {\n return (context.headerLabels()[i]).headerLabel();\n }\n }\n return \"\";\n });\n groupHeadings.exit().remove();\n if (this.previousGroup() === \"prev_group\" && this.currentGroup() === \"cur_group\") {\n // Node Date Change ---\n const node_date_change = this.svg.selectAll(\".node_date_change\").data(data);\n node_date_change.enter().append(\"g\")\n .attr(\"class\", \"node_date_change update\")\n .on(\"mouseover\", function (d) {\n context.tooltipdiv.transition()\n .duration(200)\n .style(\"opacity\", 0.9);\n let htmlInput = \"<span style='font-weight:bolder'>\" + \"Close Date Change \" + \"</span>\" + \"<br/>\";\n const mouseHoverMapping = context.mouseHover();\n mouseHoverMapping.forEach(function (obj, index) {\n if (obj.hoverValue() !== undefined) {\n htmlInput = htmlInput + \"<span style='font-weight:bold'>\" + obj.hoverValue() + \": \" + \"</span>\" + d[obj.hoverList()] + \"<br/>\";\n }\n });\n let prevDate = d.prevdate + \"\";\n prevDate = prevDate.replace(/(\\d\\d\\d\\d)(\\d\\d)(\\d\\d)/g, \"$3-$2-$1\");\n let fromDate = d.curdate + \"\";\n fromDate = fromDate.replace(/(\\d\\d\\d\\d)(\\d\\d)(\\d\\d)/g, \"$3-$2-$1\");\n htmlInput = htmlInput + \"<span style='font-weight:bold'>\" + \"From: \" + \"</span>\" + prevDate + \"<br/>\" + \"<span style='font-weight:bold'>\" + \"To: \" + \"</span>\" + fromDate + \"<br/>\";\n const event = d3Event();\n context.tooltipdiv.html(htmlInput)\n .style(\"left\", (event.pageX) + \"px\")\n .style(\"top\", (event.pageY - 50) + \"px\");\n })\n .on(\"mouseout\", function (d) {\n context.tooltipdiv.transition()\n .duration(500)\n .style(\"opacity\", 0);\n })\n .each(function (d) {\n const element2 = d3Select(this);\n element2.append(\"rect\")\n .attr(\"class\", \"node_date_change_rect\")\n .attr(\"width\", 5)\n .attr(\"height\", nodeRectHeight)\n .attr(\"rx\", 6)\n .attr(\"ry\", 6);\n });\n node_date_change\n .attr(\"transform\", function (d, i) {\n return \"translate(\" + ((9 * w / context.groupCount) + (nodeRectWidthPadding) - 80) + \",\" + ((i + (i * (nodeRectHeight + verticalPadding))) + 12 + paddingTop) + \")\";\n });\n node_date_change.exit().remove();\n // Node Prev Group ---\n const node_prev_group = this.svg.selectAll(\".node_prev_group\").data(data);\n node_prev_group.enter().append(\"g\")\n .attr(\"class\", \"node_prev_group\")\n .on(\"mouseover\", function (d, i) {\n context.tooltipdiv.transition()\n .duration(200)\n .style(\"opacity\", 0.9);\n let tooltipHtml = \"\";\n const mouseHoverMapping = context.mouseHover();\n mouseHoverMapping.forEach(function (obj, index) {\n if (obj.hoverValue() !== undefined) {\n tooltipHtml = tooltipHtml + \"<span style='font-weight:bold'>\" + obj.hoverValue() + \": \" + \"</span>\" + d[obj.hoverList()] + \"<br/>\";\n }\n });\n const event = d3Event();\n context.tooltipdiv.html(tooltipHtml)\n .style(\"left\", (event.pageX) + \"px\")\n .style(\"top\", (event.pageY - 100) + \"px\");\n })\n .on(\"mouseout\", function (d) {\n context.tooltipdiv.transition()\n .duration(500)\n .style(\"opacity\", 0);\n })\n .each(function (d) {\n const element2 = d3Select(this);\n element2.append(\"rect\")\n .attr(\"class\", \"node_prev_rect\")\n .attr(\"rx\", 6)\n .attr(\"ry\", 6);\n element2.append(\"text\")\n .attr(\"class\", \"node_prev_text\");\n });\n node_prev_group\n .classed(\"update\", true)\n .classed(\"changed\", function (d) {\n return d.delta !== 0;\n })\n .attr(\"transform\", function (d, i) {\n return \"translate(\" + ((((d.prev_group - 1)) * w / context.groupCount) + (nodeRectWidthPadding / 2)) + \",\" + ((i + (i * (nodeRectHeight + verticalPadding))) + 10 + paddingTop) + \")\";\n })\n .each(function (d) {\n const element2 = d3Select(this);\n // Change Lines ---\n const changeLines = element2.selectAll(\".arrow\").data(d.delta !== 0 ? [d] : []);\n changeLines.enter().append(\"line\")\n .attr(\"class\", \"arrow update\");\n changeLines\n .attr(\"x1\", function (d2) {\n return (d2.delta > 0) ? nodeRectWidth : 0;\n })\n .attr(\"y1\", nodeRectHeight / 2)\n .attr(\"x2\", function (d2) {\n return (d2.delta > 0) ? (nodeRectWidth + nodeRectWidthPadding - 4) + ((Math.abs(d2.delta) - 1)) * (w / context.groupCount) : ((-nodeRectWidthPadding - ((Math.abs(d2.delta) - 1)) * (w / context.groupCount)) + 4);\n })\n .attr(\"y2\", nodeRectHeight / 2)\n .style(\"stroke-dasharray\", (\"3, 3\"))\n .style(\"stroke\", \"rgb(100,100,100)\")\n .style(\"marker-end\", \"url(#end-arrow)\")\n .style(\"opacity\", \"1\");\n changeLines.exit().remove();\n });\n const node_previous_rect = node_prev_group.select(\".node_prev_rect\");\n node_previous_rect\n .attr(\"width\", nodeRectWidth)\n .attr(\"height\", nodeRectHeight);\n const node_previous_text = node_prev_group.select(\".node_prev_text\");\n node_previous_text\n .attr(\"dy\", (nodeRectHeight / 2) + 3)\n .attr(\"dx\", (nodeRectWidth / 4))\n .text(function (d) {\n if (typeof d[dropDownOption] === \"number\")\n return d[dropDownOption];\n else\n return d[dropDownOption].substring(0, 14);\n });\n node_prev_group.exit().remove();\n // Node Cur Group ---\n const node_cur_group = this.svg.selectAll(\".node_cur_group\").data(data);\n node_cur_group.enter().append(\"g\")\n .attr(\"class\", \"node_cur_group\")\n .attr(\"transform\", function (d, i) {\n return \"translate(\" + ((((d.prev_group - 1)) * w / context.groupCount) + (nodeRectWidthPadding / 2)) + \",\" + ((i + (i * (nodeRectHeight + verticalPadding))) + 10 + paddingTop) + \")\";\n })\n .on(\"mouseover\", function (d, i) {\n context.tooltipdiv.transition()\n .duration(200)\n .style(\"opacity\", 0.9);\n let tooltipHtml = \"\";\n const mouseHoverMapping = context.mouseHover();\n mouseHoverMapping.forEach(function (obj, index) {\n if (obj.hoverValue() !== undefined) {\n tooltipHtml = tooltipHtml + \"<span style='font-weight:bold'>\" + obj.hoverValue() + \": \" + \"</span>\" + d[obj.hoverList()] + \"<br/>\";\n }\n });\n const event = d3Event();\n context.tooltipdiv.html(tooltipHtml)\n .style(\"left\", (event.pageX) + \"px\")\n .style(\"top\", (event.pageY - 100) + \"px\");\n })\n .on(\"mouseout\", function (d) {\n context.tooltipdiv.transition()\n .duration(500)\n .style(\"opacity\", 0);\n })\n .each(function (d) {\n const element2 = d3Select(this);\n element2.append(\"rect\")\n .attr(\"class\", \"node_cur_rect\")\n .attr(\"fill\", function (d2: any) {\n let color;\n if (d2.delta < 0 || d2.cur_group === 7) {\n color = \"#F78181\";\n } else {\n color = \"#A9F5A9\";\n }\n return color;\n })\n .attr(\"rx\", 6)\n .attr(\"ry\", 6);\n element2.append(\"a\")\n .append(\"text\")\n .attr(\"class\", \"node_cur_text\");\n });\n node_cur_group\n .classed(\"update\", true)\n .classed(\"changed\", function (d) {\n return d.delta !== 0;\n })\n .transition().duration(800)\n .ease(\"linear\")\n .attr(\"transform\", function (d, i) {\n return \"translate(\" + ((((d.cur_group) - 1) * w / context.groupCount) + (nodeRectWidthPadding / 2)) + \",\" + ((i + (i * (nodeRectHeight + verticalPadding))) + 10 + paddingTop) + \")\";\n })\n .each(\"end\", function () {\n d3SelectAll(\".arrow\").style(\"opacity\", \"1\");\n });\n const node_current_anchor = node_cur_group.select(\".node_cur_group a\");\n node_current_anchor.classed(\"update\", true)\n .attr(\"xlink:href\", function (d) {\n return context.url() + d.id;\n })\n .attr(\"xlink:show\", \"new\");\n const node_current_rect = node_cur_group.select(\".node_cur_rect\");\n node_current_rect\n .attr(\"width\", nodeRectWidth)\n .attr(\"height\", nodeRectHeight);\n const node_current_text = node_cur_group.select(\".node_cur_text\");\n node_current_text\n .classed(\"update\", true)\n .attr(\"dy\", (nodeRectHeight / 2) + 3)\n .attr(\"dx\", (nodeRectWidth / 4))\n .style(\"fill\", \"blue\")\n .text(function (d) {\n if (typeof d[dropDownOption] === \"number\")\n return d[dropDownOption];\n else\n return d[dropDownOption].substring(0, 14);\n });\n node_cur_group.exit().remove();\n }\n for (let colIndex = 0; colIndex < context.columnData().length; colIndex++) {\n if ((context.columnData()[colIndex]) && (context.columnData()[colIndex]).ColumnDropdownList()) {\n const columnData = this.svg.selectAll(\".columnDataText_\" + colIndex).data(data);\n columnData.enter().append(\"g\")\n .attr(\"class\", \"columnDataText_\" + colIndex + \" update\")\n .each(function (d) {\n const element2 = d3Select(this);\n element2.append(\"text\");\n });\n columnData\n .attr(\"transform\", function (d, i) {\n return \"translate(\" + (((context.columnData()[colIndex]).columnIndex() * w / context.groupCount) + (nodeRectWidthPadding / 2)) + \",\" + ((i + (i * (nodeRectHeight + verticalPadding))) + 12 + paddingTop) + \")\";\n })\n .attr(\"width\", 5)\n .attr(\"height\", nodeRectHeight)\n .attr(\"rx\", 6)\n .attr(\"ry\", 6);\n const textLable = columnData.select(\"text\");\n textLable\n .attr(\"y\", -6)\n .attr(\"dy\", (nodeRectHeight) + 14)\n .attr(\"dx\", 0)\n .attr(\"height\", 20)\n .attr(\"width\", 29)\n .text(function (d, i) {\n return d[(context.columnData()[colIndex]).ColumnDropdownList()];\n });\n columnData.exit().remove();\n }\n }\n }\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n\n getIds() {\n const dropdownList = this.columns();\n dropdownList.unshift(\"default\");\n return dropdownList;\n }\n previousGroup: { (): string; (_: string): Opportunity };\n previousGroup_exists: () => boolean;\n currentGroup: { (): string; (_: string): Opportunity };\n currentGroup_exists: () => boolean;\n opportunityId: { (): string; (_: string): Opportunity };\n opportunityId_exists: () => boolean;\n url: { (): string; (_: string): Opportunity };\n url_exists: () => boolean;\n // width: { (): number; (_: number): Opportunity };\n width_exists: () => boolean;\n addColumn: { (): string; (_: string): Opportunity };\n addColumn_exists: () => boolean;\n removeColumn: { (): string; (_: string): Opportunity };\n removeColumn_exists: () => boolean;\n headerLabels: { (): any[]; (_: any[]): Opportunity };\n headerLabels_exists: () => boolean;\n mouseHover: { (): any[]; (_: any[]): Opportunity };\n mouseHover_exists: () => boolean;\n columnData: { (): any[]; (_: any[]): Opportunity };\n columnData_exists: () => boolean;\n}\nOpportunity.prototype._class += \" other_Opportunity\";\nOpportunity.prototype.Column = Column;\nOpportunity.prototype.MouseHoverColumn = MouseHoverColumn;\nOpportunity.prototype.ColumnDropdown = ColumnDropdown;\n\nOpportunity.prototype.publish(\"previousGroup\", \"\", \"set\", \"label in Opportunity\", function () { return this.getIds(); }, { tags: [\"Basic\", \"Shared\"] });\nOpportunity.prototype.publish(\"currentGroup\", \"\", \"set\", \"label in Opportunity\", function () { return this.getIds(); }, { tags: [\"Basic\", \"Shared\"] });\nOpportunity.prototype.publish(\"opportunityId\", \"id\", \"set\", \"Id for label in Opportunity\", function () { return this.getIds(); }, { tags: [\"Basic\", \"Shared\"] });\nOpportunity.prototype.publish(\"url\", null, \"string\", \"URL in Opportunity\", {}, { tags: [\"Basic\", \"Shared\"] });\nOpportunity.prototype.publish(\"width\", 1100, \"number\", \"label in Opportunity\", {}, { tags: [\"Basic\", \"Shared\"] });\nOpportunity.prototype.publish(\"addColumn\", null, \"string\", \"number of columns in a table\", {}, {\n tags: [\"Basic\", \"Shared\"],\n editor_input: (context, widget, cell, param) => {\n cell.append(\"button\")\n .attr(\"id\", context.id() + \"_addColumn\" + param.id)\n .classed(\"property-input custom-editor-input addColumn update\", true)\n .text(\"AddColumn\")\n .on(\"click\", function () {\n widget.groupCount = widget.groupCount + 1;\n const new_value_after_click = \"Added a new column\";\n context.setProperty(widget, param.id, new_value_after_click);\n });\n }\n});\nOpportunity.prototype.publish(\"removeColumn\", null, \"string\", \"number of columns in a table\", function () { return this.columns(); }, {\n tags: [\"Basic\", \"Shared\"],\n editor_input: (context, widget, cell, param) => {\n cell.append(\"button\")\n .attr(\"id\", context.id() + \"_removeColumn\" + param.id)\n .classed(\"property-input custom-editor-input removeColumn update\", true)\n .text(\"RemoveColumn\")\n .on(\"click\", function () {\n widget.groupCount = widget.groupCount - 1;\n const new_value_after_click = \"Removed a column\";\n context.setProperty(widget, param.id, new_value_after_click);\n });\n }\n});\nOpportunity.prototype.publish(\"headerLabels\", [], \"propertyArray\", \"Source Columns\", null, { autoExpand: Column });\nOpportunity.prototype.publish(\"mouseHover\", [], \"propertyArray\", \"mouse hover options\", null, { autoExpand: MouseHoverColumn });\nOpportunity.prototype.publish(\"columnData\", [], \"propertyArray\", \"column data\", null, { autoExpand: ColumnDropdown });\n","export function discover(widget) {\n return widget.publishedProperties(false, true);\n}\n\nexport function widgetArrayWalker(widgets, visitor) {\n if (!widgets)\n return;\n widgets.forEach(function (widget) {\n widget.widgetWalker(visitor);\n });\n}\n\nexport function widgetPropertyWalker(widget2, visitor, filter?) {\n widget2.widgetWalker(function (widget) {\n widget.propertyWalker(visitor, filter);\n });\n}\n\nexport function serializeTheme(widget, filter) {\n return JSON.stringify(serializeThemeToObject(widget, filter));\n}\n\nexport function serializeThemeToObject(widget2, filter?) {\n filter = filter || [\"surface\", \"Color\", \"Font\", \"palette\"];\n\n const propObj = {};\n widgetPropertyWalker(widget2, null, function (widget, item) {\n if (widget[item.id + \"_modified\"]() || widget.publishedProperty(item.id).origDefaultValue !== widget.publishedProperty(item.id).defaultValue) {\n if (_isFilterMatch(item.id, filter)) {\n const classParts = widget._class.trim().split(\" \");\n for (const i in classParts) {\n if (classParts.HasOwnProperty(i)) {\n if (propObj[classParts[i]] === undefined) {\n propObj[classParts[i]] = {};\n }\n if (propObj[classParts[i]][item.id] === undefined) {\n propObj[classParts[i]][item.id] = widget[item.id]();\n break;\n } else if (propObj[classParts[i]][item.id] === widget[item.id]()) {\n break;\n }\n }\n }\n }\n }\n });\n\n function _isFilterMatch(str, arr) {\n let ret = false;\n for (const i in arr) {\n if (str.indexOf(arr[i]) !== -1) {\n ret = true;\n break;\n }\n }\n return ret;\n }\n return propObj;\n}\nexport function removeTheme(widget2, callback) {\n widgetPropertyWalker(widget2, null, function (widget, item) {\n widget.publishedProperty(item.id).defaultValue = widget.publishedProperty(item.id).origDefaultValue;\n });\n\n if (typeof (callback) === \"function\") {\n callback.call(this);\n }\n}\nexport function applyTheme(widget2, themeObj, callback) {\n const context = this;\n widgetPropertyWalker(widget2, null, function (widget3, item) {\n switch (item.type) {\n case \"widget\":\n context.applyTheme(widget3[item.id](), themeObj);\n return true;\n case \"widgetArray\":\n const widgetArray = widget3[item.id]();\n widgetArray.forEach(function (widget) {\n context.applyTheme(widget, themeObj);\n }, this);\n return true;\n default:\n widget3.applyTheme(themeObj);\n break;\n }\n });\n if (typeof (callback) === \"function\") {\n callback.call(this);\n }\n}\n\nexport function serializeToObject(widget, filter?, includeData?, includeState?) {\n const retVal: any = {\n __class: widget.classID()\n };\n if (widget._id.indexOf(widget._idSeed) !== 0) {\n retVal.__id = widget._id;\n }\n if (widget.version) {\n retVal.__version = widget.version();\n }\n retVal.__properties = {};\n\n widget.propertyWalker((childWwidget2, item) => {\n if (childWwidget2[item.id + \"_modified\"]()) {\n switch (item.type) {\n case \"widget\":\n retVal.__properties[item.id] = serializeToObject(childWwidget2[item.id](), null, includeData, includeState && !widget.serializeState); // Only include state once\n return true;\n case \"widgetArray\":\n case \"propertyArray\":\n retVal.__properties[item.id] = [];\n const widgetArray = childWwidget2[item.id]();\n widgetArray.forEach((childWwidget) => {\n retVal.__properties[item.id].push(serializeToObject(childWwidget, null, includeData, includeState && !widget.serializeState)); // Only include state once\n });\n return true;\n default:\n retVal.__properties[item.id] = childWwidget2[item.id]();\n break;\n }\n }\n }, filter);\n\n if (widget.classID() === \"marshaller_Graph\") {\n const vertices = widget.data().vertices;\n if (vertices) {\n this.__vertices = vertices.map(item => {\n return serializeToObject(item, null, includeData, includeState && !widget.serializeState);\n });\n }\n }\n if (includeData && widget.data) {\n if (!retVal.__data) retVal.__data = {};\n retVal.__data.data = widget.data();\n }\n if (includeState) {\n if (widget.serializeState) {\n retVal.__state = widget.serializeState();\n } else if (widget.data) {\n retVal.__state = {\n data: widget.data()\n };\n }\n }\n return retVal;\n}\n\nexport function serialize(widget, filter?, includeData?, includeState?) {\n return JSON.stringify(serializeToObject(widget, filter, includeData, includeState));\n}\n","import { HTMLWidget, Platform, PropertyExt, Widget } from \"@hpcc-js/common\";\nimport { Grid } from \"@hpcc-js/layout\";\nimport { local as d3Local, select as d3Select, selectAll as d3SelectAll } from \"d3-selection\";\nimport * as Persist from \"./Persist\";\n\nimport \"../src/PropertyEditor.css\";\n\nfunction hasProperties(type) {\n switch (type) {\n case \"widget\":\n case \"widgetArray\":\n case \"propertyArray\":\n return true;\n default:\n }\n return false;\n}\n\nexport class PropertyEditor extends HTMLWidget {\n _widgetOrig;\n _parentPropertyEditor;\n _show_settings: boolean;\n _selectedItems;\n __meta_sorting;\n _watch;\n private _childPE = d3Local<PropertyEditor>();\n\n constructor() {\n super();\n this._parentPropertyEditor = null;\n\n this._tag = \"div\";\n this._show_settings = false;\n }\n\n parentPropertyEditor(_?: PropertyEditor): PropertyEditor {\n if (!arguments.length) return this._parentPropertyEditor;\n this._parentPropertyEditor = _;\n return this;\n }\n\n depth(): number {\n let retVal = 0;\n let parent = this.parentPropertyEditor();\n while (parent) {\n ++retVal;\n parent = parent.parentPropertyEditor();\n }\n return retVal;\n }\n\n _show_header = true;\n show_header(): boolean;\n show_header(_: boolean): PropertyEditor;\n show_header(_?: boolean): boolean | PropertyEditor {\n if (!arguments.length) {\n return this._show_header;\n }\n this._show_header = _;\n return this;\n }\n\n show_settings(): boolean;\n show_settings(_: boolean): PropertyEditor;\n show_settings(_?: boolean): boolean | PropertyEditor {\n if (!arguments.length) {\n return this._show_settings;\n }\n this._show_settings = _;\n return this;\n }\n\n rootWidgets() {\n if (this._selectedItems && this._selectedItems.length) {\n return this._selectedItems;\n }\n return this.show_settings() ? [this] : this.widget() ? [this.widget()] : [];\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n const context = this;\n\n const rootWidgets = this.rootWidgets().filter(function (w) {\n if (w._owningWidget && w._owningWidget.excludeObjs instanceof Array) {\n if (w._owningWidget.excludeObjs.indexOf(w.classID()) !== -1) {\n return false;\n }\n }\n return true;\n });\n\n const table = element.selectAll(`table.property-table.table-${this.depth()}`).data(rootWidgets, function (d) {\n // We reuse the existing DOM Nodes and this node _might_ have been a regular Input previously ---\n if (typeof d.id !== \"function\") {\n return `meta-${d.id}`;\n }\n return d.id();\n });\n table.enter().append(\"table\")\n .attr(\"class\", `property-table table-${this.depth()}`)\n .each(function () {\n const tableElement = d3Select(this);\n\n // Header ---\n if (context._show_header && context.parentPropertyEditor() === null) {\n tableElement.append(\"thead\").append(\"tr\").append(\"th\")// .datum(tableElement)\n .attr(\"colspan\", \"2\")\n .each(function () {\n context.enterHeader(d3Select(this));\n })\n ;\n }\n\n // Body ---\n tableElement.append(\"tbody\");\n })\n .merge(table)\n .each(function (tableData) {\n const tableElement = d3Select(this);\n\n // Header ---\n if (context._show_header && context.parentPropertyEditor() === null) {\n context.updateHeader(tableElement.select(\"thead > tr > th\"));\n }\n\n // Body ---\n context.renderInputs(tableElement.select(\"tbody\"), tableData);\n })\n ;\n table.exit()\n .each(function () {\n context.renderInputs(element.select(\"tbody\"), null);\n })\n .remove()\n ;\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n this.watchWidget(null);\n }\n\n private watchDepth = 0;\n watchWidget(widget) {\n if (this._watch) {\n if ((window as any).__hpcc_debug) {\n --this.watchDepth;\n console.info(\"watchDepth: \" + this.watchDepth);\n }\n this._watch.remove();\n delete this._watch;\n }\n if (widget) {\n const context = this;\n this._watch = widget.monitor(function (_paramId, newVal, oldVal) {\n if (oldVal !== newVal) {\n const propEditor = context.parentPropertyEditor() || context;\n propEditor.lazyRender();\n }\n });\n if ((window as any).__hpcc_debug) {\n ++this.watchDepth;\n console.info(\"watchDepth: \" + this.watchDepth);\n }\n }\n }\n\n enterHeader(th) {\n const context = this;\n\n th.append(\"span\");\n th.append(\"i\")\n .attr(\"class\", \"expandIcon fa\")\n .on(\"click\", function () {\n switch (context.peInputIcon()) {\n case \"fa-caret-up\":\n case \"fa-caret-right\":\n context.element().selectAll(`.table-${context.depth()} > tbody > tr > .headerRow > .peInput > .property-table-collapsed`)\n .classed(\"property-table-collapsed\", false)\n ;\n context.element().selectAll(`.table-${context.depth()} > tbody > tr > .headerRow > .peInput > i`)\n .classed(\"fa-minus-square-o\", true)\n .classed(\"fa-plus-square-o\", false)\n ;\n break;\n case \"fa-caret-down\":\n context.element().selectAll(`.table-${context.depth()} > tbody > tr > .headerRow > .peInput > div`)\n .classed(\"property-table-collapsed\", true)\n ;\n context.element().selectAll(`.table-${context.depth()} > tbody > tr > .headerRow > .peInput > i`)\n .classed(\"fa-minus-square-o\", false)\n .classed(\"fa-plus-square-o\", true)\n ;\n break;\n }\n context.refreshExpandIcon();\n })\n ;\n\n const sortIcon = th.append(\"i\")\n .attr(\"class\", \"sortIcon fa\")\n .on(\"click\", function () {\n context.refreshSortIcon(sortIcon, true);\n })\n ;\n\n th.append(\"i\")\n .attr(\"class\", \"hideParamsIcon fa\")\n .on(\"click\", function () {\n context.hideNonWidgets(!context.hideNonWidgets()).render();\n })\n ;\n }\n\n updateHeader(th) {\n const widget: any = this.widget();\n let spanText = \"\";\n if (widget) {\n if (widget.label) {\n spanText += widget.label();\n }\n if (widget.classID) {\n if (spanText) {\n spanText += \" - \";\n }\n spanText += widget.classID();\n }\n }\n th.select(\"span\")\n .text(spanText)\n ;\n this.refreshExpandIcon();\n this.refreshSortIcon(th.select(\".sortIcon\"));\n this.refreshHideParamsIcon(th.select(\".hideParamsIcon\"));\n }\n\n peInputCount() {\n return this.element().selectAll(`.table-${this.depth()} > tbody > tr > .headerRow > .peInput > div`).size();\n }\n\n peInputCollapsedCount() {\n return this.element().selectAll(`.table-${this.depth()} > tbody > tr > .headerRow > .peInput > div.property-table-collapsed`).size();\n }\n\n peInputIcon(): \"fa-caret-down\" | \"fa-caret-up\" | \"fa-caret-right\" {\n const collapsed = this.peInputCollapsedCount();\n if (collapsed === 0) {\n return \"fa-caret-down\";\n } else if (collapsed === this.peInputCount()) {\n return \"fa-caret-up\";\n }\n return \"fa-caret-right\";\n }\n\n refreshExpandIcon() {\n const newIcon = this.peInputIcon();\n this.element().select(`.table-${this.depth()} > thead > tr > th > .expandIcon`)\n .classed(\"fa-caret-up\", false)\n .classed(\"fa-caret-right\", false)\n .classed(\"fa-caret-down\", false)\n .classed(newIcon, true)\n ;\n }\n\n refreshSortIcon(sortIcon, increment = false) {\n const sort = this.sorting();\n const types = this.sorting_options();\n const icons = this.__meta_sorting.ext.icons;\n if (increment) {\n sortIcon.classed(icons[types.indexOf(sort)], false);\n this.sorting(types[(types.indexOf(sort) + 1) % types.length]).render();\n } else {\n sortIcon\n .classed(icons[(types.indexOf(sort)) % types.length], true)\n .attr(\"title\", sort)\n ;\n }\n }\n\n refreshHideParamsIcon(hideParamsIcon) {\n hideParamsIcon\n .classed(\"fa-eye\", !this.hideNonWidgets())\n .classed(\"fa-eye-slash\", this.hideNonWidgets())\n ;\n }\n\n gatherDataTree(widget) {\n if (!widget) return null;\n const retVal = {\n label: widget.id() + \" (\" + widget.classID() + \")\",\n children: []\n };\n const arr2 = Persist.discover(widget);\n arr2.forEach(function (prop) {\n const node = {\n label: prop.id,\n children: []\n };\n switch (prop.type) {\n case \"widget\":\n node.children.push(this.gatherDataTree(widget[prop.id]()));\n break;\n case \"widgetArray\":\n case \"propertyArray\":\n const arr = widget[prop.id]();\n if (arr) {\n arr.forEach(function (item) {\n node.children.push(this.gatherDataTree(item));\n }, this);\n }\n break;\n default:\n }\n retVal.children.push(node);\n }, this);\n return retVal;\n }\n\n getDataTree() {\n return this.gatherDataTree(this.widget());\n }\n\n _rowSorting(paramArr) {\n if (this.sorting() === \"type\") {\n const typeOrder = [\"boolean\", \"number\", \"string\", \"html-color\", \"array\", \"object\", \"widget\", \"widgetArray\", \"propertyArray\"];\n paramArr.sort(function (a, b) {\n if (a.type === b.type) {\n return a.id < b.id ? -1 : 1;\n } else {\n return typeOrder.indexOf(a.type) < typeOrder.indexOf(b.type) ? -1 : 1;\n }\n });\n } else if (this.sorting() === \"A-Z\") {\n paramArr.sort(function (a, b) { return a.id < b.id ? -1 : 1; });\n } else if (this.sorting() === \"Z-A\") {\n paramArr.sort(function (a, b) { return a.id > b.id ? -1 : 1; });\n }\n }\n\n filterInputs(d) {\n const discArr = Persist.discover(d);\n if ((this.filterTags() || this.excludeTags().length > 0 || this.excludeParams.length > 0) && d instanceof PropertyEditor === false) {\n const context = this;\n return discArr.filter(function (param, _idx) {\n if (d[param.id + \"_hidden\"] && d[param.id + \"_hidden\"]()) return false;\n for (const excludeParamItem of context.excludeParams()) {\n const arr = excludeParamItem.split(\".\");\n let widgetName;\n let excludeParam;\n if (arr.length > 2) {\n widgetName = arr[0];\n excludeParam = arr[2];\n } else {\n widgetName = arr[0];\n excludeParam = arr[1];\n }\n if (d.class().indexOf(widgetName) !== -1) {\n if (param.id === excludeParam) {\n return false;\n }\n return true;\n }\n }\n if (context.excludeTags().length > 0 && param.ext && param.ext.tags && param.ext.tags.some(function (item) { return (context.excludeTags().indexOf(item) > -1); })) {\n return false;\n }\n if ((context.filterTags() && param.ext && param.ext.tags && param.ext.tags.indexOf(context.filterTags()) !== -1) || !context.filterTags()) {\n return true;\n }\n return false;\n });\n }\n return discArr;\n }\n\n renderInputs(element, d) {\n const context = this;\n let discArr = [];\n const showFields = !this.show_settings() && this.showFields();\n if (d) {\n discArr = this.filterInputs(d).filter(function (prop) { return prop.id !== \"fields\" ? true : showFields; });\n if (!this.show_settings() && this.showData() && d.data) {\n discArr.push({ id: \"data\", type: \"array\" });\n }\n if (this.hideNonWidgets()) {\n discArr = discArr.filter(function (n) {\n return hasProperties(n.type);\n });\n }\n this._rowSorting(discArr);\n }\n\n const rows = element.selectAll(\"tr.prop\" + this.id()).data(discArr, function (d2) { return d2.id; });\n rows.enter().append(\"tr\")\n .attr(\"class\", \"property-wrapper prop\" + this.id())\n .each(function (param) {\n const tr = d3Select(this);\n if (hasProperties(param.type)) {\n tr.classed(\"property-widget-wrapper\", true);\n tr.append(\"td\")\n .attr(\"colspan\", \"2\")\n ;\n } else {\n tr.classed(\"property-input-wrapper\", true);\n tr.append(\"td\")\n .classed(\"property-label\", true)\n .text(param.id)\n ;\n const inputCell = tr.append(\"td\")\n .classed(\"property-input-cell\", true)\n ;\n context.enterInputs(d, inputCell, param);\n }\n }).merge(rows)\n .each(function (param) {\n const tr = d3Select(this);\n tr.classed(\"disabled\", d[param.id + \"_disabled\"] && d[param.id + \"_disabled\"]());\n tr.classed(\"invalid\", d[param.id + \"_valid\"] && !d[param.id + \"_valid\"]());\n tr.attr(\"title\", param.description);\n if (hasProperties(param.type)) {\n context.updateWidgetRow(d, tr.select(\"td\"), param);\n } else {\n context.updateInputs(d, param);\n }\n });\n rows.exit().each(function (param) {\n const tr = d3Select(this);\n if (hasProperties(param.type)) {\n context.updateWidgetRow(d, tr.select(\"td\"), null);\n }\n }).remove();\n rows.order();\n }\n\n updateWidgetRow(widget: PropertyExt, element, param) {\n let tmpWidget = [];\n if (widget && param) {\n tmpWidget = widget[param.id]() || [];\n }\n let widgetArr = tmpWidget instanceof Array ? tmpWidget : [tmpWidget];\n if (param && param.ext && param.ext.autoExpand) {\n // remove empties and ensure last row is an empty ---\n let lastModified = true;\n const noEmpties = widgetArr.filter(function (row, idx) {\n lastModified = row.valid();\n row._owner = widget;\n return lastModified || idx === widgetArr.length - 1;\n }, this);\n const widgetDisabled = widget[param.id + \"_disabled\"] && widget[param.id + \"_disabled\"]();\n let changed = !!(widgetArr.length - noEmpties.length);\n if (lastModified && !widgetDisabled) {\n changed = true;\n const autoExpandWidget = new param.ext.autoExpand()\n .owner(widget)\n ;\n // autoExpandWidget.monitor((id, newVal, oldVal, source) => {\n // widget.broadcast(param.id, newVal, oldVal, source);\n // });\n noEmpties.push(autoExpandWidget);\n }\n if (changed) {\n widget[param.id](noEmpties);\n widgetArr = noEmpties;\n }\n }\n\n const context = this;\n element.classed(\"headerRow\", true);\n const peInput = element.selectAll(`div.peInput-${this.depth()}`).data(widgetArr, function (d) { return d.id(); });\n peInput.enter().append(\"div\")\n .attr(\"class\", `peInput peInput-${this.depth()}`)\n .each(function (w) {\n const peInputElement = d3Select(this);\n\n // Header ---\n peInputElement.append(\"span\");\n peInputElement.append(\"i\")\n .attr(\"class\", \"fa\")\n .on(\"click\", function (d) {\n const clickTarget = peInputElement.select(\"div\");\n clickTarget\n .classed(\"property-table-collapsed\", !clickTarget.classed(\"property-table-collapsed\"))\n ;\n d3Select(this)\n .classed(\"fa-minus-square-o\", !clickTarget.classed(\"property-table-collapsed\"))\n .classed(\"fa-plus-square-o\", clickTarget.classed(\"property-table-collapsed\"))\n ;\n context.refreshExpandIcon();\n })\n ;\n\n // Body ---\n const peDiv = peInputElement.append(\"div\")\n // .attr(\"class\", `property- input - cell propEditor-${context.depth() }`)\n ;\n context._childPE.set(this, new PropertyEditor().label(param.id).target(peDiv.node() as HTMLElement));\n })\n .merge(peInput)\n .each(function (w) {\n const peInputElement = d3Select(this);\n const clickTarget = peInputElement.select(\"div\");\n\n // Header ---\n d3Select(this).select(\"span\")\n .text(`${param.id}`)\n ;\n\n d3Select(this).select(\"i\")\n .classed(\"fa-minus-square-o\", !clickTarget.classed(\"property-table-collapsed\"))\n .classed(\"fa-plus-square-o\", clickTarget.classed(\"property-table-collapsed\"))\n ;\n\n // Body ---\n context._childPE.get(this)\n .parentPropertyEditor(context)\n .showFields(context.showFields())\n .showData(context.showData())\n .sorting(context.sorting())\n .filterTags(context.filterTags())\n .excludeTags(context.excludeTags())\n .excludeParams(context.excludeParams())\n .hideNonWidgets(context.hideNonWidgets() && w._class.indexOf(\"layout_\") >= 0)\n .widget(w)\n .render()\n ;\n })\n ;\n peInput.exit()\n .each(function (w) {\n context._childPE.get(this)\n .widget(null)\n .render()\n .target(null)\n ;\n context._childPE.remove(this);\n })\n .remove()\n ;\n }\n\n setProperty(widget, id, value) {\n // With PropertyExt not all \"widgets\" have a render, if not use top most render...\n let topWidget: Widget;\n let topPropEditor: Widget;\n let propEditor: PropertyEditor = this;\n let oldValue;\n while (propEditor && widget) {\n if (propEditor === this) {\n oldValue = widget[id]();\n widget[id](value);\n }\n if (propEditor) {\n topPropEditor = propEditor;\n const w: PropertyExt = propEditor.widget();\n if (w instanceof Widget) {\n topWidget = w;\n }\n }\n propEditor = propEditor.parentPropertyEditor();\n }\n if (topWidget) {\n topWidget.render();\n }\n if (topPropEditor) {\n topPropEditor.broadcast(id, value, oldValue, widget);\n }\n }\n\n enterInputs(widget, cell, param) {\n cell.classed(param.type + \"-cell\", true);\n const context = this;\n if (typeof (param.ext.editor_input) === \"function\") {\n param.ext.editor_input(this, widget, cell, param);\n }\n switch (param.type) {\n case \"boolean\":\n cell.append(\"input\")\n .attr(\"id\", this.id() + \"_\" + param.id)\n .classed(\"property-input\", true)\n .attr(\"type\", \"checkbox\")\n .on(\"change\", function () {\n context.setProperty(widget, param.id, this.checked);\n })\n ;\n break;\n case \"set\":\n cell.append(\"select\")\n .attr(\"id\", this.id() + \"_\" + param.id)\n .classed(\"property-input\", true)\n .on(\"change\", function () {\n context.setProperty(widget, param.id, this.value);\n })\n ;\n break;\n case \"array\":\n case \"object\":\n cell.append(\"textarea\")\n .attr(\"id\", this.id() + \"_\" + param.id)\n .classed(\"property-input\", true)\n .attr(\"autocomplete\", \"off\")\n .attr(\"autocorrect\", \"off\")\n .attr(\"autocapitalize\", \"off\")\n .attr(\"spellcheck\", \"false\")\n .on(\"change\", function () {\n let value;\n try {\n value = JSON.parse(this.value);\n } catch (e) {\n value = this.value;\n }\n context.setProperty(widget, param.id, value);\n })\n ;\n break;\n default:\n if (param.ext && param.ext.range) {\n cell.append(\"span\")\n .classed(\"property-input-span\", true)\n .attr(\"id\", this.id() + \"_\" + param.id + \"_currentVal\")\n .text(param.defaultValue)\n ;\n cell.append(\"input\")\n .attr(\"type\", \"range\")\n .attr(\"step\", param.ext.range.step)\n .attr(\"min\", param.ext.range.min)\n .attr(\"max\", param.ext.range.max)\n .attr(\"id\", this.id() + \"_\" + param.id)\n .classed(\"property-input\", true)\n .on(\"input\", function () {\n context.setProperty(widget, param.id, this.value);\n d3Select(\"#\" + this.id + \"_currentVal\").text(\"Current Value: \" + this.value);\n })\n .on(\"change\", function () {\n context.setProperty(widget, param.id, this.value);\n d3Select(\"#\" + this.id + \"_currentVal\").text(\"Current Value: \" + this.value);\n })\n ;\n } else {\n cell.append(param.ext && param.ext.multiline ? \"textarea\" : \"input\")\n .attr(\"id\", this.id() + \"_\" + param.id)\n .classed(\"property-input\", true)\n .attr(\"autocomplete\", \"off\")\n .attr(\"autocorrect\", \"off\")\n .attr(\"autocapitalize\", \"off\")\n .attr(\"spellcheck\", \"false\")\n .on(\"change\", function () {\n context.setProperty(widget, param.id, this.value);\n })\n ;\n if (param.type === \"html-color\" && !Platform.isIE) {\n cell.append(\"input\")\n .attr(\"id\", this.id() + \"_\" + param.id + \"_2\")\n .classed(\"property-input\", true)\n .attr(\"type\", \"color\")\n .on(\"change\", function () {\n context.setProperty(widget, param.id, this.value);\n })\n ;\n }\n }\n break;\n }\n }\n\n updateInputs(widget, param) {\n const element = d3SelectAll(\"#\" + this.id() + \"_\" + param.id + \", #\" + this.id() + \"_\" + param.id + \"_2\");\n const val = widget ? widget[param.id]() : \"\";\n element.property(\"disabled\", widget[param.id + \"_disabled\"] && widget[param.id + \"_disabled\"]());\n element.property(\"invalid\", widget[param.id + \"_valid\"] && !widget[param.id + \"_valid\"]());\n switch (param.type) {\n case \"boolean\":\n element.property(\"checked\", val);\n break;\n case \"set\":\n const options = element.selectAll(\"option\").data<string | { value: string, text: string }>(widget[param.id + \"_options\"]());\n options.enter().append(\"option\")\n .merge(options as any)\n .attr(\"value\", (d: any) => (d && d.value !== undefined) ? d.value : d)\n .text((d: any) => (d && d.text !== undefined) ? d.text : d)\n ;\n options.exit().remove();\n element.property(\"value\", val);\n break;\n case \"array\":\n case \"object\":\n element.property(\"value\", JSON.stringify(val, function replacer(_key, value) {\n if (value instanceof Widget) {\n return Persist.serialize(value);\n }\n return value;\n }, \" \"));\n break;\n default:\n if (param.ext && param.ext.range) {\n d3Select(\"#\" + this.id() + \"_\" + param.id + \"_currentVal\").text(\"Current Value: \" + val);\n }\n element.property(\"value\", val && val.length && val.length > 100000 ? \"...too big to display...\" : val);\n break;\n }\n }\n\n showFields: { (): boolean; (_: boolean): PropertyEditor; };\n showData: { (): boolean; (_: boolean): PropertyEditor; };\n\n sorting: { (): string; (_: string): PropertyEditor; };\n sorting_options: () => string[];\n\n hideNonWidgets: { (): boolean; (_: boolean): PropertyEditor; };\n\n label: { (): string; (_: string): PropertyEditor; };\n filterTags: { (): string; (_: string): PropertyEditor; };\n excludeTags: { (): string[]; (_: string[]): PropertyEditor; };\n excludeParams: { (): string[]; (_: string[]): PropertyEditor; };\n\n widget: { (): PropertyExt; (_: PropertyExt): PropertyEditor };\n}\nPropertyEditor.prototype._class += \" other_PropertyEditor\";\n\nPropertyEditor.prototype.publish(\"showFields\", false, \"boolean\", \"If true, widget.fields() will display as if it was a publish parameter.\", null, { tags: [\"Basic\"] });\nPropertyEditor.prototype.publish(\"showData\", false, \"boolean\", \"If true, widget.data() will display as if it was a publish parameter.\", null, { tags: [\"Basic\"] });\n\nPropertyEditor.prototype.publish(\"sorting\", \"none\", \"set\", \"Specify the sorting type\", [\"none\", \"A-Z\", \"Z-A\", \"type\"], { tags: [\"Basic\"], icons: [\"fa-sort\", \"fa-sort-alpha-asc\", \"fa-sort-alpha-desc\", \"fa-sort-amount-asc\"] });\n\nPropertyEditor.prototype.publish(\"hideNonWidgets\", false, \"boolean\", \"Hides non-widget params (at this tier only)\", null, { tags: [\"Basic\"] });\n\nPropertyEditor.prototype.publish(\"label\", \"\", \"string\", \"Label to display in header of property editor table\", null, { tags: [\"Basic\"] });\nPropertyEditor.prototype.publish(\"filterTags\", \"\", \"set\", \"Only show Publish Params of this type\", [\"Basic\", \"Intermediate\", \"Advance\", \"\"], {});\nPropertyEditor.prototype.publish(\"excludeTags\", [\"Private\"], \"array\", \"Exclude this array of tags\", null, {});\nPropertyEditor.prototype.publish(\"excludeParams\", [], \"array\", \"Exclude this array of params (widget.param)\", null, {});\n\nPropertyEditor.prototype.publish(\"widget\", null, \"widget\", \"Widget\", null, { tags: [\"Basic\"], render: false });\n\nconst _widgetOrig = PropertyEditor.prototype.widget;\n(PropertyEditor.prototype as any).widget = function (_?: Widget): Widget | PropertyEditor {\n if (arguments.length && _widgetOrig.call(this) === _) return this;\n const retVal = _widgetOrig.apply(this, arguments);\n if (arguments.length) {\n this.watchWidget(_);\n if (_ instanceof Grid) {\n const context = this;\n _.postSelectionChange = function () {\n context._selectedItems = _._selectionBag.get().map(function (item) { return item.widget; });\n context.lazyRender();\n };\n }\n }\n return retVal;\n};\n","import { HTMLWidget } from \"@hpcc-js/common\";\nimport { select as d3Select } from \"d3-selection\";\n\nimport \"../src/RadioCheckbox.css\";\n\nexport class RadioCheckbox extends HTMLWidget {\n _span;\n _label;\n _Checkbox;\n\n constructor() {\n super();\n }\n\n rcData() {\n if (this.data().length === 0) return [];\n const view = this._db.rollupView([this.textColumn(), this.valueColumn()]);\n let retVal = [];\n retVal = retVal.concat(view.entries().map(function (row) {\n return {\n text: row.key,\n value: row.values.length ? row.values[0].key : \"\",\n origRow: row.values.length && row.values[0].values.length ? row.values[0].values[0] : []\n };\n }, this));\n if (this.sort_exists()) {\n const descending = this.sort() === \"descending\";\n retVal.sort(function (l, r) {\n if (l.text < r.text) return descending ? 1 : -1;\n if (l.text > r.text) return descending ? -1 : 1;\n return 0;\n });\n }\n return retVal;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._span = element.append(\"span\");\n this._label = this._span.append(\"label\")\n .attr(\"for\", this.id() + \"_radioCheckbox\")\n ;\n this._Checkbox = this._span.append(\"div\")\n .attr(\"id\", this.id() + \"_radioCheckbox\");\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n this._label\n .text(this.label())\n ;\n const radioCheckbox = this._Checkbox.selectAll(\".dataRow\").data(this.rcData());\n radioCheckbox.enter().append(\"div\")\n .attr(\"class\", \"dataRow\")\n .each(function (row, idx) {\n const checkboxDiv = d3Select(this);\n const id = context.id() + \"_checkbox_\" + idx;\n checkboxDiv.append(\"input\")\n .attr(\"id\", id)\n .attr(\"name\", context.id() + \"_radioCheckbox\")\n .on(\"change\", function (selectedData) {\n context.handleClick();\n });\n checkboxDiv.append(\"label\")\n .attr(\"for\", id);\n });\n radioCheckbox\n .each(function (row, idx) {\n const rcDiv = d3Select(this);\n rcDiv.select(\"input\")\n .attr(\"type\", context.multiple() ? \"checkbox\" : \"radio\")\n .attr(\"value\", row.value);\n rcDiv.select(\"label\")\n .text(row.text);\n });\n radioCheckbox.exit().remove();\n radioCheckbox.order();\n }\n\n exit(domNode, element) {\n this._span.remove();\n super.exit(domNode, element);\n }\n\n handleClick() {\n const options = [];\n this._Checkbox.selectAll(\".dataRow > input\")\n .each(function (row, idx) {\n const input = d3Select(this);\n if (input.property(\"checked\") && row && row.origRow) {\n options.push(row.origRow);\n }\n });\n if (options.length) {\n // TODO Handle Multiple Selections - part of 1.16.x\n this.click(this.rowToObj(options[0]), this.valueColumn(), true);\n } else {\n this.click([], this.valueColumn(), false);\n }\n }\n\n click(row, column, selected) {\n }\n\n label: { (): string; (_: string): RadioCheckbox };\n label_exists: () => boolean;\n valueColumn: { (): string; (_: string): RadioCheckbox };\n valueColumn_exists: () => boolean;\n textColumn: { (): string; (_: string): RadioCheckbox };\n textColumn_exists: () => boolean;\n sort: { (): string; (_: string): RadioCheckbox };\n sort_exists: () => boolean;\n multiple: { (): boolean; (_: boolean): RadioCheckbox };\n multiple_exists: () => boolean;\n}\nRadioCheckbox.prototype._class += \" other_RadioCheckbox\";\n\nRadioCheckbox.prototype.publish(\"label\", null, \"string\", \"Label for RadioCheckbox\");\nRadioCheckbox.prototype.publish(\"valueColumn\", null, \"set\", \"RadioCheckbox display value\", function () { return this.columns(); }, { optional: true });\nRadioCheckbox.prototype.publish(\"textColumn\", null, \"set\", \"RadioCheckbox value(s)\", function () { return this.columns(); }, { optional: true });\nRadioCheckbox.prototype.publish(\"sort\", null, \"set\", \"Sort contents\", [\"\", \"ascending\", \"descending\"], { optional: true });\nRadioCheckbox.prototype.publish(\"multiple\", false, \"boolean\", \"Multiple selection\");\n","import { HTMLWidget } from \"@hpcc-js/common\";\nimport { select as d3Select } from \"d3-selection\";\n\nimport \"../src/Select.css\";\n\nexport class Select extends HTMLWidget {\n _span;\n _prompt;\n _select;\n\n constructor() {\n super();\n }\n\n selectData() {\n if (this.data().length === 0) return [];\n const view = this._db.rollupView([this.textColumn(), this.valueColumn()]);\n let retVal = [];\n retVal = retVal.concat(view.entries().map(function (row) {\n return {\n text: row.key,\n value: row.values.length ? row.values[0].key : \"\",\n origRow: row.values.length && row.values[0].value.length ? row.values[0].value[0] : []\n };\n }, this));\n if (this.sort_exists()) {\n const descending = this.sort() === \"descending\";\n retVal.sort(function (l, r) {\n if (l.text < r.text) return descending ? 1 : -1;\n if (l.text > r.text) return descending ? -1 : 1;\n return 0;\n });\n }\n if (this.optional()) {\n retVal.unshift({ value: \"\", text: \"\" });\n }\n return retVal;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._span = element.append(\"span\");\n this._prompt = this._span.append(\"label\")\n .attr(\"for\", this.id() + \"_select\")\n ;\n\n const context = this;\n this._select = this._span.append(\"select\")\n .attr(\"id\", this.id() + \"_select\")\n .on(\"change\", function (d) {\n const options = [];\n const options_dom_node = context._select.node().options;\n for (let i = 0; i < options_dom_node.length; ++i) {\n const optionNode = options_dom_node[i];\n if (optionNode.selected) {\n options.push((d3Select(optionNode).datum() as any).origRow);\n }\n }\n if (options.length) {\n context.click(context.rowToObj(options[0]), context.valueColumn(), true); // TODO: Multiselect not support in HIPIE\n } else {\n context.click([], context.valueColumn(), false);\n }\n })\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n this._prompt\n .text(this.label())\n ;\n this._select\n .attr(\"multiple\", this.multiple() ? this.multiple() : null)\n .attr(\"size\", this.multiple() && this.selectSize() ? this.selectSize() : null)\n ;\n\n const option = this._select.selectAll(\".dataRow\").data(this.selectData());\n const optionUpdate = option.enter().append(\"option\")\n .attr(\"class\", \"dataRow\")\n .merge(option)\n .attr(\"value\", function (row) { return row.value; })\n .text(function (row) { return row.text; })\n ;\n option.exit().remove();\n optionUpdate.order();\n }\n\n exit(domNode, element) {\n this._span.remove();\n super.exit(domNode, element);\n }\n\n click(row, column, selected) {\n }\n label: { (): string; (_: string): Select };\n label_exists: () => boolean;\n valueColumn: { (): string; (_: string): Select };\n valueColumn_exists: () => boolean;\n textColumn: { (): string; (_: string): Select };\n textColumn_exists: () => boolean;\n optional: { (): boolean; (_: boolean): Select };\n optional_exists: () => boolean;\n sort: { (): string; (_: string): Select };\n sort_exists: () => boolean;\n multiple: { (): boolean; (_: boolean): Select };\n multiple_exists: () => boolean;\n selectSize: { (): number; (_: number): Select };\n selectSize_exists: () => boolean;\n}\nSelect.prototype._class += \" other_Select\";\n\nSelect.prototype.publish(\"label\", null, \"string\", \"Label for select\");\nSelect.prototype.publish(\"valueColumn\", null, \"set\", \"Select display value\", function () { return this.columns(); }, { optional: true });\nSelect.prototype.publish(\"textColumn\", null, \"set\", \"Select value(s)\", function () { return this.columns(); }, { optional: true });\nSelect.prototype.publish(\"optional\", true, \"boolean\", \"Optional Select\");\nSelect.prototype.publish(\"sort\", null, \"set\", \"Sort contents\", [\"\", \"ascending\", \"descending\"], { optional: true });\nSelect.prototype.publish(\"multiple\", false, \"boolean\", \"Multiple selection\");\nSelect.prototype.publish(\"selectSize\", 5, \"number\", \"Size of multiselect box\", null, { disable: w => !w.multiple() });\n","import { HTMLWidget } from \"@hpcc-js/common\";\nimport * as Persist from \"./Persist\";\n\nimport \"../src/ThemeEditor.css\";\n\nfunction hasLocalStorage(): boolean {\n const mod = \"@hpcc-js/other\";\n try {\n localStorage.setItem(mod, mod);\n localStorage.removeItem(mod);\n return true;\n } catch (e) {\n return false;\n }\n}\n\n// Polyfill for IE in file:// mode ----\nconst _localStorage: { getItem: (id: string) => any; } = hasLocalStorage() ? localStorage : {\n getItem(id: string): any {\n return undefined;\n }\n};\n\nconst getThemes = function (idx?) {\n if (typeof ((window as any).g_defaultThemes) === \"function\") {\n (window as any).g_defaultThemes(idx);\n }\n return JSON.parse(_localStorage.getItem(\"themeEditorThemes\") || \"{}\");\n};\nconst getSerials = function (idx?) {\n if (typeof ((window as any).g_defaultSerials) === \"function\") {\n (window as any).g_defaultSerials(idx);\n }\n return JSON.parse(_localStorage.getItem(\"themeEditorSerials\") || \"{}\");\n};\nconst getThemeNames = function (idx?) {\n const loadedThemes = getThemes();\n let themes = [];\n for (const themeName in loadedThemes) {\n themes.push(themeName);\n }\n if (typeof (idx) !== \"undefined\" && typeof (themes[idx]) !== \"undefined\") {\n themes = themes[idx];\n }\n return themes;\n};\nconst getSerialNames = function (idx?) {\n const loadedSerials = getSerials();\n let serials = [];\n for (const serialName in loadedSerials) {\n serials.push(serialName);\n }\n if (typeof (idx) !== \"undefined\" && typeof (serials[idx]) !== \"undefined\") {\n serials = serials[idx];\n }\n return serials;\n};\nconst tableNeedsRedraw = function (context) {\n let needsRedraw = false;\n if (typeof (context._current_grouping) === \"undefined\") {\n context._current_grouping = context._group_params_by;\n } else if (context._current_grouping !== context._group_params_by) {\n needsRedraw = true;\n }\n if (typeof (context._showing_columns) === \"undefined\") {\n context._showing_columns = context.showColumns();\n } else if (context._showing_columns !== context.showColumns()) {\n needsRedraw = true;\n }\n if (typeof (context._showing_data) === \"undefined\") {\n context._showing_data = context.showData();\n } else if (context._showing_data !== context.showData()) {\n needsRedraw = true;\n }\n return needsRedraw;\n};\nconst camelizeString = function (str) {\n const spacedText = str.split(/(?=[0-9A-Z])/).map(function (n) { return n.length > 1 ? n + \" \" : n; }).join(\"\");\n return spacedText.replace(/(?:^|\\s)\\S/g, function (a) { return a.toUpperCase(); });\n};\n\nconst tableInputHtml = function (rowObj, value, widgetArr, idSuffix) {\n let inputHtml = \"\";\n let id = \"te-input-\" + rowObj.id + \"-\" + idSuffix;\n\n let inputType;\n if (typeof (rowObj.ext) !== \"undefined\" && typeof (rowObj.ext.inputType) !== \"undefined\") {\n inputType = rowObj.ext.inputType;\n }\n\n if (typeof (rowObj.inputID) !== \"undefined\") {\n id = rowObj.inputID;\n }\n\n const dataWIDs = \"data-paramid='\" + rowObj.id + \"' data-wids='\" + widgetArr.map(function (w) {\n if (typeof (w.widget) === \"object\") {\n return w.widget._id;\n } else {\n return w;\n }\n }).join(\",\") + \"'\";\n switch (rowObj.type) {\n case \"boolean\":\n const checked = value ? \" checked\" : \"\";\n inputHtml = \"<input id='\" + id + \"' \" + dataWIDs + \" type='checkbox' class='te-checkbox te-input'\" + checked + \">\"; break;\n case \"number\":\n if (typeof (inputType) !== \"undefined\") {\n if (inputType === \"textarea\") {\n inputHtml = \"<textarea id='\" + id + \"' class='te-textarea te-input' \" + dataWIDs + \">\" + value + \"</textarea>\";\n } else if (inputType === \"range\") {\n inputHtml = \"<input id='\" + id + \"' class='te-input' type='range' \" + dataWIDs + \" value='\" + value + \"' min='\" + rowObj.ext.min + \"' max='\" + rowObj.ext.max + \"' step='\" + rowObj.ext.step + \"'>\";\n }\n } else {\n inputHtml = \"<input id='\" + id + \"' type='text' class='te-text te-input' \" + dataWIDs + \" value='\" + value + \"'>\";\n }\n break;\n case \"string\":\n if (typeof (inputType) !== \"undefined\") {\n if (inputType === \"textarea\") {\n inputHtml = \"<textarea id='\" + id + \"' class='te-textarea te-input' \" + dataWIDs + \">\" + value + \"</textarea>\";\n }\n } else {\n inputHtml = \"<input id='\" + id + \"' type='text' class='te-text te-input' value='\" + value + \"' \" + dataWIDs + \">\";\n }\n break;\n case \"html-color\":\n const valueAttr = value === \"\" ? \"\" : \" value='\" + value + \"'\";\n inputHtml = \"<input id='\" + id + \"' type='text' class='te-html-color-input te-input' \" + dataWIDs + \" \" + valueAttr + \">\";\n inputHtml += \"<input type='color' class='te-html-color-button te-input' \" + dataWIDs + \" \" + valueAttr + \">\";\n break;\n case \"set\":\n const options = _options(rowObj, value);\n inputHtml = \"<select id='\" + id + \"' class='te-select te-input'\" + dataWIDs + \">\" + options + \"</select>\";\n break;\n case \"array\":\n inputHtml = \"<textarea id='\" + id + \"' class='te-textarea te-input' data-type='array' \" + dataWIDs + \">\" + value + \"</textarea>\";\n break;\n default:\n break;\n }\n if (typeof (rowObj.ext.saveButton) !== \"undefined\") {\n inputHtml += \"<button id='\" + rowObj.ext.saveButtonID + \"'>\" + rowObj.ext.saveButton + \"</button>\";\n }\n return inputHtml;\n\n function _options(obj, val) {\n let options = \"\";\n obj.set.forEach(function (s) {\n const selected = s === val ? \" selected\" : \"\";\n options += \"<option value='\" + s + \"'\" + selected + \">\" + s + \"</option>\";\n });\n return options;\n }\n};\n\nexport class ThemeEditor extends HTMLWidget {\n _current_grouping;\n _showing_columns;\n _showing_data;\n _contentEditors;\n _showSettings;\n _defaultThemes;\n _widgetObjsById;\n _sharedProperties;\n getThemes;\n getSerials;\n getDefaultThemes;\n getDefaultSerials;\n\n constructor() {\n super();\n\n this._tag = \"div\";\n this._current_grouping = undefined;\n this._showing_columns = undefined;\n this._showing_data = undefined;\n this.columns([\"Key\", \"Value\"]);\n this._contentEditors = [];\n this._showSettings = true;\n\n this._defaultThemes = [];\n\n this._widgetObjsById = {};\n }\n\n showSettings(_?) {\n if (!arguments.length) {\n return this._showSettings;\n }\n this._showSettings = _;\n return this;\n }\n\n onChange(widget, propID) { }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._placeholderElement.style(\"overflow\", \"auto\");\n }\n\n widgetProperty(widget, propID, _?) {\n if (_ === undefined) {\n return widget[propID]();\n }\n return widget[propID](_);\n }\n\n load(elmValue) { }\n\n save(themeName) { }\n\n needsPropTableRedraw() {\n const ret = document.getElementById(\"te-themeEditorOptions\") === null;\n return ret;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n if (tableNeedsRedraw(this)) {\n element.selectAll(\"#\" + this._id + \" > table\").remove();\n }\n this._current_grouping = this.paramGrouping();\n this._widgetObjsById[this._id] = this;\n this._sharedProperties = this.findSharedProperties(this.data());\n\n const needsPropertiesTableRedraw = this.needsPropTableRedraw();\n if (needsPropertiesTableRedraw && this.showSettings()) {\n const teParams = Persist.discover(this);\n for (const i in teParams) {\n if (teParams[i].ext.tags.indexOf(this.editorComplexity()) !== -1) {\n const teParamVal = this[teParams[i].id]();\n if (teParams[i].id === \"loadedTheme\" || teParams[i].id === \"loadedSerial\") {\n teParams[i].inputID = \"te-load-theme\";\n }\n teParams[i].input = tableInputHtml(teParams[i], teParamVal, [this._id], this._id);\n } else {\n delete teParams[i];\n }\n }\n domNode.innerHTML = this.propertiesTableHtml(teParams);\n const evt = document.createEvent(\"Events\");\n evt.initEvent(\"TE Properties Ready\", true, true);\n document.dispatchEvent(evt);\n }\n\n this.buildTableObjects(domNode, this._sharedProperties);\n\n this.initFunctionality(domNode);\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n\n click(d) {\n }\n\n propertiesTableHtml(editorParams) {\n const tableObj = {\n id: \"te-themeEditorOptions\",\n label: \"Editor Options\",\n rowArr: []\n };\n const modeTableObj = {\n id: \"te-tableModeOptions\",\n label: this.themeMode() ? \"Save/Load Theme\" : \"Save/Load Serial\",\n rowArr: []\n };\n for (const i in editorParams) {\n if (this.themeMode()) {\n if (editorParams[i].ext.tags.indexOf(\"Theme\") === -1 && editorParams[i].ext.tags.indexOf(\"Serial\") === -1) {\n tableObj.rowArr.push({\n th: camelizeString(editorParams[i].id),\n td: editorParams[i].input,\n trClass: \"propertyRow\"\n });\n } else if (editorParams[i].ext.tags.indexOf(\"Theme\") !== -1) {\n modeTableObj.rowArr.push({\n th: camelizeString(editorParams[i].id),\n td: editorParams[i].input,\n trClass: \"propertyRow\"\n });\n }\n } else {\n if (editorParams[i].ext.tags.indexOf(\"Serial\") === -1 && editorParams[i].ext.tags.indexOf(\"Theme\") === -1) {\n tableObj.rowArr.push({\n th: camelizeString(editorParams[i].id),\n td: editorParams[i].input,\n trClass: \"propertyRow\"\n });\n } else if (editorParams[i].ext.tags.indexOf(\"Serial\") !== -1) {\n modeTableObj.rowArr.push({\n th: camelizeString(editorParams[i].id),\n td: editorParams[i].input,\n trClass: \"propertyRow\"\n });\n }\n }\n\n }\n let html = \"\";\n if (tableObj.rowArr.length > 0) {\n html += this.tableObjHtml(tableObj);\n }\n if (modeTableObj.rowArr.length > 0) {\n html += this.tableObjHtml(modeTableObj);\n }\n return html;\n }\n buildTableObjects(targetElement, propObjs) {\n let sectionObjs = {};\n if (this.themeMode()) {\n sectionObjs = {\n chartColorSection: {\n id: \"te-colorOptions\",\n label: \"Chart Colors\",\n rowObjArr: []\n },\n surfaceSection: {\n id: \"te-containerOptions\",\n label: \"Container Styles/Colors\",\n rowObjArr: []\n },\n fontSection: {\n id: \"te-fontOptions\",\n label: \"Font Styles/Colors\",\n rowObjArr: []\n }\n };\n } else {\n sectionObjs = {\n nonSurfaceSection: {\n id: \"te-chartOptions\",\n label: \"Chart Properties\",\n rowObjArr: []\n }\n };\n }\n for (const p in propObjs) {\n if (this.themeMode()) {\n if (p.toUpperCase().indexOf(\"FONT\") !== -1 && !(propObjs[p].arr[0].widget._class.indexOf(\"layout_Surface\") !== -1 && p.toUpperCase().indexOf(\"COLOR\") !== -1)) {\n sectionObjs[\"fontSection\"].rowObjArr.push(propObjs[p]);\n } else if (p === \"paletteID\") {\n sectionObjs[\"chartColorSection\"].rowObjArr.push(propObjs[p]);\n } else if (propObjs[p].arr[0].widget._class.indexOf(\"layout_Surface\") !== -1) {\n sectionObjs[\"surfaceSection\"].rowObjArr.push(propObjs[p]);\n }\n } else {\n if (propObjs[p].arr[0].widget._class.indexOf(\"layout_Surface\") === -1) {\n sectionObjs[\"nonSurfaceSection\"].rowObjArr.push(propObjs[p]);\n }\n }\n }\n let html = \"\";\n for (const i in sectionObjs) {\n html += this.sharedPropertyTableHtml(sectionObjs[i]);\n }\n targetElement.innerHTML += html;\n }\n\n initFunctionality(elm) {\n const context = this;\n _expandCollapse(elm);\n _inputOnChange(elm);\n _inputOnClick(elm);\n function _inputOnClick(elm2) {\n if (context.showSettings()) {\n const saveBtn = document.getElementById(\"te-save-button\");\n saveBtn.onclick = function (e) {\n const clickedElm: any = e.target;\n const themeName = clickedElm.previousSibling.value;\n if (themeName.length > 1) {\n const loadSelect = document.getElementById(\"te-load-theme\");\n const loadOptions = loadSelect.getElementsByTagName(\"option\");\n let saveExists = false;\n for (const i in loadOptions) {\n const val = loadOptions[i].value;\n if (val === themeName) {\n saveExists = true;\n }\n }\n if (!saveExists) {\n loadSelect.innerHTML += \"<option value='\" + themeName + \"'>\" + themeName + \"</option>\";\n }\n clickedElm.previousSibling.value = \"\";\n (loadSelect as any).value = themeName;\n } else {\n alert(\"Save Name cannot be empty.\");\n }\n };\n }\n }\n function _inputOnChange(elm2) {\n const teInputs = elm2.getElementsByClassName(\"te-input\");\n for (const i in teInputs) {\n if (isNaN(parseInt(i))) break;\n const inputElm = teInputs[i];\n const inputID = inputElm.getAttribute(\"id\");\n if (inputID === \"te-load-theme\") {\n inputElm.onchange = function (e) {\n const elm3 = e.srcElement;\n context.load(elm3.value);\n };\n } else if (inputID !== null && inputID.indexOf(\"te-input-themeMode\") !== -1) {\n inputElm.onchange = function (e) {\n const elm3 = e.srcElement;\n context.themeMode(elm3.checked);\n\n const name = document.getElementById(\"te-load-theme\");\n const nameToLoad = name !== null ? (name as any).value : \"Default\";\n context.load(nameToLoad);\n };\n } else if (inputElm.tagName === \"INPUT\" || inputElm.tagName === \"SELECT\" || inputElm.tagName === \"TEXTAREA\") {\n inputElm.onchange = function (e) {\n const elm3 = e.srcElement;\n\n let id = elm3.getAttribute(\"id\");\n\n if (elm3.className.split(\" \").indexOf(\"te-html-color-button\") !== -1) {\n id = elm3.previousSibling.getAttribute(\"id\");\n elm3.previousSibling.value = elm3.value;\n }\n const elmType = elm3.getAttribute(\"type\");\n const splitId = id.split(\"-\");\n const genericId = splitId.slice(0, splitId.length - 1).join(\"-\") + \"-\";\n\n const widsStr = elm3.getAttribute(\"data-wids\");\n const paramId = elm3.getAttribute(\"data-paramid\");\n const widArr = widsStr.split(\",\");\n widArr.forEach(function (wid) {\n const individualId = genericId + wid;\n const indElm = document.getElementById(individualId);\n if (elmType === \"checkbox\") {\n (indElm as any).checked = elm3.checked;\n context._widgetObjsById[wid][paramId](elm3.checked);\n } else if (elm3.getAttribute(\"data-type\") === \"array\") {\n (indElm as any).value = elm3.value;\n try {\n context._widgetObjsById[wid][paramId](JSON.parse(elm3.value));\n } catch (e) { }\n } else {\n (indElm as any).value = elm3.value;\n context._widgetObjsById[wid][paramId](elm3.value);\n\n if (indElm.className.split(\" \").indexOf(\"te-html-color-input\") !== -1) {\n (indElm.nextSibling as any).value = elm3.value;\n } else if (indElm.className.split(\" \").indexOf(\"te-html-color-button\") !== -1) {\n (indElm.previousSibling as any).value = elm3.value;\n }\n }\n });\n context.data().forEach(function (d) {\n d.render();\n });\n };\n }\n }\n }\n function _expandCollapse(elm2) {\n const tableArr = elm2.getElementsByClassName(\"te-section-table\");\n for (const i in tableArr) {\n if (typeof (tableArr[i].getElementsByTagName) === \"function\") {\n const thead = tableArr[i].getElementsByTagName(\"thead\");\n thead[0].onclick = function (e) {\n let elm3 = e.toElement;\n if (elm3.tagName === \"TH\") {\n elm3 = elm3.parentElement.parentElement;\n }\n const parent = elm3.parentElement;\n let tbodyClass = \"\";\n if (parent.className.split(\" \").indexOf(\"expanded\") === -1) {\n parent.className = \"te-section-table expanded\";\n tbodyClass = \"shown\";\n } else {\n parent.className = \"te-section-table collapsed\";\n tbodyClass = \"hidden\";\n }\n const tbody = parent.getElementsByTagName(\"tbody\");\n tbody[0].className = tbodyClass;\n };\n }\n }\n const sharedRowArr = elm2.getElementsByClassName(\"sharedPropertyRow\");\n for (const n in sharedRowArr) {\n if (typeof (sharedRowArr[n].getElementsByClassName) === \"function\") {\n const label = sharedRowArr[n].getElementsByClassName(\"te-label\");\n label[0].onclick = function (e) {\n const elm3 = e.toElement;\n const parent = elm3.parentElement;\n let subRowClass = \"\";\n if (parent.className.split(\" \").indexOf(\"expanded\") === -1) {\n parent.className = \"sharedPropertyRow expanded\";\n subRowClass = \"shown\";\n } else {\n parent.className = \"sharedPropertyRow collapsed\";\n subRowClass = \"hidden\";\n }\n let nextSib = parent.nextSibling;\n while (nextSib !== null) {\n if (nextSib.className.split(\" \").indexOf(\"sharedPropertyRow\") === -1) {\n nextSib.className = \"propertyRow \" + subRowClass;\n nextSib = nextSib.nextSibling;\n } else {\n nextSib = null;\n }\n }\n };\n }\n }\n }\n }\n sharedPropertyTableHtml(sectionObj) {\n const tableObj = {\n id: sectionObj.id,\n label: sectionObj.label,\n rowArr: []\n };\n sectionObj.rowObjArr.forEach(function (rowObj) {\n rowObj.arr.forEach(function (widgetObj, widgetIdx) {\n if (widgetIdx === 0) {\n tableObj.rowArr.push({\n th: _sharedPropertyLabel(rowObj),\n td: _sharedPropertyInput(rowObj),\n trClass: \"sharedPropertyRow collapsed\"\n });\n }\n tableObj.rowArr.push({\n th: _propertyLabel(widgetObj),\n td: _propertyInput(rowObj, widgetIdx),\n trClass: \"propertyRow hidden\"\n });\n });\n });\n\n return this.tableObjHtml(tableObj);\n\n function _propertyLabel(widgetObj) {\n const splitClass = widgetObj.widget.classID().split(\"_\");\n const displayClass = splitClass.join(\"/\");\n return displayClass + \" <i>[\" + widgetObj.widget._id + \"]</i>\";\n }\n function _sharedPropertyLabel(rowObj) {\n return camelizeString(rowObj.id);\n }\n\n function _propertyInput(rowObj, idx) {\n const value = _value(rowObj, idx);\n const html = tableInputHtml(rowObj, value, [rowObj.arr[idx]], rowObj.arr[idx].widget._id);\n return html;\n\n function _value(rowObj2, idx2) {\n const value2 = rowObj2.arr[idx2].widget[rowObj2.id]();\n return value2 !== null ? value2 : \"\";\n }\n }\n function _sharedPropertyInput(rowObj) {\n const value = _sharedValue(rowObj);\n const html = tableInputHtml(rowObj, value, rowObj.arr, \"shared\");\n return html;\n\n function _sharedValue(rowObj2) {\n const value2 = rowObj2.arr[0].widget[rowObj2.id]();\n rowObj2.arr.forEach(function (w, i) {\n if (value2 !== w.widget[w.id]()) {\n return \"\";\n }\n });\n if (value2 !== null) {\n if (rowObj2.type === \"array\") {\n return JSON.stringify(value2);\n }\n return value2;\n }\n return \"\";\n }\n }\n }\n\n tableObjHtml(tableObj) {\n let html = \"<table id='\" + tableObj.id + \"' class='te-section-table expanded'>\";\n html += \"<thead><tr><th colspan='2'>\" + tableObj.label + \"</th></tr></thead>\";\n html += \"<tbody>\";\n tableObj.rowArr.forEach(function (rowObj) {\n html += this.tableRowObjHtml(rowObj);\n }, this);\n html += \"</tbody>\";\n return html + \"</table>\";\n }\n tableRowObjHtml(rowObj) {\n let html = typeof (rowObj.trClass) !== \"undefined\" ? \"<tr class='\" + rowObj.trClass + \"'>\" : \"<tr>\";\n html += \"<th class='te-label'>\" + rowObj.th + \"</th>\";\n html += \"<td>\" + rowObj.td + \"</td>\";\n return html + \"</tr>\";\n }\n\n setWidgetObjsById(widgetProp) {\n const context = this;\n const val = widgetProp.widget[widgetProp.id]();\n if (widgetProp.type === \"widgetArray\") {\n val.forEach(function (widget) {\n context._widgetObjsById[widget._id] = widget;\n });\n } else if (widgetProp.type === \"widget\" && val !== null) {\n this._widgetObjsById[val._id] = val;\n }\n }\n checkTagFilter(tagArr) {\n const allowTags = [\"Basic\"];\n let ret = false;\n tagArr.forEach(function (tag) {\n if (allowTags.indexOf(tag) !== -1) {\n ret = true;\n }\n });\n return ret;\n }\n findSharedProperties(data) {\n const context = this;\n let propsByID;\n if (typeof (data) !== \"undefined\" && data.length > 0) {\n let allProps = [];\n propsByID = {};\n const surfacePropsByID = {};\n const nonSurfacePropsByID = {};\n data.forEach(function (widget) {\n const gpResponse = _getParams(widget, 0);\n allProps = allProps.concat(gpResponse);\n });\n allProps.forEach(function (prop) {\n if ([\"widget\", \"widgetArray\"].indexOf(prop.type) !== -1) {\n context.setWidgetObjsById(prop);\n } else if (context.checkTagFilter(prop.ext.tags)) {\n const tempIdx = prop.id;\n if (prop.widget._class.indexOf(\"Surface\") !== -1) {\n if (typeof (surfacePropsByID[tempIdx]) === \"undefined\") {\n surfacePropsByID[tempIdx] = { arr: [] };\n }\n surfacePropsByID[tempIdx].id = prop.id;\n surfacePropsByID[tempIdx].description = prop.description;\n surfacePropsByID[tempIdx].type = prop.type;\n surfacePropsByID[tempIdx].set = prop.set;\n surfacePropsByID[tempIdx].ext = prop.ext;\n surfacePropsByID[tempIdx].arr.push(prop);\n } else {\n if (typeof (nonSurfacePropsByID[tempIdx]) === \"undefined\") {\n nonSurfacePropsByID[tempIdx] = { arr: [] };\n }\n nonSurfacePropsByID[tempIdx].id = prop.id;\n nonSurfacePropsByID[tempIdx].description = prop.description;\n nonSurfacePropsByID[tempIdx].type = prop.type;\n nonSurfacePropsByID[tempIdx].set = prop.set;\n nonSurfacePropsByID[tempIdx].ext = prop.ext;\n nonSurfacePropsByID[tempIdx].arr.push(prop);\n }\n if (typeof (propsByID[tempIdx]) === \"undefined\") {\n propsByID[tempIdx] = { arr: [] };\n }\n propsByID[tempIdx].id = prop.id;\n propsByID[tempIdx].description = prop.description;\n propsByID[tempIdx].type = prop.type;\n propsByID[tempIdx].set = prop.set;\n propsByID[tempIdx].ext = prop.ext;\n propsByID[tempIdx].arr.push(prop);\n }\n });\n }\n return propsByID;\n\n function _getParams(widgetObj, depth) {\n let retArr = [];\n if (widgetObj !== null) {\n const paramArr = Persist.discover(widgetObj);\n paramArr.forEach(function (param, i1) {\n if (typeof (param.ext.tags) !== \"undefined\") {\n retArr.push({\n id: param.id,\n type: param.type,\n description: param.description,\n set: param.set,\n ext: param.ext,\n widget: widgetObj\n });\n }\n if (param.type === \"widgetArray\") {\n const childWidgetArray = context.widgetProperty(widgetObj, param.id);\n childWidgetArray.forEach(function (childWidget) {\n const cwArr = _getParams(childWidget, depth + 1);\n retArr = retArr.concat(cwArr);\n });\n } else if (param.type === \"widget\") {\n const childWidget = context.widgetProperty(widgetObj, param.id);\n const temp = _getParams(childWidget, depth + 1);\n retArr = retArr.concat(temp);\n }\n });\n }\n return retArr;\n }\n }\n\n themeMode: { (): boolean; (_: boolean): ThemeEditor };\n themeMode_exists: () => boolean;\n saveTheme: { (): string; (_: string): ThemeEditor };\n saveTheme_exists: () => boolean;\n loadedTheme: { (): string; (_: string): ThemeEditor };\n loadedTheme_exists: () => boolean;\n saveSerial: { (): string; (_: string): ThemeEditor };\n saveSerial_exists: () => boolean;\n loadedSerial: { (): string; (_: string): ThemeEditor };\n loadedSerial_exists: () => boolean;\n showColumns: { (): boolean; (_: boolean): ThemeEditor };\n showColumns_exists: () => boolean;\n showData: { (): boolean; (_: boolean): ThemeEditor };\n showData_exists: () => boolean;\n shareCountMin: { (): number; (_: number): ThemeEditor };\n shareCountMin_exists: () => boolean;\n paramGrouping: { (): string; (_: string): ThemeEditor };\n paramGrouping_exists: () => boolean;\n editorComplexity: { (): string; (_: string): ThemeEditor };\n editorComplexity_exists: () => boolean;\n sectionTitle: { (): string; (_: string): ThemeEditor };\n sectionTitle_exists: () => boolean;\n collapsibleSections: { (): boolean; (_: boolean): ThemeEditor };\n collapsibleSections_exists: () => boolean;\n}\nThemeEditor.prototype._class += \" other_ThemeEditor\";\n\nThemeEditor.prototype.publish(\"themeMode\", true, \"boolean\", \"Edit default values\", null, { tags: [\"Basic\"] });\nThemeEditor.prototype.publish(\"saveTheme\", \"\", \"string\", \"Save Theme\", null, { tags: [\"Basic\", \"Theme\"], saveButton: \"Save\", saveButtonID: \"te-save-button\" });\nThemeEditor.prototype.publish(\"loadedTheme\", getThemeNames(1), \"set\", \"Loaded Theme\", getThemeNames(), { tags: [\"Basic\", \"Theme\"] });\nThemeEditor.prototype.publish(\"saveSerial\", \"\", \"string\", \"Save Serial\", null, { tags: [\"Basic\", \"Serial\"], saveButton: \"Save\", saveButtonID: \"te-save-button\" });\nThemeEditor.prototype.publish(\"loadedSerial\", getSerialNames(0), \"set\", \"Loaded Serial\", getSerialNames(), { tags: [\"Basic\", \"Serial\"] });\nThemeEditor.prototype.publish(\"showColumns\", true, \"boolean\", \"Show Columns\", null, { tags: [\"Intermediate\"] });\nThemeEditor.prototype.publish(\"showData\", true, \"boolean\", \"Show Data\", null, { tags: [\"Intermediate\"] });\nThemeEditor.prototype.publish(\"shareCountMin\", 1, \"number\", \"Share Count Min\", null, { tags: [\"Private\"] });\nThemeEditor.prototype.publish(\"paramGrouping\", \"By Param\", \"set\", \"Param Grouping\", [\"By Param\", \"By Widget\"], { tags: [\"Private\"] });\nThemeEditor.prototype.publish(\"editorComplexity\", \"Basic\", \"set\", \"Choose what publish properties to display within the editor.\", [\"Basic\", \"Intermediate\", \"Advanced\", \"Private\"], { tags: [\"Private\"] });\nThemeEditor.prototype.publish(\"sectionTitle\", \"\", \"string\", \"Section Title\", null, { tags: [\"Private\"] });\nThemeEditor.prototype.publish(\"collapsibleSections\", true, \"boolean\", \"Collapsible Sections\", null, { tags: [\"Intermediate\"] });\n\nThemeEditor.prototype.getThemes = getThemes;\nThemeEditor.prototype.getSerials = getSerials;\nThemeEditor.prototype.getDefaultThemes = getThemeNames;\nThemeEditor.prototype.getDefaultSerials = getSerialNames;\n"],"names":["d3Timer","HTMLWidget","interval","Utility","d3TimeParse","d3Format","d3Select","d3Map","d3Extent","d3Range","d3TimeMonths","d3TimeDays","d3TimeWeek","d3TimeYear","Palette","serialize","locateRoxieResponse","WsWorkunits","Comms.Basic","Comms.ESPUrl","Comms.createESPConnection","Comms.WsWorkunits","_simpleheat.default","CanvasWidget","SVGWidget","HorizontalList","VerticalList","Entity","d3Event","Widget","Platform","d3SelectAll","PropertyExt","d3Local","Persist.discover","Persist.serialize","Grid"],"mappings":"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","x_google_ignoreList":[1,2,4,5,7,8,9,10,11,12,16]}
|