@hpcc-js/layout 2.50.2 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/index.js +581 -5128
  2. package/dist/index.js.map +7 -1
  3. package/package.json +34 -37
  4. package/src/AbsoluteSurface.ts +17 -8
  5. package/src/Accordion.ts +18 -8
  6. package/src/Border.ts +45 -26
  7. package/src/Cell.ts +18 -13
  8. package/src/ChartPanel.ts +10 -10
  9. package/src/Grid.ts +1 -1
  10. package/src/HorizontalList.ts +1 -1
  11. package/src/Layered.ts +7 -3
  12. package/src/Legend.ts +1 -1
  13. package/src/Popup.ts +23 -12
  14. package/src/Surface.ts +52 -5
  15. package/src/Tabbed.ts +19 -12
  16. package/src/Toolbar.ts +107 -82
  17. package/src/VerticalList.ts +1 -1
  18. package/src/__package__.ts +2 -2
  19. package/src/index.ts +19 -19
  20. package/types/AbsoluteSurface.d.ts +16 -29
  21. package/types/Accordion.d.ts +16 -29
  22. package/types/Border.d.ts +36 -69
  23. package/types/Border2.d.ts +0 -1
  24. package/types/Carousel.d.ts +0 -1
  25. package/types/Cell.d.ts +17 -39
  26. package/types/ChartPanel.d.ts +8 -9
  27. package/types/FlexGrid.d.ts +0 -1
  28. package/types/Grid.d.ts +1 -2
  29. package/types/HorizontalList.d.ts +1 -2
  30. package/types/Layered.d.ts +6 -9
  31. package/types/Legend.d.ts +1 -2
  32. package/types/Modal.d.ts +0 -1
  33. package/types/Popup.d.ts +21 -38
  34. package/types/Surface.d.ts +42 -75
  35. package/types/Tabbed.d.ts +15 -30
  36. package/types/Toolbar.d.ts +32 -5
  37. package/types/VerticalList.d.ts +1 -2
  38. package/types/__package__.d.ts +2 -3
  39. package/types/index.d.ts +19 -20
  40. package/dist/index.es6.js +0 -5104
  41. package/dist/index.es6.js.map +0 -1
  42. package/dist/index.min.js +0 -2
  43. package/dist/index.min.js.map +0 -1
  44. package/types/AbsoluteSurface.d.ts.map +0 -1
  45. package/types/Accordion.d.ts.map +0 -1
  46. package/types/Border.d.ts.map +0 -1
  47. package/types/Border2.d.ts.map +0 -1
  48. package/types/Carousel.d.ts.map +0 -1
  49. package/types/Cell.d.ts.map +0 -1
  50. package/types/ChartPanel.d.ts.map +0 -1
  51. package/types/FlexGrid.d.ts.map +0 -1
  52. package/types/Grid.d.ts.map +0 -1
  53. package/types/HorizontalList.d.ts.map +0 -1
  54. package/types/Layered.d.ts.map +0 -1
  55. package/types/Legend.d.ts.map +0 -1
  56. package/types/Modal.d.ts.map +0 -1
  57. package/types/Popup.d.ts.map +0 -1
  58. package/types/Surface.d.ts.map +0 -1
  59. package/types/Tabbed.d.ts.map +0 -1
  60. package/types/Toolbar.d.ts.map +0 -1
  61. package/types/VerticalList.d.ts.map +0 -1
  62. package/types/__package__.d.ts.map +0 -1
  63. package/types/index.d.ts.map +0 -1
  64. package/types-3.4/AbsoluteSurface.d.ts +0 -37
  65. package/types-3.4/Accordion.d.ts +0 -45
  66. package/types-3.4/Border.d.ts +0 -114
  67. package/types-3.4/Border2.d.ts +0 -102
  68. package/types-3.4/Carousel.d.ts +0 -21
  69. package/types-3.4/Cell.d.ts +0 -50
  70. package/types-3.4/ChartPanel.d.ts +0 -129
  71. package/types-3.4/FlexGrid.d.ts +0 -44
  72. package/types-3.4/Grid.d.ts +0 -93
  73. package/types-3.4/HorizontalList.d.ts +0 -9
  74. package/types-3.4/Layered.d.ts +0 -29
  75. package/types-3.4/Legend.d.ts +0 -78
  76. package/types-3.4/Modal.d.ts +0 -65
  77. package/types-3.4/Popup.d.ts +0 -49
  78. package/types-3.4/Surface.d.ts +0 -89
  79. package/types-3.4/Tabbed.d.ts +0 -46
  80. package/types-3.4/Toolbar.d.ts +0 -7
  81. package/types-3.4/VerticalList.d.ts +0 -9
  82. package/types-3.4/__package__.d.ts +0 -4
  83. package/types-3.4/index.d.ts +0 -20
package/dist/index.js.map CHANGED
@@ -1 +1,7 @@
1
- {"version":3,"file":"index.js","sources":["../src/__package__.ts","../../../node_modules/tslib/tslib.es6.mjs","../../../node_modules/style-inject/dist/style-inject.es.js","../src/AbsoluteSurface.ts","../src/Accordion.ts","../src/Surface.ts","../src/Cell.ts","../src/Border.ts","../src/Border2.ts","../src/Carousel.ts","../../../node_modules/d3-path/src/path.js","../../../node_modules/d3-shape/src/constant.js","../../../node_modules/d3-shape/src/math.js","../../../node_modules/d3-shape/src/symbol/circle.js","../../../node_modules/d3-shape/src/symbol/cross.js","../../../node_modules/d3-shape/src/symbol/diamond.js","../../../node_modules/d3-shape/src/symbol/star.js","../../../node_modules/d3-shape/src/symbol/square.js","../../../node_modules/d3-shape/src/symbol/triangle.js","../../../node_modules/d3-shape/src/symbol/wye.js","../../../node_modules/d3-shape/src/symbol.js","../../../node_modules/d3-svg-legend/src/legend.js","../../../node_modules/d3-svg-legend/src/color.js","../src/Legend.ts","../src/Modal.ts","../src/ChartPanel.ts","../src/FlexGrid.ts","../../../node_modules/grid-list/src/gridList.js","../src/Grid.ts","../src/HorizontalList.ts","../src/Layered.ts","../src/Popup.ts","../src/Tabbed.ts","../src/Toolbar.ts","../src/VerticalList.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/layout\";\nexport const PKG_VERSION = \"2.50.2\";\nexport const BUILD_VERSION = \"2.106.4\";\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import { HTMLWidget } from \"@hpcc-js/common\";\n\nimport \"../src/AbsoluteSurface.css\";\n\nexport class AbsoluteSurface 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 let xPos = 0;\n let yPos = 0;\n let width = this.clientWidth();\n let height = this.clientHeight();\n switch (this.units()) {\n case \"pixels\":\n xPos = this.widgetX();\n yPos = this.widgetY();\n width = this.widgetWidth() === \"\" ? width - xPos : Number(this.widgetWidth());\n height = this.widgetHeight() === \"\" ? height - yPos : Number(this.widgetHeight());\n break;\n case \"percent\":\n xPos = this.widgetX() * width / 100;\n yPos = this.widgetY() * height / 100;\n width = this.widgetWidth() === \"\" ? width - xPos : Number(this.widgetWidth()) * width / 100;\n height = this.widgetHeight() === \"\" ? height - yPos : Number(this.widgetHeight()) * height / 100;\n break;\n }\n element.style(\"opacity\", this.opacity());\n\n const widgets = element.selectAll(\"#\" + this._id + \" > .placeholder\").data(this.widget() ? [this.widget()] : [], function (d) { return d._id; });\n widgets.enter().append(\"div\")\n .attr(\"class\", \"placeholder\")\n .each(function (d) {\n d.target(this);\n })\n .merge(widgets)\n .style(\"left\", xPos + \"px\")\n .style(\"top\", yPos + \"px\")\n .style(\"width\", width + \"px\")\n .style(\"bottom\", height + \"px\")\n .each(function (d) {\n d\n .resize({ width, height })\n ;\n })\n ;\n widgets.exit().each(function (d) {\n d.target(null);\n }).remove();\n }\n\n exit(domNode, element) {\n if (this.widget()) {\n this.widget().target(null);\n }\n super.exit(domNode, element);\n }\n\n units: { (): string; (_: string): AbsoluteSurface; };\n widgetX: { (): number; (_: number): AbsoluteSurface; };\n widgetY: { (): number; (_: number): AbsoluteSurface; };\n widgetWidth: { (): string; (_: string): AbsoluteSurface; };\n widgetHeight: { (): string; (_: string): AbsoluteSurface; };\n widget: { (): any; (_: any): AbsoluteSurface; };\n opacity: { (): number; (_: number): AbsoluteSurface; };\n}\nAbsoluteSurface.prototype._class += \" layout_AbsoluteSurface\";\n\nAbsoluteSurface.prototype.publish(\"units\", \"percent\", \"set\", \"Units\", [\"pixels\", \"percent\"]);\nAbsoluteSurface.prototype.publish(\"widgetX\", 0, \"number\", \"Widget XPos\");\nAbsoluteSurface.prototype.publish(\"widgetY\", 0, \"number\", \"Widget YPos\");\nAbsoluteSurface.prototype.publish(\"widgetWidth\", \"100\", \"string\", \"Widget Width, omit for full\");\nAbsoluteSurface.prototype.publish(\"widgetHeight\", \"100\", \"string\", \"Widget Height, omit for full\");\nAbsoluteSurface.prototype.publish(\"widget\", null, \"widget\", \"Widget\", null, { tags: [\"Private\"] });\nAbsoluteSurface.prototype.publish(\"opacity\", 1, \"number\", \"Opacity\");\n","import { FAChar, HTMLWidget } from \"@hpcc-js/common\";\n\nimport \"../src/Accordion.css\";\n\nexport class Accordion extends HTMLWidget {\n protected _isClosed: boolean;\n titleSpan;\n iconDiv;\n ul;\n icon;\n\n constructor() {\n super();\n\n this._tag = \"div\";\n this._isClosed = false;\n }\n\n pushListItem(widget, prepend: boolean = false, protect: boolean = false) {\n const contentArr = this.content();\n\n widget._protected = protect;\n\n if (prepend) {\n contentArr.unshift(widget);\n } else {\n contentArr.push(widget);\n }\n this.content(contentArr);\n return this;\n }\n\n clearListItems() {\n const arr = [];\n for (const i in this.content()) {\n if (this.content()[i]._protected) {\n arr.push(this.content()[i]);\n }\n }\n this.content(arr);\n return this;\n }\n\n collapseClick(element) {\n if (element.classed(\"closed\")) {\n this._isClosed = false;\n element.classed(\"open\", true);\n element.classed(\"closed\", false);\n } else {\n this._isClosed = true;\n element.classed(\"open\", false);\n element.classed(\"closed\", true);\n }\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n const context = this;\n this._isClosed = this.defaultCollapsed();\n element.classed(this._isClosed ? \"closed\" : \"open\", true);\n\n this.titleSpan = element.append(\"span\").classed(\"collapsible-title\", true);\n this.iconDiv = element.append(\"div\").classed(\"collapsible-icon\", true);\n this.ul = element.append(\"ul\");\n\n this.icon = new FAChar()\n .size({ height: 24, width: 24 })\n .target(this.iconDiv.node());\n\n this.iconDiv.on(\"click\", function () {\n context.collapseClick(element);\n context.render();\n });\n this.titleSpan.on(\"click\", function () {\n context.collapseClick(element);\n context.render();\n });\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n const this_id = \"\";\n this.titleSpan.text(context.title().length > 0 ? context.title() + this_id : \"Accordion [\" + context._id + \"]\" + this_id);\n const rows = this.ul.selectAll(\"#\" + context._id + \" > ul > li\").data(this.content(), function (d) {\n return d._id;\n });\n rows.enter()\n .append(function (widget) {\n const li = document.createElement(\"li\");\n if (widget._target === null) {\n const wSize = widget.size();\n if (wSize.width === 0 || wSize.height === 0) {\n const cSize = context.size();\n widget.size({\n width: cSize.width,\n height: cSize.width\n });\n }\n widget.target(li);\n } else {\n return widget._target;\n }\n return li;\n })\n ;\n rows.exit().remove();\n\n this.icon\n .text_colorFill(this.titleFontColor())\n .char(this._isClosed ? this.closedIcon() : this.openIcon()).render()\n ;\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n\n content: { (): any[]; (_: any[]): Accordion; };\n title: { (): string; (_: string): Accordion; };\n openIcon: { (): string; (_: string): Accordion; };\n closedIcon: { (): string; (_: string): Accordion; };\n titleFontColor: { (): string; (_: string): Accordion; };\n titleBackgroundColor: { (): any; (_: any): Accordion; };\n defaultCollapsed: { (): boolean; (_: boolean): Accordion; };\n}\nAccordion.prototype._class += \" layout_Accordion\";\n\nAccordion.prototype.publish(\"content\", [], \"widgetArray\", \"Array of widgets\", null, { tags: [\"Basic\"] });\nAccordion.prototype.publish(\"title\", \"\", \"string\", \"Title of collapsible section\", null, { tags: [\"Private\"] });\nAccordion.prototype.publish(\"openIcon\", \"\\uf147\", \"string\", \"Icon to display when list is open\", null, { tags: [\"Private\"] });\nAccordion.prototype.publish(\"closedIcon\", \"\\uf196\", \"string\", \"Icon to display when list is closed\", null, { tags: [\"Private\"] });\nAccordion.prototype.publish(\"titleFontColor\", \"#FFFFFF\", \"html-color\", \"Title font color\", null, { tags: [\"Private\"] });\nAccordion.prototype.publish(\"titleBackgroundColor\", \"#333333\", \"html-color\", \"Title background color\", null, { tags: [\"Private\"] });\n\nAccordion.prototype.publish(\"defaultCollapsed\", false, \"boolean\", \"Collapsed by default if true\", null, { tags: [\"Private\"] });\n","import { HTMLWidget, Widget } from \"@hpcc-js/common\";\nimport { select as d3Select } from \"d3-selection\";\n\nimport \"../src/Surface.css\";\n\nexport class Surface extends HTMLWidget {\n _surfaceButtons;\n\n constructor() {\n super();\n\n this._tag = \"div\";\n this._surfaceButtons = [];\n }\n\n widgetSize(titleDiv, widgetDiv) {\n let width = this.clientWidth();\n let height = this.clientHeight();\n if (this.title()) {\n height -= this.calcHeight(titleDiv);\n }\n height -= this.calcFrameHeight(widgetDiv);\n width -= this.calcFrameWidth(widgetDiv);\n return { width, height };\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n\n update(domNode, element2) {\n super.update(domNode, element2);\n const context = this;\n\n element2\n .classed(\"shadow2\", this.surfaceShadow())\n .style(\"border-width\", this.surfaceBorderWidth_exists() ? this.surfaceBorderWidth() + \"px\" : null)\n .style(\"border-color\", this.surfaceBorderColor())\n .style(\"border-radius\", this.surfaceBorderRadius_exists() ? this.surfaceBorderRadius() + \"px\" : null)\n .style(\"background-color\", this.surfaceBackgroundColor())\n ;\n\n const titles = element2.selectAll(\".surfaceTitle\").data(this.title() ? [this.title()] : []);\n titles.enter().insert(\"h3\", \"div\")\n .attr(\"class\", \"surfaceTitle\")\n .merge(titles)\n .text(function (d) { return d; })\n .style(\"text-align\", this.surfaceTitleAlignment())\n .style(\"color\", this.surfaceTitleFontColor())\n .style(\"font-size\", this.surfaceTitleFontSize_exists() ? this.surfaceTitleFontSize() + \"px\" : null)\n .style(\"font-family\", this.surfaceTitleFontFamily())\n .style(\"font-weight\", this.surfaceTitleFontBold() ? \"bold\" : \"normal\")\n .style(\"background-color\", this.surfaceTitleBackgroundColor())\n .style(\"padding\", this.surfaceTitlePadding_exists() ? this.surfaceTitlePadding() + \"px\" : null)\n .style(\"title\", this.altText_exists() ? this.altText() : null)\n ;\n titles.exit().remove();\n\n const surfaceTitle = element2.select(\".surfaceTitle\");\n\n const surfaceButtons = surfaceTitle.append(\"div\").attr(\"class\", \"html-button-container\").selectAll(\".surface-button\").data(this.buttonAnnotations());\n surfaceButtons.enter().append(\"button\").classed(\"surface-button\", true)\n .each(function (button, idx) {\n const el = context._surfaceButtons[idx] = d3Select(this)\n .attr(\"class\", \"surface-button\" + (button.class ? \" \" + button.class : \"\"))\n .attr(\"id\", button.id)\n .style(\"padding\", button.padding)\n .style(\"width\", button.width)\n .style(\"height\", button.height)\n .style(\"cursor\", \"pointer\");\n if (button.font === \"FontAwesome\") {\n el\n .style(\"background\", \"transparent\")\n .style(\"border\", \"none\")\n .on(\"click\", function (d) { context.click(d); })\n .append(\"i\")\n .attr(\"class\", \"fa\")\n .text(function () { return button.label; });\n } else {\n el\n .text(function () { return button.label; })\n .on(\"click\", function (d) { context.click(d); });\n }\n })\n ;\n surfaceButtons.exit()\n .each(function (_d, idx) {\n const element = d3Select(this);\n delete context._surfaceButtons[idx];\n element.remove();\n })\n ;\n const widgets = element2.selectAll(\"#\" + this._id + \" > .surfaceWidget\").data(this.widget() ? [this.widget()] : [], function (d) { return d._id; });\n\n widgets.enter().append(\"div\")\n .attr(\"class\", \"surfaceWidget\")\n .each(function (d) {\n d3Select(context.element().node().parentElement).classed(\"content-icon content-icon-\" + (d.classID().split(\"_\")[1]), true);\n d.target(this);\n })\n .merge(widgets)\n .style(\"padding\", this.surfacePadding_exists() ? this.surfacePadding() + \"px\" : null)\n .each(function (d) {\n const widgetSize = context.widgetSize(element2.select(\"h3\"), d3Select(this));\n if (widgetSize.width < 0) widgetSize.width = 0;\n if (widgetSize.height < 0) widgetSize.height = 0;\n d\n .resize({ width: widgetSize.width, height: widgetSize.height })\n ;\n })\n ;\n widgets.exit().each(function (d) {\n d.target(null);\n }).remove();\n }\n\n exit(domNode, element) {\n if (this.widget()) {\n this.widget().target(null);\n }\n super.exit(domNode, element);\n }\n\n title: { (): string; (_: string): Surface; };\n altText: { (): string; (_: string): Surface; };\n altText_exists: () => boolean;\n surfaceTitlePadding: { (): number; (_: number): Surface; };\n surfaceTitlePadding_exists: () => boolean;\n surfaceTitleFontSize: { (): number; (_: number): Surface; };\n surfaceTitleFontSize_exists: () => boolean;\n surfaceTitleFontColor: { (): string; (_: string): Surface; };\n surfaceTitleFontFamily: { (): string; (_: string): Surface; };\n surfaceTitleFontBold: { (): boolean; (_: boolean): Surface; };\n surfaceTitleBackgroundColor: { (): string; (_: string): Surface; };\n surfaceTitleAlignment: { (): string; (_: string): Surface; };\n\n surfaceShadow: { (): boolean; (_: boolean): Surface; };\n surfacePadding: { (): string; (_: string): Surface; };\n surfacePadding_exists: () => boolean;\n surfaceBackgroundColor: { (): string; (_: string): Surface; };\n surfaceBorderWidth: { (): number; (_: number): Surface; };\n surfaceBorderWidth_exists: () => boolean;\n surfaceBorderColor: { (): string; (_: string): Surface; };\n surfaceBorderRadius: { (): number; (_: number): Surface; };\n surfaceBorderRadius_exists: () => boolean;\n\n buttonAnnotations: { (): any[]; (_: any[]): Surface; };\n\n widget: { (): Widget; (_: Widget): Surface; };\n\n // Events ---\n click(obj) {\n }\n}\nSurface.prototype._class += \" layout_Surface\";\n\nSurface.prototype.publish(\"title\", \"\", \"string\", \"Title\", null, { tags: [\"Intermediate\"] });\nSurface.prototype.publish(\"altText\", null, \"string\", \"Alt text\", null, { optional: true });\nSurface.prototype.publish(\"surfaceTitlePadding\", null, \"number\", \"Title Padding (px)\", null, { tags: [\"Advanced\"], disable: (w: any) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleFontSize\", null, \"number\", \"Title Font Size (px)\", null, { tags: [\"Advanced\"], disable: (w: any) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleFontColor\", null, \"html-color\", \"Title Font Color\", null, { tags: [\"Advanced\"], disable: (w: any) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleFontFamily\", null, \"string\", \"Title Font Family\", null, { tags: [\"Advanced\"], disable: (w: any) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleFontBold\", true, \"boolean\", \"Enable Bold Title Font\", null, { tags: [\"Advanced\"], disable: (w: any) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleBackgroundColor\", null, \"html-color\", \"Title Background Color\", null, { tags: [\"Advanced\"], disable: (w: any) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleAlignment\", \"center\", \"set\", \"Title Alignment\", [\"left\", \"right\", \"center\"], { tags: [\"Basic\"], disable: (w: any) => !w.title() });\n\nSurface.prototype.publish(\"surfaceShadow\", false, \"boolean\", \"3D Shadow\");\nSurface.prototype.publish(\"surfacePadding\", null, \"string\", \"Surface Padding (px)\", null, { tags: [\"Intermediate\"] });\nSurface.prototype.publish(\"surfaceBackgroundColor\", null, \"html-color\", \"Surface Background Color\", null, { tags: [\"Advanced\"] });\nSurface.prototype.publish(\"surfaceBorderWidth\", null, \"number\", \"Surface Border Width (px)\", null, { tags: [\"Advanced\"] });\nSurface.prototype.publish(\"surfaceBorderColor\", null, \"html-color\", \"Surface Border Color\", null, { tags: [\"Advanced\"] });\nSurface.prototype.publish(\"surfaceBorderRadius\", null, \"number\", \"Surface Border Radius (px)\", null, { tags: [\"Advanced\"] });\n\nSurface.prototype.publish(\"buttonAnnotations\", [], \"array\", \"Button Array\", null, { tags: [\"Private\"] });\n\nSurface.prototype.publish(\"widget\", null, \"widget\", \"Widget\", null, { tags: [\"Basic\"] });\n","import { Widget } from \"@hpcc-js/common\";\nimport { select as d3Select, selectAll as d3SelectAll } from \"d3-selection\";\nimport { Surface } from \"./Surface\";\n\nimport \"../src/Cell.css\";\n\nexport class Cell extends Surface {\n _indicateTheseIds;\n\n constructor() {\n super();\n this._indicateTheseIds = [];\n }\n\n indicateTheseIds(): any[];\n indicateTheseIds(_: any[]): Cell;\n indicateTheseIds(_?: any[]): any[] | Cell {\n if (!arguments.length) return this._indicateTheseIds;\n this._indicateTheseIds = _;\n return this;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n const context = this;\n element\n .classed(\"layout_Surface\", true)\n .on(\"mouseenter\", function () { context.onMouseEnter(); })\n .on(\"mouseleave\", function () { context.onMouseLeave(); })\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n }\n\n onMouseEnter() {\n const arr = this.indicateTheseIds();\n const opacity = this.indicatorOpacity();\n const indicatorBorderColor = this.indicatorBorderColor();\n const indicatorGlowColor = this.indicatorGlowColor();\n for (let i = 0; i < arr.length; i++) {\n const otherElement = d3Select(\"#\" + arr[i]);\n const otherWidget: Widget = otherElement.datum() as Widget;\n if (otherElement && otherWidget) {\n otherElement.append(\"div\")\n .attr(\"class\", \"update-indicator\")\n .style(\"width\", otherWidget.width() + \"px\")\n .style(\"height\", otherWidget.height() + \"px\")\n .style(\"opacity\", opacity)\n .style(\"border-color\", indicatorBorderColor)\n .style(\"-webkit-box-shadow\", \"inset 0px 0px 30px 0px \" + indicatorGlowColor)\n .style(\"-moz-box-shadow\", \"inset 0px 0px 30px 0px \" + indicatorGlowColor)\n .style(\"box-shadow\", \"inset 0px 0px 30px 0px \" + indicatorGlowColor)\n ;\n }\n }\n }\n\n onMouseLeave() {\n const arr = this.indicateTheseIds();\n for (let i = 0; i < arr.length; i++) {\n d3SelectAll(\"#\" + arr[i] + \" > div.update-indicator\").remove();\n }\n }\n\n title: { (): string; (_: string): Cell; };\n widget: { (): Widget; (_: Widget): Cell; };\n\n gridRow: { (): number; (_: number): Cell; };\n gridCol: { (): number; (_: number): Cell; };\n gridRowSpan: { (): number; (_: number): Cell; };\n gridColSpan: { (): number; (_: number): Cell; };\n\n indicatorGlowColor: { (): string; (_: string): Cell; };\n indicatorBorderColor: { (): string; (_: string): Cell; };\n indicatorOpacity: { (): number; (_: number): Cell; };\n\n}\nCell.prototype._class += \" layout_Cell\";\n\nCell.prototype.publish(\"gridRow\", 0, \"number\", \"Grid Row Position\", null, { tags: [\"Private\"] });\nCell.prototype.publish(\"gridCol\", 0, \"number\", \"Grid Column Position\", null, { tags: [\"Private\"] });\nCell.prototype.publish(\"gridRowSpan\", 1, \"number\", \"Grid Row Span\", null, { tags: [\"Private\"] });\nCell.prototype.publish(\"gridColSpan\", 1, \"number\", \"Grid Column Span\", null, { tags: [\"Private\"] });\n\nCell.prototype.publish(\"indicatorGlowColor\", \"#EEEE11\", \"html-color\", \"Glow color of update-indicator\", null, { tags: [\"Basic\"] });\nCell.prototype.publish(\"indicatorBorderColor\", \"#F48A00\", \"html-color\", \"Border color of update-indicator\", null, { tags: [\"Basic\"] });\nCell.prototype.publish(\"indicatorOpacity\", 0.8, \"number\", \"Opacity of update-indicator\", null, { tags: [\"Basic\"] });\n","import { d3Event, HTMLWidget, Platform, select as d3Select, selectAll as d3SelectAll, Utility } from \"@hpcc-js/common\";\nimport { drag as d3Drag } from \"d3-drag\";\nimport { Cell } from \"./Cell\";\n\nimport \"../src/Border.css\";\n\nexport class Border extends HTMLWidget {\n _colCount: number;\n _rowCount: number;\n _colSize: number;\n _rowSize: number;\n _shrinkWrapBoxes;\n _watch;\n _offsetX;\n _offsetY;\n _dragCell;\n _dragCellSize;\n _dragCellStartSize;\n _handleTop;\n _handleLeft;\n _dragPrevX;\n _dragPrevY;\n _cellSizes;\n contentDiv;\n _scrollBarWidth;\n _borderHandles;\n _sectionTypeArr;\n\n constructor() {\n super();\n\n this._tag = \"div\";\n\n this._colCount = 0;\n this._rowCount = 0;\n this._colSize = 0;\n this._rowSize = 0;\n\n this._shrinkWrapBoxes = {};\n\n this.content([]);\n this.sectionTypes([]);\n }\n\n watchWidget(widget) {\n if (this._watch === undefined) {\n this._watch = {};\n }\n if (this._watch[widget.id()]) {\n this._watch[widget.id()].remove();\n delete this._watch[widget.id()];\n }\n if (widget) {\n const context = this;\n this._watch[widget.id()] = widget.monitor(function (paramId, newVal, oldVal) {\n if (oldVal !== newVal) {\n context.lazyPostUpdate();\n }\n });\n }\n }\n\n lazyPostUpdate = Utility.debounce(function () {\n this.postUpdate();\n }, 100);\n\n applyLayoutType() {\n const layoutObj = this.borderLayoutObject();\n this.content().forEach(function (cell, i) {\n cell._fixedLeft = layoutObj[this.sectionTypes()[i]].left;\n cell._fixedTop = layoutObj[this.sectionTypes()[i]].top;\n cell._fixedWidth = layoutObj[this.sectionTypes()[i]].width;\n cell._fixedHeight = layoutObj[this.sectionTypes()[i]].height;\n cell._dragHandles = this.cellSpecificDragHandles(this.sectionTypes()[i]);\n }, this);\n }\n cellSpecificDragHandles(sectionType) {\n switch (sectionType) {\n case \"top\": return [\"s\"];\n case \"right\": return [\"w\"];\n case \"bottom\": return [\"n\"];\n case \"left\": return [\"e\"];\n case \"center\": return [];\n }\n }\n\n borderLayoutObject(layoutType?) {\n const retObj = {};\n const context = this;\n let topSize;\n let topPerc;\n let bottomSize;\n let bottomPerc;\n let leftSize;\n let leftPerc;\n let rightSize;\n let rightPerc;\n\n const bcRect = this.target().getBoundingClientRect();\n const gridRect: any = {};\n gridRect.top = bcRect.top;\n gridRect.left = bcRect.left;\n gridRect.bottom = bcRect.bottom;\n gridRect.right = bcRect.right;\n if (this.target() instanceof SVGElement) {\n gridRect.width = parseFloat(this.target().getAttribute(\"width\"));\n gridRect.height = parseFloat(this.target().getAttribute(\"height\"));\n } else {\n gridRect.width = bcRect.width;\n gridRect.height = bcRect.height;\n }\n if (this.sectionTypes().indexOf(\"top\") !== -1) {\n topSize = this.topSize();\n topPerc = this.topPercentage();\n if (typeof (this._shrinkWrapBoxes[\"top\"]) !== \"undefined\") {\n topSize = this._shrinkWrapBoxes[\"top\"].height + this.gutter();\n topPerc = 0;\n }\n }\n if (this.sectionTypes().indexOf(\"bottom\") !== -1) {\n bottomSize = this.bottomSize();\n bottomPerc = this.bottomPercentage();\n if (typeof (this._shrinkWrapBoxes[\"bottom\"]) !== \"undefined\") {\n bottomSize = this._shrinkWrapBoxes[\"bottom\"].height + this.gutter();\n bottomPerc = 0;\n }\n }\n if (this.sectionTypes().indexOf(\"left\") !== -1) {\n leftSize = this.leftSize();\n leftPerc = this.leftPercentage();\n if (typeof (this._shrinkWrapBoxes[\"left\"]) !== \"undefined\") {\n leftSize = this._shrinkWrapBoxes[\"left\"].width + this.gutter();\n leftPerc = 0;\n }\n }\n if (this.sectionTypes().indexOf(\"right\") !== -1) {\n rightSize = this.rightSize();\n rightPerc = this.rightPercentage();\n if (typeof (this._shrinkWrapBoxes[\"right\"]) !== \"undefined\") {\n rightSize = this._shrinkWrapBoxes[\"right\"].width + this.gutter();\n rightPerc = 0;\n }\n }\n\n const t = _sectionPlacementObject({\n width: { \"px\": 0, \"%\": 100 },\n height: { \"px\": topSize, \"%\": topPerc },\n top: { \"px\": 0, \"%\": 0 },\n left: { \"px\": 0, \"%\": 0 }\n });\n const b = _sectionPlacementObject({\n width: { \"px\": 0, \"%\": 100 },\n height: { \"px\": bottomSize, \"%\": bottomPerc },\n top: { \"px\": 0, \"%\": 100 },\n left: { \"px\": 0, \"%\": 0 }\n });\n b.top -= b.height;\n const l = _sectionPlacementObject({\n width: { \"px\": leftSize, \"%\": leftPerc },\n height: { \"px\": -t.height - b.height, \"%\": 100 },\n top: { \"px\": t.height, \"%\": 0 },\n left: { \"px\": 0, \"%\": 0 }\n });\n const r = _sectionPlacementObject({\n width: { \"px\": rightSize, \"%\": rightPerc },\n height: { \"px\": -t.height - b.height, \"%\": 100 },\n top: { \"px\": t.height, \"%\": 0 },\n left: { \"px\": 0, \"%\": 100 }\n });\n r.left -= r.width;\n const c = _sectionPlacementObject({\n width: { \"px\": -r.width - l.width, \"%\": 100 },\n height: { \"px\": -t.height - b.height, \"%\": 100 },\n top: { \"px\": t.height, \"%\": 0 },\n left: { \"px\": l.width, \"%\": 0 }\n });\n retObj[\"top\"] = t;\n retObj[\"bottom\"] = b;\n retObj[\"right\"] = r;\n retObj[\"left\"] = l;\n retObj[\"center\"] = c;\n return retObj;\n\n function _sectionPlacementObject(obj) {\n obj.width[\"px\"] = typeof (obj.width[\"px\"]) !== \"undefined\" ? obj.width[\"px\"] : 0;\n obj.width[\"%\"] = typeof (obj.width[\"%\"]) !== \"undefined\" ? obj.width[\"%\"] : 0;\n obj.height[\"px\"] = typeof (obj.height[\"px\"]) !== \"undefined\" ? obj.height[\"px\"] : 0;\n obj.height[\"%\"] = typeof (obj.height[\"%\"]) !== \"undefined\" ? obj.height[\"%\"] : 0;\n const ret = {\n width: obj.width[\"px\"] + (obj.width[\"%\"] / 100 * context.width()),\n height: obj.height[\"px\"] + (obj.height[\"%\"] / 100 * context.height()),\n top: obj.top[\"px\"] + (obj.top[\"%\"] / 100 * context.height()) + context.gutter() / 2,\n left: obj.left[\"px\"] + (obj.left[\"%\"] / 100 * context.width()) + context.gutter() / 2\n };\n return ret;\n }\n }\n\n clearContent(sectionType) {\n if (!sectionType) {\n this.content().forEach(function (contentWidget) {\n contentWidget.target(null);\n return false;\n });\n d3Select(\"#\" + this.id() + \" > div.borderHandle\")\n .classed(\"borderHandleDisabled\", true)\n ;\n delete this._watch;\n this.content([]);\n this.sectionTypes([]);\n } else {\n const idx = this.sectionTypes().indexOf(sectionType);\n if (idx >= 0) {\n if (this._watch && this.content()[idx]) {\n delete this._watch[this.content()[idx].id()];\n }\n this.content()[idx].target(null);\n d3Select(\"#\" + this.id() + \" > div.borderHandle_\" + sectionType)\n .classed(\"borderHandleDisabled\", true)\n ;\n this.content().splice(idx, 1);\n this.sectionTypes().splice(idx, 1);\n }\n }\n }\n\n hasContent(sectionType, widget, title) {\n return this.sectionTypes().indexOf(sectionType) >= 0;\n }\n\n setContent(sectionType, widget, title?) {\n this.clearContent(sectionType);\n title = typeof (title) !== \"undefined\" ? title : \"\";\n if (widget) {\n const cell = new Cell()\n .surfaceBorderWidth(0)\n .widget(widget)\n .title(title)\n ;\n this.watchWidget(widget);\n this.content().push(cell);\n this.sectionTypes().push(sectionType);\n }\n return this;\n }\n\n getCell(id) {\n const idx = this.sectionTypes().indexOf(id);\n if (idx >= 0) {\n return this.content()[idx];\n }\n return null;\n }\n\n getContent(id) {\n const idx = this.sectionTypes().indexOf(id);\n if (idx >= 0) {\n return this.content()[idx].widget();\n }\n return null;\n }\n\n setLayoutOffsets() {\n this._offsetX = this._element.node().getBoundingClientRect().left + (this.gutter() / 2);\n this._offsetY = this._element.node().getBoundingClientRect().top + (this.gutter() / 2);\n }\n\n dragStart(handle) {\n const event = d3Event();\n event.sourceEvent.stopPropagation();\n const context = this;\n\n this._dragCell = handle;\n this._dragCellStartSize = this[handle + \"Size\"]();\n\n if (this[handle + \"ShrinkWrap\"]()) {\n this[handle + \"Percentage\"](0);\n this[handle + \"ShrinkWrap\"](false);\n }\n\n const handleElm = d3Select(\"#\" + context.id() + \" > div.borderHandle_\" + handle);\n context._handleTop = parseFloat(handleElm.style(\"top\").split(\"px\")[0]);\n context._handleLeft = parseFloat(handleElm.style(\"left\").split(\"px\")[0]);\n\n this._dragPrevX = event.sourceEvent.clientX;\n this._dragPrevY = event.sourceEvent.clientY;\n }\n dragTick(handle) {\n const context = this;\n\n const event = d3Event();\n const xDelta = this._dragPrevX - event.sourceEvent.clientX;\n const yDelta = this._dragPrevY - event.sourceEvent.clientY;\n\n switch (handle) {\n case \"top\":\n case \"bottom\":\n _moveHandles(handle, yDelta);\n break;\n case \"right\":\n case \"left\":\n _moveHandles(handle, xDelta);\n break;\n }\n\n function _moveHandles(handle2, delta) {\n if (delta === 0) return;\n const handles = d3SelectAll(\"#\" + context.id() + \" > div.borderHandle\");\n const grabbedHandle = d3Select(\"#\" + context.id() + \" > div.borderHandle_\" + handle2);\n\n if (grabbedHandle.classed(\"borderHandle_top\")) {\n grabbedHandle.style(\"top\", (context._handleTop - delta) + \"px\");\n context._cellSizes.topHeight = context._handleTop - delta;\n context._cellSizes.leftHeight = context._cellSizes.height;\n context._cellSizes.leftHeight -= context._cellSizes.topHeight;\n context._cellSizes.leftHeight -= context._cellSizes.bottomHeight;\n context._cellSizes.rightHeight = context._cellSizes.leftHeight;\n } else if (grabbedHandle.classed(\"borderHandle_right\")) {\n grabbedHandle.style(\"left\", (context._handleLeft - delta) + \"px\");\n context._cellSizes.rightWidth = context._cellSizes.width - context._handleLeft + delta;\n } else if (grabbedHandle.classed(\"borderHandle_bottom\")) {\n grabbedHandle.style(\"top\", (context._handleTop - delta) + \"px\");\n context._cellSizes.bottomHeight = context._cellSizes.height - context._handleTop + delta;\n context._cellSizes.leftHeight = context._cellSizes.height;\n context._cellSizes.leftHeight -= context._cellSizes.bottomHeight;\n context._cellSizes.leftHeight -= context._cellSizes.topHeight;\n context._cellSizes.rightHeight = context._cellSizes.leftHeight;\n } else if (grabbedHandle.classed(\"borderHandle_left\")) {\n grabbedHandle.style(\"left\", (context._handleLeft - delta) + \"px\");\n context._cellSizes.leftWidth = context._handleLeft - delta;\n }\n\n handles.each(function () {\n const handle3 = d3Select(this);\n if (handle3.classed(\"borderHandle_top\")) {\n handle3.style(\"width\", context._cellSizes.width + \"px\");\n handle3.style(\"top\", (context._cellSizes.topHeight - 3) + \"px\");\n } else if (handle3.classed(\"borderHandle_right\")) {\n handle3.style(\"left\", (context._cellSizes.width - context._cellSizes.rightWidth) + \"px\");\n handle3.style(\"top\", (context._cellSizes.topHeight + 3) + \"px\");\n handle3.style(\"height\", context._cellSizes.rightHeight + \"px\");\n } else if (handle3.classed(\"borderHandle_bottom\")) {\n handle3.style(\"width\", context._cellSizes.width + \"px\");\n handle3.style(\"top\", (context._cellSizes.height - context._cellSizes.bottomHeight - 3) + \"px\");\n } else if (handle3.classed(\"borderHandle_left\")) {\n handle3.style(\"left\", context._cellSizes.leftWidth + \"px\");\n handle3.style(\"height\", context._cellSizes.leftHeight + \"px\");\n handle3.style(\"top\", (context._cellSizes.topHeight + 3) + \"px\");\n }\n });\n }\n }\n dragEnd(handle) {\n if (handle) {\n const event = d3Event();\n const xDelta = this._dragPrevX - event.sourceEvent.clientX;\n const yDelta = this._dragPrevY - event.sourceEvent.clientY;\n\n switch (handle) {\n case \"top\":\n if (yDelta !== 0) {\n this.topPercentage(0);\n this.topSize(this.topSize() === 0 ? this.getContent(\"top\").getBBox().height - yDelta : this.topSize() - yDelta);\n }\n break;\n case \"right\":\n if (xDelta !== 0) {\n this.rightPercentage(0);\n this.rightSize(this.rightSize() === 0 ? this.getContent(\"right\").getBBox().width + xDelta : this.rightSize() + xDelta);\n }\n break;\n case \"bottom\":\n if (yDelta !== 0) {\n this.bottomPercentage(0);\n this.bottomSize(this.bottomSize() === 0 ? this.getContent(\"bottom\").getBBox().height + yDelta : this.bottomSize() + yDelta);\n }\n break;\n case \"left\":\n if (xDelta !== 0) {\n this.leftPercentage(0);\n this.leftSize(this.leftSize() === 0 ? this.getContent(\"left\").getBBox().width - xDelta : this.leftSize() - xDelta);\n }\n break;\n }\n\n this._dragPrevX = event.sourceEvent.clientX;\n this._dragPrevY = event.sourceEvent.clientY;\n }\n this.render();\n }\n\n size(_?) {\n const retVal = HTMLWidget.prototype.size.apply(this, arguments);\n if (arguments.length && this.contentDiv) {\n this.contentDiv\n .style(\"width\", this._size.width + \"px\")\n .style(\"height\", this._size.height + \"px\")\n ;\n }\n return retVal;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n const context = this;\n element.style(\"position\", \"relative\");\n this.contentDiv = element.append(\"div\").classed(\"border-content\", true);\n this._scrollBarWidth = Platform.getScrollbarWidth();\n this._borderHandles = [\"top\", \"left\", \"right\", \"bottom\"];\n\n const handles = element.selectAll(\"div.borderHandle\").data(this._borderHandles);\n handles.enter().append(\"div\")\n .classed(\"borderHandle\", true)\n .each(function (handle) {\n const h = d3Select(this);\n h.classed(\"borderHandle_\" + handle, true)\n .classed(\"borderHandleDisabled\", context.getContent(handle) === null)\n ;\n });\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n this._sectionTypeArr = this.sectionTypes();\n const context = this;\n\n element.classed(\"design-mode\", this.designMode());\n\n this.setLayoutOffsets();\n\n const rows = this.contentDiv.selectAll(\".cell_\" + this._id).data(this.content(), function (d) { return d._id; });\n const rowsUpdate = rows.enter().append(\"div\")\n .classed(\"cell_\" + this._id, true)\n .style(\"position\", \"absolute\")\n .each(function (d, i) {\n d3Select(this).classed(\"border-cell border-cell-\" + context._sectionTypeArr[i], true);\n d.target(this);\n d3Select(\"#\" + context.id() + \" > div.borderHandle_\" + context._sectionTypeArr[i])\n .classed(\"borderHandleDisabled\", false);\n }).merge(rows);\n rowsUpdate\n .each(function (d, idx) {\n const sectionType = context.sectionTypes()[idx];\n if (typeof (context[sectionType + \"ShrinkWrap\"]) !== \"undefined\" && context[sectionType + \"ShrinkWrap\"]()) {\n d.render();\n context._shrinkWrapBoxes[sectionType] = d.widget().getBBox(true);\n } else {\n delete context._shrinkWrapBoxes[sectionType];\n }\n });\n\n const drag = d3Drag()\n .on(\"start\", function (d, i) { context.dragStart.call(context, d, i); })\n .on(\"drag\", function (d, i) { context.dragTick.call(context, d, i); })\n .on(\"end\", function (d, i) { context.dragEnd.call(context, d, i); })\n ;\n if (this.designMode()) {\n element.selectAll(\"#\" + this.id() + \" > div.borderHandle\").call(drag);\n } else {\n element.selectAll(\"#\" + this.id() + \" > div.borderHandle\").on(\".drag\", null);\n }\n\n const layoutObj = this.borderLayoutObject();\n this.content().forEach(function (cell, i) {\n cell._fixedLeft = layoutObj[this.sectionTypes()[i]].left;\n cell._fixedTop = layoutObj[this.sectionTypes()[i]].top;\n cell._fixedWidth = layoutObj[this.sectionTypes()[i]].width;\n cell._fixedHeight = layoutObj[this.sectionTypes()[i]].height;\n cell._dragHandles = [];\n }, this);\n\n rowsUpdate\n .style(\"left\", function (d) { return d._fixedLeft + \"px\"; })\n .style(\"top\", function (d) { return d._fixedTop + \"px\"; })\n .style(\"width\", function (d) { return d._fixedWidth - context.gutter() + \"px\"; })\n .style(\"height\", function (d) { return d._fixedHeight - context.gutter() + \"px\"; })\n .each(function (d) {\n d._placeholderElement\n .attr(\"draggable\", context.designMode())\n .selectAll(\".dragHandle\")\n .attr(\"draggable\", context.designMode())\n ;\n d\n .surfacePadding(context.surfacePadding())\n .resize()\n ;\n });\n rows.exit().each(function (d) {\n d.target(null);\n }).remove();\n\n this.getCellSizes();\n\n element\n .selectAll(\"#\" + this.id() + \" > div.borderHandle\")\n .each(function () {\n const handle = d3Select(this);\n if (handle.classed(\"borderHandle_top\")) {\n handle.style(\"width\", context._cellSizes.width + \"px\");\n handle.style(\"top\", (context._cellSizes.topHeight - 3) + \"px\");\n } else if (handle.classed(\"borderHandle_right\")) {\n handle.style(\"left\", (context._cellSizes.width - context._cellSizes.rightWidth) + \"px\");\n handle.style(\"top\", (context._cellSizes.topHeight + 3) + \"px\");\n handle.style(\"height\", context._cellSizes.rightHeight + \"px\");\n } else if (handle.classed(\"borderHandle_bottom\")) {\n handle.style(\"width\", context._cellSizes.width + \"px\");\n handle.style(\"top\", (context._cellSizes.height - context._cellSizes.bottomHeight - 3) + \"px\");\n } else if (handle.classed(\"borderHandle_left\")) {\n handle.style(\"left\", context._cellSizes.leftWidth + \"px\");\n handle.style(\"height\", context._cellSizes.leftHeight + \"px\");\n handle.style(\"top\", (context._cellSizes.topHeight + 3) + \"px\");\n }\n\n })\n ;\n }\n\n getCellSizes() {\n const context = this;\n context._cellSizes = {};\n const contentRect = this.element().node().getBoundingClientRect();\n context._cellSizes.width = contentRect.width;\n context._cellSizes.height = contentRect.height;\n this.element()\n .selectAll(\"#\" + this.id() + \" > div > div.border-cell\")\n .each(function () {\n const cell = d3Select(this);\n if (typeof cell.node === \"function\") {\n const rect = cell.node().getBoundingClientRect();\n if (cell.classed(\"border-cell-top\")) {\n context._cellSizes.topHeight = rect.height;\n } else if (cell.classed(\"border-cell-left\")) {\n context._cellSizes.leftWidth = rect.width;\n context._cellSizes.leftHeight = rect.height;\n } else if (cell.classed(\"border-cell-right\")) {\n context._cellSizes.rightWidth = rect.width;\n context._cellSizes.rightHeight = rect.height;\n } else if (cell.classed(\"border-cell-bottom\")) {\n context._cellSizes.bottomHeight = rect.height;\n }\n }\n });\n const sizes = [\"height\", \"width\", \"topHeight\", \"bottomHeight\", \"leftHeight\", \"rightHeight\", \"leftWidth\", \"rightWidth\"];\n sizes.forEach(function (size) {\n context._cellSizes[size] = context._cellSizes[size] === undefined ? 0 : context._cellSizes[size];\n });\n }\n\n postUpdate(domNode, element) {\n const context = this;\n this.content().forEach(function (n) {\n if (n._element.node() !== null && n.widget()) {\n const prevBox = n.widget().getBBox(false, true);\n const currBox = n.widget().getBBox(true, true);\n if (prevBox.width !== currBox.width || prevBox.height !== currBox.height) {\n context.lazyRender();\n }\n }\n });\n }\n\n exit(domNode, element) {\n this.content().forEach(w => w.target(null));\n super.exit(domNode, element);\n }\n\n designMode: { (): boolean; (_: boolean): Border; };\n\n content: { (): any[]; (_: any[]): Border; };\n\n gutter: { (): number; (_: number): Border; };\n\n topShrinkWrap: { (): boolean; (_: boolean): Border; };\n leftShrinkWrap: { (): boolean; (_: boolean): Border; };\n rightShrinkWrap: { (): boolean; (_: boolean): Border; };\n bottomShrinkWrap: { (): boolean; (_: boolean): Border; };\n\n topSize: { (): number; (_: number): Border; };\n leftSize: { (): number; (_: number): Border; };\n rightSize: { (): number; (_: number): Border; };\n bottomSize: { (): number; (_: number): Border; };\n\n topPercentage: { (): number; (_: number): Border; };\n leftPercentage: { (): number; (_: number): Border; };\n rightPercentage: { (): number; (_: number): Border; };\n bottomPercentage: { (): number; (_: number): Border; };\n\n surfacePadding: { (): number; (_: number): Border; };\n\n sectionTypes: { (): any[]; (_: any[]): Border; };\n}\nBorder.prototype._class += \" layout_Border\";\n\nBorder.prototype.publish(\"designMode\", false, \"boolean\", \"Design Mode\", null, { tags: [\"Basic\"] });\n\nBorder.prototype.publish(\"content\", [], \"widgetArray\", \"widgets\", null, { tags: [\"Intermediate\"] });\n\nBorder.prototype.publish(\"gutter\", 0, \"number\", \"Gap Between Widgets\", null, { tags: [\"Basic\"] });\n\nBorder.prototype.publish(\"topShrinkWrap\", false, \"boolean\", \"'Top' Cell shrinks to fit content\", null, { tags: [\"Intermediate\"] });\nBorder.prototype.publish(\"leftShrinkWrap\", false, \"boolean\", \"'Left' Cell shrinks to fit content\", null, { tags: [\"Intermediate\"] });\nBorder.prototype.publish(\"rightShrinkWrap\", false, \"boolean\", \"'Right' Cell shrinks to fit content\", null, { tags: [\"Intermediate\"] });\nBorder.prototype.publish(\"bottomShrinkWrap\", false, \"boolean\", \"'Bottom' Cell shrinks to fit content\", null, { tags: [\"Intermediate\"] });\n\nBorder.prototype.publish(\"topSize\", 0, \"number\", \"Height of the 'Top' Cell (px)\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"leftSize\", 0, \"number\", \"Width of the 'Left' Cell (px)\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"rightSize\", 0, \"number\", \"Width of the 'Right' Cell (px)\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"bottomSize\", 0, \"number\", \"Height of the 'Bottom' Cell (px)\", null, { tags: [\"Private\"] });\n\nBorder.prototype.publish(\"topPercentage\", 20, \"number\", \"Percentage (of parent) Height of the 'Top' Cell\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"leftPercentage\", 20, \"number\", \"Percentage (of parent) Width of the 'Left' Cell\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"rightPercentage\", 20, \"number\", \"Percentage (of parent) Width of the 'Right' Cell\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"bottomPercentage\", 20, \"number\", \"Percentage (of parent) Height of the 'Bottom' Cell\", null, { tags: [\"Private\"] });\n\nBorder.prototype.publish(\"surfacePadding\", 0, \"number\", \"Cell Padding (px)\", null, { tags: [\"Intermediate\"] });\n\nBorder.prototype.publish(\"sectionTypes\", [], \"array\", \"Section Types sharing an index with 'content' - Used to determine position/size.\", null, { tags: [\"Private\"] });\n","import { BBox, HTMLWidget, Platform, Widget } from \"@hpcc-js/common\";\n\nimport \"../src/Border2.css\";\n\nexport type OverflowT = \"hidden\" | \"scroll\" | \"visible\" | \"auto\";\nexport type ChartPanelSectionT = \"top\" | \"right\" | \"bottom\" | \"left\" | \"center\";\nexport class WidgetDiv {\n private _div;\n private _overlay: boolean = false;\n private _overflowX: OverflowT = \"visible\";\n private _overflowY: OverflowT = \"visible\";\n private _widget: Widget;\n\n constructor(div) {\n this._div = div;\n }\n\n overlay(): boolean;\n overlay(_: boolean): this;\n overlay(_?: boolean): boolean | this {\n if (!arguments.length) return this._overlay;\n this._overlay = _;\n return this;\n }\n\n overflowX(): OverflowT;\n overflowX(_: OverflowT): this;\n overflowX(_?: OverflowT): OverflowT | this {\n if (!arguments.length) return this._overflowX;\n this._overflowX = _;\n this._div.style(\"overflow-x\", _);\n return this;\n }\n overflowY(): OverflowT;\n overflowY(_: OverflowT): this;\n overflowY(_?: OverflowT): OverflowT | this {\n if (!arguments.length) return this._overflowY;\n this._overflowY = _;\n this._div.style(\"overflow-y\", _);\n return this;\n }\n\n element() {\n return this._div;\n }\n\n node(): SVGElement | HTMLElement {\n return this._div.node();\n }\n\n widget(): Widget;\n widget(_: Widget): this;\n widget(_?: Widget): Widget | this {\n if (!arguments.length) return this._widget;\n if (this._widget !== _) {\n if (this._widget) {\n this._widget.target(null);\n }\n this._widget = _;\n if (this._widget) {\n this._widget.target(this._div.node());\n }\n }\n return this;\n }\n\n resize(size: { width: number, height: number }) {\n if (this._widget) {\n this._div\n .style(\"width\", `${size.width}px`)\n .style(\"height\", `${size.height}px`)\n ;\n this._widget.resize(size);\n }\n return this;\n }\n\n async render(getBBox?, availableHeight?: number, availableWidth?: number): Promise<BBox | undefined> {\n let overflowX = this.overflowX();\n if(!this.overlay() && overflowX === \"visible\") {\n overflowX = null;\n }\n let overflowY = this.overflowY();\n if(!this.overlay() && overflowY === \"visible\") {\n overflowY = null;\n }\n this._div\n .style(\"height\", this.overlay() ? \"0px\" : null)\n .style(\"overflow-x\", overflowX)\n .style(\"overflow-y\", overflowY)\n ;\n if (this._widget) {\n return this._widget.renderPromise().then(w => {\n if (getBBox && this._widget.visible()) {\n const retVal = this._widget.getBBox();\n retVal.width += 8;\n if (availableHeight !== undefined && retVal.height > availableHeight) {\n retVal.width += Platform.getScrollbarWidth();\n }\n if (availableWidth !== undefined && retVal.width > availableWidth) {\n retVal.height += Platform.getScrollbarWidth();\n }\n if (this.overlay()) {\n retVal.height = 0;\n } else {\n retVal.height += 4;\n }\n return retVal;\n }\n return getBBox ? { x: 0, y: 0, width: 0, height: 0 } : undefined;\n });\n } else {\n return Promise.resolve(getBBox ? { x: 0, y: 0, width: 0, height: 0 } : undefined);\n }\n }\n}\n\nexport class Border2 extends HTMLWidget {\n\n protected _bodyElement;\n\n protected _topWA: WidgetDiv;\n protected _leftWA: WidgetDiv;\n protected _centerWA: WidgetDiv;\n protected _rightWA: WidgetDiv;\n protected _bottomWA: WidgetDiv;\n protected _topPrevOverflow: OverflowT;\n protected _leftPrevOverflow: OverflowT;\n protected _rightPrevOverflow: OverflowT;\n protected _bottomPrevOverflow: OverflowT;\n\n constructor() {\n super();\n this._tag = \"div\";\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n \n const topElement = element.append(\"header\");\n\n this._bodyElement = element.append(\"div\").attr(\"class\", \"body\");\n const centerElement = this._bodyElement.append(\"div\").attr(\"class\", \"center\");\n const leftElement = this._bodyElement.append(\"div\").attr(\"class\", \"lhs\");\n const rightElement = this._bodyElement.append(\"div\").attr(\"class\", \"rhs\");\n\n const bottomElement = element.append(\"div\").attr(\"class\", \"footer\");\n\n this._topWA = new WidgetDiv(topElement);\n this._centerWA = new WidgetDiv(centerElement);\n this._leftWA = new WidgetDiv(leftElement);\n this._rightWA = new WidgetDiv(rightElement);\n this._bottomWA = new WidgetDiv(bottomElement);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n this._topWA.element().style(\"display\", this.showTop() ? null : \"none\");\n this._rightWA.element().style(\"display\", this.showRight() ? null : \"none\");\n this._bottomWA.element().style(\"display\", this.showBottom() ? null : \"none\");\n this._leftWA.element().style(\"display\", this.showLeft() ? null : \"none\");\n if(this.topOverflowX() !== this._topWA.overflowX()) {\n this._topWA.overflowX(this.topOverflowX());\n }\n if(this.rightOverflowX() !== this._rightWA.overflowX()) {\n this._rightWA.overflowX(this.rightOverflowX());\n }\n if(this.bottomOverflowX() !== this._bottomWA.overflowX()) {\n this._bottomWA.overflowX(this.bottomOverflowX());\n }\n if(this.leftOverflowX() !== this._leftWA.overflowX()) {\n this._leftWA.overflowX(this.leftOverflowX());\n }\n if(this.topOverflowY() !== this._topWA.overflowY()) {\n this._topWA.overflowY(this.topOverflowY());\n }\n if(this.rightOverflowY() !== this._rightWA.overflowY()) {\n this._rightWA.overflowY(this.rightOverflowY());\n }\n if(this.bottomOverflowY() !== this._bottomWA.overflowY()) {\n this._bottomWA.overflowY(this.bottomOverflowY());\n }\n if(this.leftOverflowY() !== this._leftWA.overflowY()) {\n this._leftWA.overflowY(this.leftOverflowY());\n }\n this.element()\n .style(\"width\", `${this.width()}px`)\n .style(\"height\", `${this.height()}px`)\n ;\n }\n\n private targetNull(w?: Widget) {\n if (w) {\n w.target(null);\n }\n }\n\n exit(domNode, element) {\n this.targetNull(this.center());\n this.targetNull(this.bottom());\n this.targetNull(this.right());\n this.targetNull(this.left());\n this.targetNull(this.top());\n super.exit(domNode, element);\n }\n\n swap(sectionA: ChartPanelSectionT, sectionB: ChartPanelSectionT): this {\n const a = this[sectionA]();\n const b = this[sectionB]();\n this.targetNull(a);\n this.targetNull(b);\n this[`_${sectionA}WA`].widget(null);\n this[`_${sectionB}WA`].widget(null);\n this[sectionA](b);\n this[sectionB](a);\n return this;\n }\n\n render(callback?: (w: Widget) => void): this {\n const retVal = super.render(w => {\n if (this._topWA) {\n this._topWA\n .widget(this.top())\n .overlay(this.topOverlay())\n .render(true).then(async topBBox => {\n const bottomBBox: BBox = await this._bottomWA.widget(this.bottom()).render(true, undefined, this.width()) as BBox;\n const availableHeight = this.height() - (topBBox.height + bottomBBox.height);\n const leftBBox: BBox = await this._leftWA.widget(this.left()).render(true, availableHeight) as BBox;\n const rightBBox: BBox = await this._rightWA.widget(this.right()).render(true, availableHeight) as BBox;\n \n if (this.bottomHeight_exists()) {\n bottomBBox.height = this.bottomHeight();\n }\n const bodyWidth = this.width() - (leftBBox.width + rightBBox.width);\n const bodyHeight = this.height() - (topBBox.height + bottomBBox.height);\n \n const centerOverflowX = this.centerOverflowX();\n const centerOverflowY = this.centerOverflowY();\n\n const scrollCenterX = [\"auto\", \"scroll\"].indexOf(centerOverflowX) !== -1;\n const scrollCenterY = [\"auto\", \"scroll\"].indexOf(centerOverflowY) !== -1;\n if(scrollCenterX || scrollCenterY) {\n this._centerWA\n .overflowX(this.centerOverflowX())\n .overflowY(this.centerOverflowY())\n .widget(this.center())\n .resize({\n width: bodyWidth,\n height: bodyHeight\n })\n .render()\n ;\n }\n this._bodyElement.style(\"height\", `${bodyHeight}px`);\n const promises = [\n this._topWA\n .overflowX(this.topOverflowX())\n .overflowY(this.topOverflowY())\n .resize({\n width: this.width(),\n height: topBBox.height\n })\n .render(),\n this._leftWA\n .overflowX(this.leftOverflowX())\n .overflowY(this.leftOverflowY())\n .resize({\n width: leftBBox.width,\n height: bodyHeight\n })\n .render(),\n this._rightWA\n .overflowX(this.rightOverflowX())\n .overflowY(this.rightOverflowY())\n .resize({\n width: rightBBox.width,\n height: bodyHeight\n })\n .render(),\n this._centerWA\n .overflowX(this.centerOverflowX())\n .overflowY(this.centerOverflowY())\n .widget(this.center())\n .resize({\n width: bodyWidth,\n height: bodyHeight\n })\n .render(),\n this._bottomWA\n .overflowX(this.bottomOverflowX())\n .overflowY(this.bottomOverflowY())\n .resize({\n width: this.width(),\n height: bottomBBox.height\n })\n .render()\n ];\n Promise.all(promises).then(promises => {\n if (callback) {\n callback(this);\n }\n });\n })\n ;\n } else {\n if (callback) {\n callback(this);\n }\n }\n });\n return retVal;\n }\n}\nBorder2.prototype._class += \" layout_Border2\";\n\nexport interface Border2 {\n top(): Widget;\n top(_: Widget): this;\n topOverlay(): boolean;\n topOverlay(_: boolean): this;\n left(): Widget;\n left(_: Widget): this;\n center(): Widget;\n center(_: Widget): this;\n right(): Widget;\n right(_: Widget): this;\n bottom(): Widget;\n bottom(_: Widget): this;\n bottomHeight(): number;\n bottomHeight(_: number): this;\n bottomHeight_exists(): boolean;\n topOverflowX(): OverflowT;\n topOverflowX(_: OverflowT): this;\n rightOverflowX(): OverflowT;\n rightOverflowX(_: OverflowT): this;\n bottomOverflowX(): OverflowT;\n bottomOverflowX(_: OverflowT): this;\n leftOverflowX(): OverflowT;\n leftOverflowX(_: OverflowT): this;\n centerOverflowX(): OverflowT;\n centerOverflowX(_: OverflowT): this;\n topOverflowY(): OverflowT;\n topOverflowY(_: OverflowT): this;\n rightOverflowY(): OverflowT;\n rightOverflowY(_: OverflowT): this;\n bottomOverflowY(): OverflowT;\n bottomOverflowY(_: OverflowT): this;\n leftOverflowY(): OverflowT;\n leftOverflowY(_: OverflowT): this;\n centerOverflowY(): OverflowT;\n centerOverflowY(_: OverflowT): this;\n showTop(): boolean;\n showTop(_: boolean): this;\n showRight(): boolean;\n showRight(_: boolean): this;\n showBottom(): boolean;\n showBottom(_: boolean): this;\n showLeft(): boolean;\n showLeft(_: boolean): this;\n topOverflowX_default(_: OverflowT);\n rightOverflowX_default(_: OverflowT);\n bottomOverflowX_default(_: OverflowT);\n leftOverflowX_default(_: OverflowT);\n centerOverflowX_default(_: OverflowT);\n topOverflowY_default(_: OverflowT);\n rightOverflowY_default(_: OverflowT);\n bottomOverflowY_default(_: OverflowT);\n leftOverflowY_default(_: OverflowT);\n centerOverflowY_default(_: OverflowT);\n}\nBorder2.prototype.publish(\"showTop\", true, \"boolean\", \"If true, top widget adapter will display\");\nBorder2.prototype.publish(\"showRight\", true, \"boolean\", \"If true, right widget adapter will display\");\nBorder2.prototype.publish(\"showBottom\", true, \"boolean\", \"If true, bottom widget adapter will display\");\nBorder2.prototype.publish(\"showLeft\", true, \"boolean\", \"If true, left widget adapter will display\");\nBorder2.prototype.publish(\"topOverflowX\", \"visible\", \"set\", \"Sets the overflow-x css style for the top widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"rightOverflowX\", \"visible\", \"set\", \"Sets the overflow-x css style for the right widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"bottomOverflowX\", \"visible\", \"set\", \"Sets the overflow-x css style for the bottom widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"leftOverflowX\", \"visible\", \"set\", \"Sets the overflow-x css style for the left widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"centerOverflowX\", \"visible\", \"set\", \"Sets the overflow-x css style for the center widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"topOverflowY\", \"visible\", \"set\", \"Sets the overflow-y css style for the top widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"rightOverflowY\", \"visible\", \"set\", \"Sets the overflow-y css style for the right widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"bottomOverflowY\", \"visible\", \"set\", \"Sets the overflow-y css style for the bottom widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"leftOverflowY\", \"visible\", \"set\", \"Sets the overflow-y css style for the left widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"centerOverflowY\", \"visible\", \"set\", \"Sets the overflow-y css style for the center widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"top\", null, \"widget\", \"Top Widget\", undefined, { render: false });\nBorder2.prototype.publish(\"topOverlay\", false, \"boolean\", \"Overlay Top Widget\");\nBorder2.prototype.publish(\"left\", null, \"widget\", \"Left Widget\", undefined, { render: false });\nBorder2.prototype.publish(\"center\", null, \"widget\", \"Center Widget\", undefined, { render: false });\nBorder2.prototype.publish(\"right\", null, \"widget\", \"Right Widget\", undefined, { render: false });\nBorder2.prototype.publish(\"bottom\", null, \"widget\", \"Bottom Widget\", undefined, { render: false });\nBorder2.prototype.publish(\"bottomHeight\", null, \"number\", \"Bottom Fixed Height\", undefined, { optional: true });\n","import { HTMLWidget, Widget } from \"@hpcc-js/common\";\nimport { select as d3Select } from \"d3-selection\";\nimport \"d3-transition\";\n\nimport \"../src/Carousel.css\";\n\nexport class Carousel extends HTMLWidget {\n\n protected _prevActive: number = 0;\n protected _root;\n\n activeWidget(): Widget {\n return this.widgets()[this.active()];\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._root = element.append(\"div\")\n .attr(\"id\", `${this.id()}_root`)\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const active = this.active();\n const width = this.width();\n this._root\n .style(\"width\", `${width}px`)\n .style(\"height\", `${this.height()}px`)\n ;\n const widgetElements = this._root.selectAll(`#${this.id()}_root > .carouselItem`).data(this.widgets(), d => d.id());\n const update = widgetElements.enter().append(\"div\")\n .attr(\"class\", \"carouselItem\")\n .each(function (w) {\n w.target(this);\n })\n .merge(widgetElements)\n .style(\"left\", (d, i) => `${(i - this._prevActive) * width}px`)\n .style(\"width\", `${width}px`)\n ;\n if (this._prevActive !== active) {\n update\n .style(\"display\", (d, i) => i === this._prevActive || i === active ? null : \"none\") // Must be called before render callback (not inside transition)\n .transition().duration(this.transitionDuration())\n .style(\"left\", (d, i) => `${(i - active) * width}px`)\n .on(\"end\", function (d, i) {\n d3Select(this).style(\"display\", () => i === active ? null : \"none\");\n })\n ;\n this._prevActive = active;\n }\n widgetElements.exit()\n .each(function (w) {\n w.target(null);\n })\n .remove()\n ;\n }\n\n exit(domNode, element) {\n this.widgets().forEach(w => w.target(null));\n super.exit(domNode, element);\n }\n\n render(callback): this {\n return super.render(w => {\n if (!this.visible() || this.isDOMHidden()) {\n if (callback) {\n callback(w);\n }\n } else {\n const aw = this.activeWidget();\n if (aw) {\n aw\n .resize(this.size())\n .render(w2 => {\n if (callback) {\n callback(w);\n }\n })\n ;\n }\n }\n });\n }\n}\nCarousel.prototype._class += \" layout_Carousel\";\n\nexport interface Carousel {\n widgets(): Widget[];\n widgets(_: Widget[]): this;\n active(): number;\n active(_: number): this;\n transitionDuration(): Widget[];\n transitionDuration(_: Widget[]): this;\n}\n\nCarousel.prototype.publish(\"widgets\", [], \"widgetArray\", \"Widgets\", null, { render: false });\nCarousel.prototype.publish(\"active\", 0, \"number\", \"Active widget\");\nCarousel.prototype.publish(\"transitionDuration\", 500, \"number\", \"Transition duration\");\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {pi, tau} from \"../math.js\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","export default {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","import {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","import {path} from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function() {\n var type = constant(circle),\n size = constant(64),\n context = null;\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","import { select } from \"d3-selection\"\nimport { format, formatPrefix } from \"d3-format\"\n\nconst d3_identity = d => d\n\nconst d3_reverse = arr => {\n const mirror = []\n for (let i = 0, l = arr.length; i < l; i++) {\n mirror[i] = arr[l - i - 1]\n }\n return mirror\n}\n\n//Text wrapping code adapted from Mike Bostock\nconst d3_textWrapping = (text, width) => {\n text.each(function() {\n var text = select(this),\n words = text\n .text()\n .split(/\\s+/)\n .reverse(),\n word,\n line = [],\n lineNumber = 0,\n lineHeight = 1.2, //ems\n y = text.attr(\"y\"),\n dy = parseFloat(text.attr(\"dy\")) || 0,\n tspan = text\n .text(null)\n .append(\"tspan\")\n .attr(\"x\", 0)\n .attr(\"dy\", dy + \"em\")\n\n while ((word = words.pop())) {\n line.push(word)\n tspan.text(line.join(\" \"))\n if (tspan.node().getComputedTextLength() > width && line.length > 1) {\n line.pop()\n tspan.text(line.join(\" \"))\n line = [word]\n tspan = text\n .append(\"tspan\")\n .attr(\"x\", 0)\n .attr(\"dy\", lineHeight + dy + \"em\")\n .text(word)\n }\n }\n })\n}\n\nconst d3_mergeLabels = (gen = [], labels, domain, range, labelDelimiter) => {\n if (typeof labels === \"object\") {\n if (labels.length === 0) return gen\n\n let i = labels.length\n for (; i < gen.length; i++) {\n labels.push(gen[i])\n }\n return labels\n } else if (typeof labels === \"function\") {\n const customLabels = []\n const genLength = gen.length\n for (let i = 0; i < genLength; i++) {\n customLabels.push(\n labels({\n i,\n genLength,\n generatedLabels: gen,\n domain,\n range,\n labelDelimiter\n })\n )\n }\n return customLabels\n }\n\n return gen\n}\n\nconst d3_linearLegend = (scale, cells, labelFormat) => {\n let data = []\n\n if (cells.length > 1) {\n data = cells\n } else {\n const domain = scale.domain(),\n increment = (domain[domain.length - 1] - domain[0]) / (cells - 1)\n let i = 0\n\n for (; i < cells; i++) {\n data.push(domain[0] + i * increment)\n }\n }\n\n const labels = data.map(labelFormat)\n return {\n data: data,\n labels: labels,\n feature: d => scale(d)\n }\n}\n\nconst d3_quantLegend = (scale, labelFormat, labelDelimiter) => {\n const labels = scale.range().map(d => {\n const invert = scale.invertExtent(d)\n return (\n labelFormat(invert[0]) +\n \" \" +\n labelDelimiter +\n \" \" +\n labelFormat(invert[1])\n )\n })\n\n return {\n data: scale.range(),\n labels: labels,\n feature: d3_identity\n }\n}\n\nconst d3_ordinalLegend = scale => ({\n data: scale.domain(),\n labels: scale.domain(),\n feature: d => scale(d)\n})\n\nconst d3_cellOver = (cellDispatcher, d, obj) => {\n cellDispatcher.call(\"cellover\", obj, d)\n}\n\nconst d3_cellOut = (cellDispatcher, d, obj) => {\n cellDispatcher.call(\"cellout\", obj, d)\n}\n\nconst d3_cellClick = (cellDispatcher, d, obj) => {\n cellDispatcher.call(\"cellclick\", obj, d)\n}\n\nexport default {\n d3_drawShapes: (\n shape,\n shapes,\n shapeHeight,\n shapeWidth,\n shapeRadius,\n path\n ) => {\n if (shape === \"rect\") {\n shapes.attr(\"height\", shapeHeight).attr(\"width\", shapeWidth)\n } else if (shape === \"circle\") {\n shapes.attr(\"r\", shapeRadius)\n } else if (shape === \"line\") {\n shapes\n .attr(\"x1\", 0)\n .attr(\"x2\", shapeWidth)\n .attr(\"y1\", 0)\n .attr(\"y2\", 0)\n } else if (shape === \"path\") {\n shapes.attr(\"d\", path)\n }\n },\n\n d3_addText: function(svg, enter, labels, classPrefix, labelWidth) {\n enter.append(\"text\").attr(\"class\", classPrefix + \"label\")\n const text = svg\n .selectAll(`g.${classPrefix}cell text.${classPrefix}label`)\n .data(labels)\n .text(d3_identity)\n\n if (labelWidth) {\n svg\n .selectAll(`g.${classPrefix}cell text.${classPrefix}label`)\n .call(d3_textWrapping, labelWidth)\n }\n\n return text\n },\n\n d3_calcType: function(\n scale,\n ascending,\n cells,\n labels,\n labelFormat,\n labelDelimiter\n ) {\n const type = scale.invertExtent\n ? d3_quantLegend(scale, labelFormat, labelDelimiter)\n : scale.ticks\n ? d3_linearLegend(scale, cells, labelFormat)\n : d3_ordinalLegend(scale)\n\n //for d3.scaleSequential that doesn't have a range function\n const range = (scale.range && scale.range()) || scale.domain()\n type.labels = d3_mergeLabels(\n type.labels,\n labels,\n scale.domain(),\n range,\n labelDelimiter\n )\n\n if (ascending) {\n type.labels = d3_reverse(type.labels)\n type.data = d3_reverse(type.data)\n }\n\n return type\n },\n\n d3_filterCells: (type, cellFilter) => {\n let filterCells = type.data\n .map((d, i) => ({ data: d, label: type.labels[i] }))\n .filter(cellFilter)\n const dataValues = filterCells.map(d => d.data)\n const labelValues = filterCells.map(d => d.label)\n type.data = type.data.filter(d => dataValues.indexOf(d) !== -1)\n type.labels = type.labels.filter(d => labelValues.indexOf(d) !== -1)\n return type\n },\n\n d3_placement: (orient, cell, cellTrans, text, textTrans, labelAlign) => {\n cell.attr(\"transform\", cellTrans)\n text.attr(\"transform\", textTrans)\n if (orient === \"horizontal\") {\n text.style(\"text-anchor\", labelAlign)\n }\n },\n\n d3_addEvents: function(cells, dispatcher) {\n cells\n .on(\"mouseover.legend\", function(d) {\n d3_cellOver(dispatcher, d, this)\n })\n .on(\"mouseout.legend\", function(d) {\n d3_cellOut(dispatcher, d, this)\n })\n .on(\"click.legend\", function(d) {\n d3_cellClick(dispatcher, d, this)\n })\n },\n\n d3_title: (svg, title, classPrefix, titleWidth) => {\n if (title !== \"\") {\n const titleText = svg.selectAll(\"text.\" + classPrefix + \"legendTitle\")\n\n titleText\n .data([title])\n .enter()\n .append(\"text\")\n .attr(\"class\", classPrefix + \"legendTitle\")\n\n svg.selectAll(\"text.\" + classPrefix + \"legendTitle\").text(title)\n\n if (titleWidth) {\n svg\n .selectAll(\"text.\" + classPrefix + \"legendTitle\")\n .call(d3_textWrapping, titleWidth)\n }\n\n const cellsSvg = svg.select(\".\" + classPrefix + \"legendCells\")\n const yOffset = svg\n .select(\".\" + classPrefix + \"legendTitle\")\n .nodes()\n .map(d => d.getBBox().height)[0],\n xOffset = -cellsSvg.nodes().map(function(d) {\n return d.getBBox().x\n })[0]\n cellsSvg.attr(\"transform\", \"translate(\" + xOffset + \",\" + yOffset + \")\")\n }\n },\n\n d3_defaultLocale: {\n format,\n formatPrefix\n },\n\n d3_defaultFormatSpecifier: \".01f\",\n\n d3_defaultDelimiter: \"to\"\n}\n","import helper from \"./legend\"\nimport { dispatch } from \"d3-dispatch\"\nimport { scaleLinear } from \"d3-scale\"\nimport { formatLocale, formatSpecifier } from \"d3-format\"\n\nimport { sum } from \"d3-array\"\n\nexport default function color() {\n let scale = scaleLinear(),\n shape = \"rect\",\n shapeWidth = 15,\n shapeHeight = 15,\n shapeRadius = 10,\n shapePadding = 2,\n cells = [5],\n cellFilter,\n labels = [],\n classPrefix = \"\",\n useClass = false,\n title = \"\",\n locale = helper.d3_defaultLocale,\n specifier = helper.d3_defaultFormatSpecifier,\n labelOffset = 10,\n labelAlign = \"middle\",\n labelDelimiter = helper.d3_defaultDelimiter,\n labelWrap,\n orient = \"vertical\",\n ascending = false,\n path,\n titleWidth,\n legendDispatcher = dispatch(\"cellover\", \"cellout\", \"cellclick\")\n\n function legend(svg) {\n const type = helper.d3_calcType(\n scale,\n ascending,\n cells,\n labels,\n locale.format(specifier),\n labelDelimiter\n ),\n legendG = svg.selectAll(\"g\").data([scale])\n\n legendG\n .enter()\n .append(\"g\")\n .attr(\"class\", classPrefix + \"legendCells\")\n\n if (cellFilter) {\n helper.d3_filterCells(type, cellFilter)\n }\n\n let cell = svg\n .select(\".\" + classPrefix + \"legendCells\")\n .selectAll(\".\" + classPrefix + \"cell\")\n .data(type.data)\n\n const cellEnter = cell\n .enter()\n .append(\"g\")\n .attr(\"class\", classPrefix + \"cell\")\n cellEnter.append(shape).attr(\"class\", classPrefix + \"swatch\")\n\n let shapes = svg\n .selectAll(\n \"g.\" + classPrefix + \"cell \" + shape + \".\" + classPrefix + \"swatch\"\n )\n .data(type.data)\n\n //add event handlers\n helper.d3_addEvents(cellEnter, legendDispatcher)\n\n cell\n .exit()\n .transition()\n .style(\"opacity\", 0)\n .remove()\n shapes\n .exit()\n .transition()\n .style(\"opacity\", 0)\n .remove()\n\n shapes = shapes.merge(shapes)\n\n helper.d3_drawShapes(\n shape,\n shapes,\n shapeHeight,\n shapeWidth,\n shapeRadius,\n path\n )\n const text = helper.d3_addText(\n svg,\n cellEnter,\n type.labels,\n classPrefix,\n labelWrap\n )\n\n // we need to merge the selection, otherwise changes in the legend (e.g. change of orientation) are applied only to the new cells and not the existing ones.\n cell = cellEnter.merge(cell)\n\n // sets placement\n const textSize = text.nodes().map(d => d.getBBox()),\n shapeSize = shapes.nodes().map(d => d.getBBox())\n //sets scale\n //everything is fill except for line which is stroke,\n if (!useClass) {\n if (shape == \"line\") {\n shapes.style(\"stroke\", type.feature)\n } else {\n shapes.style(\"fill\", type.feature)\n }\n } else {\n shapes.attr(\"class\", d => `${classPrefix}swatch ${type.feature(d)}`)\n }\n\n let cellTrans,\n textTrans,\n textAlign = labelAlign == \"start\" ? 0 : labelAlign == \"middle\" ? 0.5 : 1\n\n //positions cells and text\n if (orient === \"vertical\") {\n const cellSize = textSize.map((d, i) =>\n Math.max(d.height, shapeSize[i].height)\n )\n\n cellTrans = (d, i) => {\n const height = sum(cellSize.slice(0, i))\n return `translate(0, ${height + i * shapePadding})`\n }\n\n textTrans = (d, i) =>\n `translate( ${shapeSize[i].width +\n shapeSize[i].x +\n labelOffset}, ${shapeSize[i].y + shapeSize[i].height / 2 + 5})`\n } else if (orient === \"horizontal\") {\n cellTrans = (d, i) =>\n `translate(${i * (shapeSize[i].width + shapePadding)},0)`\n textTrans = (d, i) => `translate(${shapeSize[i].width * textAlign +\n shapeSize[i].x},\n ${shapeSize[i].height + shapeSize[i].y + labelOffset + 8})`\n }\n\n helper.d3_placement(orient, cell, cellTrans, text, textTrans, labelAlign)\n helper.d3_title(svg, title, classPrefix, titleWidth)\n\n cell.transition().style(\"opacity\", 1)\n }\n\n legend.scale = function(_) {\n if (!arguments.length) return scale\n scale = _\n return legend\n }\n\n legend.cells = function(_) {\n if (!arguments.length) return cells\n if (_.length > 1 || _ >= 2) {\n cells = _\n }\n return legend\n }\n\n legend.cellFilter = function(_) {\n if (!arguments.length) return cellFilter\n cellFilter = _\n return legend\n }\n\n legend.shape = function(_, d) {\n if (!arguments.length) return shape\n if (\n _ == \"rect\" ||\n _ == \"circle\" ||\n _ == \"line\" ||\n (_ == \"path\" && typeof d === \"string\")\n ) {\n shape = _\n path = d\n }\n return legend\n }\n\n legend.shapeWidth = function(_) {\n if (!arguments.length) return shapeWidth\n shapeWidth = +_\n return legend\n }\n\n legend.shapeHeight = function(_) {\n if (!arguments.length) return shapeHeight\n shapeHeight = +_\n return legend\n }\n\n legend.shapeRadius = function(_) {\n if (!arguments.length) return shapeRadius\n shapeRadius = +_\n return legend\n }\n\n legend.shapePadding = function(_) {\n if (!arguments.length) return shapePadding\n shapePadding = +_\n return legend\n }\n\n legend.labels = function(_) {\n if (!arguments.length) return labels\n labels = _\n return legend\n }\n\n legend.labelAlign = function(_) {\n if (!arguments.length) return labelAlign\n if (_ == \"start\" || _ == \"end\" || _ == \"middle\") {\n labelAlign = _\n }\n return legend\n }\n\n legend.locale = function(_) {\n if (!arguments.length) return locale\n locale = formatLocale(_)\n return legend\n }\n\n legend.labelFormat = function(_) {\n if (!arguments.length) return legend.locale().format(specifier)\n specifier = formatSpecifier(_)\n return legend\n }\n\n legend.labelOffset = function(_) {\n if (!arguments.length) return labelOffset\n labelOffset = +_\n return legend\n }\n\n legend.labelDelimiter = function(_) {\n if (!arguments.length) return labelDelimiter\n labelDelimiter = _\n return legend\n }\n\n legend.labelWrap = function(_) {\n if (!arguments.length) return labelWrap\n labelWrap = _\n return legend\n }\n\n legend.useClass = function(_) {\n if (!arguments.length) return useClass\n if (_ === true || _ === false) {\n useClass = _\n }\n return legend\n }\n\n legend.orient = function(_) {\n if (!arguments.length) return orient\n _ = _.toLowerCase()\n if (_ == \"horizontal\" || _ == \"vertical\") {\n orient = _\n }\n return legend\n }\n\n legend.ascending = function(_) {\n if (!arguments.length) return ascending\n ascending = !!_\n return legend\n }\n\n legend.classPrefix = function(_) {\n if (!arguments.length) return classPrefix\n classPrefix = _\n return legend\n }\n\n legend.title = function(_) {\n if (!arguments.length) return title\n title = _\n return legend\n }\n\n legend.titleWidth = function(_) {\n if (!arguments.length) return titleWidth\n titleWidth = _\n return legend\n }\n\n legend.textWrap = function(_) {\n if (!arguments.length) return textWrap\n textWrap = _\n return legend\n }\n\n legend.on = function() {\n const value = legendDispatcher.on.apply(legendDispatcher, arguments)\n return value === legendDispatcher ? legend : value\n }\n\n return legend\n}\n","import { instanceOfIHighlight } from \"@hpcc-js/api\";\nimport { Database, Palette, SVGWidget, Widget } from \"@hpcc-js/common\";\nimport { format as d3Format } from \"d3-format\";\nimport { scaleOrdinal as d3ScaleOrdinal } from \"d3-scale\";\nimport {\n symbol as d3Symbol,\n symbolCircle as d3SymbolCircle,\n symbolCross as d3SymbolCross,\n symbolDiamond as d3SymbolDiamond,\n symbolSquare as d3SymbolSquare,\n symbolStar as d3SymbolStar,\n symbolTriangle as d3SymbolTriangle,\n symbolWye as d3SymbolWye\n} from \"d3-shape\";\nimport { legendColor as d3LegendColor } from \"d3-svg-legend\";\nimport { ChartPanel } from \"./ChartPanel\";\n\nexport class Legend extends SVGWidget {\n _owner: ChartPanel;\n _targetWidget: Widget;\n _targetWidgetMonitor;\n _legendOrdinal;\n _disabled: string[] = [];\n\n private _symbolTypeMap = {\n \"circle\": d3SymbolCircle,\n \"cross\": d3SymbolCross,\n \"diamond\": d3SymbolDiamond,\n \"square\": d3SymbolSquare,\n \"star\": d3SymbolStar,\n \"triangle\": d3SymbolTriangle,\n \"wye\": d3SymbolWye\n };\n\n constructor(owner: ChartPanel) {\n super();\n this._owner = owner;\n this._drawStartPos = \"origin\";\n\n const context = this;\n this._legendOrdinal = d3LegendColor()\n .shape(\"path\", d3Symbol().type(d3SymbolCircle).size(150)())\n .shapePadding(10)\n .shapeRadius(10)\n .on(\"cellclick\", function (d) {\n context.onClick(d, this);\n })\n .on(\"cellover\", (d) => {\n context.onOver(d, this);\n })\n .on(\"cellout\", (d) => {\n context.onOut(d, this);\n })\n ;\n }\n\n isDisabled(d: string | Database.Field): boolean {\n if (typeof d === \"undefined\") {\n return false;\n } else if (typeof d === \"string\") {\n return d.indexOf(\"__\") === 0 || this._disabled.indexOf(d) >= 0;\n } else if (d instanceof Database.Field) {\n return d.id().indexOf(\"__\") === 0 || this._disabled.indexOf(d.id()) >= 0;\n }\n return this._disabled.indexOf(d) >= 0;\n }\n\n filteredFields(): Database.Field[] {\n switch (this.dataFamily()) {\n case \"2D\":\n return this.fields();\n case \"ND\":\n return this.fields().filter(d => !this.isDisabled(d));\n }\n return this.fields();\n }\n\n filteredColumns(): string[] {\n switch (this.dataFamily()) {\n case \"2D\":\n return this.columns();\n case \"ND\":\n return this.columns().filter(d => !this.isDisabled(d));\n }\n return this.columns();\n }\n\n filteredData(): any[][] {\n switch (this.dataFamily()) {\n case \"2D\":\n return this.data().filter(row => !this.isDisabled(row[0]));\n case \"ND\":\n const disabledCols: { [key: number]: boolean } = {};\n let anyDisabled: boolean = false;\n this.columns().forEach((col, idx) => {\n const disabled = this.isDisabled(col);\n disabledCols[idx] = disabled;\n if (disabled) {\n anyDisabled = true;\n }\n });\n return !anyDisabled ? this.data() : this.data().map(row => {\n return row.filter((cell, idx) => !disabledCols[idx]);\n });\n }\n return this.data();\n }\n\n isRainbow() {\n const widget = this.getWidget();\n return widget && widget._palette && widget._palette.type() === \"rainbow\";\n }\n\n targetWidget(): Widget;\n targetWidget(_: Widget): this;\n targetWidget(_?: Widget): Widget | 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 if (this._targetWidget) {\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 }\n return this;\n }\n\n getWidget() {\n if (this._targetWidget) {\n switch (this._targetWidget.classID()) {\n case \"composite_MultiChart\":\n return (this._targetWidget as any).chart();\n }\n }\n return this._targetWidget;\n }\n\n getPalette(): Palette.OrdinalPaletteFunc | Palette.RainbowPaletteFunc {\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 getPaletteType() {\n return this.getPalette().type();\n }\n\n fillColorFunc() {\n const widget = this.getWidget();\n if (widget && widget.fillColor) {\n // Legend will render before the widget, so its possible the widgets palette will not have switched yet...\n if (widget._palette && widget.paletteID && widget._palette.name !== widget.paletteID()) {\n widget._palette = widget._palette.switch(widget.paletteID());\n }\n return (row, col, sel) => {\n return widget.fillColor(row, col, sel);\n };\n }\n const palette = Palette.ordinal(widget && widget.paletteID ? widget.paletteID() || \"default\" : \"default\");\n return (row, col, sel) => {\n return palette(col);\n };\n }\n\n fillColor(row, col, sel) {\n return this.fillColorFunc()(row, col, sel);\n }\n\n protected _g;\n enter(domNode, element) {\n super.enter(domNode, element);\n this._g = element.append(\"g\")\n .attr(\"class\", \"legendOrdinal\")\n ;\n }\n\n calcMetaData() {\n let dataArr = [];\n let total = 0;\n let maxLabelWidth = 0;\n const colLength = this.columns().length;\n\n if (this._targetWidget) {\n const columns = this.columns();\n switch (this.getPaletteType()) {\n case \"ordinal\":\n const fillColor = this.fillColorFunc();\n let val = 0;\n switch (this.dataFamily()) {\n case \"2D\":\n dataArr = this.data().map(function (n, i) {\n val = this.data()[i].slice(1, colLength).reduce((acc, n) => acc + n, 0);\n const disabled = this.isDisabled(n[0]);\n if (!disabled) total += val;\n const label = n[0] + (!disabled && this.showSeriesTotal() ? ` (${val})` : \"\");\n const textSize = this.textSize(label);\n if (maxLabelWidth < textSize.width) maxLabelWidth = textSize.width;\n return [fillColor(n, n[0], false), n[0], label];\n }, this);\n break;\n case \"ND\":\n const widgetColumns = this.columns().filter(col => col.indexOf(\"__\") !== 0);\n dataArr = widgetColumns.filter(function (n, i) { return i > 0; }).map(function (n, i) {\n val = this.data().reduce((acc, n) => acc + n[i + 1], 0);\n const disabled = this.isDisabled(columns[i + 1]);\n const label = n + (!disabled && this.showSeriesTotal() ? ` (${val})` : \"\");\n if (!disabled) total += val;\n const textSize = this.textSize(label);\n if (maxLabelWidth < textSize.width) maxLabelWidth = textSize.width;\n return [fillColor(undefined, n, false), n, label];\n }, this);\n break;\n default:\n const widgetColumns2 = this.columns();\n dataArr = widgetColumns2.map(function (n) {\n return [fillColor(undefined, n, false), n];\n }, this);\n break;\n }\n break;\n case \"rainbow\":\n const palette = this.getPalette() as Palette.RainbowPaletteFunc;\n const format = d3Format(this.rainbowFormat());\n const widget = this.getWidget();\n const steps = this.rainbowBins();\n const weightMin: number = widget._dataMinWeight;\n const weightMax: number = widget._dataMaxWeight;\n const stepWeightDiff = (weightMax - weightMin) / (steps - 1);\n dataArr.push([palette(weightMin, weightMin, weightMax), format(weightMin)]);\n for (let x = 1; x < steps - 1; ++x) {\n let mid = stepWeightDiff * x;\n if (Math.floor(mid) > parseInt(dataArr[0][1])) {\n mid = Math.floor(mid);\n }\n dataArr.push([palette(mid, weightMin, weightMax), format(mid)]);\n }\n dataArr.push([palette(weightMax, weightMin, weightMax), format(weightMax)]);\n break;\n }\n }\n return {\n dataArr,\n total,\n maxLabelWidth\n };\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n const { dataArr, maxLabelWidth, total } = this.calcMetaData();\n\n const radius = this.shapeRadius();\n const size = this.radiusToSymbolSize(radius);\n\n const strokeWidth = 1;\n\n let shapePadding = this.itemPadding();// + strokeWidth;\n if (this.orientation() === \"horizontal\") {\n shapePadding += maxLabelWidth - (radius * 2);\n }\n\n const ordinal = d3ScaleOrdinal()\n .domain(dataArr.map(row => row[1]))\n .range(dataArr.map(row => row[0]));\n this._legendOrdinal\n .shape(\"path\", d3Symbol().type(this._symbolTypeMap[this.symbolType()]).size(size)())\n .orient(this.orientation())\n .title(this.title())\n .labelWrap(this.labelMaxWidth())\n .labelAlign(this.labelAlign())\n .shapePadding(shapePadding)\n .scale(ordinal)\n .labels(d => dataArr[d.i][2])\n ;\n\n this._g.call(this._legendOrdinal);\n\n this.updateDisabled(element, dataArr);\n\n const legendCellsBbox = this._g.select(\".legendCells\").node().getBBox();\n let offsetX = Math.abs(legendCellsBbox.x);\n let offsetY = Math.abs(legendCellsBbox.y) + strokeWidth;\n\n if (this.orientation() === \"horizontal\") {\n if (this.labelAlign() === \"start\") {\n offsetX += strokeWidth;\n } else if (this.labelAlign() === \"end\") {\n offsetX -= strokeWidth;\n }\n if (this.width() > legendCellsBbox.width) {\n const extraWidth = this.width() - legendCellsBbox.width;\n offsetX += (extraWidth / 2);\n }\n } else if (this.orientation() === \"vertical\") {\n offsetX += strokeWidth;\n if (this._containerSize.height > legendCellsBbox.height) {\n const extraHeight = this.height() - legendCellsBbox.height;\n offsetY += (extraHeight / 2);\n }\n }\n\n this._g.attr(\"transform\", `translate(${offsetX}, ${offsetY})`);\n this.pos({\n x: 0,\n y: 0\n });\n this._legendOrdinal\n .labelOffset(this.itemPadding())\n ;\n const legendTotal = this._g.selectAll(\".legendTotal\").data(dataArr.length && this.showLegendTotal() ? [total] : []);\n const totalText = `Total: ${total}`;\n const totalOffsetX = -offsetX;\n const totalOffsetY = legendCellsBbox.height + this.itemPadding() + strokeWidth;\n this.enableOverflowScroll(false);\n this.enableOverflow(true);\n legendTotal\n .enter()\n .append(\"text\")\n .classed(\"legendTotal\", true)\n .merge(legendTotal)\n .attr(\"transform\", `translate(${totalOffsetX}, ${totalOffsetY})`)\n .text(totalText)\n ;\n legendTotal.exit().remove();\n }\n\n updateDisabled(element, dataArr) {\n element\n .style(\"cursor\", \"pointer\")\n .selectAll(\"path.swatch\").filter((d, i) => i < dataArr.length)\n .style(\"stroke\", (d, i) => dataArr[i][0])\n .style(\"fill\", (d, i) =>\n this._disabled.indexOf(d) < 0 ? dataArr[i][0] : \"white\"\n )\n ;\n }\n\n postUpdate(domNode, element) {\n let w;\n if (this._boundingBox) {\n w = this._boundingBox.width;\n this._boundingBox.width = this._size.width;\n }\n super.postUpdate(domNode, element);\n if (w !== undefined) {\n this._boundingBox.width = w;\n }\n this._parentRelativeDiv.style(\"overflow\", \"hidden\");\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n\n radiusToSymbolSize(radius) {\n const circleSize = Math.pow(radius, 2) * Math.PI;\n switch (this.symbolType()) {\n case \"star\":\n return circleSize * 0.45;\n case \"triangle\":\n return circleSize * 0.65;\n case \"cross\":\n case \"diamond\":\n case \"wye\":\n return circleSize * 0.75;\n case \"circle\":\n return circleSize;\n case \"square\":\n return circleSize * 1.3;\n }\n }\n\n onClick(d, domNode) {\n switch (this.getPaletteType()) {\n case \"ordinal\":\n switch (this.dataFamily()) {\n case \"2D\":\n case \"ND\":\n const disabledIdx = this._disabled.indexOf(d);\n if (disabledIdx < 0) {\n this._disabled.push(d);\n } else {\n this._disabled.splice(disabledIdx, 1);\n }\n this._owner.refreshColumns();\n this._owner.refreshData();\n this._owner.render();\n break;\n }\n break;\n }\n }\n\n onOver(d, domNode) {\n if (instanceOfIHighlight(this._owner)) {\n switch (this.getPaletteType()) {\n case \"ordinal\":\n switch (this.dataFamily()) {\n case \"2D\":\n case \"ND\":\n if (this._disabled.indexOf(d) < 0) {\n this._owner.highlightColumn(d);\n }\n break;\n }\n break;\n }\n }\n }\n\n onOut(d, domNode) {\n if (instanceOfIHighlight(this._owner)) {\n switch (this.getPaletteType()) {\n case \"ordinal\":\n switch (this.dataFamily()) {\n case \"2D\":\n case \"ND\":\n this._owner.highlightColumn();\n break;\n }\n break;\n }\n }\n }\n\n onDblClick(rowData, rowIdx) {\n }\n\n onMouseOver(rowData, rowIdx) {\n }\n private _containerSize;\n resize(_size?: { width: number, height: number }) {\n let retVal;\n if (this.fitToContent()) {\n this._containerSize = _size;\n const bbox = this.getBBox();\n if (_size.width > bbox.width) {\n bbox.width = _size.width;\n }\n if (_size.height > bbox.height) {\n bbox.height = _size.height;\n }\n retVal = super.resize.apply(this, [{ ...bbox }]);\n } else {\n retVal = super.resize.apply(this, arguments);\n }\n return retVal;\n }\n\n}\nLegend.prototype._class += \" layout_Legend\";\n\nexport interface Legend {\n title(): string;\n title(_: string): this;\n symbolType(): \"circle\" | \"cross\" | \"diamond\" | \"square\" | \"star\" | \"triangle\" | \"wye\";\n symbolType(_: \"circle\" | \"cross\" | \"diamond\" | \"square\" | \"star\" | \"triangle\" | \"wye\"): this;\n labelMaxWidth(): number;\n labelMaxWidth(_: number): this;\n orientation(): \"vertical\" | \"horizontal\";\n orientation(_: \"vertical\" | \"horizontal\"): this;\n orientation_exists: () => boolean;\n dataFamily(): \"1D\" | \"2D\" | \"ND\" | \"map\" | \"graph\" | \"any\";\n dataFamily(_: \"1D\" | \"2D\" | \"ND\" | \"map\" | \"graph\" | \"any\"): this;\n dataFamily_exists: () => boolean;\n rainbowFormat(): string;\n rainbowFormat(_: string): this;\n rainbowFormat_exists: () => boolean;\n rainbowBins(): number;\n rainbowBins(_: number): this;\n rainbowBins_exists: () => boolean;\n showSeriesTotal(): boolean;\n showSeriesTotal(_: boolean): this;\n showLegendTotal(): boolean;\n showLegendTotal(_: boolean): this;\n itemPadding(): number;\n itemPadding(_: number): this;\n shapeRadius(): number;\n shapeRadius(_: number): this;\n fitToContent(): boolean;\n fitToContent(_: boolean): this;\n labelAlign(): \"start\" | \"middle\" | \"end\";\n labelAlign(_: \"start\" | \"middle\" | \"end\"): this;\n}\nLegend.prototype.publish(\"title\", \"\", \"string\", \"Title\");\nLegend.prototype.publish(\"symbolType\", \"circle\", \"set\", \"Shape of each legend item\", [\"circle\", \"cross\", \"diamond\", \"square\", \"star\", \"triangle\", \"wye\"]);\nLegend.prototype.publish(\"labelMaxWidth\", null, \"number\", \"Max Label Width (pixels)\", null, { optional: true });\nLegend.prototype.publish(\"orientation\", \"vertical\", \"set\", \"Orientation of Legend rows\", [\"vertical\", \"horizontal\"], { tags: [\"Private\"] });\nLegend.prototype.publish(\"dataFamily\", \"ND\", \"set\", \"Type of data\", [\"1D\", \"2D\", \"ND\", \"map\", \"graph\", \"any\"], { 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() });\nLegend.prototype.publish(\"showSeriesTotal\", false, \"boolean\", \"Show value next to series\");\nLegend.prototype.publish(\"showLegendTotal\", false, \"boolean\", \"Show a total of the series values under the legend\", null);\nLegend.prototype.publish(\"itemPadding\", 8, \"number\", \"Padding between legend items (pixels)\");\nLegend.prototype.publish(\"shapeRadius\", 7, \"number\", \"Radius of legend shape (pixels)\");\nLegend.prototype.publish(\"fitToContent\", true, \"boolean\", \"If true, resize will simply reapply the bounding box dimensions\");\nLegend.prototype.publish(\"labelAlign\", \"start\", \"set\", \"Horizontal alignment of legend item label (for horizontal orientation only)\", [\"start\", \"middle\", \"end\"], { optional: true, disable: (w: any) => w.orientation() === \"vertical\" });\n","import { HTMLWidget, ISize, Widget } from \"@hpcc-js/common\";\n\nimport \"../src/Modal.css\";\n\nexport class Modal extends HTMLWidget {\n\n protected _widget: Widget;\n\n protected _relativeTarget: HTMLElement;\n\n protected _fade;\n protected _modal;\n protected _modalHeader;\n protected _modalBody;\n protected _modalHeaderAnnotations;\n protected _modalHeaderCloseButton;\n _close: () => void;\n\n constructor() {\n super();\n this._tag = \"div\";\n }\n\n closeModal() {\n this.visible(false);\n }\n\n getRelativeTarget() {\n let relativeTarget;\n if (this.relativeTargetId()) {\n relativeTarget = document.getElementById(this.relativeTargetId());\n if (relativeTarget) {\n return relativeTarget;\n }\n }\n if (!relativeTarget) {\n relativeTarget = this.locateAncestor(\"layout_Grid\");\n if (relativeTarget && relativeTarget.element) {\n return relativeTarget.element().node();\n }\n }\n return document.body;\n }\n\n setModalSize(): ISize {\n if (this.fixedHeight() !== null && this.fixedWidth() !== null) {\n this._modal\n .style(\"height\", this.fixedHeight())\n .style(\"width\", this.fixedWidth())\n .style(\"min-height\", null)\n .style(\"min-width\", null)\n .style(\"max-height\", null)\n .style(\"max-width\", null)\n ;\n } else if (this.minHeight() || this.minWidth()) {\n this._modal\n .style(\"min-height\", this.minHeight())\n .style(\"min-width\", this.minWidth())\n .style(\"max-height\", this.maxHeight())\n .style(\"max-width\", this.maxWidth())\n ;\n }\n const modalRect = this._modal.node().getBoundingClientRect();\n const headerRect = this._modalHeader.node().getBoundingClientRect();\n this._modalBody\n .style(\"height\", (modalRect.height - headerRect.height) + \"px\")\n .style(\"width\", modalRect.width);\n\n return modalRect;\n }\n\n setFadePosition(rect) {\n this._fade\n .style(\"top\", rect.top + \"px\")\n .style(\"left\", rect.left + \"px\")\n .style(\"width\", rect.width + \"px\")\n .style(\"height\", rect.height + \"px\")\n ;\n }\n\n setModalPosition(rect) {\n const modalRect = this.setModalSize();\n if (this.fixedTop() !== null && this.fixedLeft() !== null) {\n this._modal\n .style(\"top\", `calc(${this.fixedTop()} + ${rect.top}px)`)\n .style(\"left\", `calc(${this.fixedLeft()} + ${rect.left}px)`)\n ;\n } else if (this.fixedHeight() !== null && this.fixedWidth() !== null) {\n this._modal\n .style(\"top\", (rect.top + (rect.height / 2) - (modalRect.height / 2)) + \"px\")\n .style(\"left\", (rect.left + (rect.width / 2) - (modalRect.width / 2)) + \"px\")\n ;\n } else if (this.minHeight() || this.minWidth()) {\n const contentRect = this._modal.node().getBoundingClientRect();\n this._modal\n .style(\"top\", (rect.top + (rect.height / 2) - (contentRect.height / 2)) + \"px\")\n .style(\"left\", (rect.left + (rect.width / 2) - (contentRect.width / 2)) + \"px\")\n ;\n }\n }\n\n resize(size?: any): this {\n super.resize();\n if (this._modal) this.setModalSize();\n return this;\n }\n\n resizeBodySync(width: number, height: number): this {\n const header = this._modalHeader.node();\n const headerRect = header.getBoundingClientRect();\n\n this._modal\n .style(\"width\", width + \"px\")\n .style(\"height\", (height + headerRect.height) + \"px\")\n .style(\"min-width\", width + \"px\")\n .style(\"min-height\", (height + headerRect.height) + \"px\")\n ;\n this._modalHeader\n .style(\"width\", width + \"px\")\n ;\n this._modalBody\n .style(\"width\", width + \"px\")\n .style(\"height\", height + \"px\")\n ;\n return this\n .minWidth(width + \"px\")\n .minHeight((height + headerRect.height) + \"px\")\n .resize({\n height: height + headerRect.height,\n width\n })\n ;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._fade = element.append(\"div\")\n .classed(\"layout_Modal-fade\", true)\n .classed(\"layout_Modal-fadeClickable\", this.enableClickFadeToClose())\n .classed(\"layout_Modal-fade-hidden\", !this.showFade())\n ;\n const header_h = this.titleFontSize() * 2;\n this._modal = element.append(\"div\")\n .classed(\"layout_Modal-content\", true)\n ;\n this._modalHeader = this._modal.append(\"div\")\n .classed(\"layout_Modal-header\", true)\n .style(\"color\", this.titleFontColor())\n .style(\"font-size\", this.titleFontSize() + \"px\")\n .style(\"height\", header_h + \"px\")\n ;\n this._modalBody = this._modal.append(\"div\")\n .classed(\"layout_Modal-body\", true)\n .style(\"height\", `calc( 100% - ${header_h}px )`)\n .style(\"overflow-x\", this.overflowX())\n .style(\"overflow-y\", this.overflowY())\n ;\n this._modalHeader.append(\"div\")\n .classed(\"layout_Modal-title\", true)\n .style(\"line-height\", this.titleFontSize() + \"px\")\n .style(\"top\", (this.titleFontSize() / 2) + \"px\")\n .style(\"left\", (this.titleFontSize() / 2) + \"px\")\n .text(this.formattedTitle())\n ;\n\n this._modalHeaderAnnotations = this._modalHeader.append(\"div\")\n .classed(\"layout_Modal-annotations\", true)\n ;\n this._modalHeaderCloseButton = this._modalHeaderAnnotations.append(\"div\")\n .classed(\"layout_Modal-closeButton\", true)\n .html(\"<i class=\\\"fa fa-close\\\"></i>\")\n ;\n\n this._modalHeaderAnnotations\n .style(\"line-height\", this.titleFontSize() + \"px\")\n .style(\"right\", (this.titleFontSize() / 2) + \"px\")\n .style(\"top\", (this.titleFontSize() / 2) + \"px\")\n ;\n this._modalHeaderCloseButton.on(\"click\", () => {\n this.closeModal();\n });\n this._fade.on(\"click\", n => {\n if (this.enableClickFadeToClose()) {\n this.closeModal();\n }\n });\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n element.style(\"display\", this.show() ? null : \"none\");\n this._fade.classed(\"layout_Modal-fade-hidden\", !this.showFade());\n this._relativeTarget = this.getRelativeTarget();\n\n this.setModalSize();\n const rect = this._relativeTarget.getBoundingClientRect();\n this.setFadePosition(rect);\n this.setModalPosition(rect);\n\n if (this.show()) {\n if (!this._widget.target()) {\n this._widget.target(this._modalBody.node());\n }\n this._widget.resize().render();\n } else {\n this._widget\n .target(null)\n .render()\n ;\n }\n }\n\n exit(domNode, element) {\n if (this._widget) {\n this._widget.target(null);\n }\n super.exit(domNode, element);\n }\n\n formattedTitle() {\n const title = this.title_exists() ? this.title().trim() : \"\";\n if (title.length > 0 && title.slice(0, 1) === \"(\" && title.slice(-1) === \")\") {\n return title.slice(1, -1);\n }\n return this.title();\n }\n}\nModal.prototype._class += \" layout_Modal\";\n\nexport interface Modal {\n show(): boolean;\n show(_: boolean): this;\n showFade(): boolean;\n showFade(_: boolean): this;\n enableClickFadeToClose(): boolean;\n enableClickFadeToClose(_: boolean): this;\n title(): string;\n title(_: string): this;\n title_exists(): boolean;\n titleFontSize(): number;\n titleFontSize(_: number): this;\n titleFontColor(): string;\n titleFontColor(_: string): this;\n minWidth(): string;\n minWidth(_: string): this;\n minHeight(): string;\n minHeight(_: string): this;\n maxWidth(): string;\n maxWidth(_: string): this;\n maxHeight(): string;\n maxHeight(_: string): this;\n fixedWidth(): string;\n fixedWidth(_: string): this;\n fixedHeight(): string;\n fixedHeight(_: string): this;\n fixedTop(): string;\n fixedTop(_: string): this;\n fixedLeft(): string;\n fixedLeft(_: string): this;\n relativeTargetId(): string;\n relativeTargetId(_: string): this;\n widget(): Widget;\n widget(_: Widget): this;\n overflowX(): \"hidden\" | \"scroll\";\n overflowX(_: \"hidden\" | \"scroll\"): this;\n overflowY(): \"hidden\" | \"scroll\";\n overflowY(_: \"hidden\" | \"scroll\"): this;\n}\n\nModal.prototype.publish(\"title\", null, \"string\", \"title\");\nModal.prototype.publish(\"widget\", null, \"widget\", \"widget\");\nModal.prototype.publish(\"titleFontSize\", 18, \"number\", \"titleFontSize (in pixels)\");\nModal.prototype.publish(\"titleFontColor\", \"#ffffff\", \"html-color\", \"titleFontColor\");\nModal.prototype.publish(\"relativeTargetId\", null, \"string\", \"relativeTargetId\");\n\nModal.prototype.publish(\"show\", true, \"boolean\", \"show\");\nModal.prototype.publish(\"showFade\", true, \"boolean\", \"showFade\");\nModal.prototype.publish(\"enableClickFadeToClose\", true, \"boolean\", \"enableClickFadeToClose\");\n\nModal.prototype.publish(\"minWidth\", \"400px\", \"string\", \"minWidth\");\nModal.prototype.publish(\"minHeight\", \"400px\", \"string\", \"minHeight\");\nModal.prototype.publish(\"maxWidth\", \"800px\", \"string\", \"maxWidth\");\nModal.prototype.publish(\"maxHeight\", \"800px\", \"string\", \"maxHeight\");\nModal.prototype.publish(\"fixedWidth\", null, \"string\", \"fixedWidth\");\nModal.prototype.publish(\"fixedHeight\", null, \"string\", \"fixedHeight\");\nModal.prototype.publish(\"fixedTop\", null, \"string\", \"fixedTop\");\nModal.prototype.publish(\"fixedLeft\", null, \"string\", \"fixedLeft\");\nModal.prototype.publish(\"overflowX\", \"hidden\", \"string\", \"overflowX\");\nModal.prototype.publish(\"overflowY\", \"scroll\", \"string\", \"overflowY\");\n","import { IHighlight } from \"@hpcc-js/api\";\nimport { Button, Database, IconBar, ProgressBar, Spacer, SVGWidget, Text, TitleBar, ToggleButton, Utility, Widget } from \"@hpcc-js/common\";\nimport type { XYAxis } from \"@hpcc-js/chart\";\nimport { Table } from \"@hpcc-js/dgrid2\";\nimport { select as d3Select } from \"d3-selection\";\nimport { Border2 } from \"./Border2\";\nimport { Carousel } from \"./Carousel\";\nimport { Legend } from \"./Legend\";\nimport { Modal } from \"./Modal\";\n\nimport \"../src/ChartPanel.css\";\n\nexport class ChartPanel extends Border2 implements IHighlight {\n\n protected _legend = new Legend(this).enableOverflow(true);\n protected _progressBar = new ProgressBar();\n protected _autoScale = false;\n protected _resolutions = {\n tiny: { width: 100, height: 100 },\n small: { width: 300, height: 300 }\n };\n private _modal = new Modal();\n private _highlight: boolean;\n private _scale: number;\n private _orig_size: any;\n\n private _toggleInfo = new ToggleButton().faChar(\"fa-info-circle\").tooltip(\".Description\")\n .selected(false)\n .on(\"enabled\", () => {\n return this.description() !== \"\";\n })\n .on(\"click\", () => {\n if (this._toggleInfo.selected()) {\n this._modal\n .title(this.title())\n .widget(new Text().text(this.description()))\n .show(true)\n .render()\n ;\n\n const origCloseFunc = this._modal._close;\n this._modal._close = () => {\n this._toggleInfo\n .selected(false)\n .render()\n ;\n this._modal._close = origCloseFunc;\n };\n }\n })\n .on(\"mouseMove\", () => {\n /*\n this._modal.showPreview(true).render(n => {\n n.resize().render();\n });\n */\n })\n .on(\"mouseOut\", () => {\n /*\n if (this._modal.showPreview()) {\n this._modal.show(false).showPreview(false).render();\n }\n */\n });\n\n private _toggleData = new ToggleButton().faChar(\"fa-table\").tooltip(\"Data\")\n .on(\"click\", () => {\n this.dataVisible(this._toggleData.selected());\n this.render();\n });\n\n private _buttonDownload = new Button().faChar(\"fa-download\").tooltip(\"Download\")\n .on(\"click\", () => {\n this.downloadCSV();\n });\n\n private _buttonDownloadImage = new Button().faChar(\"fa-image\").tooltip(\"Download Image\")\n .on(\"click\", () => {\n this.downloadPNG();\n });\n\n private _toggleLegend = new ToggleButton().faChar(\"fa-list-ul\").tooltip(\"Legend\")\n .selected(false)\n .on(\"click\", () => {\n const selected = this._toggleLegend.selected();\n if (this.legendPosition() === \"bottom\") {\n this.showBottom(selected);\n } else if (this.legendPosition() === \"right\") {\n this.showRight(selected);\n }\n this.legendVisible(selected);\n this.render();\n });\n\n protected _spacer = new Spacer();\n\n _titleBar = new TitleBar().buttons([this._toggleData, this._buttonDownload, this._buttonDownloadImage, this._spacer, this._toggleLegend]);\n\n protected _carousel = new Carousel();\n protected _table = new Table();\n protected _widget: Widget;\n\n protected _hideLegendToggleList = [\"dgrid_Table\"];\n\n constructor() {\n super();\n this._tag = \"div\";\n }\n\n fields(): Database.Field[];\n fields(_: Database.Field[]): this;\n fields(_?: Database.Field[]): this | Database.Field[] {\n if (!arguments.length) return super.fields();\n super.fields(_);\n this._legend.fields(_);\n this.refreshFields();\n return this;\n }\n refreshFields() {\n this._widget.fields(this._legend.filteredFields());\n this._table.fields(this._legend.filteredFields());\n return this;\n }\n\n columns(): string[];\n columns(_: string[], asDefault?: boolean): this;\n columns(_?: string[], asDefault?: boolean): string[] | this {\n if (!arguments.length) return super.columns();\n super.columns(_, asDefault);\n this._legend.columns(_, asDefault);\n this.refreshColumns();\n return this;\n }\n refreshColumns() {\n this._widget.columns(this._legend.filteredColumns());\n this._table.columns(this._legend.filteredColumns());\n return this;\n }\n\n data(_?) {\n if (!arguments.length) return super.data();\n super.data(_);\n this._legend.data(_);\n this.refreshData();\n return this;\n }\n refreshData() {\n this._widget.data(this._legend.filteredData());\n this._table.data(this._legend.filteredData());\n return this;\n }\n\n highlight(): boolean;\n highlight(_: boolean): this;\n highlight(_?: boolean): boolean | this {\n if (!arguments.length) return this._highlight;\n this._highlight = _;\n return this;\n }\n\n startProgress() {\n this._progressBar.start();\n }\n\n finishProgress() {\n this._progressBar.finish();\n }\n\n buttons(): Widget[];\n buttons(_: Widget[]): this;\n buttons(_?: Widget[]): this | Widget[] {\n if (!arguments.length) return this._titleBar.buttons();\n this._titleBar.buttons(_);\n return this;\n }\n\n downloadCSV() {\n const namePrefix = this.downloadTitle() ? this.downloadTitle() : this.title() ? this.title() : \"data\";\n const nameSuffix = this.downloadTimestampSuffix() ? \"_\" + Utility.timestamp() : \"\";\n Utility.downloadString(\"CSV\", this._widget.export(\"CSV\"), namePrefix + nameSuffix);\n return this;\n }\n\n downloadPNG() {\n const widget = this.widget();\n if (widget instanceof SVGWidget) {\n if (!this.legendVisible()) {\n widget.downloadPNG(this.title());\n } else {\n widget.downloadPNG(this.title(), undefined, this._legend);\n }\n }\n return this;\n }\n\n highlightColumn(column?: string): this {\n if (column) {\n const cssTag = `series-${this.cssTag(column)}`;\n this._centerWA.element().selectAll(\".series\")\n .each(function () {\n const element = d3Select(this);\n const highlight = element.classed(cssTag);\n element\n .classed(\"highlight\", highlight)\n .classed(\"lowlight\", !highlight)\n ;\n })\n ;\n } else {\n this._centerWA.element().selectAll(\".series\")\n .classed(\"highlight\", false)\n .classed(\"lowlight\", false)\n ;\n }\n return this;\n }\n\n getResponsiveMode(): \"tiny\" | \"small\" | \"regular\" | \"none\" {\n if (!this.enableAutoscaling()) return \"none\";\n if (!this._autoScale) return \"regular\";\n if (this.size().width <= this._resolutions.tiny.width || this.size().height <= this._resolutions.tiny.height) {\n return \"tiny\";\n } else if (this.size().width <= this._resolutions.small.width || this.size().height <= this._resolutions.small.height) {\n return \"small\";\n }\n return \"regular\";\n }\n\n setOrigSize() {\n this._orig_size = JSON.parse(JSON.stringify(this.size()));\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._modal\n .target(this.target())\n .relativeTargetId(this.id())\n ;\n\n this.top(this._titleBar);\n this.center(this._carousel);\n\n this._legend\n .targetWidget(this._widget)\n .orientation(\"vertical\")\n .title(\"\")\n .visible(false)\n ;\n\n this._progressBar.enter(domNode, element);\n this.setOrigSize();\n }\n\n preUpdateTiny(element) {\n element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"none\");\n }\n\n preUpdateSmall(element) {\n const scale_x = this._orig_size.width / this._resolutions.small.width;\n const scale_y = this._orig_size.height / this._resolutions.small.height;\n this._scale = Math.min(scale_x, scale_y);\n const x_is_smaller = this._scale === scale_x;\n this.size({\n width: x_is_smaller ? this._resolutions.small.width : this._orig_size.width * (1 / this._scale),\n height: !x_is_smaller ? this._resolutions.small.height : this._orig_size.height * (1 / this._scale)\n });\n element.select(\"div.title-icon\").style(\"position\", \"static\");\n element.selectAll(\"lhs\").style(\"display\", \"none\");\n element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"\");\n element.selectAll(\"div.data-count\").style(\"visibility\", \"hidden\");\n element.style(\"transform\", `scale(${this._scale})`);\n }\n\n preUpdateRegular(element) {\n element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"\");\n element.selectAll(\"div.data-count\").style(\"visibility\", \"hidden\");\n element.select(\"div.title-icon\").style(\"position\", \"static\");\n element.style(\"transform\", \"translate(0px,0px) scale(1)\");\n }\n\n private _prevdataVisible;\n private _prevlegendVisible;\n private _prevLegendPosition;\n private _prevChartDataFamily;\n private _prevChart;\n private _prevButtons;\n update(domNode, element) {\n super.update(domNode, element);\n if (this._table && this.widget_exists() && this.widget().class().indexOf(\"chart_XYAxis\") >= 0) {\n const chart = this.widget() as XYAxis;\n this._table.columns().forEach((column, idx) => {\n switch (idx === 0 ? chart.xAxisType() : chart.yAxisType()) {\n case \"linear\":\n case \"log\":\n case \"pow\":\n this._table.columnType(column, \"number\");\n break;\n case \"time\":\n this._table.columnType(column, \"time\");\n break;\n case \"ordinal\":\n default:\n this._table.columnType(column, \"string\");\n }\n this._table.columnPattern(column, idx === 0 ? chart.xAxisTypeTimePattern() : chart.yAxisTypeTimePattern());\n this._table.columnFormat(column, idx === 0 ? chart.xAxisTickFormat() : chart.yAxisTickFormat());\n });\n }\n }\n\n preUpdate(domNode, element) {\n\n super.preUpdate(domNode, element);\n\n if (this._prevLegendPosition !== this.legendPosition()) {\n if (this._legend.target() !== null) this._legend.target(null);\n if (this._prevLegendPosition !== undefined) {\n this.swap(this._prevLegendPosition, this.legendPosition());\n } else {\n this[this.legendPosition()](this._legend);\n }\n if (this.legendPosition() === \"right\") {\n this.rightOverflowX(\"hidden\");\n this.rightOverflowY(\"auto\");\n this.bottomOverflowX(\"visible\");\n this.bottomOverflowY(\"visible\");\n } else {\n this.rightOverflowX(\"visible\");\n this.rightOverflowY(\"visible\");\n this.bottomOverflowX(\"auto\");\n this.bottomOverflowY(\"hidden\");\n }\n this._prevLegendPosition = this.legendPosition();\n }\n\n if (this._prevdataVisible !== this.dataVisible()) {\n this._prevdataVisible = this.dataVisible();\n this._toggleData.selected(this._prevdataVisible);\n this._legend.visible(this._prevlegendVisible && !this._prevdataVisible);\n this._carousel.active(this._prevdataVisible ? 1 : 0);\n }\n\n if (this._prevlegendVisible !== this.legendVisible()) {\n this._prevlegendVisible = this.legendVisible();\n this._toggleLegend.selected(this._prevlegendVisible);\n this._legend.visible(this._prevlegendVisible && !this._prevdataVisible);\n }\n\n this._legend.orientation(this.legendPosition() === \"bottom\" ? \"horizontal\" : \"vertical\");\n\n this.showLeft(!this.left());\n\n switch (this.getResponsiveMode()) {\n case \"tiny\":\n this.preUpdateTiny(element);\n break;\n case \"small\":\n this.preUpdateSmall(element);\n break;\n case \"regular\":\n this.preUpdateRegular(element);\n break;\n }\n\n const chart = this._widget.classID() === \"composite_MultiChart\" ? this._widget[\"chart\"]() : this._widget;\n this._legend.dataFamily(chart._dataFamily || \"any\");\n\n if (this._prevChartDataFamily !== this._legend.dataFamily()) {\n this._prevChartDataFamily = this._legend.dataFamily();\n switch (this._prevChartDataFamily) {\n case \"any\":\n this._toggleLegend.selected(false);\n this._legend.visible(false);\n break;\n }\n }\n element.style(\"box-shadow\", this.highlight() ? `inset 0px 0px 0px ${this.highlightSize()}px ${this.highlightColor()}` : \"none\");\n\n if (this._hideLegendToggleList.indexOf(chart.classID()) !== -1) {\n this._spacer.visible(false);\n this._toggleLegend.visible(false);\n } else {\n this._spacer.visible(true);\n this._toggleLegend.visible(true);\n }\n if (this._prevChart !== chart) {\n this._prevChart = chart;\n const widgetIconBar = chart ? chart[\"_titleBar\"] || chart[\"_iconBar\"] : undefined;\n if (widgetIconBar && widgetIconBar instanceof IconBar) {\n this._prevButtons = this._prevButtons || [...this.buttons()];\n const buttons: Widget[] = [\n ...widgetIconBar.buttons(),\n new Spacer(),\n ...this._prevButtons\n ];\n widgetIconBar.buttons([]).render();\n this.buttons(buttons);\n } else if (this._prevButtons) {\n this.buttons(this._prevButtons);\n }\n }\n\n const hiddenButtons = [];\n if (!this.dataButtonVisible()) hiddenButtons.push(this._toggleData);\n if (!this.downloadButtonVisible()) hiddenButtons.push(this._buttonDownload);\n if (!this.downloadImageButtonVisible()) hiddenButtons.push(this._buttonDownloadImage);\n if (!this.legendButtonVisible()) hiddenButtons.push(this._toggleLegend);\n this._buttonDownloadImage.enabled(this.widget() instanceof SVGWidget);\n this._titleBar\n .hiddenButtons(hiddenButtons)\n .visible(this.titleVisible())\n ;\n this.topOverlay(this.titleOverlay() || !this.titleVisible());\n }\n\n postUpdate(domNode, element) {\n super.postUpdate(domNode, element);\n\n switch (this.getResponsiveMode()) {\n case \"tiny\":\n this.postUpdateTiny(element);\n break;\n case \"small\":\n this.postUpdateSmall(element);\n break;\n case \"regular\":\n this.postUpdateRegular(element);\n break;\n }\n }\n\n postUpdateTiny(element) {\n element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"none\");\n element.selectAll(\"div.data-count\")\n .style(\"visibility\", \"visible\")\n .style(\"font-size\", (this.titleIconFontSize() / 3) + \"px\")\n .style(\"line-height\", (this.titleIconFontSize() / 3) + \"px\")\n .style(\"left\", this.titleIconFontSize() + \"px\")\n .text(this.data().length)\n ;\n element.style(\"transform\", \"translate(0px,0px) scale(1)\");\n const iconDiv = element.selectAll(\"div.title-icon\");\n const _node = iconDiv.node();\n const _container = element.node().parentElement;\n const containerRect = _container.getBoundingClientRect();\n if (_node) {\n const rect = iconDiv.node().getBoundingClientRect();\n const icon_top = containerRect.height / 2;\n iconDiv\n .style(\"position\", \"absolute\")\n .style(\"left\", `calc(50% - ${rect.width / 2}px)`)\n .style(\"top\", `${icon_top - (rect.height / 2)}px`)\n ;\n element.selectAll(\"div.data-count\")\n .style(\"position\", \"absolute\")\n .style(\"left\", `calc(50% + ${rect.width / 2}px)`)\n .style(\"top\", `${icon_top - (rect.height / 2)}px`)\n ;\n }\n }\n\n postUpdateSmall(element) {\n element.selectAll(\"lhs\").style(\"display\", \"none\"); // TODO: a bug in Border2?\n element.selectAll(\"div.title-icon\").style(\"position\", \"static\");\n element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"\");\n element.selectAll(\"div.data-count\").style(\"visibility\", \"hidden\");\n const rect = element.node().getBoundingClientRect();\n const parentRect = element.node().parentElement.getBoundingClientRect();\n element.style(\"transform\", `translate(${parentRect.x - rect.x}px, ${parentRect.y - rect.y}px) scale(${this._scale})`);\n }\n\n postUpdateRegular(element) {\n element.selectAll(\"div.title-icon\").style(\"position\", \"static\");\n element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"\");\n element.selectAll(\"div.data-count\").style(\"visibility\", \"hidden\");\n }\n\n exit(domNode, element) {\n this._progressBar.exit(domNode, element);\n\n this.right(null);\n this._legend.target(null);\n this.center(null);\n this._carousel.target(null);\n this.top(null);\n this._titleBar.target(null);\n\n this._modal.target(null);\n\n delete this._prevChart;\n delete this._prevButtons;\n delete this._prevChartDataFamily;\n delete this._prevPos;\n delete this._prevdataVisible;\n delete this._prevlegendVisible;\n\n super.exit(domNode, element);\n }\n\n // Event Handlers ---\n // Events ---\n click(row, column, selected) {\n // console.log(\"Click: \" + JSON.stringify(row) + \", \" + column + \", \" + selected);\n }\n\n dblclick(row, column, selected) {\n // console.log(\"Double click: \" + JSON.stringify(row) + \", \" + column + \", \" + selected);\n }\n\n vertex_click(row, col, sel, more) {\n if (more && more.vertex) {\n // console.log(\"Vertex click: \" + more.vertex.id());\n }\n }\n\n vertex_dblclick(row, col, sel, more) {\n if (more && more.vertex) {\n // console.log(\"Vertex double click: \" + more.vertex.id());\n }\n }\n\n edge_click(row, col, sel, more) {\n if (more && more.edge) {\n // console.log(\"Edge click: \" + more.edge.id());\n }\n }\n\n edge_dblclick(row, col, sel, more) {\n if (more && more.edge) {\n // console.log(\"Edge double click: \" + more.edge.id());\n }\n }\n}\nChartPanel.prototype._class += \" layout_ChartPanel\";\n\nexport interface ChartPanel {\n title(): string;\n title(_: string): this;\n titleVisible(): boolean;\n titleVisible(_: boolean): this;\n titleOverlay(): boolean;\n titleOverlay(_: boolean): this;\n title_exists(): boolean;\n titleFontSize(): number;\n titleFontSize(_: number): this;\n titleFontSize_exists(): boolean;\n titleIconFontSize(): number;\n titleIconFontSize(_: number): this;\n titleIconFontSize_exists(): boolean;\n dataVisible(): boolean;\n dataVisible(_: boolean): this;\n dataButtonVisible(): boolean;\n dataButtonVisible(_: boolean): this;\n downloadButtonVisible(): boolean;\n downloadButtonVisible(_: boolean): this;\n downloadImageButtonVisible(): boolean;\n downloadImageButtonVisible(_: boolean): this;\n downloadTitle(): string;\n downloadTitle(_: string): this;\n downloadTimestampSuffix(): boolean;\n downloadTimestampSuffix(_: boolean): this;\n legendVisible(): boolean;\n legendVisible(_: boolean): this;\n legendButtonVisible(): boolean;\n legendButtonVisible(_: boolean): this;\n legendPosition(): \"right\" | \"bottom\";\n legendPosition(_: \"right\" | \"bottom\"): this;\n description(): string;\n description(_: string): this;\n description_exists(): boolean;\n widget(): Widget;\n widget(_: Widget): this;\n widget_exists(): boolean;\n enableAutoscaling(): boolean;\n enableAutoscaling(_: boolean): this;\n enableAutoscaling_exists(): boolean;\n highlightSize(): number;\n highlightSize(_: number): this;\n highlightSize_exists(): boolean;\n highlightColor(): string;\n highlightColor(_: string): this;\n highlightColor_exists(): boolean;\n}\n\nChartPanel.prototype.publishReset();\nChartPanel.prototype.publishProxy(\"title\", \"_titleBar\");\nChartPanel.prototype.publish(\"titleVisible\", true, \"boolean\");\nChartPanel.prototype.publish(\"titleOverlay\", false, \"boolean\");\nChartPanel.prototype.publishProxy(\"titleIcon\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"titleIconFont\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"titleFont\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"titleIconFontSize\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"titleFontSize\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"description\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"descriptionFont\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"descriptionFontSize\", \"_titleBar\");\nChartPanel.prototype.publish(\"dataVisible\", false, \"boolean\", \"Show data table\");\nChartPanel.prototype.publish(\"dataButtonVisible\", true, \"boolean\", \"Show data table button\");\nChartPanel.prototype.publish(\"downloadButtonVisible\", true, \"boolean\", \"Show data download button\");\nChartPanel.prototype.publish(\"downloadImageButtonVisible\", false, \"boolean\", \"Show image download button\");\nChartPanel.prototype.publish(\"downloadTitle\", \"\", \"string\", \"File name when downloaded\");\nChartPanel.prototype.publish(\"downloadTimestampSuffix\", true, \"boolean\", \"Use timestamp as file name suffix\");\nChartPanel.prototype.publish(\"legendVisible\", false, \"boolean\", \"Show legend\");\nChartPanel.prototype.publish(\"legendButtonVisible\", true, \"boolean\", \"Show legend button\");\nChartPanel.prototype.publish(\"legendPosition\", \"right\", \"set\", \"Position of legend\", [\"right\", \"bottom\"]);\nChartPanel.prototype.publishProxy(\"legend_labelMaxWidth\", \"_legend\", \"labelMaxWidth\");\nChartPanel.prototype.publishProxy(\"legend_showSeriesTotal\", \"_legend\", \"showSeriesTotal\");\nChartPanel.prototype.publishProxy(\"legend_showLegendTotal\", \"_legend\", \"showLegendTotal\");\nChartPanel.prototype.publishProxy(\"legend_itemPadding\", \"_legend\", \"itemPadding\");\nChartPanel.prototype.publishProxy(\"legend_shapeRadius\", \"_legend\", \"shapeRadius\");\nChartPanel.prototype.publishProxy(\"legend_symbolType\", \"_legend\", \"symbolType\");\nChartPanel.prototype.publishProxy(\"legend_labelAlign\", \"_legend\", \"labelAlign\");\nChartPanel.prototype.publish(\"widget\", null, \"widget\", \"Widget\", undefined, { render: false });\nChartPanel.prototype.publish(\"enableAutoscaling\", false, \"boolean\");\nChartPanel.prototype.publish(\"highlightSize\", 4, \"number\");\nChartPanel.prototype.publish(\"highlightColor\", \"#e67e22\", \"html-color\");\nChartPanel.prototype.publishProxy(\"progress_halfLife\", \"_progressBar\", \"halfLife\");\nChartPanel.prototype.publishProxy(\"progress_decay\", \"_progressBar\", \"decay\");\nChartPanel.prototype.publishProxy(\"progress_size\", \"_progressBar\", \"size\");\nChartPanel.prototype.publishProxy(\"progress_color\", \"_progressBar\", \"color\");\nChartPanel.prototype.publishProxy(\"progress_blurBar\", \"_progressBar\", \"blurBar\");\nChartPanel.prototype.publishProxy(\"progress_blurSize\", \"_progressBar\", \"blurSize\");\nChartPanel.prototype.publishProxy(\"progress_blurColor\", \"_progressBar\", \"blurColor\");\nChartPanel.prototype.publishProxy(\"progress_blurOpacity\", \"_progressBar\", \"blurOpacity\");\n\nChartPanel.prototype.widget = function (_?) {\n if (!arguments.length) return this._widget;\n this._carousel.widgets([_, this._table]);\n this._widget = _;\n this._widget\n .fields(this._legend.filteredFields())\n .data(this._legend.filteredData())\n ;\n\n const context = this;\n const tmpAny = this._widget as any;\n tmpAny.click = function () {\n context.click.apply(context, arguments);\n };\n tmpAny.dblclick = function () {\n context.dblclick.apply(context, arguments);\n };\n tmpAny.vertex_click = function () {\n context.vertex_click.apply(context, arguments);\n };\n tmpAny.vertex_dblclick = function () {\n context.vertex_dblclick.apply(context, arguments);\n };\n tmpAny.edge_click = function () {\n context.edge_click.apply(context, arguments);\n };\n tmpAny.edge_dblclick = function () {\n context.edge_dblclick.apply(context, arguments);\n };\n return this;\n};\n","import { HTMLWidget } from \"@hpcc-js/common\";\nimport { select as d3Select } from \"d3-selection\";\n\nimport \"../src/FlexGrid.css\";\n\nexport class FlexGrid extends HTMLWidget {\n constructor() {\n super();\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n d3Select(domNode.parentNode)\n .style(\"height\", \"100%\")\n .style(\"width\", \"100%\")\n ;\n }\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n\n const cachedSizes = [];\n this.updateFlexParent(element);\n const listItems = element.selectAll(\".FlexGrid-list-item\").data(this.widgets(), w => w.id());\n listItems.enter()\n .append(\"div\")\n .classed(\"FlexGrid-list-item\", true)\n .each(function (w) {\n w.target(this);\n })\n .merge(listItems)\n .style(\"min-height\", this.itemMinHeight() + \"px\")\n .style(\"min-width\", this.itemMinWidth() + \"px\")\n .style(\"flex-basis\", (n, i) => {\n const flexBasis = this.widgetsFlexBasis()[i];\n return typeof flexBasis !== \"undefined\" ? flexBasis : this.flexBasis();\n })\n .style(\"flex-grow\", (n, i) => {\n const flexGrow = this.widgetsFlexGrow()[i];\n return typeof flexGrow !== \"undefined\" ? flexGrow : this.flexGrow();\n })\n .style(\"border-width\", this.borderWidth() + \"px\")\n .style(\"border-color\", this.itemBorderColor())\n .each(function () {\n this.firstChild.style.display = \"none\";\n })\n .each(function () {\n const rect = this.getBoundingClientRect();\n cachedSizes.push([\n rect.width,\n rect.height\n ]);\n })\n .each(function (w, i) {\n this.firstChild.style.display = \"block\";\n w.resize({\n width: cachedSizes[i][0] - (2 * context.borderWidth()),\n height: cachedSizes[i][1] - (2 * context.borderWidth())\n });\n })\n ;\n listItems.exit().remove();\n }\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n updateFlexParent(element) {\n element\n .style(\"height\", \"100%\")\n .style(\"flex-direction\", this.orientation() === \"horizontal\" ? \"row\" : \"column\")\n .style(\"flex-wrap\", this.flexWrap())\n .style(\"align-items\", this.alignItems())\n .style(\"align-content\", this.alignContent())\n .style(\"overflow-x\", () => {\n if (this.forceXScroll() || (this.orientation() === \"horizontal\" && this.flexWrap() === \"nowrap\" && !this.disableScroll())) {\n return \"scroll\";\n }\n return \"hidden\";\n })\n .style(\"overflow-y\", () => {\n if (this.forceYScroll() || (this.orientation() === \"vertical\" && this.flexWrap() === \"nowrap\" && !this.disableScroll())) {\n return \"scroll\";\n }\n return \"hidden\";\n })\n ;\n }\n}\nFlexGrid.prototype._class += \" layout_FlexGrid\";\n\nexport interface FlexGrid {\n widgets(): any;\n widgets(_: any): this;\n orientation(): \"horizontal\" | \"vertical\";\n orientation(_: \"horizontal\" | \"vertical\"): this;\n flexWrap(): \"nowrap\" | \"wrap\" | \"wrap-reverse\";\n flexWrap(_: \"nowrap\" | \"wrap\" | \"wrap-reverse\"): this;\n itemMinHeight(): number;\n itemMinHeight(_: number): this;\n itemMinWidth(): number;\n itemMinWidth(_: number): this;\n alignItems(): \"flex-start\" | \"center\" | \"flex-end\" | \"stretch\";\n alignItems(_: \"flex-start\" | \"center\" | \"flex-end\" | \"stretch\"): this;\n alignContent(): \"flex-start\" | \"center\" | \"flex-end\" | \"stretch\" | \"space-between\" | \"space-around\";\n alignContent(_: \"flex-start\" | \"center\" | \"flex-end\" | \"stretch\" | \"space-between\" | \"space-around\"): this;\n itemBorderColor(): string;\n itemBorderColor(_: string): this;\n borderWidth(): number;\n borderWidth(_: number): this;\n flexGrow(): number;\n flexGrow(_: number): this;\n widgetsFlexGrow(): number[];\n widgetsFlexGrow(_: number[]): this;\n flexBasis(): string;\n flexBasis(_: string): this;\n widgetsFlexBasis(): string[];\n widgetsFlexBasis(_: string[]): this;\n disableScroll(): boolean;\n disableScroll(_: boolean): this;\n forceXScroll(): boolean;\n forceXScroll(_: boolean): this;\n forceYScroll(): boolean;\n forceYScroll(_: boolean): this;\n}\n\nFlexGrid.prototype.publish(\"itemBorderColor\", \"transparent\", \"html-color\", \"Color of list item borders\");\nFlexGrid.prototype.publish(\"borderWidth\", 0, \"number\", \"Width of list item borders (pixels)\");\nFlexGrid.prototype.publish(\"orientation\", \"horizontal\", \"set\", \"Controls the flex-direction of the list items\", [\"horizontal\", \"vertical\"]);\nFlexGrid.prototype.publish(\"flexWrap\", \"wrap\", \"set\", \"Controls the line wrap when overflow occurs\", [\"nowrap\", \"wrap\", \"wrap-reverse\"]);\nFlexGrid.prototype.publish(\"disableScroll\", false, \"boolean\", \"If false, scrollbar will show (when flexWrap is set to 'nowrap')\", null, { disable: (w: any) => w.flexWrap() !== \"nowrap\" });\nFlexGrid.prototype.publish(\"forceXScroll\", false, \"boolean\", \"If true, horzontal scrollbar will show\");\nFlexGrid.prototype.publish(\"forceYScroll\", false, \"boolean\", \"If true, vertical scrollbar will show\");\nFlexGrid.prototype.publish(\"itemMinHeight\", 64, \"number\", \"Minimum height of a list item (pixels)\");\nFlexGrid.prototype.publish(\"itemMinWidth\", 64, \"number\", \"Minimum width of a list item (pixels)\");\nFlexGrid.prototype.publish(\"alignItems\", \"stretch\", \"set\", \"Controls normal alignment of items\", [\"flex-start\", \"center\", \"flex-end\", \"stretch\"]);\nFlexGrid.prototype.publish(\"alignContent\", \"stretch\", \"set\", \"Controls normal alignment of item rows\", [\"flex-start\", \"center\", \"flex-end\", \"stretch\", \"space-between\", \"space-around\"]);\nFlexGrid.prototype.publish(\"flexGrow\", 1, \"number\", \"Default flex-grow style for all list items\");\nFlexGrid.prototype.publish(\"flexBasis\", \"10%\", \"string\", \"Default flex-basis style for all list items\");\nFlexGrid.prototype.publish(\"widgetsFlexGrow\", [], \"array\", \"Array of flex-grow values keyed on the widgets array\");\nFlexGrid.prototype.publish(\"widgetsFlexBasis\", [], \"array\", \"Array of flex-basis values keyed on the widgets array\");\nFlexGrid.prototype.publish(\"widgets\", [], \"widgetArray\", \"Array of widgets to be rendered as list items\");\n","(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([], factory);\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.GridList = factory();\n }\n}(this, function() {\n\nvar GridList = function(items, options) {\n /**\n * A GridList manages the two-dimensional positions from a list of items,\n * within a virtual matrix.\n *\n * The GridList's main function is to convert the item positions from one\n * grid size to another, maintaining as much of their order as possible.\n *\n * The GridList's second function is to handle collisions when moving an item\n * over another.\n *\n * The positioning algorithm places items in columns. Starting from left to\n * right, going through each column top to bottom.\n *\n * The size of an item is expressed using the number of cols and rows it\n * takes up within the grid (w and h)\n *\n * The position of an item is express using the col and row position within\n * the grid (x and y)\n *\n * An item is an object of structure:\n * {\n * w: 3, h: 1,\n * x: 0, y: 1\n * }\n */\n\n this._options = options;\n for (var k in this.defaults) {\n if (!this._options.hasOwnProperty(k)) {\n this._options[k] = this.defaults[k];\n }\n }\n\n this.items = items;\n\n this._adjustSizeOfItems();\n\n this.generateGrid();\n};\n\nGridList.cloneItems = function(items, _items) {\n /**\n * Clone items with a deep level of one. Items are not referenced but their\n * properties are\n */\n var _item,\n i,\n k;\n if (_items === undefined) {\n _items = [];\n }\n for (i = 0; i < items.length; i++) {\n // XXX: this is good because we don't want to lose item reference, but\n // maybe we should clear their properties since some might be optional\n if (!_items[i]) {\n _items[i] = {};\n }\n for (k in items[i]) {\n _items[i][k] = items[i][k];\n }\n }\n return _items;\n};\n\nGridList.prototype = {\n\n defaults: {\n lanes: 5,\n direction: 'horizontal'\n },\n\n /**\n * Illustates grid as text-based table, using a number identifier for each\n * item. E.g.\n *\n * #| 0 1 2 3 4 5 6 7 8 9 10 11 12 13\n * --------------------------------------------\n * 0| 00 02 03 04 04 06 08 08 08 12 12 13 14 16\n * 1| 01 -- 03 05 05 07 09 10 11 11 -- 13 15 --\n *\n * Warn: Does not work if items don't have a width or height specified\n * besides their position in the grid.\n */\n toString: function() {\n var widthOfGrid = this.grid.length,\n output = '\\n #|',\n border = '\\n --',\n item,\n i,\n j;\n\n // Render the table header\n for (i = 0; i < widthOfGrid; i++) {\n output += ' ' + this._padNumber(i, ' ');\n border += '---';\n };\n output += border;\n\n // Render table contents row by row, as we go on the y axis\n for (i = 0; i < this._options.lanes; i++) {\n output += '\\n' + this._padNumber(i, ' ') + '|';\n for (j = 0; j < widthOfGrid; j++) {\n output += ' ';\n item = this.grid[j][i];\n output += item ? this._padNumber(this.items.indexOf(item), '0') : '--';\n }\n };\n output += '\\n';\n return output;\n },\n\n generateGrid: function() {\n /**\n * Build the grid structure from scratch, with the current item positions\n */\n var i;\n this._resetGrid();\n for (i = 0; i < this.items.length; i++) {\n this._markItemPositionToGrid(this.items[i]);\n }\n },\n\n resizeGrid: function(lanes) {\n var currentColumn = 0;\n\n this._options.lanes = lanes;\n this._adjustSizeOfItems();\n\n this._sortItemsByPosition();\n this._resetGrid();\n\n // The items will be sorted based on their index within the this.items array,\n // that is their \"1d position\"\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i],\n position = this._getItemPosition(item);\n\n this._updateItemPosition(\n item, this.findPositionForItem(item, {x: currentColumn, y: 0}));\n\n // New items should never be placed to the left of previous items\n currentColumn = Math.max(currentColumn, position.x);\n }\n\n this._pullItemsToLeft();\n },\n\n findPositionForItem: function(item, start, fixedRow) {\n /**\n * This method has two options for the position we want for the item:\n * - Starting from a certain row/column number and only looking for\n * positions to its right\n * - Accepting positions for a certain row number only (use-case: items\n * being shifted to the left/right as a result of collisions)\n *\n * @param {Object<x:Number, y:Number, w:Number, h:Number} item\n * @param {Object<x:Number, y:Number} start Position from which to start\n * the search.\n * @param {Number} [fixedRow] If provided, we're going to try to find a\n * position for the new item on it. If doesn't fit there, we're going\n * to put it on the first row.\n *\n * @returns {Number[2]} x and y.\n */\n\n var x, y, position;\n\n // Start searching for a position from the horizontal position of the\n // rightmost item from the grid\n for (x = start.x; x < this.grid.length; x++) {\n if (fixedRow !== undefined) {\n position = [x, fixedRow];\n\n if (this._itemFitsAtPosition(item, position)) {\n return position;\n }\n } else {\n for (y = start.y; y < this._options.lanes; y++) {\n position = [x, y];\n\n if (this._itemFitsAtPosition(item, position)) {\n return position;\n }\n }\n }\n }\n\n // If we've reached this point, we need to start a new column\n var newCol = this.grid.length,\n newRow = 0;\n\n if (fixedRow !== undefined &&\n this._itemFitsAtPosition(item, [newCol, fixedRow])) {\n newRow = fixedRow;\n }\n\n return [newCol, newRow];\n },\n\n moveItemToPosition: function(item, newPosition) {\n var position = this._getItemPosition({\n x: newPosition[0],\n y: newPosition[1],\n w: item.w,\n h: item.h\n });\n\n this._updateItemPosition(item, [position.x, position.y]);\n this._resolveCollisions(item);\n },\n\n resizeItem: function(item, size) {\n /**\n * Resize an item and resolve collisions.\n *\n * @param {Object} item A reference to an item that's part of the grid.\n * @param {Object} size\n * @param {Number} [size.w=item.w] The new width.\n * @param {Number} [size.h=item.h] The new height.\n */\n\n var width = size.w || item.w,\n height = size.h || item.h;\n\n this._updateItemSize(item, width, height);\n\n this._resolveCollisions(item);\n\n this._pullItemsToLeft();\n },\n\n getChangedItems: function(initialItems, idAttribute) {\n /**\n * Compare the current items against a previous snapshot and return only\n * the ones that changed their attributes in the meantime. This includes both\n * position (x, y) and size (w, h)\n *\n * Since both their position and size can change, the items need an\n * additional identifier attribute to match them with their previous state\n */\n var changedItems = [];\n\n for (var i = 0; i < initialItems.length; i++) {\n var item = this._getItemByAttribute(idAttribute,\n initialItems[i][idAttribute]);\n\n if (item.x !== initialItems[i].x ||\n item.y !== initialItems[i].y ||\n item.w !== initialItems[i].w ||\n item.h !== initialItems[i].h) {\n changedItems.push(item);\n }\n }\n\n return changedItems;\n },\n\n _sortItemsByPosition: function() {\n this.items.sort(function(item1, item2) {\n var position1 = this._getItemPosition(item1),\n position2 = this._getItemPosition(item2);\n\n // Try to preserve columns.\n if (position1.x != position2.x) {\n return position1.x - position2.x;\n }\n\n if (position1.y != position2.y) {\n return position1.y - position2.y;\n }\n\n // The items are placed on the same position.\n return 0;\n }.bind(this));\n },\n\n _adjustSizeOfItems: function() {\n /**\n * Some items can have 100% height or 100% width. Those dimmensions are\n * expressed as 0. We need to ensure a valid width and height for each of\n * those items as the number of items per lane.\n */\n\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i];\n\n // This can happen only the first time items are checked.\n // We need the property to have a value for all the items so that the\n // `cloneItems` method will merge the properties properly. If we only set\n // it to the items that need it then the following can happen:\n //\n // cloneItems([{id: 1, autoSize: true}, {id: 2}],\n // [{id: 2}, {id: 1, autoSize: true}]);\n //\n // will result in\n //\n // [{id: 1, autoSize: true}, {id: 2, autoSize: true}]\n if (item.autoSize === undefined) {\n item.autoSize = item.w === 0 || item.h === 0;\n }\n\n if (item.autoSize) {\n if (this._options.direction === 'horizontal') {\n item.h = this._options.lanes;\n } else {\n item.w = this._options.lanes;\n }\n }\n }\n },\n\n _resetGrid: function() {\n this.grid = [];\n },\n\n _itemFitsAtPosition: function(item, newPosition) {\n /**\n * Check that an item wouldn't overlap with another one if placed at a\n * certain position within the grid\n */\n\n var position = this._getItemPosition(item),\n x, y, row;\n\n // No coordonate can be negative\n if (newPosition[0] < 0 || newPosition[1] < 0) {\n return false;\n }\n\n // Make sure the item isn't larger than the entire grid\n if (newPosition[1] + position.h > this._options.lanes) {\n return false;\n }\n\n // Make sure the position doesn't overlap with an already positioned\n // item.\n for (x = newPosition[0]; x < newPosition[0] + position.w; x++) {\n var col = this.grid[x];\n\n // Surely a column that hasn't even been created yet is available\n if (!col) {\n continue;\n }\n\n for (y = newPosition[1]; y < newPosition[1] + position.h; y++) {\n // Any space occupied by an item can continue to be occupied by the\n // same item.\n if (col[y] && col[y] !== item) {\n return false;\n }\n }\n }\n\n return true;\n },\n\n _updateItemPosition: function(item, position) {\n if (item.x !== null && item.y !== null) {\n this._deleteItemPositionFromGrid(item);\n }\n\n this._setItemPosition(item, position);\n\n this._markItemPositionToGrid(item);\n },\n\n _updateItemSize: function(item, width, height) {\n /**\n * @param {Object} item A reference to a grid item.\n * @param {Number} width The new width.\n * @param {Number} height The new height.\n */\n\n if (item.x !== null && item.y !== null) {\n this._deleteItemPositionFromGrid(item);\n }\n\n item.w = width;\n item.h = height;\n\n this._markItemPositionToGrid(item);\n },\n\n _markItemPositionToGrid: function(item) {\n /**\n * Mark the grid cells that are occupied by an item. This prevents items\n * from overlapping in the grid\n */\n\n var position = this._getItemPosition(item),\n x, y;\n\n // Ensure that the grid has enough columns to accomodate the current item.\n this._ensureColumns(position.x + position.w);\n\n for (x = position.x; x < position.x + position.w; x++) {\n for (y = position.y; y < position.y + position.h; y++) {\n this.grid[x][y] = item;\n }\n }\n },\n\n _deleteItemPositionFromGrid: function(item) {\n var position = this._getItemPosition(item),\n x, y;\n\n for (x = position.x; x < position.x + position.w; x++) {\n // It can happen to try to remove an item from a position not generated\n // in the grid, probably when loading a persisted grid of items. No need\n // to create a column to be able to remove something from it, though\n if (!this.grid[x]) {\n continue;\n }\n\n for (y = position.y; y < position.y + position.h; y++) {\n // Don't clear the cell if it's been occupied by a different widget in\n // the meantime (e.g. when an item has been moved over this one, and\n // thus by continuing to clear this item's previous position you would\n // cancel the first item's move, leaving it without any position even)\n if (this.grid[x][y] == item) {\n this.grid[x][y] = null;\n }\n }\n }\n },\n\n _ensureColumns: function(N) {\n /**\n * Ensure that the grid has at least N columns available.\n */\n var i;\n for (i = 0; i < N; i++) {\n if (!this.grid[i]) {\n this.grid.push(new GridCol(this._options.lanes));\n }\n }\n },\n\n _getItemsCollidingWithItem: function(item) {\n var collidingItems = [];\n for (var i = 0; i < this.items.length; i++) {\n if (item != this.items[i] &&\n this._itemsAreColliding(item, this.items[i])) {\n collidingItems.push(i);\n }\n }\n return collidingItems;\n },\n\n _itemsAreColliding: function(item1, item2) {\n var position1 = this._getItemPosition(item1),\n position2 = this._getItemPosition(item2);\n\n return !(position2.x >= position1.x + position1.w ||\n position2.x + position2.w <= position1.x ||\n position2.y >= position1.y + position1.h ||\n position2.y + position2.h <= position1.y);\n },\n\n _resolveCollisions: function(item) {\n if (!this._tryToResolveCollisionsLocally(item)) {\n this._pullItemsToLeft(item);\n }\n this._pullItemsToLeft();\n },\n\n _tryToResolveCollisionsLocally: function(item) {\n /**\n * Attempt to resolve the collisions after moving a an item over one or more\n * other items within the grid, by shifting the position of the colliding\n * items around the moving one. This might result in subsequent collisions,\n * in which case we will revert all position permutations. To be able to\n * revert to the initial item positions, we create a virtual grid in the\n * process\n */\n var collidingItems = this._getItemsCollidingWithItem(item);\n if (!collidingItems.length) {\n return true;\n }\n var _gridList = new GridList([], this._options),\n leftOfItem,\n rightOfItem,\n aboveOfItem,\n belowOfItem;\n\n GridList.cloneItems(this.items, _gridList.items);\n _gridList.generateGrid();\n\n for (var i = 0; i < collidingItems.length; i++) {\n var collidingItem = _gridList.items[collidingItems[i]],\n collidingPosition = this._getItemPosition(collidingItem);\n\n // We use a simple algorithm for moving items around when collisions occur:\n // In this prioritized order, we try to move a colliding item around the\n // moving one:\n // 1. to its left side\n // 2. above it\n // 3. under it\n // 4. to its right side\n var position = this._getItemPosition(item);\n\n leftOfItem = [position.x - collidingPosition.w, collidingPosition.y];\n rightOfItem = [position.x + position.w, collidingPosition.y];\n aboveOfItem = [collidingPosition.x, position.y - collidingPosition.h];\n belowOfItem = [collidingPosition.x, position.y + position.h];\n\n if (_gridList._itemFitsAtPosition(collidingItem, leftOfItem)) {\n _gridList._updateItemPosition(collidingItem, leftOfItem);\n } else if (_gridList._itemFitsAtPosition(collidingItem, aboveOfItem)) {\n _gridList._updateItemPosition(collidingItem, aboveOfItem);\n } else if (_gridList._itemFitsAtPosition(collidingItem, belowOfItem)) {\n _gridList._updateItemPosition(collidingItem, belowOfItem);\n } else if (_gridList._itemFitsAtPosition(collidingItem, rightOfItem)) {\n _gridList._updateItemPosition(collidingItem, rightOfItem);\n } else {\n // Collisions failed, we must use the pullItemsToLeft method to arrange\n // the other items around this item with fixed position. This is our\n // plan B for when local collision resolving fails.\n return false;\n }\n }\n // If we reached this point it means we managed to resolve the collisions\n // from one single iteration, just by moving the colliding items around. So\n // we accept this scenario and marge the brached-out grid instance into the\n // original one\n GridList.cloneItems(_gridList.items, this.items);\n this.generateGrid();\n return true;\n },\n\n _pullItemsToLeft: function(fixedItem) {\n /**\n * Build the grid from scratch, by using the current item positions and\n * pulling them as much to the left as possible, removing as space between\n * them as possible.\n *\n * If a \"fixed item\" is provided, its position will be kept intact and the\n * rest of the items will be layed around it.\n */\n\n\n // Start a fresh grid with the fixed item already placed inside\n this._sortItemsByPosition();\n this._resetGrid();\n\n // Start the grid with the fixed item as the first positioned item\n if (fixedItem) {\n var fixedPosition = this._getItemPosition(fixedItem);\n this._updateItemPosition(fixedItem, [fixedPosition.x, fixedPosition.y]);\n }\n\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i],\n position = this._getItemPosition(item);\n\n // The fixed item keeps its exact position\n if (fixedItem && item == fixedItem) {\n continue;\n }\n\n var x = this._findLeftMostPositionForItem(item),\n newPosition = this.findPositionForItem(\n item, {x: x, y: 0}, position.y);\n\n this._updateItemPosition(item, newPosition);\n }\n },\n\n _findLeftMostPositionForItem: function(item) {\n /**\n * When pulling items to the left, we need to find the leftmost position for\n * an item, with two considerations in mind:\n * - preserving its current row\n * - preserving the previous horizontal order between items\n */\n\n var tail = 0,\n position = this._getItemPosition(item);\n\n for (var i = 0; i < this.grid.length; i++) {\n for (var j = position.y; j < position.y + position.h; j++) {\n var otherItem = this.grid[i][j];\n\n if (!otherItem) {\n continue;\n }\n\n var otherPosition = this._getItemPosition(otherItem);\n\n if (this.items.indexOf(otherItem) < this.items.indexOf(item)) {\n tail = otherPosition.x + otherPosition.w;\n }\n }\n }\n\n return tail;\n },\n\n _getItemByAttribute: function(key, value) {\n for (var i = 0; i < this.items.length; i++) {\n if (this.items[i][key] === value) {\n return this.items[i];\n }\n }\n return null;\n },\n\n _padNumber: function(nr, prefix) {\n // Currently works for 2-digit numbers (<100)\n return nr >= 10 ? nr : prefix + nr;\n },\n\n _getItemPosition: function(item) {\n /**\n * If the direction is vertical we need to rotate the grid 90 deg to the\n * left. Thus, we simulate the fact that items are being pulled to the top.\n *\n * Since the items have widths and heights, if we apply the classic\n * counter-clockwise 90 deg rotation\n *\n * [0 -1]\n * [1 0]\n *\n * then the top left point of an item will become the bottom left point of\n * the rotated item. To adjust for this, we need to subtract from the y\n * position the height of the original item - the width of the rotated item.\n *\n * However, if we do this then we'll reverse some actions: resizing the\n * width of an item will stretch the item to the left instead of to the\n * right; resizing an item that doesn't fit into the grid will push the\n * items around it instead of going on a new row, etc.\n *\n * We found it better to do a vertical flip of the grid after rotating it.\n * This restores the direction of the actions and greatly simplifies the\n * transformations.\n */\n\n if (this._options.direction === 'horizontal') {\n return item;\n } else {\n return {\n x: item.y,\n y: item.x,\n w: item.h,\n h: item.w\n };\n }\n },\n\n _setItemPosition: function(item, position) {\n /**\n * See _getItemPosition.\n */\n\n if (this._options.direction === 'horizontal') {\n item.x = position[0];\n item.y = position[1];\n } else {\n // We're supposed to subtract the rotated item's height which is actually\n // the non-rotated item's width.\n item.x = position[1];\n item.y = position[0];\n }\n }\n};\n\nvar GridCol = function(lanes) {\n for (var i = 0; i < lanes; i++) {\n this.push(null);\n }\n};\n\n// Extend the Array prototype\nGridCol.prototype = [];\n\n// This module will have direct access to the GridList class\nreturn GridList;\n\n}));\n","import { d3Event, drag as d3Drag, HTMLWidget, Platform, select as d3Select, Utility } from \"@hpcc-js/common\";\nimport * as _GridList from \"grid-list\";\nimport { Cell } from \"./Cell\";\n\nimport \"../src/Grid.css\";\n\nconst GridList = (_GridList && _GridList.default) || _GridList;\n\nexport type ICellPosition = [number, number, number, number];\n\nexport class Grid extends HTMLWidget {\n divItems;\n\n gridList;\n items;\n itemsMap;\n origItems;\n cellWidth;\n cellHeight;\n dragItem;\n dragItemPos;\n\n _d3Drag;\n _d3DragResize;\n _selectionBag;\n _scrollBarWidth;\n\n constructor() {\n super();\n\n this._tag = \"div\";\n this._selectionBag = new Utility.Selection(this);\n\n this.content([]);\n }\n\n getDimensions() {\n const size = { width: 0, height: 0 };\n this.content().forEach(function (cell) {\n if (size.width < cell.gridCol() + cell.gridColSpan()) {\n size.width = cell.gridCol() + cell.gridColSpan();\n }\n if (size.height < cell.gridRow() + cell.gridRowSpan()) {\n size.height = cell.gridRow() + cell.gridRowSpan();\n }\n }, this);\n return size;\n }\n\n clearContent(widget) {\n this.content(this.content().filter(function (contentWidget) {\n if (!widget) {\n contentWidget.target(null);\n return false;\n }\n let w: any = contentWidget;\n while (w) {\n if (widget === w) {\n contentWidget.target(null);\n return false;\n }\n w = w.widget ? w.widget() : null;\n }\n return true;\n }));\n }\n\n setContent(row, col, widget, title?, rowSpan?, colSpan?) {\n rowSpan = rowSpan || 1;\n colSpan = colSpan || 1;\n title = title || \"\";\n this.content(this.content().filter(function (contentWidget) {\n if (contentWidget.gridRow() === row && contentWidget.gridCol() === col) {\n contentWidget.target(null);\n return false;\n }\n return true;\n }));\n if (widget) {\n const cell = new Cell()\n .gridRow(row)\n .gridCol(col)\n .widget(widget)\n .title(title)\n .gridRowSpan(rowSpan)\n .gridColSpan(colSpan)\n ;\n this.content().push(cell);\n }\n return this;\n }\n\n sortedContent() {\n return this.content().sort(function (l, r) {\n if (l.gridRow() === r.gridRow()) {\n return l.gridCol() - r.gridCol();\n }\n return l.gridRow() - r.gridRow();\n });\n }\n\n getCell(row, col) {\n let retVal = null;\n this.content().some(function (cell) {\n if (row >= cell.gridRow() && row < cell.gridRow() + cell.gridRowSpan() &&\n col >= cell.gridCol() && col < cell.gridCol() + cell.gridColSpan()) {\n retVal = cell;\n return true;\n }\n return false;\n });\n return retVal;\n }\n\n getWidgetCell(id) {\n let retVal = null;\n this.content().some(function (cell) {\n if (cell.widget().id() === id) {\n retVal = cell;\n return true;\n }\n return false;\n });\n return retVal;\n }\n\n getContent(id) {\n let retVal = null;\n this.content().some(function (cell) {\n if (cell.widget().id() === id) {\n retVal = cell.widget();\n return true;\n }\n return false;\n });\n return retVal;\n }\n\n cellToGridItem(cell) {\n return {\n x: cell.gridCol(),\n y: cell.gridRow(),\n w: cell.gridColSpan(),\n h: cell.gridRowSpan(),\n id: cell.id(),\n cell\n };\n }\n\n gridItemToCell(item) {\n item.cell\n .gridCol(item.x)\n .gridRow(item.y)\n .gridColSpan(item.w)\n .gridRowSpan(item.h)\n ;\n }\n\n resetItemsPos() {\n this.origItems.forEach(function (origItem) {\n const item = this.itemsMap[origItem.id];\n item.x = origItem.x;\n item.y = origItem.y;\n }, this);\n }\n\n initGridList() {\n this.itemsMap = {};\n this.items = this.content().map(function (cell) {\n const retVal = this.cellToGridItem(cell);\n this.itemsMap[retVal.id] = retVal;\n return retVal;\n }, this);\n this.origItems = this.content().map(this.cellToGridItem);\n this.gridList = new GridList(this.items, {\n direction: this.snapping(),\n lanes: this.snapping() === \"horizontal\" ? this.snappingRows() : this.snappingColumns()\n });\n }\n\n killGridList() {\n this.gridList = null;\n delete this.items;\n delete this.itemsMap;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n\n this._scrollBarWidth = Platform.getScrollbarWidth();\n\n const context = this;\n this._d3Drag = d3Drag()\n .subject(function (_d) {\n const d = context.cellToGridItem(_d);\n return { x: d.x * context.cellWidth, y: d.y * context.cellHeight };\n })\n .on(\"start\", function (_d: any) {\n if (!context.designMode()) return;\n d3Event().sourceEvent.stopPropagation();\n context.initGridList();\n const d = context.itemsMap[_d.id()];\n context.dragItem = element.append(\"div\")\n .attr(\"class\", \"dragging\")\n .style(\"transform\", function () { return \"translate(\" + d.x * context.cellWidth + \"px, \" + d.y * context.cellHeight + \"px)\"; })\n .style(\"width\", function () { return d.w * context.cellWidth - context.gutter() + \"px\"; })\n .style(\"height\", function () { return d.h * context.cellHeight - context.gutter() + \"px\"; })\n ;\n context.selectionBagClick(_d);\n })\n .on(\"drag\", function (_d: any) {\n if (!context.designMode()) return;\n const event = d3Event();\n event.sourceEvent.stopPropagation();\n const d = context.itemsMap[_d.id()];\n if (event.x < 0) {\n event.x = 0;\n }\n if (event.x + d.w * context.cellWidth > context.snappingColumns() * context.cellWidth) {\n event.x = context.snappingColumns() * context.cellWidth - d.w * context.cellWidth;\n }\n if (event.y < 0) {\n event.y = 0;\n }\n if (event.y + d.h * context.cellWidth > context.snappingRows() * context.cellWidth) {\n event.y = context.snappingRows() * context.cellWidth - d.h * context.cellWidth;\n }\n const pos = [Math.max(0, Math.floor((event.x + context.cellWidth / 2) / context.cellWidth)), Math.max(0, Math.floor((event.y + context.cellHeight / 2) / context.cellHeight))];\n if (d.x !== pos[0] || d.y !== pos[1]) {\n if (context.snapping() !== \"none\") {\n context.resetItemsPos();\n context.gridList.moveItemToPosition(d, pos);\n } else {\n d.x = pos[0];\n d.y = pos[1];\n }\n if (_d.gridCol() !== d.x || _d.gridRow() !== d.y) {\n context.items.forEach(context.gridItemToCell);\n context.updateGrid(false, 100);\n }\n }\n context.dragItem\n .style(\"transform\", function () { return \"translate(\" + event.x + \"px, \" + event.y + \"px)\"; })\n .style(\"width\", function () { return d.w * context.cellWidth + \"px\"; })\n .style(\"height\", function () { return d.h * context.cellHeight + \"px\"; })\n ;\n })\n .on(\"end\", function () {\n if (!context.designMode()) return;\n d3Event().sourceEvent.stopPropagation();\n context.dragItem.remove();\n context.dragItem = null;\n context.killGridList();\n })\n ;\n\n this._d3DragResize = d3Drag()\n .subject(function (_d) {\n const d = context.cellToGridItem(_d);\n return { x: (d.x + d.w - 1) * context.cellWidth, y: (d.y + d.h - 1) * context.cellHeight };\n })\n .on(\"start\", function (_d: any) {\n if (!context.designMode()) return;\n d3Event().sourceEvent.stopPropagation();\n context.initGridList();\n const d = context.itemsMap[_d.id()];\n context.dragItem = element.append(\"div\")\n .attr(\"class\", \"resizing\")\n .style(\"transform\", function () { return \"translate(\" + d.x * context.cellWidth + \"px, \" + d.y * context.cellHeight + \"px)\"; })\n .style(\"width\", function () { return d.w * context.cellWidth - context.gutter() + \"px\"; })\n .style(\"height\", function () { return d.h * context.cellHeight - context.gutter() + \"px\"; })\n ;\n context.dragItemPos = { x: d.x, y: d.y };\n })\n .on(\"drag\", function (_d: any) {\n if (!context.designMode()) return;\n const event = d3Event();\n event.sourceEvent.stopPropagation();\n const d = context.itemsMap[_d.id()];\n const pos = [Math.max(0, Math.round(event.x / context.cellWidth)), Math.max(0, Math.round(event.y / context.cellHeight))];\n const size = {\n w: Math.max(1, pos[0] - d.x + 1),\n h: Math.max(1, pos[1] - d.y + 1)\n };\n if (d.w !== size.w || d.h !== size.h) {\n if (context.snapping() !== \"none\") {\n context.resetItemsPos();\n context.gridList.resizeItem(d, size);\n } else {\n d.w = size.w;\n d.h = size.h;\n }\n if (_d.gridColSpan() !== d.w || _d.gridRowSpan() !== d.h) {\n context.items.forEach(context.gridItemToCell);\n context.updateGrid(d.id, 100);\n }\n }\n context.dragItem\n .style(\"width\", function () { return (-d.x + 1) * context.cellWidth + event.x - context.gutter() + \"px\"; })\n .style(\"height\", function () { return (-d.y + 1) * context.cellHeight + event.y - context.gutter() + \"px\"; })\n ;\n })\n .on(\"end\", function () {\n if (!context.designMode()) return;\n d3Event().sourceEvent.stopPropagation();\n context.dragItem.remove();\n context.dragItem = null;\n context.killGridList();\n })\n ;\n }\n\n updateGrid(resize, transitionDuration: number = 0, _noRender: boolean = false) {\n transitionDuration = transitionDuration || 0;\n const context = this;\n this.divItems\n .classed(\"draggable\", this.designMode())\n .transition().duration(transitionDuration)\n .style(\"left\", function (d) { return d.gridCol() * context.cellWidth + context.gutter() / 2 + \"px\"; })\n .style(\"top\", function (d) { return d.gridRow() * context.cellHeight + context.gutter() / 2 + \"px\"; })\n .style(\"width\", function (d) { return d.gridColSpan() * context.cellWidth - context.gutter() + \"px\"; })\n .style(\"height\", function (d) { return d.gridRowSpan() * context.cellHeight - context.gutter() + \"px\"; })\n .on(\"end\", function (d) {\n d\n .surfaceShadow_default(context.surfaceShadow())\n .surfacePadding_default(context.surfacePadding())\n .surfaceBorderWidth_default(context.surfaceBorderWidth())\n .surfaceBackgroundColor_default(context.surfaceBackgroundColor())\n ;\n\n if (resize === true || resize === d.id()) {\n d\n .resize()\n .lazyRender()\n ;\n }\n })\n ;\n }\n\n update(domNode, element2) {\n super.update(domNode, element2);\n\n this._placeholderElement.style(\"overflow-x\", this.fitTo() === \"width\" ? \"hidden\" : null);\n this._placeholderElement.style(\"overflow-y\", this.fitTo() === \"width\" ? \"scroll\" : null);\n const dimensions = this.getDimensions();\n const clientWidth = this.width() - (this.fitTo() === \"width\" ? this._scrollBarWidth : 0);\n this.cellWidth = clientWidth / dimensions.width;\n this.cellHeight = this.fitTo() === \"all\" ? this.height() / dimensions.height : this.cellWidth;\n if (this.designMode()) {\n const cellLaneRatio = Math.min(this.width() / this.snappingColumns(), this.height() / this.snappingRows());\n const laneWidth = Math.floor(cellLaneRatio);\n this.cellWidth = laneWidth;\n this.cellHeight = this.cellWidth;\n }\n\n // Grid ---\n const context = this;\n const divItems = element2.selectAll(\"#\" + this.id() + \" > .ddCell\").data(this.content(), function (d) { return d.id(); });\n this.divItems = divItems.enter().append(\"div\")\n .attr(\"class\", \"ddCell\")\n .each(function (d) {\n d.target(this);\n d.__grid_watch = d.monitor(function (key, newVal, oldVal) {\n if (context._renderCount && (key === \"snapping\" || key.indexOf(\"grid\") === 0) && newVal !== oldVal) {\n if (!context.gridList) {\n // API Call (only needed when not dragging) ---\n context.initGridList();\n if (context.snapping() !== \"none\") {\n context.gridList.resizeGrid(context.snapping() === \"horizontal\" ? context.snappingRows() : context.snappingColumns());\n }\n context.items.forEach(context.gridItemToCell);\n context.updateGrid(d.id(), 100);\n context.killGridList();\n }\n }\n });\n const element = d3Select(this);\n element.append(\"div\")\n .attr(\"class\", \"resizeHandle\")\n .call(context._d3DragResize)\n .append(\"div\")\n .attr(\"class\", \"resizeHandleDisplay\")\n ;\n }).merge(divItems)\n ;\n this.divItems.each(function (d) {\n const element = d3Select(this);\n if (context.designMode()) {\n element.call(context._d3Drag);\n } else {\n element\n .on(\"mousedown.drag\", null)\n .on(\"touchstart.drag\", null)\n ;\n }\n });\n this.divItems.select(\".resizeHandle\")\n .style(\"display\", this.designMode() ? null : \"none\")\n ;\n\n this.updateGrid(true);\n divItems.exit()\n .each(function (d) {\n d.target(null);\n if (d.__grid_watch) {\n d.__grid_watch.remove();\n }\n })\n .remove()\n ;\n\n // Snapping ---\n const lanesBackground = element2.selectAll(\"#\" + this.id() + \" > .laneBackground\").data(this.designMode() ? [\"\"] : []);\n lanesBackground.enter().insert(\"div\", \":first-child\")\n .attr(\"class\", \"laneBackground\")\n .style(\"left\", \"1px\")\n .style(\"top\", \"1px\")\n .on(\"click\", function () {\n context.selectionBagClear();\n })\n .merge(lanesBackground)\n .style(\"width\", (this.snappingColumns() * this.cellWidth) + \"px\")\n .style(\"height\", (this.snappingRows() * this.cellHeight) + \"px\")\n ;\n lanesBackground.exit()\n .each(function () {\n context.selectionBagClear();\n })\n .remove()\n ;\n\n const lanes = element2.selectAll(\"#\" + this.id() + \" > .lane\").data(this.designMode() ? [\"\"] : []);\n lanes.enter().append(\"div\")\n .attr(\"class\", \"lane\")\n .style(\"left\", \"1px\")\n .style(\"top\", \"1px\")\n ;\n lanes\n .style(\"display\", this.showLanes() ? null : \"none\")\n .style(\"width\", (this.snappingColumns() * this.cellWidth) + \"px\")\n .style(\"height\", (this.snappingRows() * this.cellHeight) + \"px\")\n .style(\"background-image\", \"linear-gradient(to right, grey 1px, transparent 1px), linear-gradient(to bottom, grey 1px, transparent 1px)\")\n .style(\"background-size\", this.cellWidth + \"px \" + this.cellHeight + \"px\")\n ;\n lanes.exit()\n .remove()\n ;\n }\n\n exit(domNode, element) {\n this.content().forEach(w => w.target(null));\n super.exit(domNode, element);\n }\n\n _createSelectionObject(d) {\n return {\n _id: d._id,\n element: () => {\n return d._element;\n },\n widget: d\n };\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 selectionBagClear() {\n if (!this._selectionBag.isEmpty()) {\n this._selectionBag.clear();\n this.postSelectionChange();\n }\n }\n\n selectionBagClick(d) {\n if (d !== null) {\n const selectionObj = this._createSelectionObject(d);\n if (d3Event().sourceEvent.ctrlKey) {\n if (this._selectionBag.isSelected(selectionObj)) {\n this._selectionBag.remove(selectionObj);\n this.postSelectionChange();\n } else {\n this._selectionBag.append(selectionObj);\n this.postSelectionChange();\n }\n } else {\n const selected = this._selectionBag.get();\n if (selected.length === 1 && selected[0]._id === selectionObj._id) {\n this.selectionBagClear();\n } else {\n this._selectionBag.set([selectionObj]);\n }\n this.postSelectionChange();\n }\n }\n }\n\n postSelectionChange() {\n }\n\n applyLayout(layoutArr: ICellPosition[]) {\n this.divItems.each((d, i) => {\n if (layoutArr[i]) {\n const [x, y, w, h] = layoutArr[i];\n d\n .gridCol(x)\n .gridRow(y)\n .gridColSpan(w)\n .gridRowSpan(h)\n ;\n }\n });\n this.updateGrid(true);\n }\n\n vizActivation(elem) {\n }\n}\nGrid.prototype._class += \" layout_Grid\";\n\nexport interface Grid {\n designMode(): boolean;\n designMode(_: boolean): this;\n showLanes(): boolean;\n showLanes(_: boolean): this;\n fitTo(): string;\n fitTo(_: string): this;\n\n snapping(): string;\n snapping(_: string): this;\n snappingColumns(): number;\n snappingColumns(_: number): this;\n snappingRows(): number;\n snappingRows(_: number): this;\n snappingColumns_default(): number;\n snappingColumns_default(_: number): this;\n snappingRows_default(): number;\n snappingRows_default(_: number): this;\n\n gutter(): number;\n gutter(_: number): this;\n\n surfaceShadow(): boolean;\n surfaceShadow(_: boolean): this;\n surfacePadding(): string;\n surfacePadding(_: string): this;\n surfaceBorderWidth(): number;\n surfaceBorderWidth(_: number): this;\n surfaceBackgroundColor(): string;\n surfaceBackgroundColor(_: string): this;\n\n content(): Cell[];\n content(_: Cell[]): this;\n}\n\nGrid.prototype.publish(\"designMode\", false, \"boolean\", \"Design Mode\", null, { tags: [\"Basic\"] });\nGrid.prototype.publish(\"showLanes\", true, \"boolean\", \"Show snapping lanes when in design mode\", null, { tags: [\"Basic\"], disable: w => !w.designMode() });\nGrid.prototype.publish(\"fitTo\", \"all\", \"set\", \"Sizing Strategy\", [\"all\", \"width\"], { tags: [\"Basic\"] });\nGrid.prototype.publish(\"snapping\", \"vertical\", \"set\", \"Snapping Strategy\", [\"vertical\", \"horizontal\", \"none\"]);\nGrid.prototype.publish(\"snappingColumns\", 12, \"number\", \"Snapping Columns\");\nGrid.prototype.publish(\"snappingRows\", 16, \"number\", \"Snapping Rows\");\n\nGrid.prototype.publish(\"gutter\", 6, \"number\", \"Gap Between Widgets\", null, { tags: [\"Basic\"] });\n\nGrid.prototype.publish(\"surfaceShadow\", true, \"boolean\", \"3D Shadow\");\nGrid.prototype.publish(\"surfacePadding\", null, \"string\", \"Cell Padding (px)\", null, { tags: [\"Intermediate\"] });\nGrid.prototype.publish(\"surfaceBorderWidth\", 1, \"number\", \"Width (px) of Cell Border\", null, { tags: [\"Intermediate\"] });\nGrid.prototype.publish(\"surfaceBackgroundColor\", null, \"html-color\", \"Surface Background Color\", null, { tags: [\"Advanced\"] });\n\nGrid.prototype.publish(\"content\", [], \"widgetArray\", \"widgets\", null, { tags: [\"Basic\"], render: false });\n","import { FlexGrid } from \"./FlexGrid\";\n\nexport class HorizontalList extends FlexGrid {\n constructor() {\n super();\n this.orientation_default(\"horizontal\");\n this.flexWrap_default(\"nowrap\");\n }\n}\nHorizontalList.prototype._class += \" layout_HorizontalList\";\n\nexport interface HorizontalList {\n orientation_default(_: \"horizontal\" | \"vertical\");\n flexWrap_default(_: \"nowrap\" | \"wrap\" | \"wrap-reverse\");\n}\n","import { HTMLWidget, Text } from \"@hpcc-js/common\";\n\nimport \"../src/Layered.css\";\n\nexport type LayerPlacement = \"default\" | \"top\" | \"right\" | \"bottom\" | \"left\" | \"center\";\n\nexport class Layered extends HTMLWidget {\n protected _contentContainer;\n _widgetPlacements;\n _widgetRatios;\n constructor() {\n super();\n\n this._tag = \"div\";\n this._widgetPlacements = [];\n this._widgetRatios = [];\n }\n\n addLayer(widget, placement: LayerPlacement = \"default\", widthRatio: number = 1, heightRatio: number = 1) {\n const widgets = this.widgets();\n widgets.push(widget ? widget : new Text().text(\"No widget defined for layer.\"));\n this.widgets(widgets);\n this._widgetPlacements.push(placement);\n this._widgetRatios.push([widthRatio, heightRatio]);\n return this;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._contentContainer = element.append(\"div\")\n .attr(\"class\", \"container\")\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n\n element.style(\"padding\", this.surfacePadding() + \"px\");\n\n const content = this._contentContainer.selectAll(\".content.id\" + this.id()).data(this.widgets(), function (d) { return d.id(); });\n content.enter().append(\"div\")\n .attr(\"class\", \"content id\" + this.id())\n .each(function (widget, idx) {\n widget.target(this);\n })\n .merge(content)\n .each(function (widget, idx) {\n const clientSize = {\n width: context.clientWidth(),\n height: context.clientHeight()\n };\n const widgetSize = context.widgetSize(idx, clientSize);\n const widgetPosition = context.widgetPosition(idx, clientSize, widgetSize);\n this.style.top = widgetPosition.y + \"px\";\n this.style.left = widgetPosition.x + \"px\";\n widget\n .resize(widgetSize)\n .render()\n ;\n })\n ;\n content.exit()\n .each(function (widget, idx) {\n widget\n .target(null)\n ;\n })\n .remove()\n ;\n content.order();\n }\n\n widgetSize(idx, clientSize) {\n if (this._widgetPlacements[idx] === \"default\") {\n return {\n width: clientSize.width * this._widgetRatios[idx][0],\n height: clientSize.height * this._widgetRatios[idx][1]\n };\n } else {\n return {\n width: clientSize.width * this._widgetRatios[idx][0],\n height: clientSize.height * this._widgetRatios[idx][1]\n };\n }\n }\n widgetPosition(idx, clientSize, widgetSize) {\n switch (this._widgetPlacements[idx]) {\n default:\n return {\n x: 0,\n y: 0\n };\n case \"top\":\n return {\n x: (clientSize.width / 2) - (widgetSize.width / 2),\n y: 0\n };\n case \"bottom\":\n return {\n x: (clientSize.width / 2) - (widgetSize.width / 2),\n y: clientSize.height - widgetSize.height\n };\n case \"left\":\n return {\n x: 0,\n y: (clientSize.height / 2) - (widgetSize.height / 2)\n };\n case \"right\":\n return {\n x: clientSize.width - widgetSize.width,\n y: (clientSize.height / 2) - (widgetSize.height / 2)\n };\n case \"center\":\n return {\n x: (clientSize.width / 2) - (widgetSize.width / 2),\n y: (clientSize.height / 2) - (widgetSize.height / 2)\n };\n }\n }\n\n surfacePadding: { (): number; (_: string): Layered; };\n widgets: { (): any[]; (_: any[]): Layered; };\n}\nLayered.prototype._class += \" layout_Layered\";\n\nLayered.prototype.publish(\"surfacePadding\", 0, \"number\", \"Padding\");\nLayered.prototype.publish(\"widgets\", [], \"widgetArray\", \"widgets\", null, { tags: [\"Private\"] });\n","import { HTMLWidget } from \"@hpcc-js/common\";\n\nexport class Popup extends HTMLWidget {\n _surfaceButtons;\n _originalPosition;\n\n constructor() {\n super();\n this._tag = \"div\";\n this._surfaceButtons = [];\n }\n\n updateState(visible) {\n visible = visible || !this.popupState();\n this.popupState(visible).render();\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this.widget()\n .target(domNode)\n ;\n this._originalPosition = this.position();\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n element\n .style(\"visibility\", this.popupState() ? null : \"hidden\")\n .style(\"opacity\", this.popupState() ? null : 0)\n .style(\"width\", this.shrinkWrap() ? this.widget().width() + \"px\" : this._size.width + \"px\")\n .style(\"height\", this.shrinkWrap() ? this.widget().height() + \"px\" : this._size.height + \"px\")\n ;\n if (this.widget().size().height === 0) {\n this.widget().resize(this.size());\n }\n }\n\n postUpdate(domNode, element) {\n let left;\n let top;\n switch (this.centerPopup()) {\n case \"container\":\n if (this._placeholderElement) {\n left = parseInt(this._placeholderElement.style(\"width\")) / 2 - this.widget().width() / 2;\n top = parseInt(this._placeholderElement.style(\"height\")) / 2 - this.widget().height() / 2;\n }\n this.position(\"absolute\");\n break;\n\n case \"window\":\n left = window.innerWidth / 2 - this.widget().width() / 2;\n top = window.innerHeight / 2 - this.widget().height() / 2;\n this.position(\"fixed\");\n break;\n\n default:\n left = 0;\n top = 0;\n this.position(this._originalPosition);\n break;\n }\n\n this.pos({ x: left, y: top });\n\n super.postUpdate(domNode, element);\n\n element\n .style(\"position\", this.position())\n .style(\"left\", this.left() + \"px\")\n .style(\"right\", this.right() + \"px\")\n .style(\"top\", this.top() + \"px\")\n .style(\"bottom\", this.bottom() + \"px\")\n ;\n }\n\n exit(domNode, element) {\n if (this.widget()) {\n this.widget().target(null);\n }\n super.exit(domNode, element);\n }\n\n click(obj) {\n }\n\n popupState: { (): boolean; (_: boolean): Popup; };\n shrinkWrap: { (): boolean; (_: boolean): Popup; };\n centerPopup: { (): string; (_: string): Popup; };\n top: { (): number; (_: number): Popup; };\n bottom: { (): number; (_: number): Popup; };\n left: { (): number; (_: number): Popup; };\n right: { (): number; (_: number): Popup; };\n position: { (): string; (_: string): Popup; };\n\n widget: { (): any; (_: any): Popup; };\n}\nPopup.prototype._class += \" layout_Popup\";\n\nPopup.prototype.publish(\"popupState\", false, \"boolean\", \"State of the popup, visible (true) or hidden (false)\", null, {});\nPopup.prototype.publish(\"shrinkWrap\", false, \"boolean\", \"The popup parent container either shrinks to the size of its contents (true) or expands to fit thge popup's parentDiv (false)\", null, {});\nPopup.prototype.publish(\"centerPopup\", \"none\", \"set\", \"Center the widget in its container element (target) or in the window\", [\"none\", \"container\", \"window\"], {});\nPopup.prototype.publish(\"top\", null, \"number\", \"Top position property of popup\", null, {});\nPopup.prototype.publish(\"bottom\", null, \"number\", \"Bottom position property of popup\", null, {});\nPopup.prototype.publish(\"left\", null, \"number\", \"Left position property of popup\", null, {});\nPopup.prototype.publish(\"right\", null, \"number\", \"Right position property of popup\", null, {});\nPopup.prototype.publish(\"position\", \"relative\", \"set\", \"Value of the 'position' property\", [\"absolute\", \"relative\", \"fixed\", \"static\", \"initial\", \"inherit\"], { tags: [\"Private\"] });\n\nPopup.prototype.publish(\"widget\", null, \"widget\", \"Widget\", null, { tags: [\"Private\"] });\n","import { HTMLWidget, Text } from \"@hpcc-js/common\";\nimport { select as d3Select } from \"d3-selection\";\nimport { Surface } from \"./Surface\";\n\nimport \"../src/Tabbed.css\";\n\nexport class Tabbed extends HTMLWidget {\n _tabContainer;\n _contentContainer;\n\n constructor() {\n super();\n\n this._tag = \"div\";\n }\n\n clearTabs() {\n this.labels([]);\n this.widgets([]);\n return this;\n }\n\n addTab(widget, label, isActive?, callback?) {\n const widgetSize = widget.size();\n if (widgetSize.width === 0 && widgetSize.height === 0) {\n widget.size({ width: \"100%\", height: \"100%\" });\n }\n const labels = this.labels();\n const widgets = this.widgets();\n if (isActive) {\n this.activeTabIdx(this.widgets().length);\n }\n labels.push(label);\n const surface = new Surface().widget(widget ? widget : new Text().text(\"No widget defined for tab\"));\n widgets.push(surface);\n this.labels(labels);\n this.widgets(widgets);\n if (callback) {\n callback(surface);\n }\n return this;\n }\n\n widgetSize(widgetDiv) {\n const width = this.clientWidth();\n let height = this.clientHeight();\n\n const tcBox = this._tabContainer.node().getBoundingClientRect();\n if (typeof (tcBox.height) !== \"undefined\") {\n height -= tcBox.height;\n }\n return { width, height };\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._tabContainer = element.append(\"div\");\n this._contentContainer = element.append(\"div\");\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n\n element.style(\"padding\", this.surfacePadding_exists() ? this.surfacePadding() + \"px\" : null);\n\n const tabs = this._tabContainer.selectAll(\".tab-button.id\" + this.id()).data(this.showTabs() ? this.labels() : [], function (d) { return d; });\n tabs.enter().append(\"span\")\n .attr(\"class\", \"tab-button id\" + this.id())\n .style(\"cursor\", \"pointer\")\n .on(\"click\", function (d, idx) {\n context.click(context.widgets()[idx].widget(), d, idx);\n context\n .activeTabIdx(idx)\n .render()\n ;\n }).merge(tabs)\n .classed(\"active\", function (d, idx) { return context.activeTabIdx() === idx; })\n .text(function (d) { return d; })\n ;\n tabs.exit().remove();\n\n const content = this._contentContainer.selectAll(\".tab-content.id\" + this.id()).data(this.widgets(), function (d) { return d.id(); });\n content.enter().append(\"div\")\n .attr(\"class\", \"tab-content id\" + this.id())\n .each(function (widget, idx) {\n widget.target(this);\n }).merge(content)\n .classed(\"active\", function (d, idx) { return context.activeTabIdx() === idx; })\n .style(\"display\", function (d, idx) { return context.activeTabIdx() === idx ? \"block\" : \"none\"; })\n .each(function (surface, idx) {\n surface.visible(context.activeTabIdx() === idx);\n if (context.activeTabIdx() === idx) {\n const wSize = context.widgetSize(d3Select(this));\n surface\n .surfaceBorderWidth(context.showTabs() ? null : 0)\n .surfacePadding(context.showTabs() ? null : 0)\n .resize(wSize)\n ;\n }\n })\n ;\n content.exit()\n .each(function (widget, idx) {\n widget\n .target(null)\n ;\n })\n .remove();\n\n switch (this.tabLocation()) {\n case \"bottom\":\n this._tabContainer\n .attr(\"class\", \"on_bottom\")\n .style(\"top\", (this._contentContainer.node().offsetHeight + this.surfacePadding()) + \"px\")\n .style(\"position\", \"absolute\")\n ;\n this._contentContainer\n .style(\"top\", this.surfacePadding_exists() ? this.surfacePadding() + \"px\" : null)\n .style(\"position\", \"absolute\")\n ;\n break;\n default:\n this._tabContainer\n .attr(\"class\", \"on_top\")\n .style(\"top\", null)\n .style(\"position\", \"relative\")\n ;\n this._contentContainer\n .style(\"top\", (this._tabContainer.node().offsetHeight + this.surfacePadding()) + \"px\")\n .style(\"position\", \"absolute\")\n ;\n break;\n }\n }\n\n click(widget, column, idx) {\n }\n\n showTabs: { (): boolean; (_: boolean): Tabbed; };\n surfacePadding: { (): number; (_: number): Tabbed; };\n surfacePadding_default: { (): number; (_: number): Tabbed; };\n surfacePadding_exists: () => boolean;\n activeTabIdx: { (): number; (_: number): Tabbed; };\n\n labels: { (): string[]; (_: string[]): Tabbed; };\n tabLocation: { (): string; (_: string): Tabbed; };\n widgets: { (): any[]; (_: any[]): Tabbed; };\n}\nTabbed.prototype._class += \" layout_Tabbed\";\n\nTabbed.prototype.publish(\"showTabs\", true, \"boolean\", \"Show Tabs\", null, {});\nTabbed.prototype.publish(\"surfacePadding\", 4, \"number\", \"Padding\");\nTabbed.prototype.publish(\"activeTabIdx\", 0, \"number\", \"Index of active tab\", null, {});\n\nTabbed.prototype.publish(\"labels\", [], \"array\", \"Array of tab labels sharing an index with \", null, { tags: [\"Private\"] });\nTabbed.prototype.publish(\"tabLocation\", \"top\", \"set\", \"Position the tabs at the bottom of the widget\", [\"top\", \"bottom\"], { tags: [\"Private\"] });\nTabbed.prototype.publish(\"widgets\", [], \"widgetArray\", \"widgets\", null, { tags: [\"Private\"] });\n","import { HTMLWidget } from \"@hpcc-js/common\";\nimport { select as d3Select } from \"d3-selection\";\n\nimport \"../src/Toolbar.css\";\n\nfunction Toolbar() {\n HTMLWidget.call(this);\n\n this._tag = \"div\";\n}\nToolbar.prototype = Object.create(HTMLWidget.prototype);\nToolbar.prototype.constructor = Toolbar;\nToolbar.prototype._class += \" layout_Toolbar\";\n\nToolbar.prototype.publish(\"title\", \"\", \"string\", \"Title\", null, { tags: [\"Intermediate\"] });\n\nToolbar.prototype.publish(\"fontSize\", null, \"number\", \"Title Font Size (px)\", null, { tags: [\"Advanced\"], optional: true });\nToolbar.prototype.publish(\"fontColor\", null, \"html-color\", \"Title Font Color\", null, { tags: [\"Advanced\"], optional: true });\nToolbar.prototype.publish(\"fontFamily\", null, \"string\", \"Title Font Family\", null, { tags: [\"Advanced\"], optional: true });\nToolbar.prototype.publish(\"fontBold\", true, \"boolean\", \"Enable Bold Title Font\", null, { tags: [\"Advanced\"], optional: true });\nToolbar.prototype.publish(\"backgroundColor\", null, \"html-color\", \"Background Color\", null, { tags: [\"Intermediate\"], optional: true });\n\nToolbar.prototype.publish(\"responsive\", true, \"boolean\", \"Adapts to pixel width\", null, { tags: [\"Basic\"] });\n\nToolbar.prototype.publish(\"widgets\", [], \"widgetArray\", \"Child widgets of the toolbar\", null, { tags: [\"Basic\"] });\nToolbar.prototype.publish(\"widgetClasses\", [], \"array\", \"Array of Html Element classes to be assigned to the child widgets (shares index with widgets param)\", null, { tags: [\"Basic\"] });\n\nToolbar.prototype.enter = function (domNode, element) {\n HTMLWidget.prototype.enter.apply(this, arguments);\n};\n\nToolbar.prototype.update = function (domNode, element) {\n HTMLWidget.prototype.update.apply(this, arguments);\n const context = this;\n\n element\n .attr(\"title\", context.title())\n .style(\"background-color\", this.backgroundColor())\n ;\n\n const title = element.selectAll(\"div.toolbar-title\")\n .data(this.title() ? [this.title()] : []);\n title.enter().append(\"div\")\n .classed(\"toolbar-title\", true)\n .append(\"span\")\n ;\n title.selectAll(\"div.toolbar-title > span\")\n .style(\"font-size\", this.fontSize_exists() ? this.fontSize() + \"px\" : null)\n .style(\"color\", this.fontColor_exists() ? this.fontColor() : null)\n .style(\"font-family\", this.fontFamily_exists() ? this.fontFamily() : null)\n .style(\"font-weight\", this.fontBold_exists() ? (this.fontBold() ? \"bold\" : \"normal\") : null)\n .style(\"background-color\", this.backgroundColor_exists() ? this.backgroundColor() : null)\n .text(context.title())\n ;\n title.exit().remove();\n\n const childWidgets = element.selectAll(\"div.toolbar-child\")\n .data(this.widgets() !== null ? this.widgets() : [], function (d) { return d.id(); });\n\n childWidgets.enter().insert(\"div\", \"div.toolbar-title\")\n .each(function (d, i) {\n const widgetClass = context.widgetClasses()[i] ? context.widgetClasses()[i] + \" toolbar-child\" : \"toolbar-child\";\n d3Select(this).classed(widgetClass, true);\n d.target(this);\n });\n childWidgets.exit().each(function (d) {\n d.target(null);\n }).remove();\n childWidgets.order();\n};\n\nToolbar.prototype.render = function (callback) {\n const context = this;\n HTMLWidget.prototype.render.call(this, function (w) {\n const toolbarBBox = context.element().node().getBoundingClientRect();\n let minX = toolbarBBox.left + toolbarBBox.width;\n context.element().selectAll(\"div.toolbar-child\")\n .each(function (d, i) {\n const childBBox = this.getBoundingClientRect();\n if (minX > childBBox.left)\n minX = childBBox.left;\n })\n ;\n context.element().select(\".toolbar-title\")\n .style(\"width\", (minX - toolbarBBox.left - 4) + \"px\")\n ;\n if (callback) {\n callback(w);\n }\n });\n};\n\nToolbar.prototype.exit = function (domNode, element) {\n HTMLWidget.prototype.exit.apply(this, arguments);\n this.widgets().forEach(function (w) {\n w.target(null);\n });\n};\n\nexport {\n Toolbar\n};\n","import { FlexGrid } from \"./FlexGrid\";\n\nexport class VerticalList extends FlexGrid {\n constructor() {\n super();\n this.orientation_default(\"vertical\");\n this.flexWrap_default(\"nowrap\");\n }\n}\nVerticalList.prototype._class += \" layout_VerticalList\";\n\nexport interface VerticalList {\n orientation_default(_: \"horizontal\" | \"vertical\");\n flexWrap_default(_: \"nowrap\" | \"wrap\" | \"wrap-reverse\");\n}\n"],"names":["HTMLWidget","FAChar","d3Select","d3SelectAll","Utility","d3Event","Platform","d3Drag","pi","tau","circle","d3_identity","d","d3_reverse","mirror","i","l","arr","length","d3_textWrapping","text","width","each","select","words","split","reverse","word","line","lineNumber","lineHeight","attr","dy","parseFloat","tspan","append","pop","push","join","node","getComputedTextLength","d3_mergeLabels","gen","labels","domain","range","labelDelimiter","customLabels","genLength","d3_linearLegend","scale","cells","labelFormat","data","increment","map","d3_quantLegend","invert","invertExtent","d3_ordinalLegend","d3_cellOver","cellDispatcher","obj","call","d3_cellOut","d3_cellClick","shape","shapes","shapeHeight","shapeWidth","shapeRadius","path","svg","enter","classPrefix","labelWidth","selectAll","ascending","type","ticks","cellFilter","filterCells","label","filter","dataValues","labelValues","indexOf","orient","cell","cellTrans","textTrans","labelAlign","style","dispatcher","on","title","titleWidth","titleText","cellsSvg","yOffset","nodes","getBBox","height","xOffset","x","format","color","scaleLinear","shapePadding","useClass","locale","helper","d3_defaultLocale","specifier","d3_defaultFormatSpecifier","labelOffset","d3_defaultDelimiter","labelWrap","legendDispatcher","dispatch","legend","d3_calcType","legendG","d3_filterCells","cellEnter","d3_addEvents","exit","transition","remove","merge","d3_drawShapes","d3_addText","textSize","shapeSize","feature","textAlign","cellSize","Math","max","sum","slice","y","d3_placement","d3_title","_","arguments","formatLocale","formatSpecifier","toLowerCase","textWrap","value","apply","d3LegendColor","Database","Palette","d3Format","d3ScaleOrdinal","instanceOfIHighlight","SVGWidget","ProgressBar","ToggleButton","Text","Button","Spacer","TitleBar","Table","IconBar","this","_GridList.default"],"mappings":"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","x_google_ignoreList":[1,2,10,11,12,13,14,15,16,17,18,19,20,21,22,27]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../node_modules/grid-list/src/gridList.js", "../src/__package__.ts", "../src/AbsoluteSurface.ts", "../src/AbsoluteSurface.css", "../src/Accordion.ts", "../src/Accordion.css", "../src/Border.ts", "../src/Cell.ts", "../src/Surface.ts", "../src/Surface.css", "../src/Cell.css", "../src/Border.css", "../src/Border2.ts", "../src/Border2.css", "../src/Carousel.ts", "../src/Carousel.css", "../src/ChartPanel.ts", "../src/Legend.ts", "../../../node_modules/d3-path/src/path.js", "../../../node_modules/d3-shape/src/constant.js", "../../../node_modules/d3-shape/src/math.js", "../../../node_modules/d3-shape/src/symbol/circle.js", "../../../node_modules/d3-shape/src/symbol/cross.js", "../../../node_modules/d3-shape/src/symbol/diamond.js", "../../../node_modules/d3-shape/src/symbol/star.js", "../../../node_modules/d3-shape/src/symbol/square.js", "../../../node_modules/d3-shape/src/symbol/triangle.js", "../../../node_modules/d3-shape/src/symbol/wye.js", "../../../node_modules/d3-shape/src/symbol.js", "../../../node_modules/d3-svg-legend/src/legend.js", "../../../node_modules/d3-svg-legend/src/color.js", "../../../node_modules/d3-svg-legend/src/size.js", "../../../node_modules/d3-svg-legend/src/symbol.js", "../../../node_modules/d3-svg-legend/src/helpers.js", "../../../node_modules/d3-svg-legend/index.js", "../src/Modal.ts", "../src/Modal.css", "../src/ChartPanel.css", "../src/FlexGrid.ts", "../src/FlexGrid.css", "../src/Grid.ts", "../src/Grid.css", "../src/HorizontalList.ts", "../src/Layered.ts", "../src/Layered.css", "../src/Popup.ts", "../src/Tabbed.ts", "../src/Tabbed.css", "../src/Toolbar.ts", "../src/Toolbar.css", "../src/VerticalList.ts"],
4
+ "sourcesContent": ["(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([], factory);\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.GridList = factory();\n }\n}(this, function() {\n\nvar GridList = function(items, options) {\n /**\n * A GridList manages the two-dimensional positions from a list of items,\n * within a virtual matrix.\n *\n * The GridList's main function is to convert the item positions from one\n * grid size to another, maintaining as much of their order as possible.\n *\n * The GridList's second function is to handle collisions when moving an item\n * over another.\n *\n * The positioning algorithm places items in columns. Starting from left to\n * right, going through each column top to bottom.\n *\n * The size of an item is expressed using the number of cols and rows it\n * takes up within the grid (w and h)\n *\n * The position of an item is express using the col and row position within\n * the grid (x and y)\n *\n * An item is an object of structure:\n * {\n * w: 3, h: 1,\n * x: 0, y: 1\n * }\n */\n\n this._options = options;\n for (var k in this.defaults) {\n if (!this._options.hasOwnProperty(k)) {\n this._options[k] = this.defaults[k];\n }\n }\n\n this.items = items;\n\n this._adjustSizeOfItems();\n\n this.generateGrid();\n};\n\nGridList.cloneItems = function(items, _items) {\n /**\n * Clone items with a deep level of one. Items are not referenced but their\n * properties are\n */\n var _item,\n i,\n k;\n if (_items === undefined) {\n _items = [];\n }\n for (i = 0; i < items.length; i++) {\n // XXX: this is good because we don't want to lose item reference, but\n // maybe we should clear their properties since some might be optional\n if (!_items[i]) {\n _items[i] = {};\n }\n for (k in items[i]) {\n _items[i][k] = items[i][k];\n }\n }\n return _items;\n};\n\nGridList.prototype = {\n\n defaults: {\n lanes: 5,\n direction: 'horizontal'\n },\n\n /**\n * Illustates grid as text-based table, using a number identifier for each\n * item. E.g.\n *\n * #| 0 1 2 3 4 5 6 7 8 9 10 11 12 13\n * --------------------------------------------\n * 0| 00 02 03 04 04 06 08 08 08 12 12 13 14 16\n * 1| 01 -- 03 05 05 07 09 10 11 11 -- 13 15 --\n *\n * Warn: Does not work if items don't have a width or height specified\n * besides their position in the grid.\n */\n toString: function() {\n var widthOfGrid = this.grid.length,\n output = '\\n #|',\n border = '\\n --',\n item,\n i,\n j;\n\n // Render the table header\n for (i = 0; i < widthOfGrid; i++) {\n output += ' ' + this._padNumber(i, ' ');\n border += '---';\n };\n output += border;\n\n // Render table contents row by row, as we go on the y axis\n for (i = 0; i < this._options.lanes; i++) {\n output += '\\n' + this._padNumber(i, ' ') + '|';\n for (j = 0; j < widthOfGrid; j++) {\n output += ' ';\n item = this.grid[j][i];\n output += item ? this._padNumber(this.items.indexOf(item), '0') : '--';\n }\n };\n output += '\\n';\n return output;\n },\n\n generateGrid: function() {\n /**\n * Build the grid structure from scratch, with the current item positions\n */\n var i;\n this._resetGrid();\n for (i = 0; i < this.items.length; i++) {\n this._markItemPositionToGrid(this.items[i]);\n }\n },\n\n resizeGrid: function(lanes) {\n var currentColumn = 0;\n\n this._options.lanes = lanes;\n this._adjustSizeOfItems();\n\n this._sortItemsByPosition();\n this._resetGrid();\n\n // The items will be sorted based on their index within the this.items array,\n // that is their \"1d position\"\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i],\n position = this._getItemPosition(item);\n\n this._updateItemPosition(\n item, this.findPositionForItem(item, {x: currentColumn, y: 0}));\n\n // New items should never be placed to the left of previous items\n currentColumn = Math.max(currentColumn, position.x);\n }\n\n this._pullItemsToLeft();\n },\n\n findPositionForItem: function(item, start, fixedRow) {\n /**\n * This method has two options for the position we want for the item:\n * - Starting from a certain row/column number and only looking for\n * positions to its right\n * - Accepting positions for a certain row number only (use-case: items\n * being shifted to the left/right as a result of collisions)\n *\n * @param {Object<x:Number, y:Number, w:Number, h:Number} item\n * @param {Object<x:Number, y:Number} start Position from which to start\n * the search.\n * @param {Number} [fixedRow] If provided, we're going to try to find a\n * position for the new item on it. If doesn't fit there, we're going\n * to put it on the first row.\n *\n * @returns {Number[2]} x and y.\n */\n\n var x, y, position;\n\n // Start searching for a position from the horizontal position of the\n // rightmost item from the grid\n for (x = start.x; x < this.grid.length; x++) {\n if (fixedRow !== undefined) {\n position = [x, fixedRow];\n\n if (this._itemFitsAtPosition(item, position)) {\n return position;\n }\n } else {\n for (y = start.y; y < this._options.lanes; y++) {\n position = [x, y];\n\n if (this._itemFitsAtPosition(item, position)) {\n return position;\n }\n }\n }\n }\n\n // If we've reached this point, we need to start a new column\n var newCol = this.grid.length,\n newRow = 0;\n\n if (fixedRow !== undefined &&\n this._itemFitsAtPosition(item, [newCol, fixedRow])) {\n newRow = fixedRow;\n }\n\n return [newCol, newRow];\n },\n\n moveItemToPosition: function(item, newPosition) {\n var position = this._getItemPosition({\n x: newPosition[0],\n y: newPosition[1],\n w: item.w,\n h: item.h\n });\n\n this._updateItemPosition(item, [position.x, position.y]);\n this._resolveCollisions(item);\n },\n\n resizeItem: function(item, size) {\n /**\n * Resize an item and resolve collisions.\n *\n * @param {Object} item A reference to an item that's part of the grid.\n * @param {Object} size\n * @param {Number} [size.w=item.w] The new width.\n * @param {Number} [size.h=item.h] The new height.\n */\n\n var width = size.w || item.w,\n height = size.h || item.h;\n\n this._updateItemSize(item, width, height);\n\n this._resolveCollisions(item);\n\n this._pullItemsToLeft();\n },\n\n getChangedItems: function(initialItems, idAttribute) {\n /**\n * Compare the current items against a previous snapshot and return only\n * the ones that changed their attributes in the meantime. This includes both\n * position (x, y) and size (w, h)\n *\n * Since both their position and size can change, the items need an\n * additional identifier attribute to match them with their previous state\n */\n var changedItems = [];\n\n for (var i = 0; i < initialItems.length; i++) {\n var item = this._getItemByAttribute(idAttribute,\n initialItems[i][idAttribute]);\n\n if (item.x !== initialItems[i].x ||\n item.y !== initialItems[i].y ||\n item.w !== initialItems[i].w ||\n item.h !== initialItems[i].h) {\n changedItems.push(item);\n }\n }\n\n return changedItems;\n },\n\n _sortItemsByPosition: function() {\n this.items.sort(function(item1, item2) {\n var position1 = this._getItemPosition(item1),\n position2 = this._getItemPosition(item2);\n\n // Try to preserve columns.\n if (position1.x != position2.x) {\n return position1.x - position2.x;\n }\n\n if (position1.y != position2.y) {\n return position1.y - position2.y;\n }\n\n // The items are placed on the same position.\n return 0;\n }.bind(this));\n },\n\n _adjustSizeOfItems: function() {\n /**\n * Some items can have 100% height or 100% width. Those dimmensions are\n * expressed as 0. We need to ensure a valid width and height for each of\n * those items as the number of items per lane.\n */\n\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i];\n\n // This can happen only the first time items are checked.\n // We need the property to have a value for all the items so that the\n // `cloneItems` method will merge the properties properly. If we only set\n // it to the items that need it then the following can happen:\n //\n // cloneItems([{id: 1, autoSize: true}, {id: 2}],\n // [{id: 2}, {id: 1, autoSize: true}]);\n //\n // will result in\n //\n // [{id: 1, autoSize: true}, {id: 2, autoSize: true}]\n if (item.autoSize === undefined) {\n item.autoSize = item.w === 0 || item.h === 0;\n }\n\n if (item.autoSize) {\n if (this._options.direction === 'horizontal') {\n item.h = this._options.lanes;\n } else {\n item.w = this._options.lanes;\n }\n }\n }\n },\n\n _resetGrid: function() {\n this.grid = [];\n },\n\n _itemFitsAtPosition: function(item, newPosition) {\n /**\n * Check that an item wouldn't overlap with another one if placed at a\n * certain position within the grid\n */\n\n var position = this._getItemPosition(item),\n x, y, row;\n\n // No coordonate can be negative\n if (newPosition[0] < 0 || newPosition[1] < 0) {\n return false;\n }\n\n // Make sure the item isn't larger than the entire grid\n if (newPosition[1] + position.h > this._options.lanes) {\n return false;\n }\n\n // Make sure the position doesn't overlap with an already positioned\n // item.\n for (x = newPosition[0]; x < newPosition[0] + position.w; x++) {\n var col = this.grid[x];\n\n // Surely a column that hasn't even been created yet is available\n if (!col) {\n continue;\n }\n\n for (y = newPosition[1]; y < newPosition[1] + position.h; y++) {\n // Any space occupied by an item can continue to be occupied by the\n // same item.\n if (col[y] && col[y] !== item) {\n return false;\n }\n }\n }\n\n return true;\n },\n\n _updateItemPosition: function(item, position) {\n if (item.x !== null && item.y !== null) {\n this._deleteItemPositionFromGrid(item);\n }\n\n this._setItemPosition(item, position);\n\n this._markItemPositionToGrid(item);\n },\n\n _updateItemSize: function(item, width, height) {\n /**\n * @param {Object} item A reference to a grid item.\n * @param {Number} width The new width.\n * @param {Number} height The new height.\n */\n\n if (item.x !== null && item.y !== null) {\n this._deleteItemPositionFromGrid(item);\n }\n\n item.w = width;\n item.h = height;\n\n this._markItemPositionToGrid(item);\n },\n\n _markItemPositionToGrid: function(item) {\n /**\n * Mark the grid cells that are occupied by an item. This prevents items\n * from overlapping in the grid\n */\n\n var position = this._getItemPosition(item),\n x, y;\n\n // Ensure that the grid has enough columns to accomodate the current item.\n this._ensureColumns(position.x + position.w);\n\n for (x = position.x; x < position.x + position.w; x++) {\n for (y = position.y; y < position.y + position.h; y++) {\n this.grid[x][y] = item;\n }\n }\n },\n\n _deleteItemPositionFromGrid: function(item) {\n var position = this._getItemPosition(item),\n x, y;\n\n for (x = position.x; x < position.x + position.w; x++) {\n // It can happen to try to remove an item from a position not generated\n // in the grid, probably when loading a persisted grid of items. No need\n // to create a column to be able to remove something from it, though\n if (!this.grid[x]) {\n continue;\n }\n\n for (y = position.y; y < position.y + position.h; y++) {\n // Don't clear the cell if it's been occupied by a different widget in\n // the meantime (e.g. when an item has been moved over this one, and\n // thus by continuing to clear this item's previous position you would\n // cancel the first item's move, leaving it without any position even)\n if (this.grid[x][y] == item) {\n this.grid[x][y] = null;\n }\n }\n }\n },\n\n _ensureColumns: function(N) {\n /**\n * Ensure that the grid has at least N columns available.\n */\n var i;\n for (i = 0; i < N; i++) {\n if (!this.grid[i]) {\n this.grid.push(new GridCol(this._options.lanes));\n }\n }\n },\n\n _getItemsCollidingWithItem: function(item) {\n var collidingItems = [];\n for (var i = 0; i < this.items.length; i++) {\n if (item != this.items[i] &&\n this._itemsAreColliding(item, this.items[i])) {\n collidingItems.push(i);\n }\n }\n return collidingItems;\n },\n\n _itemsAreColliding: function(item1, item2) {\n var position1 = this._getItemPosition(item1),\n position2 = this._getItemPosition(item2);\n\n return !(position2.x >= position1.x + position1.w ||\n position2.x + position2.w <= position1.x ||\n position2.y >= position1.y + position1.h ||\n position2.y + position2.h <= position1.y);\n },\n\n _resolveCollisions: function(item) {\n if (!this._tryToResolveCollisionsLocally(item)) {\n this._pullItemsToLeft(item);\n }\n this._pullItemsToLeft();\n },\n\n _tryToResolveCollisionsLocally: function(item) {\n /**\n * Attempt to resolve the collisions after moving a an item over one or more\n * other items within the grid, by shifting the position of the colliding\n * items around the moving one. This might result in subsequent collisions,\n * in which case we will revert all position permutations. To be able to\n * revert to the initial item positions, we create a virtual grid in the\n * process\n */\n var collidingItems = this._getItemsCollidingWithItem(item);\n if (!collidingItems.length) {\n return true;\n }\n var _gridList = new GridList([], this._options),\n leftOfItem,\n rightOfItem,\n aboveOfItem,\n belowOfItem;\n\n GridList.cloneItems(this.items, _gridList.items);\n _gridList.generateGrid();\n\n for (var i = 0; i < collidingItems.length; i++) {\n var collidingItem = _gridList.items[collidingItems[i]],\n collidingPosition = this._getItemPosition(collidingItem);\n\n // We use a simple algorithm for moving items around when collisions occur:\n // In this prioritized order, we try to move a colliding item around the\n // moving one:\n // 1. to its left side\n // 2. above it\n // 3. under it\n // 4. to its right side\n var position = this._getItemPosition(item);\n\n leftOfItem = [position.x - collidingPosition.w, collidingPosition.y];\n rightOfItem = [position.x + position.w, collidingPosition.y];\n aboveOfItem = [collidingPosition.x, position.y - collidingPosition.h];\n belowOfItem = [collidingPosition.x, position.y + position.h];\n\n if (_gridList._itemFitsAtPosition(collidingItem, leftOfItem)) {\n _gridList._updateItemPosition(collidingItem, leftOfItem);\n } else if (_gridList._itemFitsAtPosition(collidingItem, aboveOfItem)) {\n _gridList._updateItemPosition(collidingItem, aboveOfItem);\n } else if (_gridList._itemFitsAtPosition(collidingItem, belowOfItem)) {\n _gridList._updateItemPosition(collidingItem, belowOfItem);\n } else if (_gridList._itemFitsAtPosition(collidingItem, rightOfItem)) {\n _gridList._updateItemPosition(collidingItem, rightOfItem);\n } else {\n // Collisions failed, we must use the pullItemsToLeft method to arrange\n // the other items around this item with fixed position. This is our\n // plan B for when local collision resolving fails.\n return false;\n }\n }\n // If we reached this point it means we managed to resolve the collisions\n // from one single iteration, just by moving the colliding items around. So\n // we accept this scenario and marge the brached-out grid instance into the\n // original one\n GridList.cloneItems(_gridList.items, this.items);\n this.generateGrid();\n return true;\n },\n\n _pullItemsToLeft: function(fixedItem) {\n /**\n * Build the grid from scratch, by using the current item positions and\n * pulling them as much to the left as possible, removing as space between\n * them as possible.\n *\n * If a \"fixed item\" is provided, its position will be kept intact and the\n * rest of the items will be layed around it.\n */\n\n\n // Start a fresh grid with the fixed item already placed inside\n this._sortItemsByPosition();\n this._resetGrid();\n\n // Start the grid with the fixed item as the first positioned item\n if (fixedItem) {\n var fixedPosition = this._getItemPosition(fixedItem);\n this._updateItemPosition(fixedItem, [fixedPosition.x, fixedPosition.y]);\n }\n\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i],\n position = this._getItemPosition(item);\n\n // The fixed item keeps its exact position\n if (fixedItem && item == fixedItem) {\n continue;\n }\n\n var x = this._findLeftMostPositionForItem(item),\n newPosition = this.findPositionForItem(\n item, {x: x, y: 0}, position.y);\n\n this._updateItemPosition(item, newPosition);\n }\n },\n\n _findLeftMostPositionForItem: function(item) {\n /**\n * When pulling items to the left, we need to find the leftmost position for\n * an item, with two considerations in mind:\n * - preserving its current row\n * - preserving the previous horizontal order between items\n */\n\n var tail = 0,\n position = this._getItemPosition(item);\n\n for (var i = 0; i < this.grid.length; i++) {\n for (var j = position.y; j < position.y + position.h; j++) {\n var otherItem = this.grid[i][j];\n\n if (!otherItem) {\n continue;\n }\n\n var otherPosition = this._getItemPosition(otherItem);\n\n if (this.items.indexOf(otherItem) < this.items.indexOf(item)) {\n tail = otherPosition.x + otherPosition.w;\n }\n }\n }\n\n return tail;\n },\n\n _getItemByAttribute: function(key, value) {\n for (var i = 0; i < this.items.length; i++) {\n if (this.items[i][key] === value) {\n return this.items[i];\n }\n }\n return null;\n },\n\n _padNumber: function(nr, prefix) {\n // Currently works for 2-digit numbers (<100)\n return nr >= 10 ? nr : prefix + nr;\n },\n\n _getItemPosition: function(item) {\n /**\n * If the direction is vertical we need to rotate the grid 90 deg to the\n * left. Thus, we simulate the fact that items are being pulled to the top.\n *\n * Since the items have widths and heights, if we apply the classic\n * counter-clockwise 90 deg rotation\n *\n * [0 -1]\n * [1 0]\n *\n * then the top left point of an item will become the bottom left point of\n * the rotated item. To adjust for this, we need to subtract from the y\n * position the height of the original item - the width of the rotated item.\n *\n * However, if we do this then we'll reverse some actions: resizing the\n * width of an item will stretch the item to the left instead of to the\n * right; resizing an item that doesn't fit into the grid will push the\n * items around it instead of going on a new row, etc.\n *\n * We found it better to do a vertical flip of the grid after rotating it.\n * This restores the direction of the actions and greatly simplifies the\n * transformations.\n */\n\n if (this._options.direction === 'horizontal') {\n return item;\n } else {\n return {\n x: item.y,\n y: item.x,\n w: item.h,\n h: item.w\n };\n }\n },\n\n _setItemPosition: function(item, position) {\n /**\n * See _getItemPosition.\n */\n\n if (this._options.direction === 'horizontal') {\n item.x = position[0];\n item.y = position[1];\n } else {\n // We're supposed to subtract the rotated item's height which is actually\n // the non-rotated item's width.\n item.x = position[1];\n item.y = position[0];\n }\n }\n};\n\nvar GridCol = function(lanes) {\n for (var i = 0; i < lanes; i++) {\n this.push(null);\n }\n};\n\n// Extend the Array prototype\nGridCol.prototype = [];\n\n// This module will have direct access to the GridList class\nreturn GridList;\n\n}));\n", "export const PKG_NAME = \"@hpcc-js/layout\";\nexport const PKG_VERSION = \"3.1.0\";\nexport const BUILD_VERSION = \"3.2.0\";\n", "import { HTMLWidget } from \"@hpcc-js/common\";\n\nimport \"../src/AbsoluteSurface.css\";\n\nexport class AbsoluteSurface 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 let xPos = 0;\n let yPos = 0;\n let width = this.clientWidth();\n let height = this.clientHeight();\n switch (this.units()) {\n case \"pixels\":\n xPos = this.widgetX();\n yPos = this.widgetY();\n width = this.widgetWidth() === \"\" ? width - xPos : Number(this.widgetWidth());\n height = this.widgetHeight() === \"\" ? height - yPos : Number(this.widgetHeight());\n break;\n case \"percent\":\n xPos = this.widgetX() * width / 100;\n yPos = this.widgetY() * height / 100;\n width = this.widgetWidth() === \"\" ? width - xPos : Number(this.widgetWidth()) * width / 100;\n height = this.widgetHeight() === \"\" ? height - yPos : Number(this.widgetHeight()) * height / 100;\n break;\n }\n element.style(\"opacity\", this.opacity());\n\n const widgets = element.selectAll(\"#\" + this._id + \" > .placeholder\").data(this.widget() ? [this.widget()] : [], function (d) { return d._id; });\n widgets.enter().append(\"div\")\n .attr(\"class\", \"placeholder\")\n .each(function (d) {\n d.target(this);\n })\n .merge(widgets)\n .style(\"left\", xPos + \"px\")\n .style(\"top\", yPos + \"px\")\n .style(\"width\", width + \"px\")\n .style(\"bottom\", height + \"px\")\n .each(function (d) {\n d\n .resize({ width, height })\n ;\n })\n ;\n widgets.exit().each(function (d) {\n d.target(null);\n }).remove();\n }\n\n exit(domNode, element) {\n if (this.widget()) {\n this.widget().target(null);\n }\n super.exit(domNode, element);\n }\n}\nAbsoluteSurface.prototype._class += \" layout_AbsoluteSurface\";\n\nexport interface AbsoluteSurface {\n units(): string;\n units(_: string): this;\n widgetX(): number;\n widgetX(_: number): this;\n widgetY(): number;\n widgetY(_: number): this;\n widgetWidth(): string;\n widgetWidth(_: string): this;\n widgetHeight(): string;\n widgetHeight(_: string): this;\n widget(): any;\n widget(_: any): this;\n opacity(): number;\n opacity(_: number): this;\n}\n\nAbsoluteSurface.prototype.publish(\"units\", \"percent\", \"set\", \"Units\", [\"pixels\", \"percent\"]);\nAbsoluteSurface.prototype.publish(\"widgetX\", 0, \"number\", \"Widget XPos\");\nAbsoluteSurface.prototype.publish(\"widgetY\", 0, \"number\", \"Widget YPos\");\nAbsoluteSurface.prototype.publish(\"widgetWidth\", \"100\", \"string\", \"Widget Width, omit for full\");\nAbsoluteSurface.prototype.publish(\"widgetHeight\", \"100\", \"string\", \"Widget Height, omit for full\");\nAbsoluteSurface.prototype.publish(\"widget\", null, \"widget\", \"Widget\", null, { tags: [\"Private\"] });\nAbsoluteSurface.prototype.publish(\"opacity\", 1, \"number\", \"Opacity\");\n", "(function(){\n if (!document.getElementById('e4246716')) {\n var e = document.createElement('style');\n e.id = 'e4246716';\n e.textContent = `.layout_AbsoluteSurface {\n pointer-events: none !important;\n}\n\n.layout_AbsoluteSurface > .placeholder {\n position: relative;\n overflow: hidden;\n pointer-events: all;\n}\n`;\n document.head.appendChild(e);\n }\n })();", "import { FAChar, HTMLWidget } from \"@hpcc-js/common\";\n\nimport \"../src/Accordion.css\";\n\nexport class Accordion extends HTMLWidget {\n protected _isClosed: boolean;\n titleSpan;\n iconDiv;\n ul;\n icon;\n\n constructor() {\n super();\n\n this._tag = \"div\";\n this._isClosed = false;\n }\n\n pushListItem(widget, prepend: boolean = false, protect: boolean = false) {\n const contentArr = this.content();\n\n widget._protected = protect;\n\n if (prepend) {\n contentArr.unshift(widget);\n } else {\n contentArr.push(widget);\n }\n this.content(contentArr);\n return this;\n }\n\n clearListItems() {\n const arr = [];\n for (const i in this.content()) {\n if (this.content()[i]._protected) {\n arr.push(this.content()[i]);\n }\n }\n this.content(arr);\n return this;\n }\n\n collapseClick(element) {\n if (element.classed(\"closed\")) {\n this._isClosed = false;\n element.classed(\"open\", true);\n element.classed(\"closed\", false);\n } else {\n this._isClosed = true;\n element.classed(\"open\", false);\n element.classed(\"closed\", true);\n }\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n const context = this;\n this._isClosed = this.defaultCollapsed();\n element.classed(this._isClosed ? \"closed\" : \"open\", true);\n\n this.titleSpan = element.append(\"span\").classed(\"collapsible-title\", true);\n this.iconDiv = element.append(\"div\").classed(\"collapsible-icon\", true);\n this.ul = element.append(\"ul\");\n\n this.icon = new FAChar()\n .size({ height: 24, width: 24 })\n .target(this.iconDiv.node());\n\n this.iconDiv.on(\"click\", function () {\n context.collapseClick(element);\n context.render();\n });\n this.titleSpan.on(\"click\", function () {\n context.collapseClick(element);\n context.render();\n });\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n const this_id = \"\";\n this.titleSpan.text(context.title().length > 0 ? context.title() + this_id : \"Accordion [\" + context._id + \"]\" + this_id);\n const rows = this.ul.selectAll(\"#\" + context._id + \" > ul > li\").data(this.content(), function (d) {\n return d._id;\n });\n rows.enter()\n .append(function (widget) {\n const li = document.createElement(\"li\");\n if (widget._target === null) {\n const wSize = widget.size();\n if (wSize.width === 0 || wSize.height === 0) {\n const cSize = context.size();\n widget.size({\n width: cSize.width,\n height: cSize.width\n });\n }\n widget.target(li);\n } else {\n return widget._target;\n }\n return li;\n })\n ;\n rows.exit().remove();\n\n this.icon\n .text_colorFill(this.titleFontColor())\n .char(this._isClosed ? this.closedIcon() : this.openIcon()).render()\n ;\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n}\nAccordion.prototype._class += \" layout_Accordion\";\n\nexport interface Accordion {\n content(): any[];\n content(_: any[]): this;\n title(): string;\n title(_: string): this;\n openIcon(): string;\n openIcon(_: string): this;\n closedIcon(): string;\n closedIcon(_: string): this;\n titleFontColor(): string;\n titleFontColor(_: string): this;\n titleBackgroundColor(): string;\n titleBackgroundColor(_: string): this;\n\n defaultCollapsed(): boolean;\n defaultCollapsed(_: boolean): this;\n}\n\nAccordion.prototype.publish(\"content\", [], \"widgetArray\", \"Array of widgets\", null, { tags: [\"Basic\"] });\nAccordion.prototype.publish(\"title\", \"\", \"string\", \"Title of collapsible section\", null, { tags: [\"Private\"] });\nAccordion.prototype.publish(\"openIcon\", \"\\uf147\", \"string\", \"Icon to display when list is open\", null, { tags: [\"Private\"] });\nAccordion.prototype.publish(\"closedIcon\", \"\\uf196\", \"string\", \"Icon to display when list is closed\", null, { tags: [\"Private\"] });\nAccordion.prototype.publish(\"titleFontColor\", \"#FFFFFF\", \"html-color\", \"Title font color\", null, { tags: [\"Private\"] });\nAccordion.prototype.publish(\"titleBackgroundColor\", \"#333333\", \"html-color\", \"Title background color\", null, { tags: [\"Private\"] });\n\nAccordion.prototype.publish(\"defaultCollapsed\", false, \"boolean\", \"Collapsed by default if true\", null, { tags: [\"Private\"] });\n", "(function(){\n if (!document.getElementById('d5b8185a')) {\n var e = document.createElement('style');\n e.id = 'd5b8185a';\n e.textContent = `.layout_Accordion > ul{\n position:relative;\n}\n.layout_Accordion.open > span {\n font-style:italic;\n}\n.layout_Accordion.closed > ul {\n height: 0px;\n overflow: hidden;\n}\n.layout_Accordion.open > ul{\n display:block;\n}\n.layout_Accordion > .collapsible-icon,\n.layout_Accordion > .collapsible-title{\n cursor:pointer;\n box-sizing: border-box;\n}\n.layout_Accordion > .collapsible-title{\n display:block;\n width:100%;\n}\n.layout_Accordion > .collapsible-title{\n font-size: 13px;\n color:#FFF;\n padding:4px 8px;\n height:26px;\n -webkit-box-shadow: inset 0px -1px 1px 0px rgba(0,0,0,0.2);\n -moz-box-shadow: inset 0px -1px 1px 0px rgba(0,0,0,0.2);\n box-shadow: inset 0px -1px 1px 0px rgba(0,0,0,0.2);\n}\n.layout_Accordion li{ \n background-color:#FFFFFF; \n}\n.layout_Accordion > ul, \n.layout_Accordion > .collapsible-title{ \n background-color:#333; \n}\n.layout_Accordion .layout_Accordion > ul, \n.layout_Accordion .layout_Accordion > .collapsible-title{ \n background-color:#555; \n}\n.layout_Accordion .layout_Accordion .layout_Accordion > ul, \n.layout_Accordion .layout_Accordion .layout_Accordion > .collapsible-title{ \n background-color:#777; \n}\n.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion > ul, \n.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion > .collapsible-title{ \n background-color:#999; \n}\n.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion > ul, \n.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion > .collapsible-title{ \n background-color:#BBB; \n}\n.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion > ul, \n.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion > .collapsible-title{ \n background-color:#CCC; \n}\n.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion > ul, \n.layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion .layout_Accordion > .collapsible-title{ \n background-color:#DDD; \n}\n.layout_Accordion > ul, \n.layout_Accordion > span{ \n padding-left:0px;\n}\n.layout_Accordion .layout_Accordion > ul, \n.layout_Accordion .layout_Accordion > span{ \n padding-left: 12px;\n}\n\n.layout_Accordion > .collapsible-title:before{\n padding: 4px 8px 4px 8px;\n position: absolute;\n left: 0;\n top: 0;\n}\n.layout_Accordion > .collapsible-icon{\n position:absolute;\n top:0px;\n right:0px;\n width:24px;\n height:24px;\n color:#FFF;\n}`;\n document.head.appendChild(e);\n }\n })();", "import { d3Event, HTMLWidget, Platform, select as d3Select, selectAll as d3SelectAll, Utility } from \"@hpcc-js/common\";\nimport { drag as d3Drag } from \"d3-drag\";\nimport { Cell } from \"./Cell.ts\";\n\nimport \"../src/Border.css\";\n\nexport class Border extends HTMLWidget {\n _colCount: number;\n _rowCount: number;\n _colSize: number;\n _rowSize: number;\n _shrinkWrapBoxes;\n _watch;\n _offsetX;\n _offsetY;\n _dragCell;\n _dragCellSize;\n _dragCellStartSize;\n _handleTop;\n _handleLeft;\n _dragPrevX;\n _dragPrevY;\n _cellSizes;\n contentDiv;\n _scrollBarWidth;\n _borderHandles;\n _sectionTypeArr;\n\n constructor() {\n super();\n\n this._tag = \"div\";\n\n this._colCount = 0;\n this._rowCount = 0;\n this._colSize = 0;\n this._rowSize = 0;\n\n this._shrinkWrapBoxes = {};\n\n this.content([]);\n this.sectionTypes([]);\n }\n\n watchWidget(widget) {\n if (this._watch === undefined) {\n this._watch = {};\n }\n if (this._watch[widget.id()]) {\n this._watch[widget.id()].remove();\n delete this._watch[widget.id()];\n }\n if (widget) {\n const context = this;\n this._watch[widget.id()] = widget.monitor(function (paramId, newVal, oldVal) {\n if (oldVal !== newVal) {\n context.lazyPostUpdate();\n }\n });\n }\n }\n\n lazyPostUpdate = Utility.debounce(function () {\n this.postUpdate();\n }, 100);\n\n applyLayoutType() {\n const layoutObj = this.borderLayoutObject();\n this.content().forEach(function (cell, i) {\n cell._fixedLeft = layoutObj[this.sectionTypes()[i]].left;\n cell._fixedTop = layoutObj[this.sectionTypes()[i]].top;\n cell._fixedWidth = layoutObj[this.sectionTypes()[i]].width;\n cell._fixedHeight = layoutObj[this.sectionTypes()[i]].height;\n cell._dragHandles = this.cellSpecificDragHandles(this.sectionTypes()[i]);\n }, this);\n }\n cellSpecificDragHandles(sectionType) {\n switch (sectionType) {\n case \"top\": return [\"s\"];\n case \"right\": return [\"w\"];\n case \"bottom\": return [\"n\"];\n case \"left\": return [\"e\"];\n case \"center\": return [];\n }\n }\n\n borderLayoutObject(layoutType?) {\n const retObj = {};\n const context = this;\n let topSize;\n let topPerc;\n let bottomSize;\n let bottomPerc;\n let leftSize;\n let leftPerc;\n let rightSize;\n let rightPerc;\n\n const bcRect = this.target().getBoundingClientRect();\n const gridRect: any = {};\n gridRect.top = bcRect.top;\n gridRect.left = bcRect.left;\n gridRect.bottom = bcRect.bottom;\n gridRect.right = bcRect.right;\n if (this.target() instanceof SVGElement) {\n gridRect.width = parseFloat(this.target().getAttribute(\"width\"));\n gridRect.height = parseFloat(this.target().getAttribute(\"height\"));\n } else {\n gridRect.width = bcRect.width;\n gridRect.height = bcRect.height;\n }\n if (this.sectionTypes().indexOf(\"top\") !== -1) {\n topSize = this.topSize();\n topPerc = this.topPercentage();\n if (typeof (this._shrinkWrapBoxes[\"top\"]) !== \"undefined\") {\n topSize = this._shrinkWrapBoxes[\"top\"].height + this.gutter();\n topPerc = 0;\n }\n }\n if (this.sectionTypes().indexOf(\"bottom\") !== -1) {\n bottomSize = this.bottomSize();\n bottomPerc = this.bottomPercentage();\n if (typeof (this._shrinkWrapBoxes[\"bottom\"]) !== \"undefined\") {\n bottomSize = this._shrinkWrapBoxes[\"bottom\"].height + this.gutter();\n bottomPerc = 0;\n }\n }\n if (this.sectionTypes().indexOf(\"left\") !== -1) {\n leftSize = this.leftSize();\n leftPerc = this.leftPercentage();\n if (typeof (this._shrinkWrapBoxes[\"left\"]) !== \"undefined\") {\n leftSize = this._shrinkWrapBoxes[\"left\"].width + this.gutter();\n leftPerc = 0;\n }\n }\n if (this.sectionTypes().indexOf(\"right\") !== -1) {\n rightSize = this.rightSize();\n rightPerc = this.rightPercentage();\n if (typeof (this._shrinkWrapBoxes[\"right\"]) !== \"undefined\") {\n rightSize = this._shrinkWrapBoxes[\"right\"].width + this.gutter();\n rightPerc = 0;\n }\n }\n\n const t = _sectionPlacementObject({\n width: { \"px\": 0, \"%\": 100 },\n height: { \"px\": topSize, \"%\": topPerc },\n top: { \"px\": 0, \"%\": 0 },\n left: { \"px\": 0, \"%\": 0 }\n });\n const b = _sectionPlacementObject({\n width: { \"px\": 0, \"%\": 100 },\n height: { \"px\": bottomSize, \"%\": bottomPerc },\n top: { \"px\": 0, \"%\": 100 },\n left: { \"px\": 0, \"%\": 0 }\n });\n b.top -= b.height;\n const l = _sectionPlacementObject({\n width: { \"px\": leftSize, \"%\": leftPerc },\n height: { \"px\": -t.height - b.height, \"%\": 100 },\n top: { \"px\": t.height, \"%\": 0 },\n left: { \"px\": 0, \"%\": 0 }\n });\n const r = _sectionPlacementObject({\n width: { \"px\": rightSize, \"%\": rightPerc },\n height: { \"px\": -t.height - b.height, \"%\": 100 },\n top: { \"px\": t.height, \"%\": 0 },\n left: { \"px\": 0, \"%\": 100 }\n });\n r.left -= r.width;\n const c = _sectionPlacementObject({\n width: { \"px\": -r.width - l.width, \"%\": 100 },\n height: { \"px\": -t.height - b.height, \"%\": 100 },\n top: { \"px\": t.height, \"%\": 0 },\n left: { \"px\": l.width, \"%\": 0 }\n });\n retObj[\"top\"] = t;\n retObj[\"bottom\"] = b;\n retObj[\"right\"] = r;\n retObj[\"left\"] = l;\n retObj[\"center\"] = c;\n return retObj;\n\n function _sectionPlacementObject(obj) {\n obj.width[\"px\"] = typeof (obj.width[\"px\"]) !== \"undefined\" ? obj.width[\"px\"] : 0;\n obj.width[\"%\"] = typeof (obj.width[\"%\"]) !== \"undefined\" ? obj.width[\"%\"] : 0;\n obj.height[\"px\"] = typeof (obj.height[\"px\"]) !== \"undefined\" ? obj.height[\"px\"] : 0;\n obj.height[\"%\"] = typeof (obj.height[\"%\"]) !== \"undefined\" ? obj.height[\"%\"] : 0;\n const ret = {\n width: obj.width[\"px\"] + (obj.width[\"%\"] / 100 * context.width()),\n height: obj.height[\"px\"] + (obj.height[\"%\"] / 100 * context.height()),\n top: obj.top[\"px\"] + (obj.top[\"%\"] / 100 * context.height()) + context.gutter() / 2,\n left: obj.left[\"px\"] + (obj.left[\"%\"] / 100 * context.width()) + context.gutter() / 2\n };\n return ret;\n }\n }\n\n clearContent(sectionType) {\n if (!sectionType) {\n this.content().forEach(function (contentWidget) {\n contentWidget.target(null);\n return false;\n });\n d3Select(\"#\" + this.id() + \" > div.borderHandle\")\n .classed(\"borderHandleDisabled\", true)\n ;\n delete this._watch;\n this.content([]);\n this.sectionTypes([]);\n } else {\n const idx = this.sectionTypes().indexOf(sectionType);\n if (idx >= 0) {\n if (this._watch && this.content()[idx]) {\n delete this._watch[this.content()[idx].id()];\n }\n this.content()[idx].target(null);\n d3Select(\"#\" + this.id() + \" > div.borderHandle_\" + sectionType)\n .classed(\"borderHandleDisabled\", true)\n ;\n this.content().splice(idx, 1);\n this.sectionTypes().splice(idx, 1);\n }\n }\n }\n\n hasContent(sectionType, widget, title) {\n return this.sectionTypes().indexOf(sectionType) >= 0;\n }\n\n setContent(sectionType, widget, title?) {\n this.clearContent(sectionType);\n title = typeof (title) !== \"undefined\" ? title : \"\";\n if (widget) {\n const cell = new Cell()\n .surfaceBorderWidth(0)\n .widget(widget)\n .title(title)\n ;\n this.watchWidget(widget);\n this.content().push(cell);\n this.sectionTypes().push(sectionType);\n }\n return this;\n }\n\n getCell(id) {\n const idx = this.sectionTypes().indexOf(id);\n if (idx >= 0) {\n return this.content()[idx];\n }\n return null;\n }\n\n getContent(id) {\n const idx = this.sectionTypes().indexOf(id);\n if (idx >= 0) {\n return this.content()[idx].widget();\n }\n return null;\n }\n\n setLayoutOffsets() {\n this._offsetX = this._element.node().getBoundingClientRect().left + (this.gutter() / 2);\n this._offsetY = this._element.node().getBoundingClientRect().top + (this.gutter() / 2);\n }\n\n dragStart(handle) {\n const event = d3Event();\n event.sourceEvent.stopPropagation();\n const context = this;\n\n this._dragCell = handle;\n this._dragCellStartSize = this[handle + \"Size\"]();\n\n if (this[handle + \"ShrinkWrap\"]()) {\n this[handle + \"Percentage\"](0);\n this[handle + \"ShrinkWrap\"](false);\n }\n\n const handleElm = d3Select(\"#\" + context.id() + \" > div.borderHandle_\" + handle);\n context._handleTop = parseFloat(handleElm.style(\"top\").split(\"px\")[0]);\n context._handleLeft = parseFloat(handleElm.style(\"left\").split(\"px\")[0]);\n\n this._dragPrevX = event.sourceEvent.clientX;\n this._dragPrevY = event.sourceEvent.clientY;\n }\n dragTick(handle) {\n const context = this;\n\n const event = d3Event();\n const xDelta = this._dragPrevX - event.sourceEvent.clientX;\n const yDelta = this._dragPrevY - event.sourceEvent.clientY;\n\n switch (handle) {\n case \"top\":\n case \"bottom\":\n _moveHandles(handle, yDelta);\n break;\n case \"right\":\n case \"left\":\n _moveHandles(handle, xDelta);\n break;\n }\n\n function _moveHandles(handle2, delta) {\n if (delta === 0) return;\n const handles = d3SelectAll(\"#\" + context.id() + \" > div.borderHandle\");\n const grabbedHandle = d3Select(\"#\" + context.id() + \" > div.borderHandle_\" + handle2);\n\n if (grabbedHandle.classed(\"borderHandle_top\")) {\n grabbedHandle.style(\"top\", (context._handleTop - delta) + \"px\");\n context._cellSizes.topHeight = context._handleTop - delta;\n context._cellSizes.leftHeight = context._cellSizes.height;\n context._cellSizes.leftHeight -= context._cellSizes.topHeight;\n context._cellSizes.leftHeight -= context._cellSizes.bottomHeight;\n context._cellSizes.rightHeight = context._cellSizes.leftHeight;\n } else if (grabbedHandle.classed(\"borderHandle_right\")) {\n grabbedHandle.style(\"left\", (context._handleLeft - delta) + \"px\");\n context._cellSizes.rightWidth = context._cellSizes.width - context._handleLeft + delta;\n } else if (grabbedHandle.classed(\"borderHandle_bottom\")) {\n grabbedHandle.style(\"top\", (context._handleTop - delta) + \"px\");\n context._cellSizes.bottomHeight = context._cellSizes.height - context._handleTop + delta;\n context._cellSizes.leftHeight = context._cellSizes.height;\n context._cellSizes.leftHeight -= context._cellSizes.bottomHeight;\n context._cellSizes.leftHeight -= context._cellSizes.topHeight;\n context._cellSizes.rightHeight = context._cellSizes.leftHeight;\n } else if (grabbedHandle.classed(\"borderHandle_left\")) {\n grabbedHandle.style(\"left\", (context._handleLeft - delta) + \"px\");\n context._cellSizes.leftWidth = context._handleLeft - delta;\n }\n\n handles.each(function () {\n const handle3 = d3Select(this);\n if (handle3.classed(\"borderHandle_top\")) {\n handle3.style(\"width\", context._cellSizes.width + \"px\");\n handle3.style(\"top\", (context._cellSizes.topHeight - 3) + \"px\");\n } else if (handle3.classed(\"borderHandle_right\")) {\n handle3.style(\"left\", (context._cellSizes.width - context._cellSizes.rightWidth) + \"px\");\n handle3.style(\"top\", (context._cellSizes.topHeight + 3) + \"px\");\n handle3.style(\"height\", context._cellSizes.rightHeight + \"px\");\n } else if (handle3.classed(\"borderHandle_bottom\")) {\n handle3.style(\"width\", context._cellSizes.width + \"px\");\n handle3.style(\"top\", (context._cellSizes.height - context._cellSizes.bottomHeight - 3) + \"px\");\n } else if (handle3.classed(\"borderHandle_left\")) {\n handle3.style(\"left\", context._cellSizes.leftWidth + \"px\");\n handle3.style(\"height\", context._cellSizes.leftHeight + \"px\");\n handle3.style(\"top\", (context._cellSizes.topHeight + 3) + \"px\");\n }\n });\n }\n }\n dragEnd(handle) {\n if (handle) {\n const event = d3Event();\n const xDelta = this._dragPrevX - event.sourceEvent.clientX;\n const yDelta = this._dragPrevY - event.sourceEvent.clientY;\n\n switch (handle) {\n case \"top\":\n if (yDelta !== 0) {\n this.topPercentage(0);\n this.topSize(this.topSize() === 0 ? this.getContent(\"top\").getBBox().height - yDelta : this.topSize() - yDelta);\n }\n break;\n case \"right\":\n if (xDelta !== 0) {\n this.rightPercentage(0);\n this.rightSize(this.rightSize() === 0 ? this.getContent(\"right\").getBBox().width + xDelta : this.rightSize() + xDelta);\n }\n break;\n case \"bottom\":\n if (yDelta !== 0) {\n this.bottomPercentage(0);\n this.bottomSize(this.bottomSize() === 0 ? this.getContent(\"bottom\").getBBox().height + yDelta : this.bottomSize() + yDelta);\n }\n break;\n case \"left\":\n if (xDelta !== 0) {\n this.leftPercentage(0);\n this.leftSize(this.leftSize() === 0 ? this.getContent(\"left\").getBBox().width - xDelta : this.leftSize() - xDelta);\n }\n break;\n }\n\n this._dragPrevX = event.sourceEvent.clientX;\n this._dragPrevY = event.sourceEvent.clientY;\n }\n this.render();\n }\n\n size(_?) {\n const retVal = HTMLWidget.prototype.size.apply(this, arguments);\n if (arguments.length && this.contentDiv) {\n this.contentDiv\n .style(\"width\", this._size.width + \"px\")\n .style(\"height\", this._size.height + \"px\")\n ;\n }\n return retVal;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n const context = this;\n element.style(\"position\", \"relative\");\n this.contentDiv = element.append(\"div\").classed(\"border-content\", true);\n this._scrollBarWidth = Platform.getScrollbarWidth();\n this._borderHandles = [\"top\", \"left\", \"right\", \"bottom\"];\n\n const handles = element.selectAll(\"div.borderHandle\").data(this._borderHandles);\n handles.enter().append(\"div\")\n .classed(\"borderHandle\", true)\n .each(function (handle) {\n const h = d3Select(this);\n h.classed(\"borderHandle_\" + handle, true)\n .classed(\"borderHandleDisabled\", context.getContent(handle) === null)\n ;\n });\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n this._sectionTypeArr = this.sectionTypes();\n const context = this;\n\n element.classed(\"design-mode\", this.designMode());\n\n this.setLayoutOffsets();\n\n const rows = this.contentDiv.selectAll(\".cell_\" + this._id).data(this.content(), function (d) { return d._id; });\n const rowsUpdate = rows.enter().append(\"div\")\n .classed(\"cell_\" + this._id, true)\n .style(\"position\", \"absolute\")\n .each(function (d, i) {\n d3Select(this).classed(\"border-cell border-cell-\" + context._sectionTypeArr[i], true);\n d.target(this);\n d3Select(\"#\" + context.id() + \" > div.borderHandle_\" + context._sectionTypeArr[i])\n .classed(\"borderHandleDisabled\", false);\n }).merge(rows);\n rowsUpdate\n .each(function (d, idx) {\n const sectionType = context.sectionTypes()[idx];\n if (typeof (context[sectionType + \"ShrinkWrap\"]) !== \"undefined\" && context[sectionType + \"ShrinkWrap\"]()) {\n d.render();\n context._shrinkWrapBoxes[sectionType] = d.widget().getBBox(true);\n } else {\n delete context._shrinkWrapBoxes[sectionType];\n }\n });\n\n const drag = d3Drag()\n .on(\"start\", function (d, i) { context.dragStart.call(context, d, i); })\n .on(\"drag\", function (d, i) { context.dragTick.call(context, d, i); })\n .on(\"end\", function (d, i) { context.dragEnd.call(context, d, i); })\n ;\n if (this.designMode()) {\n element.selectAll(\"#\" + this.id() + \" > div.borderHandle\").call(drag);\n } else {\n element.selectAll(\"#\" + this.id() + \" > div.borderHandle\").on(\".drag\", null);\n }\n\n const layoutObj = this.borderLayoutObject();\n this.content().forEach(function (cell, i) {\n cell._fixedLeft = layoutObj[this.sectionTypes()[i]].left;\n cell._fixedTop = layoutObj[this.sectionTypes()[i]].top;\n cell._fixedWidth = layoutObj[this.sectionTypes()[i]].width;\n cell._fixedHeight = layoutObj[this.sectionTypes()[i]].height;\n cell._dragHandles = [];\n }, this);\n\n rowsUpdate\n .style(\"left\", function (d) { return d._fixedLeft + \"px\"; })\n .style(\"top\", function (d) { return d._fixedTop + \"px\"; })\n .style(\"width\", function (d) { return d._fixedWidth - context.gutter() + \"px\"; })\n .style(\"height\", function (d) { return d._fixedHeight - context.gutter() + \"px\"; })\n .each(function (d) {\n d._placeholderElement\n .attr(\"draggable\", context.designMode())\n .selectAll(\".dragHandle\")\n .attr(\"draggable\", context.designMode())\n ;\n d\n .surfacePadding(context.surfacePadding())\n .resize()\n ;\n });\n rows.exit().each(function (d) {\n d.target(null);\n }).remove();\n\n this.getCellSizes();\n\n element\n .selectAll(\"#\" + this.id() + \" > div.borderHandle\")\n .each(function () {\n const handle = d3Select(this);\n if (handle.classed(\"borderHandle_top\")) {\n handle.style(\"width\", context._cellSizes.width + \"px\");\n handle.style(\"top\", (context._cellSizes.topHeight - 3) + \"px\");\n } else if (handle.classed(\"borderHandle_right\")) {\n handle.style(\"left\", (context._cellSizes.width - context._cellSizes.rightWidth) + \"px\");\n handle.style(\"top\", (context._cellSizes.topHeight + 3) + \"px\");\n handle.style(\"height\", context._cellSizes.rightHeight + \"px\");\n } else if (handle.classed(\"borderHandle_bottom\")) {\n handle.style(\"width\", context._cellSizes.width + \"px\");\n handle.style(\"top\", (context._cellSizes.height - context._cellSizes.bottomHeight - 3) + \"px\");\n } else if (handle.classed(\"borderHandle_left\")) {\n handle.style(\"left\", context._cellSizes.leftWidth + \"px\");\n handle.style(\"height\", context._cellSizes.leftHeight + \"px\");\n handle.style(\"top\", (context._cellSizes.topHeight + 3) + \"px\");\n }\n\n })\n ;\n }\n\n getCellSizes() {\n const context = this;\n context._cellSizes = {};\n const contentRect = this.element().node().getBoundingClientRect();\n context._cellSizes.width = contentRect.width;\n context._cellSizes.height = contentRect.height;\n this.element()\n .selectAll(\"#\" + this.id() + \" > div > div.border-cell\")\n .each(function () {\n const cell = d3Select(this);\n if (typeof cell.node === \"function\") {\n const rect = cell.node().getBoundingClientRect();\n if (cell.classed(\"border-cell-top\")) {\n context._cellSizes.topHeight = rect.height;\n } else if (cell.classed(\"border-cell-left\")) {\n context._cellSizes.leftWidth = rect.width;\n context._cellSizes.leftHeight = rect.height;\n } else if (cell.classed(\"border-cell-right\")) {\n context._cellSizes.rightWidth = rect.width;\n context._cellSizes.rightHeight = rect.height;\n } else if (cell.classed(\"border-cell-bottom\")) {\n context._cellSizes.bottomHeight = rect.height;\n }\n }\n });\n const sizes = [\"height\", \"width\", \"topHeight\", \"bottomHeight\", \"leftHeight\", \"rightHeight\", \"leftWidth\", \"rightWidth\"];\n sizes.forEach(function (size) {\n context._cellSizes[size] = context._cellSizes[size] === undefined ? 0 : context._cellSizes[size];\n });\n }\n\n postUpdate(domNode, element) {\n const context = this;\n this.content().forEach(function (n) {\n if (n._element.node() !== null && n.widget()) {\n const prevBox = n.widget().getBBox(false, true);\n const currBox = n.widget().getBBox(true, true);\n if (prevBox.width !== currBox.width || prevBox.height !== currBox.height) {\n context.lazyRender();\n }\n }\n });\n }\n\n exit(domNode, element) {\n this.content().forEach(w => w.target(null));\n super.exit(domNode, element);\n }\n}\nBorder.prototype._class += \" layout_Border\";\n\nexport interface Border {\n designMode(): boolean;\n designMode(_: boolean): this;\n\n content(): any[];\n content(_: any[]): this;\n\n gutter(): number;\n gutter(_: number): this;\n\n topShrinkWrap(): boolean;\n topShrinkWrap(_: boolean): this;\n leftShrinkWrap(): boolean;\n leftShrinkWrap(_: boolean): this;\n rightShrinkWrap(): boolean;\n rightShrinkWrap(_: boolean): this;\n bottomShrinkWrap(): boolean;\n bottomShrinkWrap(_: boolean): this;\n\n topSize(): number;\n topSize(_: number): this;\n leftSize(): number;\n leftSize(_: number): this;\n rightSize(): number;\n rightSize(_: number): this;\n bottomSize(): number;\n bottomSize(_: number): this;\n\n topPercentage(): number;\n topPercentage(_: number): this;\n leftPercentage(): number;\n leftPercentage(_: number): this;\n rightPercentage(): number;\n rightPercentage(_: number): this;\n bottomPercentage(): number;\n bottomPercentage(_: number): this;\n\n surfacePadding(): number;\n surfacePadding(_: number): this;\n\n sectionTypes(): any[];\n sectionTypes(_: any[]): this;\n}\n\nBorder.prototype.publish(\"designMode\", false, \"boolean\", \"Design Mode\", null, { tags: [\"Basic\"] });\n\nBorder.prototype.publish(\"content\", [], \"widgetArray\", \"widgets\", null, { tags: [\"Intermediate\"] });\n\nBorder.prototype.publish(\"gutter\", 0, \"number\", \"Gap Between Widgets\", null, { tags: [\"Basic\"] });\n\nBorder.prototype.publish(\"topShrinkWrap\", false, \"boolean\", \"'Top' Cell shrinks to fit content\", null, { tags: [\"Intermediate\"] });\nBorder.prototype.publish(\"leftShrinkWrap\", false, \"boolean\", \"'Left' Cell shrinks to fit content\", null, { tags: [\"Intermediate\"] });\nBorder.prototype.publish(\"rightShrinkWrap\", false, \"boolean\", \"'Right' Cell shrinks to fit content\", null, { tags: [\"Intermediate\"] });\nBorder.prototype.publish(\"bottomShrinkWrap\", false, \"boolean\", \"'Bottom' Cell shrinks to fit content\", null, { tags: [\"Intermediate\"] });\n\nBorder.prototype.publish(\"topSize\", 0, \"number\", \"Height of the 'Top' Cell (px)\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"leftSize\", 0, \"number\", \"Width of the 'Left' Cell (px)\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"rightSize\", 0, \"number\", \"Width of the 'Right' Cell (px)\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"bottomSize\", 0, \"number\", \"Height of the 'Bottom' Cell (px)\", null, { tags: [\"Private\"] });\n\nBorder.prototype.publish(\"topPercentage\", 20, \"number\", \"Percentage (of parent) Height of the 'Top' Cell\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"leftPercentage\", 20, \"number\", \"Percentage (of parent) Width of the 'Left' Cell\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"rightPercentage\", 20, \"number\", \"Percentage (of parent) Width of the 'Right' Cell\", null, { tags: [\"Private\"] });\nBorder.prototype.publish(\"bottomPercentage\", 20, \"number\", \"Percentage (of parent) Height of the 'Bottom' Cell\", null, { tags: [\"Private\"] });\n\nBorder.prototype.publish(\"surfacePadding\", 0, \"number\", \"Cell Padding (px)\", null, { tags: [\"Intermediate\"] });\n\nBorder.prototype.publish(\"sectionTypes\", [], \"array\", \"Section Types sharing an index with 'content' - Used to determine position/size.\", null, { tags: [\"Private\"] });\n", "import { Widget } from \"@hpcc-js/common\";\nimport { select as d3Select, selectAll as d3SelectAll } from \"d3-selection\";\nimport { Surface } from \"./Surface.ts\";\n\nimport \"../src/Cell.css\";\n\nexport class Cell extends Surface {\n _indicateTheseIds;\n\n constructor() {\n super();\n this._indicateTheseIds = [];\n }\n\n indicateTheseIds(): any[];\n indicateTheseIds(_: any[]): Cell;\n indicateTheseIds(_?: any[]): any[] | Cell {\n if (!arguments.length) return this._indicateTheseIds;\n this._indicateTheseIds = _;\n return this;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n const context = this;\n element\n .classed(\"layout_Surface\", true)\n .on(\"mouseenter\", function () { context.onMouseEnter(); })\n .on(\"mouseleave\", function () { context.onMouseLeave(); })\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n }\n\n onMouseEnter() {\n const arr = this.indicateTheseIds();\n const opacity = this.indicatorOpacity();\n const indicatorBorderColor = this.indicatorBorderColor();\n const indicatorGlowColor = this.indicatorGlowColor();\n for (let i = 0; i < arr.length; i++) {\n const otherElement = d3Select(\"#\" + arr[i]);\n const otherWidget: Widget = otherElement.datum() as Widget;\n if (otherElement && otherWidget) {\n otherElement.append(\"div\")\n .attr(\"class\", \"update-indicator\")\n .style(\"width\", otherWidget.width() + \"px\")\n .style(\"height\", otherWidget.height() + \"px\")\n .style(\"opacity\", opacity)\n .style(\"border-color\", indicatorBorderColor)\n .style(\"-webkit-box-shadow\", \"inset 0px 0px 30px 0px \" + indicatorGlowColor)\n .style(\"-moz-box-shadow\", \"inset 0px 0px 30px 0px \" + indicatorGlowColor)\n .style(\"box-shadow\", \"inset 0px 0px 30px 0px \" + indicatorGlowColor)\n ;\n }\n }\n }\n\n onMouseLeave() {\n const arr = this.indicateTheseIds();\n for (let i = 0; i < arr.length; i++) {\n d3SelectAll(\"#\" + arr[i] + \" > div.update-indicator\").remove();\n }\n }\n}\nCell.prototype._class += \" layout_Cell\";\n\nexport interface Cell {\n gridRow(): number;\n gridRow(_: number): this;\n gridCol(): number;\n gridCol(_: number): this;\n gridRowSpan(): number;\n gridRowSpan(_: number): this;\n gridColSpan(): number;\n gridColSpan(_: number): this;\n\n indicatorGlowColor(): string;\n indicatorGlowColor(_: string): this;\n indicatorBorderColor(): string;\n indicatorBorderColor(_: string): this;\n indicatorOpacity(): number;\n indicatorOpacity(_: number): this;\n}\n\nCell.prototype.publish(\"gridRow\", 0, \"number\", \"Grid Row Position\", null, { tags: [\"Private\"] });\nCell.prototype.publish(\"gridCol\", 0, \"number\", \"Grid Column Position\", null, { tags: [\"Private\"] });\nCell.prototype.publish(\"gridRowSpan\", 1, \"number\", \"Grid Row Span\", null, { tags: [\"Private\"] });\nCell.prototype.publish(\"gridColSpan\", 1, \"number\", \"Grid Column Span\", null, { tags: [\"Private\"] });\n\nCell.prototype.publish(\"indicatorGlowColor\", \"#EEEE11\", \"html-color\", \"Glow color of update-indicator\", null, { tags: [\"Basic\"] });\nCell.prototype.publish(\"indicatorBorderColor\", \"#F48A00\", \"html-color\", \"Border color of update-indicator\", null, { tags: [\"Basic\"] });\nCell.prototype.publish(\"indicatorOpacity\", 0.8, \"number\", \"Opacity of update-indicator\", null, { tags: [\"Basic\"] });\n", "import { HTMLWidget, Widget } from \"@hpcc-js/common\";\nimport { select as d3Select } from \"d3-selection\";\n\nimport \"../src/Surface.css\";\n\nexport class Surface extends HTMLWidget {\n _surfaceButtons;\n\n constructor() {\n super();\n\n this._tag = \"div\";\n this._surfaceButtons = [];\n }\n\n widgetSize(titleDiv, widgetDiv) {\n let width = this.clientWidth();\n let height = this.clientHeight();\n if (this.title()) {\n height -= this.calcHeight(titleDiv);\n }\n height -= this.calcFrameHeight(widgetDiv);\n width -= this.calcFrameWidth(widgetDiv);\n return { width, height };\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n\n update(domNode, element2) {\n super.update(domNode, element2);\n const context = this;\n\n element2\n .classed(\"shadow2\", this.surfaceShadow())\n .style(\"border-width\", this.surfaceBorderWidth_exists() ? this.surfaceBorderWidth() + \"px\" : null)\n .style(\"border-color\", this.surfaceBorderColor())\n .style(\"border-radius\", this.surfaceBorderRadius_exists() ? this.surfaceBorderRadius() + \"px\" : null)\n .style(\"background-color\", this.surfaceBackgroundColor())\n ;\n\n const titles = element2.selectAll(\".surfaceTitle\").data(this.title() ? [this.title()] : []);\n titles.enter().insert(\"h3\", \"div\")\n .attr(\"class\", \"surfaceTitle\")\n .merge(titles)\n .text(function (d) { return d; })\n .style(\"text-align\", this.surfaceTitleAlignment())\n .style(\"color\", this.surfaceTitleFontColor())\n .style(\"font-size\", this.surfaceTitleFontSize_exists() ? this.surfaceTitleFontSize() + \"px\" : null)\n .style(\"font-family\", this.surfaceTitleFontFamily())\n .style(\"font-weight\", this.surfaceTitleFontBold() ? \"bold\" : \"normal\")\n .style(\"background-color\", this.surfaceTitleBackgroundColor())\n .style(\"padding\", this.surfaceTitlePadding_exists() ? this.surfaceTitlePadding() + \"px\" : null)\n .style(\"title\", this.altText_exists() ? this.altText() : null)\n ;\n titles.exit().remove();\n\n const surfaceTitle = element2.select(\".surfaceTitle\");\n\n const surfaceButtons = surfaceTitle.append(\"div\").attr(\"class\", \"html-button-container\").selectAll(\".surface-button\").data(this.buttonAnnotations());\n surfaceButtons.enter().append(\"button\").classed(\"surface-button\", true)\n .each(function (button, idx) {\n const el = context._surfaceButtons[idx] = d3Select(this)\n .attr(\"class\", \"surface-button\" + (button.class ? \" \" + button.class : \"\"))\n .attr(\"id\", button.id)\n .style(\"padding\", button.padding)\n .style(\"width\", button.width)\n .style(\"height\", button.height)\n .style(\"cursor\", \"pointer\");\n if (button.font === \"FontAwesome\") {\n el\n .style(\"background\", \"transparent\")\n .style(\"border\", \"none\")\n .on(\"click\", function (d) { context.click(d); })\n .append(\"i\")\n .attr(\"class\", \"fa\")\n .text(function () { return button.label; });\n } else {\n el\n .text(function () { return button.label; })\n .on(\"click\", function (d) { context.click(d); });\n }\n })\n ;\n surfaceButtons.exit()\n .each(function (_d, idx) {\n const element = d3Select(this);\n delete context._surfaceButtons[idx];\n element.remove();\n })\n ;\n const widgets = element2.selectAll(\"#\" + this._id + \" > .surfaceWidget\").data(this.widget() ? [this.widget()] : [], function (d) { return d._id; });\n\n widgets.enter().append(\"div\")\n .attr(\"class\", \"surfaceWidget\")\n .each(function (d) {\n d3Select(context.element().node().parentElement).classed(\"content-icon content-icon-\" + (d.classID().split(\"_\")[1]), true);\n d.target(this);\n })\n .merge(widgets)\n .style(\"padding\", this.surfacePadding_exists() ? this.surfacePadding() + \"px\" : null)\n .each(function (d) {\n const widgetSize = context.widgetSize(element2.select(\"h3\"), d3Select(this));\n if (widgetSize.width < 0) widgetSize.width = 0;\n if (widgetSize.height < 0) widgetSize.height = 0;\n d\n .resize({ width: widgetSize.width, height: widgetSize.height })\n ;\n })\n ;\n widgets.exit().each(function (d) {\n d.target(null);\n }).remove();\n }\n\n exit(domNode, element) {\n if (this.widget()) {\n this.widget().target(null);\n }\n super.exit(domNode, element);\n }\n\n // Events ---\n click(obj) {\n }\n}\nSurface.prototype._class += \" layout_Surface\";\n\nexport interface Surface {\n /* \n title: { (): string; (_: string): Surface; };\n altText: { (): string; (_: string): Surface; };\n altText_exists: () => boolean;\n surfaceTitlePadding: { (): number; (_: number): Surface; };\n surfaceTitlePadding_exists: () => boolean;\n surfaceTitleFontSize: { (): number; (_: number): Surface; };\n surfaceTitleFontSize_exists: () => boolean;\n surfaceTitleFontColor: { (): string; (_: string): Surface; };\n surfaceTitleFontFamily: { (): string; (_: string): Surface; };\n surfaceTitleFontBold: { (): boolean; (_: boolean): Surface; };\n surfaceTitleBackgroundColor: { (): string; (_: string): Surface; };\n surfaceTitleAlignment: { (): string; (_: string): Surface; };\n\n surfaceShadow: { (): boolean; (_: boolean): Surface; };\n surfacePadding: { (): string; (_: string): Surface; };\n surfacePadding_exists: () => boolean;\n surfaceBackgroundColor: { (): string; (_: string): Surface; };\n surfaceBorderWidth: { (): number; (_: number): Surface; };\n surfaceBorderWidth_exists: () => boolean;\n surfaceBorderColor: { (): string; (_: string): Surface; };\n surfaceBorderRadius: { (): number; (_: number): Surface; };\n surfaceBorderRadius_exists: () => boolean;\n\n buttonAnnotations: { (): any[]; (_: any[]): Surface; };\n\n widget: { (): Widget; (_: Widget): Surface; };\n */\n title(): string;\n title(_: string): this;\n altText(): string;\n altText(_: string): this;\n altText_exists(): boolean;\n surfaceTitlePadding(): number;\n surfaceTitlePadding(_: number): this;\n surfaceTitlePadding_exists(): boolean;\n surfaceTitleFontSize(): number;\n surfaceTitleFontSize(_: number): this;\n surfaceTitleFontSize_exists(): boolean;\n surfaceTitleFontColor(): string;\n surfaceTitleFontColor(_: string): this;\n surfaceTitleFontFamily(): string;\n surfaceTitleFontFamily(_: string): this;\n surfaceTitleFontBold(): boolean;\n surfaceTitleFontBold(_: boolean): this;\n surfaceTitleBackgroundColor(): string;\n surfaceTitleBackgroundColor(_: string): this;\n surfaceTitleAlignment(): string;\n surfaceTitleAlignment(_: string): this;\n\n surfaceShadow(): boolean;\n surfaceShadow(_: boolean): this;\n surfacePadding(): string;\n surfacePadding(_: string): this;\n surfacePadding_exists(): boolean;\n surfaceBackgroundColor(): string;\n surfaceBackgroundColor(_: string): this;\n surfaceBorderWidth(): number;\n surfaceBorderWidth(_: number): this;\n surfaceBorderWidth_exists(): boolean;\n surfaceBorderColor(): string;\n surfaceBorderColor(_: string): this;\n surfaceBorderRadius(): number;\n surfaceBorderRadius(_: number): this;\n surfaceBorderRadius_exists(): boolean;\n\n buttonAnnotations(): any[];\n buttonAnnotations(_: any[]): this;\n\n widget(): Widget;\n widget(_: Widget): this;\n}\n\nSurface.prototype.publish(\"title\", \"\", \"string\", \"Title\", null, { tags: [\"Intermediate\"] });\nSurface.prototype.publish(\"altText\", null, \"string\", \"Alt text\", null, { optional: true });\nSurface.prototype.publish(\"surfaceTitlePadding\", null, \"number\", \"Title Padding (px)\", null, { tags: [\"Advanced\"], disable: (w: any) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleFontSize\", null, \"number\", \"Title Font Size (px)\", null, { tags: [\"Advanced\"], disable: (w: any) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleFontColor\", null, \"html-color\", \"Title Font Color\", null, { tags: [\"Advanced\"], disable: (w: any) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleFontFamily\", null, \"string\", \"Title Font Family\", null, { tags: [\"Advanced\"], disable: (w: any) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleFontBold\", true, \"boolean\", \"Enable Bold Title Font\", null, { tags: [\"Advanced\"], disable: (w: any) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleBackgroundColor\", null, \"html-color\", \"Title Background Color\", null, { tags: [\"Advanced\"], disable: (w: any) => !w.title() });\nSurface.prototype.publish(\"surfaceTitleAlignment\", \"center\", \"set\", \"Title Alignment\", [\"left\", \"right\", \"center\"], { tags: [\"Basic\"], disable: (w: any) => !w.title() });\n\nSurface.prototype.publish(\"surfaceShadow\", false, \"boolean\", \"3D Shadow\");\nSurface.prototype.publish(\"surfacePadding\", null, \"string\", \"Surface Padding (px)\", null, { tags: [\"Intermediate\"] });\nSurface.prototype.publish(\"surfaceBackgroundColor\", null, \"html-color\", \"Surface Background Color\", null, { tags: [\"Advanced\"] });\nSurface.prototype.publish(\"surfaceBorderWidth\", null, \"number\", \"Surface Border Width (px)\", null, { tags: [\"Advanced\"] });\nSurface.prototype.publish(\"surfaceBorderColor\", null, \"html-color\", \"Surface Border Color\", null, { tags: [\"Advanced\"] });\nSurface.prototype.publish(\"surfaceBorderRadius\", null, \"number\", \"Surface Border Radius (px)\", null, { tags: [\"Advanced\"] });\n\nSurface.prototype.publish(\"buttonAnnotations\", [], \"array\", \"Button Array\", null, { tags: [\"Private\"] });\n\nSurface.prototype.publish(\"widget\", null, \"widget\", \"Widget\", null, { tags: [\"Basic\"] });\n", "(function(){\n if (!document.getElementById('41033346')) {\n var e = document.createElement('style');\n e.id = '41033346';\n e.textContent = `.layout_Surface {\n box-sizing: border-box;\n margin: 0px;\n border: 1px solid #e5e5e5;\n overflow:hidden;\n height: 100%;\n width: 100%;\n}\n\n.layout_Surface.shadow2 {\n box-shadow: 0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)\n}\n\n.layout_Surface > h3 {\n margin: 0px;\n padding: 2px;\n background-color: #e5e5e5;\n}\n.layout_Surface .html-button-container {\n position: absolute;\n right: 0px;\n top:3px;\n}\n\n.layout_Surface > div {\n padding: 8px;\n}\n\n.layout_Surface .html-button-container .surface-button {\n margin-right: 5px;\n}\n.layout_Surface .html-button-container .surface-button i {\n opacity: 0.8;\n}\n\n.layout_Surface .html-button-container .surface-button:hover { opacity: 1; }\n.layout_Surface .html-button-container .surface-button:active { opacity: 0.5; }\n\ndiv[draggable=true].hideDragCellContent.content-icon:before{\n content: \"\\f080\";\n font-family: FontAwesome;\n position: absolute;\n top: calc(50% - 74px);\n left: calc(50% - 56px);\n font-size: 100px;\n}\ndiv[draggable=true].hideDragCellContent.content-icon-Line:before{\n content:\"\\f201\";\n}\ndiv[draggable=true].hideDragCellContent.content-icon-Pie:before{\n top: calc(50% - 72px);\n left: calc(50% - 45px);\n content:\"\\f200\";\n}\ndiv[draggable=true].hideDragCellContent.content-icon-Area:before{\n content:\"\\f1fe\";\n}\ndiv[draggable=true].hideDragCellContent.content-icon-Gauge:before{\n content:\"\\f0e4\";\n}\ndiv[draggable=true].hideDragCellContent.content-icon-Table:before{\n content:\"\\f0ce\";\n}\ndiv[draggable=true].hideDragCellContent.content-icon-Form:before{\n content:\"\\f11c\";\n}\ndiv[draggable=true].hideDragCellContent.content-icon-Grid:before,\ndiv[draggable=true].hideDragCellContent.content-icon-Graph:before,\ndiv[draggable=true].hideDragCellContent.content-icon-Border:before,\ndiv[draggable=true].hideDragCellContent.content-icon-Tabbed:before,\ndiv[draggable=true].hideDragCellContent.content-icon-Accordion:before,\ndiv[draggable=true].hideDragCellContent.content-icon-MultiChart:before,\ndiv[draggable=true].hideDragCellContent.content-icon-MultiChartSurface:before{\n content:\"\\f247\";\n}\ndiv[draggable=true].hideDragCellContent.content-icon-ChoroplethStates:before,\ndiv[draggable=true].hideDragCellContent.content-icon-ChoroplethStatesHeat:before,\ndiv[draggable=true].hideDragCellContent.content-icon-ChoroplethCounties:before,\ndiv[draggable=true].hideDragCellContent.content-icon-ChoroplethCountries:before,\ndiv[draggable=true].hideDragCellContent.content-icon-GMap:before,\ndiv[draggable=true].hideDragCellContent.content-icon-GMapHeat:before,\ndiv[draggable=true].hideDragCellContent.content-icon-GMapGraph:before{\n content:\"\\f278\";\n}\ndiv[draggable=true].hideDragCellContent.content-icon-Text:before,\ndiv[draggable=true].hideDragCellContent.content-icon-TextBox:before,\ndiv[draggable=true].hideDragCellContent.content-icon-FAChar:before{\n content:\"\\f278\";\n}\n`;\n document.head.appendChild(e);\n }\n })();", "(function(){\n if (!document.getElementById('bc383397')) {\n var e = document.createElement('style');\n e.id = 'bc383397';\n e.textContent = `.layout_Cell .update-indicator {\n box-sizing: border-box;\n position: absolute;\n top: 0px;\n left: 0px;\n padding: 0px;\n z-index: 1000;\n border-width: 0px;\n border-style: solid;\n pointer-events: none;\n}\n`;\n document.head.appendChild(e);\n }\n })();", "(function(){\n if (!document.getElementById('df37b09f')) {\n var e = document.createElement('style');\n e.id = 'df37b09f';\n e.textContent = `.layout_Border{\n width: 100%;\n height: 100%;\n}\n.layout_Border > .border-content{\n width: 100%;\n height: 100%;\n position:relative;\n}\n.layout_Border > .borderHandle{\n width: 6px;\n height: 6px;\n background-color: #444;\n opacity: 0.3;\n position:absolute;\n visibility:hidden;\n}\n.layout_Border.design-mode > .borderHandle{\n visibility:visible;\n}\n.layout_Border > .borderHandle:hover{\n background-color: #666;\n}\n.layout_Border > .borderHandle.borderHandleDisabled{\n display:none;\n}\n.layout_Border > .borderHandle_top,\n.layout_Border > .borderHandle_bottom\n{\n cursor:ns-resize;\n}\n.layout_Border > .borderHandle_left,\n.layout_Border > .borderHandle_right\n{\n cursor:ew-resize;\n}\n.layout_Border .cell {\n border-radius: 5px;\n border: 1px solid #e5e5e5;\n display: inline-block;\n overflow: hidden;\n}\n\n.layout_Border .cell h2 {\n margin: 0px;\n padding-top: 4px;\n -webkit-margin: 0px;\n text-align: center;\n}\n\n.layout_Border .layout_BorderCell.over {\n border: 2px dashed #000;\n}\n.layout_Border .dragItem { \n z-index: -1;\n opacity:0.33;\n}\n\n.layout_Border .notDragItem { \n z-index: -1;\n opacity: 1;\n}\n.layout_Border div[draggable=true] { \n opacity: 0.75;\n cursor: default;\n}\n\n.layout_Border div[draggable=true] .dragHandle {\n opacity: 1.0;\n}\n\n.layout_Border div[draggable=true] .dragHandle_n,\n.layout_Border div[draggable=true] .dragHandle_e,\n.layout_Border div[draggable=true] .dragHandle_s,\n.layout_Border div[draggable=true] .dragHandle_w{\n background-color:#AAA;\n}\n\n.layout_Border div[draggable=true] .dragHandle_nw,\n.layout_Border div[draggable=true] .dragHandle_ne,\n.layout_Border div[draggable=true] .dragHandle_se,\n.layout_Border div[draggable=true] .dragHandle_sw { \n background-color:#333;\n}\n\n.layout_Border div[draggable=true] .dragHandle_nw { \n cursor:nw-resize;\n}\n\n.layout_Border div[draggable=true] .dragHandle_n { \n cursor:n-resize;\n}\n\n.layout_Border div[draggable=true] .dragHandle_ne { \n cursor:ne-resize;\n}\n\n.layout_Border div[draggable=true] .dragHandle_e { \n cursor:e-resize;\n}\n\n.layout_Border div[draggable=true] .dragHandle_se { \n cursor:se-resize;\n}\n\n.layout_Border div[draggable=true] .dragHandle_s { \n cursor:s-resize;\n}\n\n.layout_Border div[draggable=true] .dragHandle_sw { \n cursor:sw-resize;\n}\n\n.layout_Border div[draggable=true] .dragHandle_w { \n cursor:w-resize;\n}\n\n.layout_Border div[draggable=false] > div > .dragHandle {\n display:none;\n}\n\n.layout_Border .grid-drop-target{\n position:fixed;\n box-sizing:border-box;\n border:2px dashed #7f8c8d;\n border-radius:0px;\n background: repeating-linear-gradient(\n -45deg,\n rgba(0, 0, 0, 0),\n rgba(0, 0, 0, 0) 4px,\n rgba(100, 100, 100, 0.1) 4px,\n rgba(100, 100, 100, 0.1) 8px\n );\n}\n\n.layout_Border .grid-drop-target.drop-target-over{\n border:2px dashed #179BD7;\n background: repeating-linear-gradient(\n -45deg,\n rgba(0, 0, 0, 0),\n rgba(0, 0, 0, 0) 6px,\n rgba(17, 155, 215, 0.1) 6px,\n rgba(17, 155, 215, 0.1) 12px\n );\n}`;\n document.head.appendChild(e);\n }\n })();", "import { BBox, HTMLWidget, Platform, Widget } from \"@hpcc-js/common\";\n\nimport \"../src/Border2.css\";\n\nexport type OverflowT = \"hidden\" | \"scroll\" | \"visible\" | \"auto\";\nexport type ChartPanelSectionT = \"top\" | \"right\" | \"bottom\" | \"left\" | \"center\";\nexport class WidgetDiv {\n private _div;\n private _overlay: boolean = false;\n private _overflowX: OverflowT = \"visible\";\n private _overflowY: OverflowT = \"visible\";\n private _widget: Widget;\n\n constructor(div) {\n this._div = div;\n }\n\n overlay(): boolean;\n overlay(_: boolean): this;\n overlay(_?: boolean): boolean | this {\n if (!arguments.length) return this._overlay;\n this._overlay = _;\n return this;\n }\n\n overflowX(): OverflowT;\n overflowX(_: OverflowT): this;\n overflowX(_?: OverflowT): OverflowT | this {\n if (!arguments.length) return this._overflowX;\n this._overflowX = _;\n this._div.style(\"overflow-x\", _);\n return this;\n }\n overflowY(): OverflowT;\n overflowY(_: OverflowT): this;\n overflowY(_?: OverflowT): OverflowT | this {\n if (!arguments.length) return this._overflowY;\n this._overflowY = _;\n this._div.style(\"overflow-y\", _);\n return this;\n }\n\n element() {\n return this._div;\n }\n\n node(): SVGElement | HTMLElement {\n return this._div.node();\n }\n\n widget(): Widget;\n widget(_: Widget): this;\n widget(_?: Widget): Widget | this {\n if (!arguments.length) return this._widget;\n if (this._widget !== _) {\n if (this._widget) {\n this._widget.target(null);\n }\n this._widget = _;\n if (this._widget) {\n this._widget.target(this._div.node());\n }\n }\n return this;\n }\n\n resize(size: { width: number, height: number }) {\n if (this._widget) {\n this._div\n .style(\"width\", `${size.width}px`)\n .style(\"height\", `${size.height}px`)\n ;\n this._widget.resize(size);\n }\n return this;\n }\n\n async render(getBBox?, availableHeight?: number, availableWidth?: number): Promise<BBox | undefined> {\n let overflowX = this.overflowX();\n if(!this.overlay() && overflowX === \"visible\") {\n overflowX = null;\n }\n let overflowY = this.overflowY();\n if(!this.overlay() && overflowY === \"visible\") {\n overflowY = null;\n }\n this._div\n .style(\"height\", this.overlay() ? \"0px\" : null)\n .style(\"overflow-x\", overflowX)\n .style(\"overflow-y\", overflowY)\n ;\n if (this._widget) {\n return this._widget.renderPromise().then(w => {\n if (getBBox && this._widget.visible()) {\n const retVal = this._widget.getBBox();\n retVal.width += 8;\n if (availableHeight !== undefined && retVal.height > availableHeight) {\n retVal.width += Platform.getScrollbarWidth();\n }\n if (availableWidth !== undefined && retVal.width > availableWidth) {\n retVal.height += Platform.getScrollbarWidth();\n }\n if (this.overlay()) {\n retVal.height = 0;\n } else {\n retVal.height += 4;\n }\n return retVal;\n }\n return getBBox ? { x: 0, y: 0, width: 0, height: 0 } : undefined;\n });\n } else {\n return Promise.resolve(getBBox ? { x: 0, y: 0, width: 0, height: 0 } : undefined);\n }\n }\n}\n\nexport class Border2 extends HTMLWidget {\n\n protected _bodyElement;\n\n protected _topWA: WidgetDiv;\n protected _leftWA: WidgetDiv;\n protected _centerWA: WidgetDiv;\n protected _rightWA: WidgetDiv;\n protected _bottomWA: WidgetDiv;\n protected _topPrevOverflow: OverflowT;\n protected _leftPrevOverflow: OverflowT;\n protected _rightPrevOverflow: OverflowT;\n protected _bottomPrevOverflow: OverflowT;\n\n constructor() {\n super();\n this._tag = \"div\";\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n \n const topElement = element.append(\"header\");\n\n this._bodyElement = element.append(\"div\").attr(\"class\", \"body\");\n const centerElement = this._bodyElement.append(\"div\").attr(\"class\", \"center\");\n const leftElement = this._bodyElement.append(\"div\").attr(\"class\", \"lhs\");\n const rightElement = this._bodyElement.append(\"div\").attr(\"class\", \"rhs\");\n\n const bottomElement = element.append(\"div\").attr(\"class\", \"footer\");\n\n this._topWA = new WidgetDiv(topElement);\n this._centerWA = new WidgetDiv(centerElement);\n this._leftWA = new WidgetDiv(leftElement);\n this._rightWA = new WidgetDiv(rightElement);\n this._bottomWA = new WidgetDiv(bottomElement);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n this._topWA.element().style(\"display\", this.showTop() ? null : \"none\");\n this._rightWA.element().style(\"display\", this.showRight() ? null : \"none\");\n this._bottomWA.element().style(\"display\", this.showBottom() ? null : \"none\");\n this._leftWA.element().style(\"display\", this.showLeft() ? null : \"none\");\n if(this.topOverflowX() !== this._topWA.overflowX()) {\n this._topWA.overflowX(this.topOverflowX());\n }\n if(this.rightOverflowX() !== this._rightWA.overflowX()) {\n this._rightWA.overflowX(this.rightOverflowX());\n }\n if(this.bottomOverflowX() !== this._bottomWA.overflowX()) {\n this._bottomWA.overflowX(this.bottomOverflowX());\n }\n if(this.leftOverflowX() !== this._leftWA.overflowX()) {\n this._leftWA.overflowX(this.leftOverflowX());\n }\n if(this.topOverflowY() !== this._topWA.overflowY()) {\n this._topWA.overflowY(this.topOverflowY());\n }\n if(this.rightOverflowY() !== this._rightWA.overflowY()) {\n this._rightWA.overflowY(this.rightOverflowY());\n }\n if(this.bottomOverflowY() !== this._bottomWA.overflowY()) {\n this._bottomWA.overflowY(this.bottomOverflowY());\n }\n if(this.leftOverflowY() !== this._leftWA.overflowY()) {\n this._leftWA.overflowY(this.leftOverflowY());\n }\n this.element()\n .style(\"width\", `${this.width()}px`)\n .style(\"height\", `${this.height()}px`)\n ;\n }\n\n private targetNull(w?: Widget) {\n if (w) {\n w.target(null);\n }\n }\n\n exit(domNode, element) {\n this.targetNull(this.center());\n this.targetNull(this.bottom());\n this.targetNull(this.right());\n this.targetNull(this.left());\n this.targetNull(this.top());\n super.exit(domNode, element);\n }\n\n swap(sectionA: ChartPanelSectionT, sectionB: ChartPanelSectionT): this {\n const a = this[sectionA]();\n const b = this[sectionB]();\n this.targetNull(a);\n this.targetNull(b);\n this[`_${sectionA}WA`].widget(null);\n this[`_${sectionB}WA`].widget(null);\n this[sectionA](b);\n this[sectionB](a);\n return this;\n }\n\n render(callback?: (w: Widget) => void): this {\n const retVal = super.render(w => {\n if (this._topWA) {\n this._topWA\n .widget(this.top())\n .overlay(this.topOverlay())\n .render(true).then(async topBBox => {\n const bottomBBox: BBox = await this._bottomWA.widget(this.bottom()).render(true, undefined, this.width()) as BBox;\n const availableHeight = this.height() - (topBBox.height + bottomBBox.height);\n const leftBBox: BBox = await this._leftWA.widget(this.left()).render(true, availableHeight) as BBox;\n const rightBBox: BBox = await this._rightWA.widget(this.right()).render(true, availableHeight) as BBox;\n \n if (this.bottomHeight_exists()) {\n bottomBBox.height = this.bottomHeight();\n }\n const bodyWidth = this.width() - (leftBBox.width + rightBBox.width);\n const bodyHeight = this.height() - (topBBox.height + bottomBBox.height);\n \n const centerOverflowX = this.centerOverflowX();\n const centerOverflowY = this.centerOverflowY();\n\n const scrollCenterX = [\"auto\", \"scroll\"].indexOf(centerOverflowX) !== -1;\n const scrollCenterY = [\"auto\", \"scroll\"].indexOf(centerOverflowY) !== -1;\n if(scrollCenterX || scrollCenterY) {\n this._centerWA\n .overflowX(this.centerOverflowX())\n .overflowY(this.centerOverflowY())\n .widget(this.center())\n .resize({\n width: bodyWidth,\n height: bodyHeight\n })\n .render()\n ;\n }\n this._bodyElement.style(\"height\", `${bodyHeight}px`);\n const promises = [\n this._topWA\n .overflowX(this.topOverflowX())\n .overflowY(this.topOverflowY())\n .resize({\n width: this.width(),\n height: topBBox.height\n })\n .render(),\n this._leftWA\n .overflowX(this.leftOverflowX())\n .overflowY(this.leftOverflowY())\n .resize({\n width: leftBBox.width,\n height: bodyHeight\n })\n .render(),\n this._rightWA\n .overflowX(this.rightOverflowX())\n .overflowY(this.rightOverflowY())\n .resize({\n width: rightBBox.width,\n height: bodyHeight\n })\n .render(),\n this._centerWA\n .overflowX(this.centerOverflowX())\n .overflowY(this.centerOverflowY())\n .widget(this.center())\n .resize({\n width: bodyWidth,\n height: bodyHeight\n })\n .render(),\n this._bottomWA\n .overflowX(this.bottomOverflowX())\n .overflowY(this.bottomOverflowY())\n .resize({\n width: this.width(),\n height: bottomBBox.height\n })\n .render()\n ];\n Promise.all(promises).then(promises => {\n if (callback) {\n callback(this);\n }\n });\n })\n ;\n } else {\n if (callback) {\n callback(this);\n }\n }\n });\n return retVal;\n }\n}\nBorder2.prototype._class += \" layout_Border2\";\n\nexport interface Border2 {\n top(): Widget;\n top(_: Widget): this;\n topOverlay(): boolean;\n topOverlay(_: boolean): this;\n left(): Widget;\n left(_: Widget): this;\n center(): Widget;\n center(_: Widget): this;\n right(): Widget;\n right(_: Widget): this;\n bottom(): Widget;\n bottom(_: Widget): this;\n bottomHeight(): number;\n bottomHeight(_: number): this;\n bottomHeight_exists(): boolean;\n topOverflowX(): OverflowT;\n topOverflowX(_: OverflowT): this;\n rightOverflowX(): OverflowT;\n rightOverflowX(_: OverflowT): this;\n bottomOverflowX(): OverflowT;\n bottomOverflowX(_: OverflowT): this;\n leftOverflowX(): OverflowT;\n leftOverflowX(_: OverflowT): this;\n centerOverflowX(): OverflowT;\n centerOverflowX(_: OverflowT): this;\n topOverflowY(): OverflowT;\n topOverflowY(_: OverflowT): this;\n rightOverflowY(): OverflowT;\n rightOverflowY(_: OverflowT): this;\n bottomOverflowY(): OverflowT;\n bottomOverflowY(_: OverflowT): this;\n leftOverflowY(): OverflowT;\n leftOverflowY(_: OverflowT): this;\n centerOverflowY(): OverflowT;\n centerOverflowY(_: OverflowT): this;\n showTop(): boolean;\n showTop(_: boolean): this;\n showRight(): boolean;\n showRight(_: boolean): this;\n showBottom(): boolean;\n showBottom(_: boolean): this;\n showLeft(): boolean;\n showLeft(_: boolean): this;\n topOverflowX_default(_: OverflowT);\n rightOverflowX_default(_: OverflowT);\n bottomOverflowX_default(_: OverflowT);\n leftOverflowX_default(_: OverflowT);\n centerOverflowX_default(_: OverflowT);\n topOverflowY_default(_: OverflowT);\n rightOverflowY_default(_: OverflowT);\n bottomOverflowY_default(_: OverflowT);\n leftOverflowY_default(_: OverflowT);\n centerOverflowY_default(_: OverflowT);\n}\nBorder2.prototype.publish(\"showTop\", true, \"boolean\", \"If true, top widget adapter will display\");\nBorder2.prototype.publish(\"showRight\", true, \"boolean\", \"If true, right widget adapter will display\");\nBorder2.prototype.publish(\"showBottom\", true, \"boolean\", \"If true, bottom widget adapter will display\");\nBorder2.prototype.publish(\"showLeft\", true, \"boolean\", \"If true, left widget adapter will display\");\nBorder2.prototype.publish(\"topOverflowX\", \"visible\", \"set\", \"Sets the overflow-x css style for the top widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"rightOverflowX\", \"visible\", \"set\", \"Sets the overflow-x css style for the right widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"bottomOverflowX\", \"visible\", \"set\", \"Sets the overflow-x css style for the bottom widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"leftOverflowX\", \"visible\", \"set\", \"Sets the overflow-x css style for the left widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"centerOverflowX\", \"visible\", \"set\", \"Sets the overflow-x css style for the center widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"topOverflowY\", \"visible\", \"set\", \"Sets the overflow-y css style for the top widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"rightOverflowY\", \"visible\", \"set\", \"Sets the overflow-y css style for the right widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"bottomOverflowY\", \"visible\", \"set\", \"Sets the overflow-y css style for the bottom widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"leftOverflowY\", \"visible\", \"set\", \"Sets the overflow-y css style for the left widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"centerOverflowY\", \"visible\", \"set\", \"Sets the overflow-y css style for the center widget adapter\", [\"hidden\", \"scroll\", \"visible\", \"auto\"]);\nBorder2.prototype.publish(\"top\", null, \"widget\", \"Top Widget\", undefined, { render: false });\nBorder2.prototype.publish(\"topOverlay\", false, \"boolean\", \"Overlay Top Widget\");\nBorder2.prototype.publish(\"left\", null, \"widget\", \"Left Widget\", undefined, { render: false });\nBorder2.prototype.publish(\"center\", null, \"widget\", \"Center Widget\", undefined, { render: false });\nBorder2.prototype.publish(\"right\", null, \"widget\", \"Right Widget\", undefined, { render: false });\nBorder2.prototype.publish(\"bottom\", null, \"widget\", \"Bottom Widget\", undefined, { render: false });\nBorder2.prototype.publish(\"bottomHeight\", null, \"number\", \"Bottom Fixed Height\", undefined, { optional: true });\n", "(function(){\n if (!document.getElementById('23362289')) {\n var e = document.createElement('style');\n e.id = '23362289';\n e.textContent = `.layout_Border2 {\n display: flex;\n flex-direction: column;\n}\n.layout_Border2 > .body {\n margin: 0;\n padding: 0;\n display: flex;\n flex-flow: row;\n}\n\n.layout_Border2 > .body > .center {\n flex: 1;\n}\n\n.layout_Border2 > .header {\n display: block;\n}\n\n.layout_Border2 > .footer {\n display: block;\n}\n`;\n document.head.appendChild(e);\n }\n })();", "import { HTMLWidget, Widget } from \"@hpcc-js/common\";\nimport { select as d3Select } from \"d3-selection\";\nimport \"d3-transition\";\n\nimport \"../src/Carousel.css\";\n\nexport class Carousel extends HTMLWidget {\n\n protected _prevActive: number = 0;\n protected _root;\n\n activeWidget(): Widget {\n return this.widgets()[this.active()];\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._root = element.append(\"div\")\n .attr(\"id\", `${this.id()}_root`)\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const active = this.active();\n const width = this.width();\n this._root\n .style(\"width\", `${width}px`)\n .style(\"height\", `${this.height()}px`)\n ;\n const widgetElements = this._root.selectAll(`#${this.id()}_root > .carouselItem`).data(this.widgets(), d => d.id());\n const update = widgetElements.enter().append(\"div\")\n .attr(\"class\", \"carouselItem\")\n .each(function (w) {\n w.target(this);\n })\n .merge(widgetElements)\n .style(\"left\", (d, i) => `${(i - this._prevActive) * width}px`)\n .style(\"width\", `${width}px`)\n ;\n if (this._prevActive !== active) {\n update\n .style(\"display\", (d, i) => i === this._prevActive || i === active ? null : \"none\") // Must be called before render callback (not inside transition)\n .transition().duration(this.transitionDuration())\n .style(\"left\", (d, i) => `${(i - active) * width}px`)\n .on(\"end\", function (d, i) {\n d3Select(this).style(\"display\", () => i === active ? null : \"none\");\n })\n ;\n this._prevActive = active;\n }\n widgetElements.exit()\n .each(function (w) {\n w.target(null);\n })\n .remove()\n ;\n }\n\n exit(domNode, element) {\n this.widgets().forEach(w => w.target(null));\n super.exit(domNode, element);\n }\n\n render(callback): this {\n return super.render(w => {\n if (!this.visible() || this.isDOMHidden()) {\n if (callback) {\n callback(w);\n }\n } else {\n const aw = this.activeWidget();\n if (aw) {\n aw\n .resize(this.size())\n .render(w2 => {\n if (callback) {\n callback(w);\n }\n })\n ;\n }\n }\n });\n }\n}\nCarousel.prototype._class += \" layout_Carousel\";\n\nexport interface Carousel {\n widgets(): Widget[];\n widgets(_: Widget[]): this;\n active(): number;\n active(_: number): this;\n transitionDuration(): Widget[];\n transitionDuration(_: Widget[]): this;\n}\n\nCarousel.prototype.publish(\"widgets\", [], \"widgetArray\", \"Widgets\", null, { render: false });\nCarousel.prototype.publish(\"active\", 0, \"number\", \"Active widget\");\nCarousel.prototype.publish(\"transitionDuration\", 500, \"number\", \"Transition duration\");\n", "(function(){\n if (!document.getElementById('17c1eb84')) {\n var e = document.createElement('style');\n e.id = '17c1eb84';\n e.textContent = `.layout_Carousel > div {\n position: relative;\n overflow: hidden;\n}\n\n.layout_Carousel > div > .carouselItem {\n position: absolute;\n}`;\n document.head.appendChild(e);\n }\n })();", "import { IHighlight } from \"@hpcc-js/api\";\nimport { Button, Database, IconBar, ProgressBar, Spacer, SVGWidget, Text, TitleBar, ToggleButton, Utility, Widget } from \"@hpcc-js/common\";\nimport type { XYAxis } from \"@hpcc-js/chart\";\nimport { Table } from \"@hpcc-js/dgrid2\";\nimport { select as d3Select } from \"d3-selection\";\nimport { Border2 } from \"./Border2.ts\";\nimport { Carousel } from \"./Carousel.ts\";\nimport { Legend } from \"./Legend.ts\";\nimport { Modal } from \"./Modal.ts\";\n\nimport \"../src/ChartPanel.css\";\n\nexport class ChartPanel<T extends Widget = Widget> extends Border2 implements IHighlight {\n\n protected _legend = new Legend(this).enableOverflow(true);\n protected _progressBar = new ProgressBar();\n protected _autoScale = false;\n protected _resolutions = {\n tiny: { width: 100, height: 100 },\n small: { width: 300, height: 300 }\n };\n private _modal = new Modal();\n private _highlight: boolean;\n private _scale: number;\n private _orig_size: any;\n\n private _toggleInfo = new ToggleButton().faChar(\"fa-info-circle\").tooltip(\".Description\")\n .selected(false)\n .on(\"enabled\", () => {\n return this.description() !== \"\";\n })\n .on(\"click\", () => {\n if (this._toggleInfo.selected()) {\n this._modal\n .title(this.title())\n .widget(new Text().text(this.description()))\n .show(true)\n .render()\n ;\n\n const origCloseFunc = this._modal._close;\n this._modal._close = () => {\n this._toggleInfo\n .selected(false)\n .render()\n ;\n this._modal._close = origCloseFunc;\n };\n }\n })\n .on(\"mouseMove\", () => {\n /*\n this._modal.showPreview(true).render(n => {\n n.resize().render();\n });\n */\n })\n .on(\"mouseOut\", () => {\n /*\n if (this._modal.showPreview()) {\n this._modal.show(false).showPreview(false).render();\n }\n */\n });\n\n private _toggleData = new ToggleButton().faChar(\"fa-table\").tooltip(\"Data\")\n .on(\"click\", () => {\n this.dataVisible(this._toggleData.selected());\n this.render();\n });\n\n private _buttonDownload = new Button().faChar(\"fa-download\").tooltip(\"Download\")\n .on(\"click\", () => {\n this.downloadCSV();\n });\n\n private _buttonDownloadImage = new Button().faChar(\"fa-image\").tooltip(\"Download Image\")\n .on(\"click\", () => {\n this.downloadPNG();\n });\n\n private _toggleLegend = new ToggleButton().faChar(\"fa-list-ul\").tooltip(\"Legend\")\n .selected(false)\n .on(\"click\", () => {\n const selected = this._toggleLegend.selected();\n if (this.legendPosition() === \"bottom\") {\n this.showBottom(selected);\n } else if (this.legendPosition() === \"right\") {\n this.showRight(selected);\n }\n this.legendVisible(selected);\n this.render();\n });\n\n protected _spacer = new Spacer();\n\n _titleBar = new TitleBar().buttons([this._toggleData, this._buttonDownload, this._buttonDownloadImage, this._spacer, this._toggleLegend]);\n\n protected _carousel = new Carousel();\n protected _table = new Table();\n protected _widget: T;\n\n protected _hideLegendToggleList = [\"dgrid_Table\"];\n\n constructor() {\n super();\n this._tag = \"div\";\n }\n\n fields(): Database.Field[];\n fields(_: Database.Field[]): this;\n fields(_?: Database.Field[]): this | Database.Field[] {\n if (!arguments.length) return super.fields();\n super.fields(_);\n this._legend.fields(_);\n this.refreshFields();\n return this;\n }\n refreshFields() {\n this._widget.fields(this._legend.filteredFields());\n this._table.fields(this._legend.filteredFields());\n return this;\n }\n\n columns(): string[];\n columns(_: string[], asDefault?: boolean): this;\n columns(_?: string[], asDefault?: boolean): string[] | this {\n if (!arguments.length) return super.columns();\n super.columns(_, asDefault);\n this._legend.columns(_, asDefault);\n this.refreshColumns();\n return this;\n }\n refreshColumns() {\n this._widget.columns(this._legend.filteredColumns());\n this._table.columns(this._legend.filteredColumns());\n return this;\n }\n\n data(_?) {\n if (!arguments.length) return super.data();\n super.data(_);\n this._legend.data(_);\n this.refreshData();\n return this;\n }\n refreshData() {\n this._widget.data(this._legend.filteredData());\n this._table.data(this._legend.filteredData());\n return this;\n }\n\n highlight(): boolean;\n highlight(_: boolean): this;\n highlight(_?: boolean): boolean | this {\n if (!arguments.length) return this._highlight;\n this._highlight = _;\n return this;\n }\n\n startProgress() {\n this._progressBar.start();\n }\n\n finishProgress() {\n this._progressBar.finish();\n }\n\n buttons(): Widget[];\n buttons(_: Widget[]): this;\n buttons(_?: Widget[]): this | Widget[] {\n if (!arguments.length) return this._titleBar.buttons();\n this._titleBar.buttons(_);\n return this;\n }\n\n downloadCSV() {\n const namePrefix = this.downloadTitle() ? this.downloadTitle() : this.title() ? this.title() : \"data\";\n const nameSuffix = this.downloadTimestampSuffix() ? \"_\" + Utility.timestamp() : \"\";\n Utility.downloadString(\"CSV\", this._widget.export(\"CSV\"), namePrefix + nameSuffix);\n return this;\n }\n\n downloadPNG() {\n const widget = this.widget();\n if (widget instanceof SVGWidget) {\n if (!this.legendVisible()) {\n widget.downloadPNG(this.title());\n } else {\n widget.downloadPNG(this.title(), undefined, this._legend);\n }\n }\n return this;\n }\n\n highlightColumn(column?: string): this {\n if (column) {\n const cssTag = `series-${this.cssTag(column)}`;\n this._centerWA.element().selectAll(\".series\")\n .each(function () {\n const element = d3Select(this);\n const highlight = element.classed(cssTag);\n element\n .classed(\"highlight\", highlight)\n .classed(\"lowlight\", !highlight)\n ;\n })\n ;\n } else {\n this._centerWA.element().selectAll(\".series\")\n .classed(\"highlight\", false)\n .classed(\"lowlight\", false)\n ;\n }\n return this;\n }\n\n getResponsiveMode(): \"tiny\" | \"small\" | \"regular\" | \"none\" {\n if (!this.enableAutoscaling()) return \"none\";\n if (!this._autoScale) return \"regular\";\n if (this.size().width <= this._resolutions.tiny.width || this.size().height <= this._resolutions.tiny.height) {\n return \"tiny\";\n } else if (this.size().width <= this._resolutions.small.width || this.size().height <= this._resolutions.small.height) {\n return \"small\";\n }\n return \"regular\";\n }\n\n setOrigSize() {\n this._orig_size = JSON.parse(JSON.stringify(this.size()));\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._modal\n .target(this.target())\n .relativeTargetId(this.id())\n ;\n\n this.top(this._titleBar);\n this.center(this._carousel);\n\n this._legend\n .targetWidget(this._widget)\n .orientation(\"vertical\")\n .title(\"\")\n .visible(false)\n ;\n\n this._progressBar.enter(domNode, element);\n this.setOrigSize();\n }\n\n preUpdateTiny(element) {\n element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"none\");\n }\n\n preUpdateSmall(element) {\n const scale_x = this._orig_size.width / this._resolutions.small.width;\n const scale_y = this._orig_size.height / this._resolutions.small.height;\n this._scale = Math.min(scale_x, scale_y);\n const x_is_smaller = this._scale === scale_x;\n this.size({\n width: x_is_smaller ? this._resolutions.small.width : this._orig_size.width * (1 / this._scale),\n height: !x_is_smaller ? this._resolutions.small.height : this._orig_size.height * (1 / this._scale)\n });\n element.select(\"div.title-icon\").style(\"position\", \"static\");\n element.selectAll(\"lhs\").style(\"display\", \"none\");\n element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"\");\n element.selectAll(\"div.data-count\").style(\"visibility\", \"hidden\");\n element.style(\"transform\", `scale(${this._scale})`);\n }\n\n preUpdateRegular(element) {\n element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"\");\n element.selectAll(\"div.data-count\").style(\"visibility\", \"hidden\");\n element.select(\"div.title-icon\").style(\"position\", \"static\");\n element.style(\"transform\", \"translate(0px,0px) scale(1)\");\n }\n\n private _prevdataVisible;\n private _prevlegendVisible;\n private _prevLegendPosition;\n private _prevChartDataFamily;\n private _prevChart;\n private _prevButtons;\n update(domNode, element) {\n super.update(domNode, element);\n if (this._table && this.widget_exists() && this.widget().class().indexOf(\"chart_XYAxis\") >= 0) {\n const chart = this.widget() as unknown as XYAxis;\n this._table.columns().forEach((column, idx) => {\n switch (idx === 0 ? chart.xAxisType() : chart.yAxisType()) {\n case \"linear\":\n case \"log\":\n case \"pow\":\n this._table.columnType(column, \"number\");\n break;\n case \"time\":\n this._table.columnType(column, \"time\");\n break;\n case \"ordinal\":\n default:\n this._table.columnType(column, \"string\");\n }\n this._table.columnPattern(column, idx === 0 ? chart.xAxisTypeTimePattern() : chart.yAxisTypeTimePattern());\n this._table.columnFormat(column, idx === 0 ? chart.xAxisTickFormat() : chart.yAxisTickFormat());\n });\n }\n }\n\n preUpdate(domNode, element) {\n\n super.preUpdate(domNode, element);\n\n if (this._prevLegendPosition !== this.legendPosition()) {\n if (this._legend.target() !== null) this._legend.target(null);\n if (this._prevLegendPosition !== undefined) {\n this.swap(this._prevLegendPosition, this.legendPosition());\n } else {\n this[this.legendPosition()](this._legend);\n }\n if (this.legendPosition() === \"right\") {\n this.rightOverflowX(\"hidden\");\n this.rightOverflowY(\"auto\");\n this.bottomOverflowX(\"visible\");\n this.bottomOverflowY(\"visible\");\n } else {\n this.rightOverflowX(\"visible\");\n this.rightOverflowY(\"visible\");\n this.bottomOverflowX(\"auto\");\n this.bottomOverflowY(\"hidden\");\n }\n this._prevLegendPosition = this.legendPosition();\n }\n\n if (this._prevdataVisible !== this.dataVisible()) {\n this._prevdataVisible = this.dataVisible();\n this._toggleData.selected(this._prevdataVisible);\n this._legend.visible(this._prevlegendVisible && !this._prevdataVisible);\n this._carousel.active(this._prevdataVisible ? 1 : 0);\n }\n\n if (this._prevlegendVisible !== this.legendVisible()) {\n this._prevlegendVisible = this.legendVisible();\n this._toggleLegend.selected(this._prevlegendVisible);\n this._legend.visible(this._prevlegendVisible && !this._prevdataVisible);\n }\n\n this._legend.orientation(this.legendPosition() === \"bottom\" ? \"horizontal\" : \"vertical\");\n\n this.showLeft(!this.left());\n\n switch (this.getResponsiveMode()) {\n case \"tiny\":\n this.preUpdateTiny(element);\n break;\n case \"small\":\n this.preUpdateSmall(element);\n break;\n case \"regular\":\n this.preUpdateRegular(element);\n break;\n }\n\n const chart = this._widget.classID() === \"composite_MultiChart\" ? this._widget[\"chart\"]() : this._widget;\n this._legend.dataFamily(chart._dataFamily || \"any\");\n\n if (this._prevChartDataFamily !== this._legend.dataFamily()) {\n this._prevChartDataFamily = this._legend.dataFamily();\n switch (this._prevChartDataFamily) {\n case \"any\":\n this._toggleLegend.selected(false);\n this._legend.visible(false);\n break;\n }\n }\n element.style(\"box-shadow\", this.highlight() ? `inset 0px 0px 0px ${this.highlightSize()}px ${this.highlightColor()}` : \"none\");\n\n if (this._hideLegendToggleList.indexOf(chart.classID()) !== -1) {\n this._spacer.visible(false);\n this._toggleLegend.visible(false);\n } else {\n this._spacer.visible(true);\n this._toggleLegend.visible(true);\n }\n if (this._prevChart !== chart) {\n this._prevChart = chart;\n const widgetIconBar = chart ? chart[\"_titleBar\"] || chart[\"_iconBar\"] : undefined;\n if (widgetIconBar && widgetIconBar instanceof IconBar) {\n this._prevButtons = this._prevButtons || [...this.buttons()];\n const buttons: Widget[] = [\n ...widgetIconBar.buttons(),\n new Spacer(),\n ...this._prevButtons\n ];\n widgetIconBar.buttons([]).render();\n this.buttons(buttons);\n } else if (this._prevButtons) {\n this.buttons(this._prevButtons);\n }\n }\n\n const hiddenButtons = [];\n if (!this.dataButtonVisible()) hiddenButtons.push(this._toggleData);\n if (!this.downloadButtonVisible()) hiddenButtons.push(this._buttonDownload);\n if (!this.downloadImageButtonVisible()) hiddenButtons.push(this._buttonDownloadImage);\n if (!this.legendButtonVisible()) hiddenButtons.push(this._toggleLegend);\n this._buttonDownloadImage.enabled(this.widget() instanceof SVGWidget);\n this._titleBar\n .hiddenButtons(hiddenButtons)\n .visible(this.titleVisible())\n ;\n this.topOverlay(this.titleOverlay() || !this.titleVisible());\n }\n\n postUpdate(domNode, element) {\n super.postUpdate(domNode, element);\n\n switch (this.getResponsiveMode()) {\n case \"tiny\":\n this.postUpdateTiny(element);\n break;\n case \"small\":\n this.postUpdateSmall(element);\n break;\n case \"regular\":\n this.postUpdateRegular(element);\n break;\n }\n }\n\n postUpdateTiny(element) {\n element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"none\");\n element.selectAll(\"div.data-count\")\n .style(\"visibility\", \"visible\")\n .style(\"font-size\", (this.titleIconFontSize() / 3) + \"px\")\n .style(\"line-height\", (this.titleIconFontSize() / 3) + \"px\")\n .style(\"left\", this.titleIconFontSize() + \"px\")\n .text(this.data().length)\n ;\n element.style(\"transform\", \"translate(0px,0px) scale(1)\");\n const iconDiv = element.selectAll(\"div.title-icon\");\n const _node = iconDiv.node();\n const _container = element.node().parentElement;\n const containerRect = _container.getBoundingClientRect();\n if (_node) {\n const rect = iconDiv.node().getBoundingClientRect();\n const icon_top = containerRect.height / 2;\n iconDiv\n .style(\"position\", \"absolute\")\n .style(\"left\", `calc(50% - ${rect.width / 2}px)`)\n .style(\"top\", `${icon_top - (rect.height / 2)}px`)\n ;\n element.selectAll(\"div.data-count\")\n .style(\"position\", \"absolute\")\n .style(\"left\", `calc(50% + ${rect.width / 2}px)`)\n .style(\"top\", `${icon_top - (rect.height / 2)}px`)\n ;\n }\n }\n\n postUpdateSmall(element) {\n element.selectAll(\"lhs\").style(\"display\", \"none\"); // TODO: a bug in Border2?\n element.selectAll(\"div.title-icon\").style(\"position\", \"static\");\n element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"\");\n element.selectAll(\"div.data-count\").style(\"visibility\", \"hidden\");\n const rect = element.node().getBoundingClientRect();\n const parentRect = element.node().parentElement.getBoundingClientRect();\n element.style(\"transform\", `translate(${parentRect.x - rect.x}px, ${parentRect.y - rect.y}px) scale(${this._scale})`);\n }\n\n postUpdateRegular(element) {\n element.selectAll(\"div.title-icon\").style(\"position\", \"static\");\n element.selectAll(\"div.body,div.title-text,div.icon-bar\").style(\"display\", \"\");\n element.selectAll(\"div.data-count\").style(\"visibility\", \"hidden\");\n }\n\n exit(domNode, element) {\n this._progressBar.exit(domNode, element);\n\n this.right(null);\n this._legend.target(null);\n this.center(null);\n this._carousel.target(null);\n this.top(null);\n this._titleBar.target(null);\n\n this._modal.target(null);\n\n delete this._prevChart;\n delete this._prevButtons;\n delete this._prevChartDataFamily;\n delete this._prevPos;\n delete this._prevdataVisible;\n delete this._prevlegendVisible;\n\n super.exit(domNode, element);\n }\n\n // Event Handlers ---\n // Events ---\n click(row, column, selected) {\n // console.log(\"Click: \" + JSON.stringify(row) + \", \" + column + \", \" + selected);\n }\n\n dblclick(row, column, selected) {\n // console.log(\"Double click: \" + JSON.stringify(row) + \", \" + column + \", \" + selected);\n }\n\n vertex_click(row, col, sel, more) {\n if (more && more.vertex) {\n // console.log(\"Vertex click: \" + more.vertex.id());\n }\n }\n\n vertex_dblclick(row, col, sel, more) {\n if (more && more.vertex) {\n // console.log(\"Vertex double click: \" + more.vertex.id());\n }\n }\n\n edge_click(row, col, sel, more) {\n if (more && more.edge) {\n // console.log(\"Edge click: \" + more.edge.id());\n }\n }\n\n edge_dblclick(row, col, sel, more) {\n if (more && more.edge) {\n // console.log(\"Edge double click: \" + more.edge.id());\n }\n }\n}\nChartPanel.prototype._class += \" layout_ChartPanel\";\n\nexport interface ChartPanel<T extends Widget = Widget> {\n title(): string;\n title(_: string): this;\n titleVisible(): boolean;\n titleVisible(_: boolean): this;\n titleOverlay(): boolean;\n titleOverlay(_: boolean): this;\n title_exists(): boolean;\n titleFontSize(): number;\n titleFontSize(_: number): this;\n titleFontSize_exists(): boolean;\n titleIconFontSize(): number;\n titleIconFontSize(_: number): this;\n titleIconFontSize_exists(): boolean;\n dataVisible(): boolean;\n dataVisible(_: boolean): this;\n dataButtonVisible(): boolean;\n dataButtonVisible(_: boolean): this;\n downloadButtonVisible(): boolean;\n downloadButtonVisible(_: boolean): this;\n downloadImageButtonVisible(): boolean;\n downloadImageButtonVisible(_: boolean): this;\n downloadTitle(): string;\n downloadTitle(_: string): this;\n downloadTimestampSuffix(): boolean;\n downloadTimestampSuffix(_: boolean): this;\n legendVisible(): boolean;\n legendVisible(_: boolean): this;\n legendButtonVisible(): boolean;\n legendButtonVisible(_: boolean): this;\n legendPosition(): \"right\" | \"bottom\";\n legendPosition(_: \"right\" | \"bottom\"): this;\n description(): string;\n description(_: string): this;\n description_exists(): boolean;\n widget(): T;\n widget(_: T): this;\n widget_exists(): boolean;\n enableAutoscaling(): boolean;\n enableAutoscaling(_: boolean): this;\n enableAutoscaling_exists(): boolean;\n highlightSize(): number;\n highlightSize(_: number): this;\n highlightSize_exists(): boolean;\n highlightColor(): string;\n highlightColor(_: string): this;\n highlightColor_exists(): boolean;\n}\n\nChartPanel.prototype.publishReset();\nChartPanel.prototype.publishProxy(\"title\", \"_titleBar\");\nChartPanel.prototype.publish(\"titleVisible\", true, \"boolean\");\nChartPanel.prototype.publish(\"titleOverlay\", false, \"boolean\");\nChartPanel.prototype.publishProxy(\"titleIcon\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"titleIconFont\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"titleFont\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"titleIconFontSize\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"titleFontSize\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"description\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"descriptionFont\", \"_titleBar\");\nChartPanel.prototype.publishProxy(\"descriptionFontSize\", \"_titleBar\");\nChartPanel.prototype.publish(\"dataVisible\", false, \"boolean\", \"Show data table\");\nChartPanel.prototype.publish(\"dataButtonVisible\", true, \"boolean\", \"Show data table button\");\nChartPanel.prototype.publish(\"downloadButtonVisible\", true, \"boolean\", \"Show data download button\");\nChartPanel.prototype.publish(\"downloadImageButtonVisible\", false, \"boolean\", \"Show image download button\");\nChartPanel.prototype.publish(\"downloadTitle\", \"\", \"string\", \"File name when downloaded\");\nChartPanel.prototype.publish(\"downloadTimestampSuffix\", true, \"boolean\", \"Use timestamp as file name suffix\");\nChartPanel.prototype.publish(\"legendVisible\", false, \"boolean\", \"Show legend\");\nChartPanel.prototype.publish(\"legendButtonVisible\", true, \"boolean\", \"Show legend button\");\nChartPanel.prototype.publish(\"legendPosition\", \"right\", \"set\", \"Position of legend\", [\"right\", \"bottom\"]);\nChartPanel.prototype.publishProxy(\"legend_labelMaxWidth\", \"_legend\", \"labelMaxWidth\");\nChartPanel.prototype.publishProxy(\"legend_showSeriesTotal\", \"_legend\", \"showSeriesTotal\");\nChartPanel.prototype.publishProxy(\"legend_showLegendTotal\", \"_legend\", \"showLegendTotal\");\nChartPanel.prototype.publishProxy(\"legend_itemPadding\", \"_legend\", \"itemPadding\");\nChartPanel.prototype.publishProxy(\"legend_shapeRadius\", \"_legend\", \"shapeRadius\");\nChartPanel.prototype.publishProxy(\"legend_symbolType\", \"_legend\", \"symbolType\");\nChartPanel.prototype.publishProxy(\"legend_labelAlign\", \"_legend\", \"labelAlign\");\nChartPanel.prototype.publish(\"widget\", null, \"widget\", \"Widget\", undefined, { render: false });\nChartPanel.prototype.publish(\"enableAutoscaling\", false, \"boolean\");\nChartPanel.prototype.publish(\"highlightSize\", 4, \"number\");\nChartPanel.prototype.publish(\"highlightColor\", \"#e67e22\", \"html-color\");\nChartPanel.prototype.publishProxy(\"progress_halfLife\", \"_progressBar\", \"halfLife\");\nChartPanel.prototype.publishProxy(\"progress_decay\", \"_progressBar\", \"decay\");\nChartPanel.prototype.publishProxy(\"progress_size\", \"_progressBar\", \"size\");\nChartPanel.prototype.publishProxy(\"progress_color\", \"_progressBar\", \"color\");\nChartPanel.prototype.publishProxy(\"progress_blurBar\", \"_progressBar\", \"blurBar\");\nChartPanel.prototype.publishProxy(\"progress_blurSize\", \"_progressBar\", \"blurSize\");\nChartPanel.prototype.publishProxy(\"progress_blurColor\", \"_progressBar\", \"blurColor\");\nChartPanel.prototype.publishProxy(\"progress_blurOpacity\", \"_progressBar\", \"blurOpacity\");\n\nChartPanel.prototype.widget = function (_?) {\n if (!arguments.length) return this._widget;\n this._carousel.widgets([_, this._table]);\n this._widget = _;\n this._widget\n .fields(this._legend.filteredFields())\n .data(this._legend.filteredData())\n ;\n\n const context = this;\n const tmpAny = this._widget as any;\n tmpAny.click = function () {\n context.click.apply(context, arguments);\n };\n tmpAny.dblclick = function () {\n context.dblclick.apply(context, arguments);\n };\n tmpAny.vertex_click = function () {\n context.vertex_click.apply(context, arguments);\n };\n tmpAny.vertex_dblclick = function () {\n context.vertex_dblclick.apply(context, arguments);\n };\n tmpAny.edge_click = function () {\n context.edge_click.apply(context, arguments);\n };\n tmpAny.edge_dblclick = function () {\n context.edge_dblclick.apply(context, arguments);\n };\n return this;\n};\n", "import { instanceOfIHighlight } from \"@hpcc-js/api\";\nimport { Database, Palette, SVGWidget, Widget } from \"@hpcc-js/common\";\nimport { format as d3Format } from \"d3-format\";\nimport { scaleOrdinal as d3ScaleOrdinal } from \"d3-scale\";\nimport {\n symbol as d3Symbol,\n symbolCircle as d3SymbolCircle,\n symbolCross as d3SymbolCross,\n symbolDiamond as d3SymbolDiamond,\n symbolSquare as d3SymbolSquare,\n symbolStar as d3SymbolStar,\n symbolTriangle as d3SymbolTriangle,\n symbolWye as d3SymbolWye\n} from \"d3-shape\";\nimport { legendColor as d3LegendColor } from \"d3-svg-legend\";\nimport { ChartPanel } from \"./ChartPanel.ts\";\n\nexport class Legend extends SVGWidget {\n _owner: ChartPanel;\n _targetWidget: Widget;\n _targetWidgetMonitor;\n _legendOrdinal;\n _disabled: string[] = [];\n\n private _symbolTypeMap = {\n \"circle\": d3SymbolCircle,\n \"cross\": d3SymbolCross,\n \"diamond\": d3SymbolDiamond,\n \"square\": d3SymbolSquare,\n \"star\": d3SymbolStar,\n \"triangle\": d3SymbolTriangle,\n \"wye\": d3SymbolWye\n };\n\n constructor(owner: ChartPanel) {\n super();\n this._owner = owner;\n this._drawStartPos = \"origin\";\n\n const context = this;\n this._legendOrdinal = d3LegendColor()\n .shape(\"path\", d3Symbol().type(d3SymbolCircle).size(150)())\n .shapePadding(10)\n .shapeRadius(10)\n .on(\"cellclick\", function (d) {\n context.onClick(d, this);\n })\n .on(\"cellover\", (d) => {\n context.onOver(d, this);\n })\n .on(\"cellout\", (d) => {\n context.onOut(d, this);\n })\n ;\n }\n\n isDisabled(d: string | Database.Field): boolean {\n if (typeof d === \"undefined\") {\n return false;\n } else if (typeof d === \"string\") {\n return d.indexOf(\"__\") === 0 || this._disabled.indexOf(d) >= 0;\n } else if (d instanceof Database.Field) {\n return d.id().indexOf(\"__\") === 0 || this._disabled.indexOf(d.id()) >= 0;\n }\n return this._disabled.indexOf(d) >= 0;\n }\n\n filteredFields(): Database.Field[] {\n switch (this.dataFamily()) {\n case \"2D\":\n return this.fields();\n case \"ND\":\n return this.fields().filter(d => !this.isDisabled(d));\n }\n return this.fields();\n }\n\n filteredColumns(): string[] {\n switch (this.dataFamily()) {\n case \"2D\":\n return this.columns();\n case \"ND\":\n return this.columns().filter(d => !this.isDisabled(d));\n }\n return this.columns();\n }\n\n filteredData(): any[][] {\n switch (this.dataFamily()) {\n case \"2D\":\n return this.data().filter(row => !this.isDisabled(row[0]));\n case \"ND\":\n const disabledCols: { [key: number]: boolean } = {};\n let anyDisabled: boolean = false;\n this.columns().forEach((col, idx) => {\n const disabled = this.isDisabled(col);\n disabledCols[idx] = disabled;\n if (disabled) {\n anyDisabled = true;\n }\n });\n return !anyDisabled ? this.data() : this.data().map(row => {\n return row.filter((cell, idx) => !disabledCols[idx]);\n });\n }\n return this.data();\n }\n\n isRainbow() {\n const widget = this.getWidget();\n return widget && widget._palette && widget._palette.type() === \"rainbow\";\n }\n\n targetWidget(): Widget;\n targetWidget(_: Widget): this;\n targetWidget(_?: Widget): Widget | 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 if (this._targetWidget) {\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 }\n return this;\n }\n\n getWidget() {\n if (this._targetWidget) {\n switch (this._targetWidget.classID()) {\n case \"composite_MultiChart\":\n return (this._targetWidget as any).chart();\n }\n }\n return this._targetWidget;\n }\n\n getPalette(): Palette.OrdinalPaletteFunc | Palette.RainbowPaletteFunc {\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 getPaletteType() {\n return this.getPalette().type();\n }\n\n fillColorFunc() {\n const widget = this.getWidget();\n if (widget && widget.fillColor) {\n // Legend will render before the widget, so its possible the widgets palette will not have switched yet...\n if (widget._palette && widget.paletteID && widget._palette.name !== widget.paletteID()) {\n widget._palette = widget._palette.switch(widget.paletteID());\n }\n return (row, col, sel) => {\n return widget.fillColor(row, col, sel);\n };\n }\n const palette = Palette.ordinal(widget && widget.paletteID ? widget.paletteID() || \"default\" : \"default\");\n return (row, col, sel) => {\n return palette(col);\n };\n }\n\n fillColor(row, col, sel) {\n return this.fillColorFunc()(row, col, sel);\n }\n\n protected _g;\n enter(domNode, element) {\n super.enter(domNode, element);\n this._g = element.append(\"g\")\n .attr(\"class\", \"legendOrdinal\")\n ;\n }\n\n calcMetaData() {\n let dataArr = [];\n let total = 0;\n let maxLabelWidth = 0;\n const colLength = this.columns().length;\n\n if (this._targetWidget) {\n const columns = this.columns();\n switch (this.getPaletteType()) {\n case \"ordinal\":\n const fillColor = this.fillColorFunc();\n let val = 0;\n switch (this.dataFamily()) {\n case \"2D\":\n dataArr = this.data().map(function (n, i) {\n val = this.data()[i].slice(1, colLength).reduce((acc, n) => acc + n, 0);\n const disabled = this.isDisabled(n[0]);\n if (!disabled) total += val;\n const label = n[0] + (!disabled && this.showSeriesTotal() ? ` (${val})` : \"\");\n const textSize = this.textSize(label);\n if (maxLabelWidth < textSize.width) maxLabelWidth = textSize.width;\n return [fillColor(n, n[0], false), n[0], label];\n }, this);\n break;\n case \"ND\":\n const widgetColumns = this.columns().filter(col => col.indexOf(\"__\") !== 0);\n dataArr = widgetColumns.filter(function (n, i) { return i > 0; }).map(function (n, i) {\n val = this.data().reduce((acc, n) => acc + n[i + 1], 0);\n const disabled = this.isDisabled(columns[i + 1]);\n const label = n + (!disabled && this.showSeriesTotal() ? ` (${val})` : \"\");\n if (!disabled) total += val;\n const textSize = this.textSize(label);\n if (maxLabelWidth < textSize.width) maxLabelWidth = textSize.width;\n return [fillColor(undefined, n, false), n, label];\n }, this);\n break;\n default:\n const widgetColumns2 = this.columns();\n dataArr = widgetColumns2.map(function (n) {\n return [fillColor(undefined, n, false), n];\n }, this);\n break;\n }\n break;\n case \"rainbow\":\n const palette = this.getPalette() as Palette.RainbowPaletteFunc;\n const format = d3Format(this.rainbowFormat());\n const widget = this.getWidget();\n const steps = this.rainbowBins();\n const weightMin: number = widget._dataMinWeight;\n const weightMax: number = widget._dataMaxWeight;\n const stepWeightDiff = (weightMax - weightMin) / (steps - 1);\n dataArr.push([palette(weightMin, weightMin, weightMax), format(weightMin)]);\n for (let x = 1; x < steps - 1; ++x) {\n let mid = stepWeightDiff * x;\n if (Math.floor(mid) > parseInt(dataArr[0][1])) {\n mid = Math.floor(mid);\n }\n dataArr.push([palette(mid, weightMin, weightMax), format(mid)]);\n }\n dataArr.push([palette(weightMax, weightMin, weightMax), format(weightMax)]);\n break;\n }\n }\n return {\n dataArr,\n total,\n maxLabelWidth\n };\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n const { dataArr, maxLabelWidth, total } = this.calcMetaData();\n\n const radius = this.shapeRadius();\n const size = this.radiusToSymbolSize(radius);\n\n const strokeWidth = 1;\n\n let shapePadding = this.itemPadding();// + strokeWidth;\n if (this.orientation() === \"horizontal\") {\n shapePadding += maxLabelWidth - (radius * 2);\n }\n\n const ordinal = d3ScaleOrdinal()\n .domain(dataArr.map(row => row[1]))\n .range(dataArr.map(row => row[0]));\n this._legendOrdinal\n .shape(\"path\", d3Symbol().type(this._symbolTypeMap[this.symbolType()]).size(size)())\n .orient(this.orientation())\n .title(this.title())\n .labelWrap(this.labelMaxWidth())\n .labelAlign(this.labelAlign())\n .shapePadding(shapePadding)\n .scale(ordinal)\n .labels(d => dataArr[d.i][2])\n ;\n\n this._g.call(this._legendOrdinal);\n\n this.updateDisabled(element, dataArr);\n\n const legendCellsBbox = this._g.select(\".legendCells\").node().getBBox();\n let offsetX = Math.abs(legendCellsBbox.x);\n let offsetY = Math.abs(legendCellsBbox.y) + strokeWidth;\n\n if (this.orientation() === \"horizontal\") {\n if (this.labelAlign() === \"start\") {\n offsetX += strokeWidth;\n } else if (this.labelAlign() === \"end\") {\n offsetX -= strokeWidth;\n }\n if (this.width() > legendCellsBbox.width) {\n const extraWidth = this.width() - legendCellsBbox.width;\n offsetX += (extraWidth / 2);\n }\n } else if (this.orientation() === \"vertical\") {\n offsetX += strokeWidth;\n if (this._containerSize.height > legendCellsBbox.height) {\n const extraHeight = this.height() - legendCellsBbox.height;\n offsetY += (extraHeight / 2);\n }\n }\n\n this._g.attr(\"transform\", `translate(${offsetX}, ${offsetY})`);\n this.pos({\n x: 0,\n y: 0\n });\n this._legendOrdinal\n .labelOffset(this.itemPadding())\n ;\n const legendTotal = this._g.selectAll(\".legendTotal\").data(dataArr.length && this.showLegendTotal() ? [total] : []);\n const totalText = `Total: ${total}`;\n const totalOffsetX = -offsetX;\n const totalOffsetY = legendCellsBbox.height + this.itemPadding() + strokeWidth;\n this.enableOverflowScroll(false);\n this.enableOverflow(true);\n legendTotal\n .enter()\n .append(\"text\")\n .classed(\"legendTotal\", true)\n .merge(legendTotal)\n .attr(\"transform\", `translate(${totalOffsetX}, ${totalOffsetY})`)\n .text(totalText)\n ;\n legendTotal.exit().remove();\n }\n\n updateDisabled(element, dataArr) {\n element\n .style(\"cursor\", \"pointer\")\n .selectAll(\"path.swatch\").filter((d, i) => i < dataArr.length)\n .style(\"stroke\", (d, i) => dataArr[i][0])\n .style(\"fill\", (d, i) =>\n this._disabled.indexOf(d) < 0 ? dataArr[i][0] : \"white\"\n )\n ;\n }\n\n postUpdate(domNode, element) {\n let w;\n if (this._boundingBox) {\n w = this._boundingBox.width;\n this._boundingBox.width = this._size.width;\n }\n super.postUpdate(domNode, element);\n if (w !== undefined) {\n this._boundingBox.width = w;\n }\n this._parentRelativeDiv.style(\"overflow\", \"hidden\");\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n\n radiusToSymbolSize(radius) {\n const circleSize = Math.pow(radius, 2) * Math.PI;\n switch (this.symbolType()) {\n case \"star\":\n return circleSize * 0.45;\n case \"triangle\":\n return circleSize * 0.65;\n case \"cross\":\n case \"diamond\":\n case \"wye\":\n return circleSize * 0.75;\n case \"circle\":\n return circleSize;\n case \"square\":\n return circleSize * 1.3;\n }\n }\n\n onClick(d, domNode) {\n switch (this.getPaletteType()) {\n case \"ordinal\":\n switch (this.dataFamily()) {\n case \"2D\":\n case \"ND\":\n const disabledIdx = this._disabled.indexOf(d);\n if (disabledIdx < 0) {\n this._disabled.push(d);\n } else {\n this._disabled.splice(disabledIdx, 1);\n }\n this._owner.refreshColumns();\n this._owner.refreshData();\n this._owner.render();\n break;\n }\n break;\n }\n }\n\n onOver(d, domNode) {\n if (instanceOfIHighlight(this._owner)) {\n switch (this.getPaletteType()) {\n case \"ordinal\":\n switch (this.dataFamily()) {\n case \"2D\":\n case \"ND\":\n if (this._disabled.indexOf(d) < 0) {\n this._owner.highlightColumn(d);\n }\n break;\n }\n break;\n }\n }\n }\n\n onOut(d, domNode) {\n if (instanceOfIHighlight(this._owner)) {\n switch (this.getPaletteType()) {\n case \"ordinal\":\n switch (this.dataFamily()) {\n case \"2D\":\n case \"ND\":\n this._owner.highlightColumn();\n break;\n }\n break;\n }\n }\n }\n\n onDblClick(rowData, rowIdx) {\n }\n\n onMouseOver(rowData, rowIdx) {\n }\n private _containerSize;\n resize(_size?: { width: number, height: number }) {\n let retVal;\n if (this.fitToContent()) {\n this._containerSize = _size;\n const bbox = this.getBBox();\n if (_size.width > bbox.width) {\n bbox.width = _size.width;\n }\n if (_size.height > bbox.height) {\n bbox.height = _size.height;\n }\n retVal = super.resize.apply(this, [{ ...bbox }]);\n } else {\n retVal = super.resize.apply(this, arguments);\n }\n return retVal;\n }\n\n}\nLegend.prototype._class += \" layout_Legend\";\n\nexport interface Legend {\n title(): string;\n title(_: string): this;\n symbolType(): \"circle\" | \"cross\" | \"diamond\" | \"square\" | \"star\" | \"triangle\" | \"wye\";\n symbolType(_: \"circle\" | \"cross\" | \"diamond\" | \"square\" | \"star\" | \"triangle\" | \"wye\"): this;\n labelMaxWidth(): number;\n labelMaxWidth(_: number): this;\n orientation(): \"vertical\" | \"horizontal\";\n orientation(_: \"vertical\" | \"horizontal\"): this;\n orientation_exists: () => boolean;\n dataFamily(): \"1D\" | \"2D\" | \"ND\" | \"map\" | \"graph\" | \"any\";\n dataFamily(_: \"1D\" | \"2D\" | \"ND\" | \"map\" | \"graph\" | \"any\"): this;\n dataFamily_exists: () => boolean;\n rainbowFormat(): string;\n rainbowFormat(_: string): this;\n rainbowFormat_exists: () => boolean;\n rainbowBins(): number;\n rainbowBins(_: number): this;\n rainbowBins_exists: () => boolean;\n showSeriesTotal(): boolean;\n showSeriesTotal(_: boolean): this;\n showLegendTotal(): boolean;\n showLegendTotal(_: boolean): this;\n itemPadding(): number;\n itemPadding(_: number): this;\n shapeRadius(): number;\n shapeRadius(_: number): this;\n fitToContent(): boolean;\n fitToContent(_: boolean): this;\n labelAlign(): \"start\" | \"middle\" | \"end\";\n labelAlign(_: \"start\" | \"middle\" | \"end\"): this;\n}\nLegend.prototype.publish(\"title\", \"\", \"string\", \"Title\");\nLegend.prototype.publish(\"symbolType\", \"circle\", \"set\", \"Shape of each legend item\", [\"circle\", \"cross\", \"diamond\", \"square\", \"star\", \"triangle\", \"wye\"]);\nLegend.prototype.publish(\"labelMaxWidth\", null, \"number\", \"Max Label Width (pixels)\", null, { optional: true });\nLegend.prototype.publish(\"orientation\", \"vertical\", \"set\", \"Orientation of Legend rows\", [\"vertical\", \"horizontal\"], { tags: [\"Private\"] });\nLegend.prototype.publish(\"dataFamily\", \"ND\", \"set\", \"Type of data\", [\"1D\", \"2D\", \"ND\", \"map\", \"graph\", \"any\"], { 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() });\nLegend.prototype.publish(\"showSeriesTotal\", false, \"boolean\", \"Show value next to series\");\nLegend.prototype.publish(\"showLegendTotal\", false, \"boolean\", \"Show a total of the series values under the legend\", null);\nLegend.prototype.publish(\"itemPadding\", 8, \"number\", \"Padding between legend items (pixels)\");\nLegend.prototype.publish(\"shapeRadius\", 7, \"number\", \"Radius of legend shape (pixels)\");\nLegend.prototype.publish(\"fitToContent\", true, \"boolean\", \"If true, resize will simply reapply the bounding box dimensions\");\nLegend.prototype.publish(\"labelAlign\", \"start\", \"set\", \"Horizontal alignment of legend item label (for horizontal orientation only)\", [\"start\", \"middle\", \"end\"], { optional: true, disable: (w: any) => w.orientation() === \"vertical\" });\n", "var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We\u2019re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n", "export default function(x) {\n return function constant() {\n return x;\n };\n}\n", "export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n", "import {pi, tau} from \"../math.js\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n", "export default {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n", "var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n", "import {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n", "export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n", "var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n", "var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n", "import {path} from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function() {\n var type = constant(circle),\n size = constant(64),\n context = null;\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n", "import { select } from \"d3-selection\"\nimport { format, formatPrefix } from \"d3-format\"\n\nconst d3_identity = d => d\n\nconst d3_reverse = arr => {\n const mirror = []\n for (let i = 0, l = arr.length; i < l; i++) {\n mirror[i] = arr[l - i - 1]\n }\n return mirror\n}\n\n//Text wrapping code adapted from Mike Bostock\nconst d3_textWrapping = (text, width) => {\n text.each(function() {\n var text = select(this),\n words = text\n .text()\n .split(/\\s+/)\n .reverse(),\n word,\n line = [],\n lineNumber = 0,\n lineHeight = 1.2, //ems\n y = text.attr(\"y\"),\n dy = parseFloat(text.attr(\"dy\")) || 0,\n tspan = text\n .text(null)\n .append(\"tspan\")\n .attr(\"x\", 0)\n .attr(\"dy\", dy + \"em\")\n\n while ((word = words.pop())) {\n line.push(word)\n tspan.text(line.join(\" \"))\n if (tspan.node().getComputedTextLength() > width && line.length > 1) {\n line.pop()\n tspan.text(line.join(\" \"))\n line = [word]\n tspan = text\n .append(\"tspan\")\n .attr(\"x\", 0)\n .attr(\"dy\", lineHeight + dy + \"em\")\n .text(word)\n }\n }\n })\n}\n\nconst d3_mergeLabels = (gen = [], labels, domain, range, labelDelimiter) => {\n if (typeof labels === \"object\") {\n if (labels.length === 0) return gen\n\n let i = labels.length\n for (; i < gen.length; i++) {\n labels.push(gen[i])\n }\n return labels\n } else if (typeof labels === \"function\") {\n const customLabels = []\n const genLength = gen.length\n for (let i = 0; i < genLength; i++) {\n customLabels.push(\n labels({\n i,\n genLength,\n generatedLabels: gen,\n domain,\n range,\n labelDelimiter\n })\n )\n }\n return customLabels\n }\n\n return gen\n}\n\nconst d3_linearLegend = (scale, cells, labelFormat) => {\n let data = []\n\n if (cells.length > 1) {\n data = cells\n } else {\n const domain = scale.domain(),\n increment = (domain[domain.length - 1] - domain[0]) / (cells - 1)\n let i = 0\n\n for (; i < cells; i++) {\n data.push(domain[0] + i * increment)\n }\n }\n\n const labels = data.map(labelFormat)\n return {\n data: data,\n labels: labels,\n feature: d => scale(d)\n }\n}\n\nconst d3_quantLegend = (scale, labelFormat, labelDelimiter) => {\n const labels = scale.range().map(d => {\n const invert = scale.invertExtent(d)\n return (\n labelFormat(invert[0]) +\n \" \" +\n labelDelimiter +\n \" \" +\n labelFormat(invert[1])\n )\n })\n\n return {\n data: scale.range(),\n labels: labels,\n feature: d3_identity\n }\n}\n\nconst d3_ordinalLegend = scale => ({\n data: scale.domain(),\n labels: scale.domain(),\n feature: d => scale(d)\n})\n\nconst d3_cellOver = (cellDispatcher, d, obj) => {\n cellDispatcher.call(\"cellover\", obj, d)\n}\n\nconst d3_cellOut = (cellDispatcher, d, obj) => {\n cellDispatcher.call(\"cellout\", obj, d)\n}\n\nconst d3_cellClick = (cellDispatcher, d, obj) => {\n cellDispatcher.call(\"cellclick\", obj, d)\n}\n\nexport default {\n d3_drawShapes: (\n shape,\n shapes,\n shapeHeight,\n shapeWidth,\n shapeRadius,\n path\n ) => {\n if (shape === \"rect\") {\n shapes.attr(\"height\", shapeHeight).attr(\"width\", shapeWidth)\n } else if (shape === \"circle\") {\n shapes.attr(\"r\", shapeRadius)\n } else if (shape === \"line\") {\n shapes\n .attr(\"x1\", 0)\n .attr(\"x2\", shapeWidth)\n .attr(\"y1\", 0)\n .attr(\"y2\", 0)\n } else if (shape === \"path\") {\n shapes.attr(\"d\", path)\n }\n },\n\n d3_addText: function(svg, enter, labels, classPrefix, labelWidth) {\n enter.append(\"text\").attr(\"class\", classPrefix + \"label\")\n const text = svg\n .selectAll(`g.${classPrefix}cell text.${classPrefix}label`)\n .data(labels)\n .text(d3_identity)\n\n if (labelWidth) {\n svg\n .selectAll(`g.${classPrefix}cell text.${classPrefix}label`)\n .call(d3_textWrapping, labelWidth)\n }\n\n return text\n },\n\n d3_calcType: function(\n scale,\n ascending,\n cells,\n labels,\n labelFormat,\n labelDelimiter\n ) {\n const type = scale.invertExtent\n ? d3_quantLegend(scale, labelFormat, labelDelimiter)\n : scale.ticks\n ? d3_linearLegend(scale, cells, labelFormat)\n : d3_ordinalLegend(scale)\n\n //for d3.scaleSequential that doesn't have a range function\n const range = (scale.range && scale.range()) || scale.domain()\n type.labels = d3_mergeLabels(\n type.labels,\n labels,\n scale.domain(),\n range,\n labelDelimiter\n )\n\n if (ascending) {\n type.labels = d3_reverse(type.labels)\n type.data = d3_reverse(type.data)\n }\n\n return type\n },\n\n d3_filterCells: (type, cellFilter) => {\n let filterCells = type.data\n .map((d, i) => ({ data: d, label: type.labels[i] }))\n .filter(cellFilter)\n const dataValues = filterCells.map(d => d.data)\n const labelValues = filterCells.map(d => d.label)\n type.data = type.data.filter(d => dataValues.indexOf(d) !== -1)\n type.labels = type.labels.filter(d => labelValues.indexOf(d) !== -1)\n return type\n },\n\n d3_placement: (orient, cell, cellTrans, text, textTrans, labelAlign) => {\n cell.attr(\"transform\", cellTrans)\n text.attr(\"transform\", textTrans)\n if (orient === \"horizontal\") {\n text.style(\"text-anchor\", labelAlign)\n }\n },\n\n d3_addEvents: function(cells, dispatcher) {\n cells\n .on(\"mouseover.legend\", function(d) {\n d3_cellOver(dispatcher, d, this)\n })\n .on(\"mouseout.legend\", function(d) {\n d3_cellOut(dispatcher, d, this)\n })\n .on(\"click.legend\", function(d) {\n d3_cellClick(dispatcher, d, this)\n })\n },\n\n d3_title: (svg, title, classPrefix, titleWidth) => {\n if (title !== \"\") {\n const titleText = svg.selectAll(\"text.\" + classPrefix + \"legendTitle\")\n\n titleText\n .data([title])\n .enter()\n .append(\"text\")\n .attr(\"class\", classPrefix + \"legendTitle\")\n\n svg.selectAll(\"text.\" + classPrefix + \"legendTitle\").text(title)\n\n if (titleWidth) {\n svg\n .selectAll(\"text.\" + classPrefix + \"legendTitle\")\n .call(d3_textWrapping, titleWidth)\n }\n\n const cellsSvg = svg.select(\".\" + classPrefix + \"legendCells\")\n const yOffset = svg\n .select(\".\" + classPrefix + \"legendTitle\")\n .nodes()\n .map(d => d.getBBox().height)[0],\n xOffset = -cellsSvg.nodes().map(function(d) {\n return d.getBBox().x\n })[0]\n cellsSvg.attr(\"transform\", \"translate(\" + xOffset + \",\" + yOffset + \")\")\n }\n },\n\n d3_defaultLocale: {\n format,\n formatPrefix\n },\n\n d3_defaultFormatSpecifier: \".01f\",\n\n d3_defaultDelimiter: \"to\"\n}\n", "import helper from \"./legend\"\nimport { dispatch } from \"d3-dispatch\"\nimport { scaleLinear } from \"d3-scale\"\nimport { formatLocale, formatSpecifier } from \"d3-format\"\n\nimport { sum } from \"d3-array\"\n\nexport default function color() {\n let scale = scaleLinear(),\n shape = \"rect\",\n shapeWidth = 15,\n shapeHeight = 15,\n shapeRadius = 10,\n shapePadding = 2,\n cells = [5],\n cellFilter,\n labels = [],\n classPrefix = \"\",\n useClass = false,\n title = \"\",\n locale = helper.d3_defaultLocale,\n specifier = helper.d3_defaultFormatSpecifier,\n labelOffset = 10,\n labelAlign = \"middle\",\n labelDelimiter = helper.d3_defaultDelimiter,\n labelWrap,\n orient = \"vertical\",\n ascending = false,\n path,\n titleWidth,\n legendDispatcher = dispatch(\"cellover\", \"cellout\", \"cellclick\")\n\n function legend(svg) {\n const type = helper.d3_calcType(\n scale,\n ascending,\n cells,\n labels,\n locale.format(specifier),\n labelDelimiter\n ),\n legendG = svg.selectAll(\"g\").data([scale])\n\n legendG\n .enter()\n .append(\"g\")\n .attr(\"class\", classPrefix + \"legendCells\")\n\n if (cellFilter) {\n helper.d3_filterCells(type, cellFilter)\n }\n\n let cell = svg\n .select(\".\" + classPrefix + \"legendCells\")\n .selectAll(\".\" + classPrefix + \"cell\")\n .data(type.data)\n\n const cellEnter = cell\n .enter()\n .append(\"g\")\n .attr(\"class\", classPrefix + \"cell\")\n cellEnter.append(shape).attr(\"class\", classPrefix + \"swatch\")\n\n let shapes = svg\n .selectAll(\n \"g.\" + classPrefix + \"cell \" + shape + \".\" + classPrefix + \"swatch\"\n )\n .data(type.data)\n\n //add event handlers\n helper.d3_addEvents(cellEnter, legendDispatcher)\n\n cell\n .exit()\n .transition()\n .style(\"opacity\", 0)\n .remove()\n shapes\n .exit()\n .transition()\n .style(\"opacity\", 0)\n .remove()\n\n shapes = shapes.merge(shapes)\n\n helper.d3_drawShapes(\n shape,\n shapes,\n shapeHeight,\n shapeWidth,\n shapeRadius,\n path\n )\n const text = helper.d3_addText(\n svg,\n cellEnter,\n type.labels,\n classPrefix,\n labelWrap\n )\n\n // we need to merge the selection, otherwise changes in the legend (e.g. change of orientation) are applied only to the new cells and not the existing ones.\n cell = cellEnter.merge(cell)\n\n // sets placement\n const textSize = text.nodes().map(d => d.getBBox()),\n shapeSize = shapes.nodes().map(d => d.getBBox())\n //sets scale\n //everything is fill except for line which is stroke,\n if (!useClass) {\n if (shape == \"line\") {\n shapes.style(\"stroke\", type.feature)\n } else {\n shapes.style(\"fill\", type.feature)\n }\n } else {\n shapes.attr(\"class\", d => `${classPrefix}swatch ${type.feature(d)}`)\n }\n\n let cellTrans,\n textTrans,\n textAlign = labelAlign == \"start\" ? 0 : labelAlign == \"middle\" ? 0.5 : 1\n\n //positions cells and text\n if (orient === \"vertical\") {\n const cellSize = textSize.map((d, i) =>\n Math.max(d.height, shapeSize[i].height)\n )\n\n cellTrans = (d, i) => {\n const height = sum(cellSize.slice(0, i))\n return `translate(0, ${height + i * shapePadding})`\n }\n\n textTrans = (d, i) =>\n `translate( ${shapeSize[i].width +\n shapeSize[i].x +\n labelOffset}, ${shapeSize[i].y + shapeSize[i].height / 2 + 5})`\n } else if (orient === \"horizontal\") {\n cellTrans = (d, i) =>\n `translate(${i * (shapeSize[i].width + shapePadding)},0)`\n textTrans = (d, i) => `translate(${shapeSize[i].width * textAlign +\n shapeSize[i].x},\n ${shapeSize[i].height + shapeSize[i].y + labelOffset + 8})`\n }\n\n helper.d3_placement(orient, cell, cellTrans, text, textTrans, labelAlign)\n helper.d3_title(svg, title, classPrefix, titleWidth)\n\n cell.transition().style(\"opacity\", 1)\n }\n\n legend.scale = function(_) {\n if (!arguments.length) return scale\n scale = _\n return legend\n }\n\n legend.cells = function(_) {\n if (!arguments.length) return cells\n if (_.length > 1 || _ >= 2) {\n cells = _\n }\n return legend\n }\n\n legend.cellFilter = function(_) {\n if (!arguments.length) return cellFilter\n cellFilter = _\n return legend\n }\n\n legend.shape = function(_, d) {\n if (!arguments.length) return shape\n if (\n _ == \"rect\" ||\n _ == \"circle\" ||\n _ == \"line\" ||\n (_ == \"path\" && typeof d === \"string\")\n ) {\n shape = _\n path = d\n }\n return legend\n }\n\n legend.shapeWidth = function(_) {\n if (!arguments.length) return shapeWidth\n shapeWidth = +_\n return legend\n }\n\n legend.shapeHeight = function(_) {\n if (!arguments.length) return shapeHeight\n shapeHeight = +_\n return legend\n }\n\n legend.shapeRadius = function(_) {\n if (!arguments.length) return shapeRadius\n shapeRadius = +_\n return legend\n }\n\n legend.shapePadding = function(_) {\n if (!arguments.length) return shapePadding\n shapePadding = +_\n return legend\n }\n\n legend.labels = function(_) {\n if (!arguments.length) return labels\n labels = _\n return legend\n }\n\n legend.labelAlign = function(_) {\n if (!arguments.length) return labelAlign\n if (_ == \"start\" || _ == \"end\" || _ == \"middle\") {\n labelAlign = _\n }\n return legend\n }\n\n legend.locale = function(_) {\n if (!arguments.length) return locale\n locale = formatLocale(_)\n return legend\n }\n\n legend.labelFormat = function(_) {\n if (!arguments.length) return legend.locale().format(specifier)\n specifier = formatSpecifier(_)\n return legend\n }\n\n legend.labelOffset = function(_) {\n if (!arguments.length) return labelOffset\n labelOffset = +_\n return legend\n }\n\n legend.labelDelimiter = function(_) {\n if (!arguments.length) return labelDelimiter\n labelDelimiter = _\n return legend\n }\n\n legend.labelWrap = function(_) {\n if (!arguments.length) return labelWrap\n labelWrap = _\n return legend\n }\n\n legend.useClass = function(_) {\n if (!arguments.length) return useClass\n if (_ === true || _ === false) {\n useClass = _\n }\n return legend\n }\n\n legend.orient = function(_) {\n if (!arguments.length) return orient\n _ = _.toLowerCase()\n if (_ == \"horizontal\" || _ == \"vertical\") {\n orient = _\n }\n return legend\n }\n\n legend.ascending = function(_) {\n if (!arguments.length) return ascending\n ascending = !!_\n return legend\n }\n\n legend.classPrefix = function(_) {\n if (!arguments.length) return classPrefix\n classPrefix = _\n return legend\n }\n\n legend.title = function(_) {\n if (!arguments.length) return title\n title = _\n return legend\n }\n\n legend.titleWidth = function(_) {\n if (!arguments.length) return titleWidth\n titleWidth = _\n return legend\n }\n\n legend.textWrap = function(_) {\n if (!arguments.length) return textWrap\n textWrap = _\n return legend\n }\n\n legend.on = function() {\n const value = legendDispatcher.on.apply(legendDispatcher, arguments)\n return value === legendDispatcher ? legend : value\n }\n\n return legend\n}\n", "import helper from \"./legend\"\nimport { dispatch } from \"d3-dispatch\"\nimport { scaleLinear } from \"d3-scale\"\nimport { formatLocale, formatSpecifier } from \"d3-format\"\nimport { sum, max } from \"d3-array\"\n\nexport default function size() {\n let scale = scaleLinear(),\n shape = \"rect\",\n shapeWidth = 15,\n shapePadding = 2,\n cells = [5],\n cellFilter,\n labels = [],\n classPrefix = \"\",\n title = \"\",\n locale = helper.d3_defaultLocale,\n specifier = helper.d3_defaultFormatSpecifier,\n labelOffset = 10,\n labelAlign = \"middle\",\n labelDelimiter = helper.d3_defaultDelimiter,\n labelWrap,\n orient = \"vertical\",\n ascending = false,\n path,\n titleWidth,\n legendDispatcher = dispatch(\"cellover\", \"cellout\", \"cellclick\")\n\n function legend(svg) {\n const type = helper.d3_calcType(\n scale,\n ascending,\n cells,\n labels,\n locale.format(specifier),\n labelDelimiter\n ),\n legendG = svg.selectAll(\"g\").data([scale])\n\n if (cellFilter) {\n helper.d3_filterCells(type, cellFilter)\n }\n\n legendG\n .enter()\n .append(\"g\")\n .attr(\"class\", classPrefix + \"legendCells\")\n\n let cell = svg\n .select(\".\" + classPrefix + \"legendCells\")\n .selectAll(\".\" + classPrefix + \"cell\")\n .data(type.data)\n const cellEnter = cell\n .enter()\n .append(\"g\")\n .attr(\"class\", classPrefix + \"cell\")\n cellEnter.append(shape).attr(\"class\", classPrefix + \"swatch\")\n\n let shapes = svg.selectAll(\n \"g.\" + classPrefix + \"cell \" + shape + \".\" + classPrefix + \"swatch\"\n )\n\n //add event handlers\n helper.d3_addEvents(cellEnter, legendDispatcher)\n\n cell\n .exit()\n .transition()\n .style(\"opacity\", 0)\n .remove()\n\n shapes\n .exit()\n .transition()\n .style(\"opacity\", 0)\n .remove()\n shapes = shapes.merge(shapes)\n\n //creates shape\n if (shape === \"line\") {\n helper.d3_drawShapes(shape, shapes, 0, shapeWidth)\n shapes.attr(\"stroke-width\", type.feature)\n } else {\n helper.d3_drawShapes(\n shape,\n shapes,\n type.feature,\n type.feature,\n type.feature,\n path\n )\n }\n\n const text = helper.d3_addText(\n svg,\n cellEnter,\n type.labels,\n classPrefix,\n labelWrap\n )\n\n // we need to merge the selection, otherwise changes in the legend (e.g. change of orientation) are applied only to the new cells and not the existing ones.\n cell = cellEnter.merge(cell)\n\n //sets placement\n\n const textSize = text.nodes().map(d => d.getBBox()),\n shapeSize = shapes.nodes().map((d, i) => {\n const bbox = d.getBBox()\n const stroke = scale(type.data[i])\n\n if (shape === \"line\" && orient === \"horizontal\") {\n bbox.height = bbox.height + stroke\n } else if (shape === \"line\" && orient === \"vertical\") {\n bbox.width = bbox.width\n }\n return bbox\n })\n\n const maxH = max(shapeSize, d => d.height + d.y),\n maxW = max(shapeSize, d => d.width + d.x)\n\n let cellTrans,\n textTrans,\n textAlign = labelAlign == \"start\" ? 0 : labelAlign == \"middle\" ? 0.5 : 1\n\n //positions cells and text\n if (orient === \"vertical\") {\n const cellSize = textSize.map((d, i) =>\n Math.max(d.height, shapeSize[i].height)\n )\n const y =\n shape == \"circle\" || shape == \"line\" ? shapeSize[0].height / 2 : 0\n cellTrans = (d, i) => {\n const height = sum(cellSize.slice(0, i))\n\n return `translate(0, ${y + height + i * shapePadding})`\n }\n\n textTrans = (d, i) => `translate( ${maxW + labelOffset},\n ${shapeSize[i].y + shapeSize[i].height / 2 + 5})`\n } else if (orient === \"horizontal\") {\n cellTrans = (d, i) => {\n const width = sum(shapeSize.slice(0, i), d => d.width)\n const y = shape == \"circle\" || shape == \"line\" ? maxH / 2 : 0\n return `translate(${width + i * shapePadding}, ${y})`\n }\n\n const offset = shape == \"line\" ? maxH / 2 : maxH\n textTrans = (d, i) => {\n return `translate( ${shapeSize[i].width * textAlign + shapeSize[i].x},\n ${offset + labelOffset})`\n }\n }\n\n helper.d3_placement(orient, cell, cellTrans, text, textTrans, labelAlign)\n helper.d3_title(svg, title, classPrefix, titleWidth)\n\n cell.transition().style(\"opacity\", 1)\n }\n\n legend.scale = function(_) {\n if (!arguments.length) return scale\n scale = _\n return legend\n }\n\n legend.cells = function(_) {\n if (!arguments.length) return cells\n if (_.length > 1 || _ >= 2) {\n cells = _\n }\n return legend\n }\n\n legend.cellFilter = function(_) {\n if (!arguments.length) return cellFilter\n cellFilter = _\n return legend\n }\n\n legend.shape = function(_, d) {\n if (!arguments.length) return shape\n if (_ == \"rect\" || _ == \"circle\" || _ == \"line\") {\n shape = _\n path = d\n }\n return legend\n }\n\n legend.shapeWidth = function(_) {\n if (!arguments.length) return shapeWidth\n shapeWidth = +_\n return legend\n }\n\n legend.shapePadding = function(_) {\n if (!arguments.length) return shapePadding\n shapePadding = +_\n return legend\n }\n\n legend.labels = function(_) {\n if (!arguments.length) return labels\n labels = _\n return legend\n }\n\n legend.labelAlign = function(_) {\n if (!arguments.length) return labelAlign\n if (_ == \"start\" || _ == \"end\" || _ == \"middle\") {\n labelAlign = _\n }\n return legend\n }\n\n legend.locale = function(_) {\n if (!arguments.length) return locale\n locale = formatLocale(_)\n return legend\n }\n\n legend.labelFormat = function(_) {\n if (!arguments.length) return legend.locale().format(specifier)\n specifier = formatSpecifier(_)\n return legend\n }\n\n legend.labelOffset = function(_) {\n if (!arguments.length) return labelOffset\n labelOffset = +_\n return legend\n }\n\n legend.labelDelimiter = function(_) {\n if (!arguments.length) return labelDelimiter\n labelDelimiter = _\n return legend\n }\n\n legend.labelWrap = function(_) {\n if (!arguments.length) return labelWrap\n labelWrap = _\n return legend\n }\n\n legend.orient = function(_) {\n if (!arguments.length) return orient\n _ = _.toLowerCase()\n if (_ == \"horizontal\" || _ == \"vertical\") {\n orient = _\n }\n return legend\n }\n\n legend.ascending = function(_) {\n if (!arguments.length) return ascending\n ascending = !!_\n return legend\n }\n\n legend.classPrefix = function(_) {\n if (!arguments.length) return classPrefix\n classPrefix = _\n return legend\n }\n\n legend.title = function(_) {\n if (!arguments.length) return title\n title = _\n return legend\n }\n\n legend.titleWidth = function(_) {\n if (!arguments.length) return titleWidth\n titleWidth = _\n return legend\n }\n\n legend.on = function() {\n const value = legendDispatcher.on.apply(legendDispatcher, arguments)\n return value === legendDispatcher ? legend : value\n }\n\n return legend\n}\n", "import helper from \"./legend\"\nimport { dispatch } from \"d3-dispatch\"\nimport { scaleLinear } from \"d3-scale\"\nimport { formatLocale, formatSpecifier } from \"d3-format\"\nimport { sum, max } from \"d3-array\"\n\nexport default function symbol() {\n let scale = scaleLinear(),\n shape = \"path\",\n shapeWidth = 15,\n shapeHeight = 15,\n shapeRadius = 10,\n shapePadding = 5,\n cells = [5],\n cellFilter,\n labels = [],\n classPrefix = \"\",\n title = \"\",\n locale = helper.d3_defaultLocale,\n specifier = helper.d3_defaultFormatSpecifier,\n labelAlign = \"middle\",\n labelOffset = 10,\n labelDelimiter = helper.d3_defaultDelimiter,\n labelWrap,\n orient = \"vertical\",\n ascending = false,\n titleWidth,\n legendDispatcher = dispatch(\"cellover\", \"cellout\", \"cellclick\")\n\n function legend(svg) {\n const type = helper.d3_calcType(\n scale,\n ascending,\n cells,\n labels,\n locale.format(specifier),\n labelDelimiter\n ),\n legendG = svg.selectAll(\"g\").data([scale])\n\n if (cellFilter) {\n helper.d3_filterCells(type, cellFilter)\n }\n\n legendG\n .enter()\n .append(\"g\")\n .attr(\"class\", classPrefix + \"legendCells\")\n\n let cell = svg\n .select(\".\" + classPrefix + \"legendCells\")\n .selectAll(\".\" + classPrefix + \"cell\")\n .data(type.data)\n const cellEnter = cell\n .enter()\n .append(\"g\")\n .attr(\"class\", classPrefix + \"cell\")\n cellEnter.append(shape).attr(\"class\", classPrefix + \"swatch\")\n\n let shapes = svg.selectAll(\"g.\" + classPrefix + \"cell \" + shape + \".\" + classPrefix + \"swatch\")\n\n //add event handlers\n helper.d3_addEvents(cellEnter, legendDispatcher)\n\n //remove old shapes\n cell\n .exit()\n .transition()\n .style(\"opacity\", 0)\n .remove()\n shapes\n .exit()\n .transition()\n .style(\"opacity\", 0)\n .remove()\n shapes = shapes.merge(shapes)\n\n helper.d3_drawShapes(\n shape,\n shapes,\n shapeHeight,\n shapeWidth,\n shapeRadius,\n type.feature\n )\n const text = helper.d3_addText(\n svg,\n cellEnter,\n type.labels,\n classPrefix,\n labelWrap\n )\n\n // we need to merge the selection, otherwise changes in the legend (e.g. change of orientation) are applied only to the new cells and not the existing ones.\n cell = cellEnter.merge(cell)\n\n // sets placement\n const textSize = text.nodes().map(d => d.getBBox()),\n shapeSize = shapes.nodes().map(d => d.getBBox())\n\n const maxH = max(shapeSize, d => d.height),\n maxW = max(shapeSize, d => d.width)\n\n let cellTrans,\n textTrans,\n textAlign = labelAlign == \"start\" ? 0 : labelAlign == \"middle\" ? 0.5 : 1\n\n //positions cells and text\n if (orient === \"vertical\") {\n const cellSize = textSize.map((d, i) => Math.max(maxH, d.height))\n\n cellTrans = (d, i) => {\n const height = sum(cellSize.slice(0, i))\n return `translate(0, ${height + i * shapePadding} )`\n }\n textTrans = (d, i) => `translate( ${maxW + labelOffset},\n ${shapeSize[i].y + shapeSize[i].height / 2 + 5})`\n } else if (orient === \"horizontal\") {\n cellTrans = (d, i) => `translate( ${i * (maxW + shapePadding)},0)`\n textTrans = (d, i) => `translate( ${shapeSize[i].width * textAlign +\n shapeSize[i].x},\n ${maxH + labelOffset})`\n }\n\n helper.d3_placement(orient, cell, cellTrans, text, textTrans, labelAlign)\n helper.d3_title(svg, title, classPrefix, titleWidth)\n cell.transition().style(\"opacity\", 1)\n }\n\n legend.scale = function(_) {\n if (!arguments.length) return scale\n scale = _\n return legend\n }\n\n legend.cells = function(_) {\n if (!arguments.length) return cells\n if (_.length > 1 || _ >= 2) {\n cells = _\n }\n return legend\n }\n\n legend.cellFilter = function(_) {\n if (!arguments.length) return cellFilter\n cellFilter = _\n return legend\n }\n\n legend.shapePadding = function(_) {\n if (!arguments.length) return shapePadding\n shapePadding = +_\n return legend\n }\n\n legend.labels = function(_) {\n if (!arguments.length) return labels\n labels = _\n return legend\n }\n\n legend.labelAlign = function(_) {\n if (!arguments.length) return labelAlign\n if (_ == \"start\" || _ == \"end\" || _ == \"middle\") {\n labelAlign = _\n }\n return legend\n }\n\n legend.locale = function(_) {\n if (!arguments.length) return locale\n locale = formatLocale(_)\n return legend\n }\n\n legend.labelFormat = function(_) {\n if (!arguments.length) return legend.locale().format(specifier)\n specifier = formatSpecifier(_)\n return legend\n }\n\n legend.labelOffset = function(_) {\n if (!arguments.length) return labelOffset\n labelOffset = +_\n return legend\n }\n\n legend.labelDelimiter = function(_) {\n if (!arguments.length) return labelDelimiter\n labelDelimiter = _\n return legend\n }\n\n legend.labelWrap = function(_) {\n if (!arguments.length) return labelWrap\n labelWrap = _\n return legend\n }\n\n legend.orient = function(_) {\n if (!arguments.length) return orient\n _ = _.toLowerCase()\n if (_ == \"horizontal\" || _ == \"vertical\") {\n orient = _\n }\n return legend\n }\n\n legend.ascending = function(_) {\n if (!arguments.length) return ascending\n ascending = !!_\n return legend\n }\n\n legend.classPrefix = function(_) {\n if (!arguments.length) return classPrefix\n classPrefix = _\n return legend\n }\n\n legend.title = function(_) {\n if (!arguments.length) return title\n title = _\n return legend\n }\n\n legend.titleWidth = function(_) {\n if (!arguments.length) return titleWidth\n titleWidth = _\n return legend\n }\n\n legend.on = function() {\n const value = legendDispatcher.on.apply(legendDispatcher, arguments)\n return value === legendDispatcher ? legend : value\n }\n\n return legend\n}\n", "export const thresholdLabels = function({\n i,\n genLength,\n generatedLabels,\n labelDelimiter\n}) {\n if (i === 0) {\n const values = generatedLabels[i].split(` ${labelDelimiter} `)\n return `Less than ${values[1]}`\n } else if (i === genLength - 1) {\n const values = generatedLabels[i].split(` ${labelDelimiter} `)\n return `${values[0]} or more`\n }\n return generatedLabels[i]\n}\n\nexport default {\n thresholdLabels\n}\n", "import legendColor from './src/color'\nimport legendSize from './src/size'\nimport legendSymbol from './src/symbol'\nimport legendHelpers from './src/helpers'\n\nexport { legendColor, legendSize, legendSymbol, legendHelpers }\n\nexport default {\n legendColor,\n legendSize,\n legendSymbol,\n legendHelpers\n};\n", "import { HTMLWidget, ISize, Widget } from \"@hpcc-js/common\";\n\nimport \"../src/Modal.css\";\n\nexport class Modal extends HTMLWidget {\n\n protected _widget: Widget;\n\n protected _relativeTarget: HTMLElement;\n\n protected _fade;\n protected _modal;\n protected _modalHeader;\n protected _modalBody;\n protected _modalHeaderAnnotations;\n protected _modalHeaderCloseButton;\n _close: () => void;\n\n constructor() {\n super();\n this._tag = \"div\";\n }\n\n closeModal() {\n this.visible(false);\n }\n\n getRelativeTarget() {\n let relativeTarget;\n if (this.relativeTargetId()) {\n relativeTarget = document.getElementById(this.relativeTargetId());\n if (relativeTarget) {\n return relativeTarget;\n }\n }\n if (!relativeTarget) {\n relativeTarget = this.locateAncestor(\"layout_Grid\");\n if (relativeTarget && relativeTarget.element) {\n return relativeTarget.element().node();\n }\n }\n return document.body;\n }\n\n setModalSize(): ISize {\n if (this.fixedHeight() !== null && this.fixedWidth() !== null) {\n this._modal\n .style(\"height\", this.fixedHeight())\n .style(\"width\", this.fixedWidth())\n .style(\"min-height\", null)\n .style(\"min-width\", null)\n .style(\"max-height\", null)\n .style(\"max-width\", null)\n ;\n } else if (this.minHeight() || this.minWidth()) {\n this._modal\n .style(\"min-height\", this.minHeight())\n .style(\"min-width\", this.minWidth())\n .style(\"max-height\", this.maxHeight())\n .style(\"max-width\", this.maxWidth())\n ;\n }\n const modalRect = this._modal.node().getBoundingClientRect();\n const headerRect = this._modalHeader.node().getBoundingClientRect();\n this._modalBody\n .style(\"height\", (modalRect.height - headerRect.height) + \"px\")\n .style(\"width\", modalRect.width);\n\n return modalRect;\n }\n\n setFadePosition(rect) {\n this._fade\n .style(\"top\", rect.top + \"px\")\n .style(\"left\", rect.left + \"px\")\n .style(\"width\", rect.width + \"px\")\n .style(\"height\", rect.height + \"px\")\n ;\n }\n\n setModalPosition(rect) {\n const modalRect = this.setModalSize();\n if (this.fixedTop() !== null && this.fixedLeft() !== null) {\n this._modal\n .style(\"top\", `calc(${this.fixedTop()} + ${rect.top}px)`)\n .style(\"left\", `calc(${this.fixedLeft()} + ${rect.left}px)`)\n ;\n } else if (this.fixedHeight() !== null && this.fixedWidth() !== null) {\n this._modal\n .style(\"top\", (rect.top + (rect.height / 2) - (modalRect.height / 2)) + \"px\")\n .style(\"left\", (rect.left + (rect.width / 2) - (modalRect.width / 2)) + \"px\")\n ;\n } else if (this.minHeight() || this.minWidth()) {\n const contentRect = this._modal.node().getBoundingClientRect();\n this._modal\n .style(\"top\", (rect.top + (rect.height / 2) - (contentRect.height / 2)) + \"px\")\n .style(\"left\", (rect.left + (rect.width / 2) - (contentRect.width / 2)) + \"px\")\n ;\n }\n }\n\n resize(size?: any): this {\n super.resize();\n if (this._modal) this.setModalSize();\n return this;\n }\n\n resizeBodySync(width: number, height: number): this {\n const header = this._modalHeader.node();\n const headerRect = header.getBoundingClientRect();\n\n this._modal\n .style(\"width\", width + \"px\")\n .style(\"height\", (height + headerRect.height) + \"px\")\n .style(\"min-width\", width + \"px\")\n .style(\"min-height\", (height + headerRect.height) + \"px\")\n ;\n this._modalHeader\n .style(\"width\", width + \"px\")\n ;\n this._modalBody\n .style(\"width\", width + \"px\")\n .style(\"height\", height + \"px\")\n ;\n return this\n .minWidth(width + \"px\")\n .minHeight((height + headerRect.height) + \"px\")\n .resize({\n height: height + headerRect.height,\n width\n })\n ;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._fade = element.append(\"div\")\n .classed(\"layout_Modal-fade\", true)\n .classed(\"layout_Modal-fadeClickable\", this.enableClickFadeToClose())\n .classed(\"layout_Modal-fade-hidden\", !this.showFade())\n ;\n const header_h = this.titleFontSize() * 2;\n this._modal = element.append(\"div\")\n .classed(\"layout_Modal-content\", true)\n ;\n this._modalHeader = this._modal.append(\"div\")\n .classed(\"layout_Modal-header\", true)\n .style(\"color\", this.titleFontColor())\n .style(\"font-size\", this.titleFontSize() + \"px\")\n .style(\"height\", header_h + \"px\")\n ;\n this._modalBody = this._modal.append(\"div\")\n .classed(\"layout_Modal-body\", true)\n .style(\"height\", `calc( 100% - ${header_h}px )`)\n .style(\"overflow-x\", this.overflowX())\n .style(\"overflow-y\", this.overflowY())\n ;\n this._modalHeader.append(\"div\")\n .classed(\"layout_Modal-title\", true)\n .style(\"line-height\", this.titleFontSize() + \"px\")\n .style(\"top\", (this.titleFontSize() / 2) + \"px\")\n .style(\"left\", (this.titleFontSize() / 2) + \"px\")\n .text(this.formattedTitle())\n ;\n\n this._modalHeaderAnnotations = this._modalHeader.append(\"div\")\n .classed(\"layout_Modal-annotations\", true)\n ;\n this._modalHeaderCloseButton = this._modalHeaderAnnotations.append(\"div\")\n .classed(\"layout_Modal-closeButton\", true)\n .html(\"<i class=\\\"fa fa-close\\\"></i>\")\n ;\n\n this._modalHeaderAnnotations\n .style(\"line-height\", this.titleFontSize() + \"px\")\n .style(\"right\", (this.titleFontSize() / 2) + \"px\")\n .style(\"top\", (this.titleFontSize() / 2) + \"px\")\n ;\n this._modalHeaderCloseButton.on(\"click\", () => {\n this.closeModal();\n });\n this._fade.on(\"click\", n => {\n if (this.enableClickFadeToClose()) {\n this.closeModal();\n }\n });\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n element.style(\"display\", this.show() ? null : \"none\");\n this._fade.classed(\"layout_Modal-fade-hidden\", !this.showFade());\n this._relativeTarget = this.getRelativeTarget();\n\n this.setModalSize();\n const rect = this._relativeTarget.getBoundingClientRect();\n this.setFadePosition(rect);\n this.setModalPosition(rect);\n\n if (this.show()) {\n if (!this._widget.target()) {\n this._widget.target(this._modalBody.node());\n }\n this._widget.resize().render();\n } else {\n this._widget\n .target(null)\n .render()\n ;\n }\n }\n\n exit(domNode, element) {\n if (this._widget) {\n this._widget.target(null);\n }\n super.exit(domNode, element);\n }\n\n formattedTitle() {\n const title = this.title_exists() ? this.title().trim() : \"\";\n if (title.length > 0 && title.slice(0, 1) === \"(\" && title.slice(-1) === \")\") {\n return title.slice(1, -1);\n }\n return this.title();\n }\n}\nModal.prototype._class += \" layout_Modal\";\n\nexport interface Modal {\n show(): boolean;\n show(_: boolean): this;\n showFade(): boolean;\n showFade(_: boolean): this;\n enableClickFadeToClose(): boolean;\n enableClickFadeToClose(_: boolean): this;\n title(): string;\n title(_: string): this;\n title_exists(): boolean;\n titleFontSize(): number;\n titleFontSize(_: number): this;\n titleFontColor(): string;\n titleFontColor(_: string): this;\n minWidth(): string;\n minWidth(_: string): this;\n minHeight(): string;\n minHeight(_: string): this;\n maxWidth(): string;\n maxWidth(_: string): this;\n maxHeight(): string;\n maxHeight(_: string): this;\n fixedWidth(): string;\n fixedWidth(_: string): this;\n fixedHeight(): string;\n fixedHeight(_: string): this;\n fixedTop(): string;\n fixedTop(_: string): this;\n fixedLeft(): string;\n fixedLeft(_: string): this;\n relativeTargetId(): string;\n relativeTargetId(_: string): this;\n widget(): Widget;\n widget(_: Widget): this;\n overflowX(): \"hidden\" | \"scroll\";\n overflowX(_: \"hidden\" | \"scroll\"): this;\n overflowY(): \"hidden\" | \"scroll\";\n overflowY(_: \"hidden\" | \"scroll\"): this;\n}\n\nModal.prototype.publish(\"title\", null, \"string\", \"title\");\nModal.prototype.publish(\"widget\", null, \"widget\", \"widget\");\nModal.prototype.publish(\"titleFontSize\", 18, \"number\", \"titleFontSize (in pixels)\");\nModal.prototype.publish(\"titleFontColor\", \"#ffffff\", \"html-color\", \"titleFontColor\");\nModal.prototype.publish(\"relativeTargetId\", null, \"string\", \"relativeTargetId\");\n\nModal.prototype.publish(\"show\", true, \"boolean\", \"show\");\nModal.prototype.publish(\"showFade\", true, \"boolean\", \"showFade\");\nModal.prototype.publish(\"enableClickFadeToClose\", true, \"boolean\", \"enableClickFadeToClose\");\n\nModal.prototype.publish(\"minWidth\", \"400px\", \"string\", \"minWidth\");\nModal.prototype.publish(\"minHeight\", \"400px\", \"string\", \"minHeight\");\nModal.prototype.publish(\"maxWidth\", \"800px\", \"string\", \"maxWidth\");\nModal.prototype.publish(\"maxHeight\", \"800px\", \"string\", \"maxHeight\");\nModal.prototype.publish(\"fixedWidth\", null, \"string\", \"fixedWidth\");\nModal.prototype.publish(\"fixedHeight\", null, \"string\", \"fixedHeight\");\nModal.prototype.publish(\"fixedTop\", null, \"string\", \"fixedTop\");\nModal.prototype.publish(\"fixedLeft\", null, \"string\", \"fixedLeft\");\nModal.prototype.publish(\"overflowX\", \"hidden\", \"string\", \"overflowX\");\nModal.prototype.publish(\"overflowY\", \"scroll\", \"string\", \"overflowY\");\n", "(function(){\n if (!document.getElementById('810b6dee')) {\n var e = document.createElement('style');\n e.id = '810b6dee';\n e.textContent = `.layout_Modal-header {\n background-color: rgb(63,81,181);\n overflow: hidden;\n}\n.layout_Modal-body {\n background-color: #ffffff;\n overflow-y: scroll;\n overflow-x: hidden;\n}\n.layout_Modal-title {\n position: absolute;\n}\n.layout_Modal-annotations {\n position: absolute;\n}\n.layout_Modal-closeButton {\n cursor: pointer;\n}\n.layout_Modal-closeButton:hover {\n opacity: 0.7;\n}\n.layout_Modal-closeButton:active {\n opacity: 0.5;\n}\n.layout_Modal-fade {\n position: fixed;\n background-color: #000;\n opacity: 0.5;\n z-index: 10000;\n}\n.layout_Modal-content {\n position: fixed;\n background-color: #ffffff;\n z-index: 10100;\n}\n.layout_Modal-fade-hidden {\n display: none;\n}\n.layout_Modal-fadeClickable {\n cursor: pointer;\n}`;\n document.head.appendChild(e);\n }\n })();", "(function(){\n if (!document.getElementById('0b83f800')) {\n var e = document.createElement('style');\n e.id = '0b83f800';\n e.textContent = `.layout_ChartPanel .series.highlight {\n stroke-width: 2px;\n opacity: 1;\n}\n\n.layout_ChartPanel .series.lowlight {\n opacity: 0.3!important;\n}\n`;\n document.head.appendChild(e);\n }\n })();", "import { HTMLWidget } from \"@hpcc-js/common\";\nimport { select as d3Select } from \"d3-selection\";\n\nimport \"../src/FlexGrid.css\";\n\nexport class FlexGrid extends HTMLWidget {\n constructor() {\n super();\n }\n enter(domNode, element) {\n super.enter(domNode, element);\n d3Select(domNode.parentNode)\n .style(\"height\", \"100%\")\n .style(\"width\", \"100%\")\n ;\n }\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n\n const cachedSizes = [];\n this.updateFlexParent(element);\n const listItems = element.selectAll(\".FlexGrid-list-item\").data(this.widgets(), w => w.id());\n listItems.enter()\n .append(\"div\")\n .classed(\"FlexGrid-list-item\", true)\n .each(function (w) {\n w.target(this);\n })\n .merge(listItems)\n .style(\"min-height\", this.itemMinHeight() + \"px\")\n .style(\"min-width\", this.itemMinWidth() + \"px\")\n .style(\"flex-basis\", (n, i) => {\n const flexBasis = this.widgetsFlexBasis()[i];\n return typeof flexBasis !== \"undefined\" ? flexBasis : this.flexBasis();\n })\n .style(\"flex-grow\", (n, i) => {\n const flexGrow = this.widgetsFlexGrow()[i];\n return typeof flexGrow !== \"undefined\" ? flexGrow : this.flexGrow();\n })\n .style(\"border-width\", this.borderWidth() + \"px\")\n .style(\"border-color\", this.itemBorderColor())\n .each(function () {\n this.firstChild.style.display = \"none\";\n })\n .each(function () {\n const rect = this.getBoundingClientRect();\n cachedSizes.push([\n rect.width,\n rect.height\n ]);\n })\n .each(function (w, i) {\n this.firstChild.style.display = \"block\";\n w.resize({\n width: cachedSizes[i][0] - (2 * context.borderWidth()),\n height: cachedSizes[i][1] - (2 * context.borderWidth())\n });\n })\n ;\n listItems.exit().remove();\n }\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n updateFlexParent(element) {\n element\n .style(\"height\", \"100%\")\n .style(\"flex-direction\", this.orientation() === \"horizontal\" ? \"row\" : \"column\")\n .style(\"flex-wrap\", this.flexWrap())\n .style(\"align-items\", this.alignItems())\n .style(\"align-content\", this.alignContent())\n .style(\"overflow-x\", () => {\n if (this.forceXScroll() || (this.orientation() === \"horizontal\" && this.flexWrap() === \"nowrap\" && !this.disableScroll())) {\n return \"scroll\";\n }\n return \"hidden\";\n })\n .style(\"overflow-y\", () => {\n if (this.forceYScroll() || (this.orientation() === \"vertical\" && this.flexWrap() === \"nowrap\" && !this.disableScroll())) {\n return \"scroll\";\n }\n return \"hidden\";\n })\n ;\n }\n}\nFlexGrid.prototype._class += \" layout_FlexGrid\";\n\nexport interface FlexGrid {\n widgets(): any;\n widgets(_: any): this;\n orientation(): \"horizontal\" | \"vertical\";\n orientation(_: \"horizontal\" | \"vertical\"): this;\n flexWrap(): \"nowrap\" | \"wrap\" | \"wrap-reverse\";\n flexWrap(_: \"nowrap\" | \"wrap\" | \"wrap-reverse\"): this;\n itemMinHeight(): number;\n itemMinHeight(_: number): this;\n itemMinWidth(): number;\n itemMinWidth(_: number): this;\n alignItems(): \"flex-start\" | \"center\" | \"flex-end\" | \"stretch\";\n alignItems(_: \"flex-start\" | \"center\" | \"flex-end\" | \"stretch\"): this;\n alignContent(): \"flex-start\" | \"center\" | \"flex-end\" | \"stretch\" | \"space-between\" | \"space-around\";\n alignContent(_: \"flex-start\" | \"center\" | \"flex-end\" | \"stretch\" | \"space-between\" | \"space-around\"): this;\n itemBorderColor(): string;\n itemBorderColor(_: string): this;\n borderWidth(): number;\n borderWidth(_: number): this;\n flexGrow(): number;\n flexGrow(_: number): this;\n widgetsFlexGrow(): number[];\n widgetsFlexGrow(_: number[]): this;\n flexBasis(): string;\n flexBasis(_: string): this;\n widgetsFlexBasis(): string[];\n widgetsFlexBasis(_: string[]): this;\n disableScroll(): boolean;\n disableScroll(_: boolean): this;\n forceXScroll(): boolean;\n forceXScroll(_: boolean): this;\n forceYScroll(): boolean;\n forceYScroll(_: boolean): this;\n}\n\nFlexGrid.prototype.publish(\"itemBorderColor\", \"transparent\", \"html-color\", \"Color of list item borders\");\nFlexGrid.prototype.publish(\"borderWidth\", 0, \"number\", \"Width of list item borders (pixels)\");\nFlexGrid.prototype.publish(\"orientation\", \"horizontal\", \"set\", \"Controls the flex-direction of the list items\", [\"horizontal\", \"vertical\"]);\nFlexGrid.prototype.publish(\"flexWrap\", \"wrap\", \"set\", \"Controls the line wrap when overflow occurs\", [\"nowrap\", \"wrap\", \"wrap-reverse\"]);\nFlexGrid.prototype.publish(\"disableScroll\", false, \"boolean\", \"If false, scrollbar will show (when flexWrap is set to 'nowrap')\", null, { disable: (w: any) => w.flexWrap() !== \"nowrap\" });\nFlexGrid.prototype.publish(\"forceXScroll\", false, \"boolean\", \"If true, horzontal scrollbar will show\");\nFlexGrid.prototype.publish(\"forceYScroll\", false, \"boolean\", \"If true, vertical scrollbar will show\");\nFlexGrid.prototype.publish(\"itemMinHeight\", 64, \"number\", \"Minimum height of a list item (pixels)\");\nFlexGrid.prototype.publish(\"itemMinWidth\", 64, \"number\", \"Minimum width of a list item (pixels)\");\nFlexGrid.prototype.publish(\"alignItems\", \"stretch\", \"set\", \"Controls normal alignment of items\", [\"flex-start\", \"center\", \"flex-end\", \"stretch\"]);\nFlexGrid.prototype.publish(\"alignContent\", \"stretch\", \"set\", \"Controls normal alignment of item rows\", [\"flex-start\", \"center\", \"flex-end\", \"stretch\", \"space-between\", \"space-around\"]);\nFlexGrid.prototype.publish(\"flexGrow\", 1, \"number\", \"Default flex-grow style for all list items\");\nFlexGrid.prototype.publish(\"flexBasis\", \"10%\", \"string\", \"Default flex-basis style for all list items\");\nFlexGrid.prototype.publish(\"widgetsFlexGrow\", [], \"array\", \"Array of flex-grow values keyed on the widgets array\");\nFlexGrid.prototype.publish(\"widgetsFlexBasis\", [], \"array\", \"Array of flex-basis values keyed on the widgets array\");\nFlexGrid.prototype.publish(\"widgets\", [], \"widgetArray\", \"Array of widgets to be rendered as list items\");\n", "(function(){\n if (!document.getElementById('1c68d178')) {\n var e = document.createElement('style');\n e.id = '1c68d178';\n e.textContent = `.layout_FlexGrid{\n display: flex;\n}\n.FlexGrid-list-item{\n overflow: hidden;\n border-style: solid;\n flex-grow: 1;\n}`;\n document.head.appendChild(e);\n }\n })();", "import { d3Event, drag as d3Drag, HTMLWidget, Platform, select as d3Select, Utility } from \"@hpcc-js/common\";\nimport * as _GridList from \"grid-list\";\nimport { Cell } from \"./Cell.ts\";\n\nimport \"../src/Grid.css\";\n\nconst GridList = (_GridList && _GridList.default) || _GridList;\n\nexport type ICellPosition = [number, number, number, number];\n\nexport class Grid extends HTMLWidget {\n divItems;\n\n gridList;\n items;\n itemsMap;\n origItems;\n cellWidth;\n cellHeight;\n dragItem;\n dragItemPos;\n\n _d3Drag;\n _d3DragResize;\n _selectionBag;\n _scrollBarWidth;\n\n constructor() {\n super();\n\n this._tag = \"div\";\n this._selectionBag = new Utility.Selection(this);\n\n this.content([]);\n }\n\n getDimensions() {\n const size = { width: 0, height: 0 };\n this.content().forEach(function (cell) {\n if (size.width < cell.gridCol() + cell.gridColSpan()) {\n size.width = cell.gridCol() + cell.gridColSpan();\n }\n if (size.height < cell.gridRow() + cell.gridRowSpan()) {\n size.height = cell.gridRow() + cell.gridRowSpan();\n }\n }, this);\n return size;\n }\n\n clearContent(widget) {\n this.content(this.content().filter(function (contentWidget) {\n if (!widget) {\n contentWidget.target(null);\n return false;\n }\n let w: any = contentWidget;\n while (w) {\n if (widget === w) {\n contentWidget.target(null);\n return false;\n }\n w = w.widget ? w.widget() : null;\n }\n return true;\n }));\n }\n\n setContent(row, col, widget, title?, rowSpan?, colSpan?) {\n rowSpan = rowSpan || 1;\n colSpan = colSpan || 1;\n title = title || \"\";\n this.content(this.content().filter(function (contentWidget) {\n if (contentWidget.gridRow() === row && contentWidget.gridCol() === col) {\n contentWidget.target(null);\n return false;\n }\n return true;\n }));\n if (widget) {\n const cell = new Cell()\n .gridRow(row)\n .gridCol(col)\n .widget(widget)\n .title(title)\n .gridRowSpan(rowSpan)\n .gridColSpan(colSpan)\n ;\n this.content().push(cell);\n }\n return this;\n }\n\n sortedContent() {\n return this.content().sort(function (l, r) {\n if (l.gridRow() === r.gridRow()) {\n return l.gridCol() - r.gridCol();\n }\n return l.gridRow() - r.gridRow();\n });\n }\n\n getCell(row, col) {\n let retVal = null;\n this.content().some(function (cell) {\n if (row >= cell.gridRow() && row < cell.gridRow() + cell.gridRowSpan() &&\n col >= cell.gridCol() && col < cell.gridCol() + cell.gridColSpan()) {\n retVal = cell;\n return true;\n }\n return false;\n });\n return retVal;\n }\n\n getWidgetCell(id) {\n let retVal = null;\n this.content().some(function (cell) {\n if (cell.widget().id() === id) {\n retVal = cell;\n return true;\n }\n return false;\n });\n return retVal;\n }\n\n getContent(id) {\n let retVal = null;\n this.content().some(function (cell) {\n if (cell.widget().id() === id) {\n retVal = cell.widget();\n return true;\n }\n return false;\n });\n return retVal;\n }\n\n cellToGridItem(cell) {\n return {\n x: cell.gridCol(),\n y: cell.gridRow(),\n w: cell.gridColSpan(),\n h: cell.gridRowSpan(),\n id: cell.id(),\n cell\n };\n }\n\n gridItemToCell(item) {\n item.cell\n .gridCol(item.x)\n .gridRow(item.y)\n .gridColSpan(item.w)\n .gridRowSpan(item.h)\n ;\n }\n\n resetItemsPos() {\n this.origItems.forEach(function (origItem) {\n const item = this.itemsMap[origItem.id];\n item.x = origItem.x;\n item.y = origItem.y;\n }, this);\n }\n\n initGridList() {\n this.itemsMap = {};\n this.items = this.content().map(function (cell) {\n const retVal = this.cellToGridItem(cell);\n this.itemsMap[retVal.id] = retVal;\n return retVal;\n }, this);\n this.origItems = this.content().map(this.cellToGridItem);\n this.gridList = new GridList(this.items, {\n direction: this.snapping(),\n lanes: this.snapping() === \"horizontal\" ? this.snappingRows() : this.snappingColumns()\n });\n }\n\n killGridList() {\n this.gridList = null;\n delete this.items;\n delete this.itemsMap;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n\n this._scrollBarWidth = Platform.getScrollbarWidth();\n\n const context = this;\n this._d3Drag = d3Drag()\n .subject(function (_d) {\n const d = context.cellToGridItem(_d);\n return { x: d.x * context.cellWidth, y: d.y * context.cellHeight };\n })\n .on(\"start\", function (_d: any) {\n if (!context.designMode()) return;\n d3Event().sourceEvent.stopPropagation();\n context.initGridList();\n const d = context.itemsMap[_d.id()];\n context.dragItem = element.append(\"div\")\n .attr(\"class\", \"dragging\")\n .style(\"transform\", function () { return \"translate(\" + d.x * context.cellWidth + \"px, \" + d.y * context.cellHeight + \"px)\"; })\n .style(\"width\", function () { return d.w * context.cellWidth - context.gutter() + \"px\"; })\n .style(\"height\", function () { return d.h * context.cellHeight - context.gutter() + \"px\"; })\n ;\n context.selectionBagClick(_d);\n })\n .on(\"drag\", function (_d: any) {\n if (!context.designMode()) return;\n const event = d3Event();\n event.sourceEvent.stopPropagation();\n const d = context.itemsMap[_d.id()];\n if (event.x < 0) {\n event.x = 0;\n }\n if (event.x + d.w * context.cellWidth > context.snappingColumns() * context.cellWidth) {\n event.x = context.snappingColumns() * context.cellWidth - d.w * context.cellWidth;\n }\n if (event.y < 0) {\n event.y = 0;\n }\n if (event.y + d.h * context.cellWidth > context.snappingRows() * context.cellWidth) {\n event.y = context.snappingRows() * context.cellWidth - d.h * context.cellWidth;\n }\n const pos = [Math.max(0, Math.floor((event.x + context.cellWidth / 2) / context.cellWidth)), Math.max(0, Math.floor((event.y + context.cellHeight / 2) / context.cellHeight))];\n if (d.x !== pos[0] || d.y !== pos[1]) {\n if (context.snapping() !== \"none\") {\n context.resetItemsPos();\n context.gridList.moveItemToPosition(d, pos);\n } else {\n d.x = pos[0];\n d.y = pos[1];\n }\n if (_d.gridCol() !== d.x || _d.gridRow() !== d.y) {\n context.items.forEach(context.gridItemToCell);\n context.updateGrid(false, 100);\n }\n }\n context.dragItem\n .style(\"transform\", function () { return \"translate(\" + event.x + \"px, \" + event.y + \"px)\"; })\n .style(\"width\", function () { return d.w * context.cellWidth + \"px\"; })\n .style(\"height\", function () { return d.h * context.cellHeight + \"px\"; })\n ;\n })\n .on(\"end\", function () {\n if (!context.designMode()) return;\n d3Event().sourceEvent.stopPropagation();\n context.dragItem.remove();\n context.dragItem = null;\n context.killGridList();\n })\n ;\n\n this._d3DragResize = d3Drag()\n .subject(function (_d) {\n const d = context.cellToGridItem(_d);\n return { x: (d.x + d.w - 1) * context.cellWidth, y: (d.y + d.h - 1) * context.cellHeight };\n })\n .on(\"start\", function (_d: any) {\n if (!context.designMode()) return;\n d3Event().sourceEvent.stopPropagation();\n context.initGridList();\n const d = context.itemsMap[_d.id()];\n context.dragItem = element.append(\"div\")\n .attr(\"class\", \"resizing\")\n .style(\"transform\", function () { return \"translate(\" + d.x * context.cellWidth + \"px, \" + d.y * context.cellHeight + \"px)\"; })\n .style(\"width\", function () { return d.w * context.cellWidth - context.gutter() + \"px\"; })\n .style(\"height\", function () { return d.h * context.cellHeight - context.gutter() + \"px\"; })\n ;\n context.dragItemPos = { x: d.x, y: d.y };\n })\n .on(\"drag\", function (_d: any) {\n if (!context.designMode()) return;\n const event = d3Event();\n event.sourceEvent.stopPropagation();\n const d = context.itemsMap[_d.id()];\n const pos = [Math.max(0, Math.round(event.x / context.cellWidth)), Math.max(0, Math.round(event.y / context.cellHeight))];\n const size = {\n w: Math.max(1, pos[0] - d.x + 1),\n h: Math.max(1, pos[1] - d.y + 1)\n };\n if (d.w !== size.w || d.h !== size.h) {\n if (context.snapping() !== \"none\") {\n context.resetItemsPos();\n context.gridList.resizeItem(d, size);\n } else {\n d.w = size.w;\n d.h = size.h;\n }\n if (_d.gridColSpan() !== d.w || _d.gridRowSpan() !== d.h) {\n context.items.forEach(context.gridItemToCell);\n context.updateGrid(d.id, 100);\n }\n }\n context.dragItem\n .style(\"width\", function () { return (-d.x + 1) * context.cellWidth + event.x - context.gutter() + \"px\"; })\n .style(\"height\", function () { return (-d.y + 1) * context.cellHeight + event.y - context.gutter() + \"px\"; })\n ;\n })\n .on(\"end\", function () {\n if (!context.designMode()) return;\n d3Event().sourceEvent.stopPropagation();\n context.dragItem.remove();\n context.dragItem = null;\n context.killGridList();\n })\n ;\n }\n\n updateGrid(resize, transitionDuration: number = 0, _noRender: boolean = false) {\n transitionDuration = transitionDuration || 0;\n const context = this;\n this.divItems\n .classed(\"draggable\", this.designMode())\n .transition().duration(transitionDuration)\n .style(\"left\", function (d) { return d.gridCol() * context.cellWidth + context.gutter() / 2 + \"px\"; })\n .style(\"top\", function (d) { return d.gridRow() * context.cellHeight + context.gutter() / 2 + \"px\"; })\n .style(\"width\", function (d) { return d.gridColSpan() * context.cellWidth - context.gutter() + \"px\"; })\n .style(\"height\", function (d) { return d.gridRowSpan() * context.cellHeight - context.gutter() + \"px\"; })\n .on(\"end\", function (d) {\n d\n .surfaceShadow_default(context.surfaceShadow())\n .surfacePadding_default(context.surfacePadding())\n .surfaceBorderWidth_default(context.surfaceBorderWidth())\n .surfaceBackgroundColor_default(context.surfaceBackgroundColor())\n ;\n\n if (resize === true || resize === d.id()) {\n d\n .resize()\n .lazyRender()\n ;\n }\n })\n ;\n }\n\n update(domNode, element2) {\n super.update(domNode, element2);\n\n this._placeholderElement.style(\"overflow-x\", this.fitTo() === \"width\" ? \"hidden\" : null);\n this._placeholderElement.style(\"overflow-y\", this.fitTo() === \"width\" ? \"scroll\" : null);\n const dimensions = this.getDimensions();\n const clientWidth = this.width() - (this.fitTo() === \"width\" ? this._scrollBarWidth : 0);\n this.cellWidth = clientWidth / dimensions.width;\n this.cellHeight = this.fitTo() === \"all\" ? this.height() / dimensions.height : this.cellWidth;\n if (this.designMode()) {\n const cellLaneRatio = Math.min(this.width() / this.snappingColumns(), this.height() / this.snappingRows());\n const laneWidth = Math.floor(cellLaneRatio);\n this.cellWidth = laneWidth;\n this.cellHeight = this.cellWidth;\n }\n\n // Grid ---\n const context = this;\n const divItems = element2.selectAll(\"#\" + this.id() + \" > .ddCell\").data(this.content(), function (d) { return d.id(); });\n this.divItems = divItems.enter().append(\"div\")\n .attr(\"class\", \"ddCell\")\n .each(function (d) {\n d.target(this);\n d.__grid_watch = d.monitor(function (key, newVal, oldVal) {\n if (context._renderCount && (key === \"snapping\" || key.indexOf(\"grid\") === 0) && newVal !== oldVal) {\n if (!context.gridList) {\n // API Call (only needed when not dragging) ---\n context.initGridList();\n if (context.snapping() !== \"none\") {\n context.gridList.resizeGrid(context.snapping() === \"horizontal\" ? context.snappingRows() : context.snappingColumns());\n }\n context.items.forEach(context.gridItemToCell);\n context.updateGrid(d.id(), 100);\n context.killGridList();\n }\n }\n });\n const element = d3Select(this);\n element.append(\"div\")\n .attr(\"class\", \"resizeHandle\")\n .call(context._d3DragResize)\n .append(\"div\")\n .attr(\"class\", \"resizeHandleDisplay\")\n ;\n }).merge(divItems)\n ;\n this.divItems.each(function (d) {\n const element = d3Select(this);\n if (context.designMode()) {\n element.call(context._d3Drag);\n } else {\n element\n .on(\"mousedown.drag\", null)\n .on(\"touchstart.drag\", null)\n ;\n }\n });\n this.divItems.select(\".resizeHandle\")\n .style(\"display\", this.designMode() ? null : \"none\")\n ;\n\n this.updateGrid(true);\n divItems.exit()\n .each(function (d) {\n d.target(null);\n if (d.__grid_watch) {\n d.__grid_watch.remove();\n }\n })\n .remove()\n ;\n\n // Snapping ---\n const lanesBackground = element2.selectAll(\"#\" + this.id() + \" > .laneBackground\").data(this.designMode() ? [\"\"] : []);\n lanesBackground.enter().insert(\"div\", \":first-child\")\n .attr(\"class\", \"laneBackground\")\n .style(\"left\", \"1px\")\n .style(\"top\", \"1px\")\n .on(\"click\", function () {\n context.selectionBagClear();\n })\n .merge(lanesBackground)\n .style(\"width\", (this.snappingColumns() * this.cellWidth) + \"px\")\n .style(\"height\", (this.snappingRows() * this.cellHeight) + \"px\")\n ;\n lanesBackground.exit()\n .each(function () {\n context.selectionBagClear();\n })\n .remove()\n ;\n\n const lanes = element2.selectAll(\"#\" + this.id() + \" > .lane\").data(this.designMode() ? [\"\"] : []);\n lanes.enter().append(\"div\")\n .attr(\"class\", \"lane\")\n .style(\"left\", \"1px\")\n .style(\"top\", \"1px\")\n ;\n lanes\n .style(\"display\", this.showLanes() ? null : \"none\")\n .style(\"width\", (this.snappingColumns() * this.cellWidth) + \"px\")\n .style(\"height\", (this.snappingRows() * this.cellHeight) + \"px\")\n .style(\"background-image\", \"linear-gradient(to right, grey 1px, transparent 1px), linear-gradient(to bottom, grey 1px, transparent 1px)\")\n .style(\"background-size\", this.cellWidth + \"px \" + this.cellHeight + \"px\")\n ;\n lanes.exit()\n .remove()\n ;\n }\n\n exit(domNode, element) {\n this.content().forEach(w => w.target(null));\n super.exit(domNode, element);\n }\n\n _createSelectionObject(d) {\n return {\n _id: d._id,\n element: () => {\n return d._element;\n },\n widget: d\n };\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 selectionBagClear() {\n if (!this._selectionBag.isEmpty()) {\n this._selectionBag.clear();\n this.postSelectionChange();\n }\n }\n\n selectionBagClick(d) {\n if (d !== null) {\n const selectionObj = this._createSelectionObject(d);\n if (d3Event().sourceEvent.ctrlKey) {\n if (this._selectionBag.isSelected(selectionObj)) {\n this._selectionBag.remove(selectionObj);\n this.postSelectionChange();\n } else {\n this._selectionBag.append(selectionObj);\n this.postSelectionChange();\n }\n } else {\n const selected = this._selectionBag.get();\n if (selected.length === 1 && selected[0]._id === selectionObj._id) {\n this.selectionBagClear();\n } else {\n this._selectionBag.set([selectionObj]);\n }\n this.postSelectionChange();\n }\n }\n }\n\n postSelectionChange() {\n }\n\n applyLayout(layoutArr: ICellPosition[]) {\n this.divItems.each((d, i) => {\n if (layoutArr[i]) {\n const [x, y, w, h] = layoutArr[i];\n d\n .gridCol(x)\n .gridRow(y)\n .gridColSpan(w)\n .gridRowSpan(h)\n ;\n }\n });\n this.updateGrid(true);\n }\n\n vizActivation(elem) {\n }\n}\nGrid.prototype._class += \" layout_Grid\";\n\nexport interface Grid {\n designMode(): boolean;\n designMode(_: boolean): this;\n showLanes(): boolean;\n showLanes(_: boolean): this;\n fitTo(): string;\n fitTo(_: string): this;\n\n snapping(): string;\n snapping(_: string): this;\n snappingColumns(): number;\n snappingColumns(_: number): this;\n snappingRows(): number;\n snappingRows(_: number): this;\n snappingColumns_default(): number;\n snappingColumns_default(_: number): this;\n snappingRows_default(): number;\n snappingRows_default(_: number): this;\n\n gutter(): number;\n gutter(_: number): this;\n\n surfaceShadow(): boolean;\n surfaceShadow(_: boolean): this;\n surfacePadding(): string;\n surfacePadding(_: string): this;\n surfaceBorderWidth(): number;\n surfaceBorderWidth(_: number): this;\n surfaceBackgroundColor(): string;\n surfaceBackgroundColor(_: string): this;\n\n content(): Cell[];\n content(_: Cell[]): this;\n}\n\nGrid.prototype.publish(\"designMode\", false, \"boolean\", \"Design Mode\", null, { tags: [\"Basic\"] });\nGrid.prototype.publish(\"showLanes\", true, \"boolean\", \"Show snapping lanes when in design mode\", null, { tags: [\"Basic\"], disable: w => !w.designMode() });\nGrid.prototype.publish(\"fitTo\", \"all\", \"set\", \"Sizing Strategy\", [\"all\", \"width\"], { tags: [\"Basic\"] });\nGrid.prototype.publish(\"snapping\", \"vertical\", \"set\", \"Snapping Strategy\", [\"vertical\", \"horizontal\", \"none\"]);\nGrid.prototype.publish(\"snappingColumns\", 12, \"number\", \"Snapping Columns\");\nGrid.prototype.publish(\"snappingRows\", 16, \"number\", \"Snapping Rows\");\n\nGrid.prototype.publish(\"gutter\", 6, \"number\", \"Gap Between Widgets\", null, { tags: [\"Basic\"] });\n\nGrid.prototype.publish(\"surfaceShadow\", true, \"boolean\", \"3D Shadow\");\nGrid.prototype.publish(\"surfacePadding\", null, \"string\", \"Cell Padding (px)\", null, { tags: [\"Intermediate\"] });\nGrid.prototype.publish(\"surfaceBorderWidth\", 1, \"number\", \"Width (px) of Cell Border\", null, { tags: [\"Intermediate\"] });\nGrid.prototype.publish(\"surfaceBackgroundColor\", null, \"html-color\", \"Surface Background Color\", null, { tags: [\"Advanced\"] });\n\nGrid.prototype.publish(\"content\", [], \"widgetArray\", \"widgets\", null, { tags: [\"Basic\"], render: false });\n", "(function(){\n if (!document.getElementById('71cbabbe')) {\n var e = document.createElement('style');\n e.id = '71cbabbe';\n e.textContent = `.layout_Grid > .ddCell {\n position: absolute;\n}\n\n.layout_Grid > .laneBackground {\n position: absolute;\n border-style: solid;\n border-width: 1px;\n background: whitesmoke;\n}\n\n.layout_Grid > .lane {\n position: absolute;\n border-style: none;\n opacity: 0.25;\n border-radius: 0px;\n pointer-events: none;\n}\n\n.layout_Grid > .ddCell.draggable {\n border-style: solid;\n border-width: 1px;\n background-color: ghostwhite;\n border-radius: 0px;\n cursor:move;\n}\n\n.layout_Grid > .ddCell.draggable > .resizeHandle {\n bottom: 0px;\n right: 0px;\n width: 8px;\n height: 8px;\n border-style: none;\n position: absolute;\n cursor:nwse-resize;\n}\n\n.layout_Grid > .ddCell.draggable .resizeHandleDisplay {\n bottom: 2px;\n right: 2px;\n width: 4px;\n height: 4px;\n border-style: solid;\n border-left-width: 0px;\n border-top-width: 0px;\n border-right-width: 2px;\n border-bottom-width: 2px;\n border-color: darkGray;\n background-color:none;\n position: absolute;\n}\n\n.layout_Grid > .ddCell.draggable .resizeHandleDisplay:hover {\n border-color: orange;\n}\n\n.layout_Grid > .dragging {\n border-style: solid;\n border-width: 1px;\n border-color: gray;\n border-radius: 0px;\n position: absolute;\n background: repeating-linear-gradient( -45deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0) 4px, rgba(100, 100, 100, 0.1) 4px, rgba(100, 100, 100, 0.1) 8px );\n}\n\n.layout_Grid > .resizing {\n border-style: solid;\n border-width: 1px;\n border-color: gray;\n background-color: orange;\n border-radius: 0px;\n position: absolute;\n opacity:0.3;\n background: repeating-linear-gradient( -45deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0) 4px, orange 4px, orange 8px );\n}\n\n.layout_Grid > .ddCell.draggable .common_Widget.selected {\n border-style: solid;\n border-width: 1px;\n border-color: red;\n background-color: gray;\n border-radius: 0px;\n position: absolute;\n background: repeating-linear-gradient( -45deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0) 4px, rgba(100, 0, 0, 0.1) 4px, rgba(100, 0, 0, 0.1) 8px );\n}\n\n.layout_Grid #drag-me::before {\n content: \"#\" attr(id);\n font-weight: bold;\n}\n`;\n document.head.appendChild(e);\n }\n })();", "import { FlexGrid } from \"./FlexGrid.ts\";\n\nexport class HorizontalList extends FlexGrid {\n constructor() {\n super();\n this.orientation_default(\"horizontal\");\n this.flexWrap_default(\"nowrap\");\n }\n}\nHorizontalList.prototype._class += \" layout_HorizontalList\";\n\nexport interface HorizontalList {\n orientation_default(_: \"horizontal\" | \"vertical\");\n flexWrap_default(_: \"nowrap\" | \"wrap\" | \"wrap-reverse\");\n}\n", "import { HTMLWidget, Text } from \"@hpcc-js/common\";\n\nimport \"../src/Layered.css\";\n\nexport type LayerPlacement = \"default\" | \"top\" | \"right\" | \"bottom\" | \"left\" | \"center\";\n\nexport class Layered extends HTMLWidget {\n protected _contentContainer;\n _widgetPlacements;\n _widgetRatios;\n constructor() {\n super();\n\n this._tag = \"div\";\n this._widgetPlacements = [];\n this._widgetRatios = [];\n }\n\n addLayer(widget, placement: LayerPlacement = \"default\", widthRatio: number = 1, heightRatio: number = 1) {\n const widgets = this.widgets();\n widgets.push(widget ? widget : new Text().text(\"No widget defined for layer.\"));\n this.widgets(widgets);\n this._widgetPlacements.push(placement);\n this._widgetRatios.push([widthRatio, heightRatio]);\n return this;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._contentContainer = element.append(\"div\")\n .attr(\"class\", \"container\")\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n\n element.style(\"padding\", this.surfacePadding() + \"px\");\n\n const content = this._contentContainer.selectAll(\".content.id\" + this.id()).data(this.widgets(), function (d) { return d.id(); });\n content.enter().append(\"div\")\n .attr(\"class\", \"content id\" + this.id())\n .each(function (widget, idx) {\n widget.target(this);\n })\n .merge(content)\n .each(function (widget, idx) {\n const clientSize = {\n width: context.clientWidth(),\n height: context.clientHeight()\n };\n const widgetSize = context.widgetSize(idx, clientSize);\n const widgetPosition = context.widgetPosition(idx, clientSize, widgetSize);\n this.style.top = widgetPosition.y + \"px\";\n this.style.left = widgetPosition.x + \"px\";\n widget\n .resize(widgetSize)\n .render()\n ;\n })\n ;\n content.exit()\n .each(function (widget, idx) {\n widget\n .target(null)\n ;\n })\n .remove()\n ;\n content.order();\n }\n\n widgetSize(idx, clientSize) {\n if (this._widgetPlacements[idx] === \"default\") {\n return {\n width: clientSize.width * this._widgetRatios[idx][0],\n height: clientSize.height * this._widgetRatios[idx][1]\n };\n } else {\n return {\n width: clientSize.width * this._widgetRatios[idx][0],\n height: clientSize.height * this._widgetRatios[idx][1]\n };\n }\n }\n widgetPosition(idx, clientSize, widgetSize) {\n switch (this._widgetPlacements[idx]) {\n default:\n return {\n x: 0,\n y: 0\n };\n case \"top\":\n return {\n x: (clientSize.width / 2) - (widgetSize.width / 2),\n y: 0\n };\n case \"bottom\":\n return {\n x: (clientSize.width / 2) - (widgetSize.width / 2),\n y: clientSize.height - widgetSize.height\n };\n case \"left\":\n return {\n x: 0,\n y: (clientSize.height / 2) - (widgetSize.height / 2)\n };\n case \"right\":\n return {\n x: clientSize.width - widgetSize.width,\n y: (clientSize.height / 2) - (widgetSize.height / 2)\n };\n case \"center\":\n return {\n x: (clientSize.width / 2) - (widgetSize.width / 2),\n y: (clientSize.height / 2) - (widgetSize.height / 2)\n };\n }\n }\n}\nLayered.prototype._class += \" layout_Layered\";\n\nexport interface Layered {\n surfacePadding(): number;\n surfacePadding(_: number): this;\n widgets(): any;\n widgets(_: any): this;\n}\n\nLayered.prototype.publish(\"surfacePadding\", 0, \"number\", \"Padding\");\nLayered.prototype.publish(\"widgets\", [], \"widgetArray\", \"widgets\", null, { tags: [\"Private\"] });\n", "(function(){\n if (!document.getElementById('ed0ab859')) {\n var e = document.createElement('style');\n e.id = 'ed0ab859';\n e.textContent = `.layout_Layered {\n pointer-events: none;\n}\n.layout_Layered > .container > .content {\n position: absolute;\n}\n.layout_Layered > .container > .content > div > .common_Widget,\n.layout_Layered > .container > .content > div > svg > .common_Widget {\n pointer-events: all;\n}\n`;\n document.head.appendChild(e);\n }\n })();", "import { HTMLWidget, Widget } from \"@hpcc-js/common\";\n\nexport class Popup extends HTMLWidget {\n _surfaceButtons;\n _originalPosition;\n\n constructor() {\n super();\n this._tag = \"div\";\n this._surfaceButtons = [];\n }\n\n updateState(visible) {\n visible = visible || !this.popupState();\n this.popupState(visible).render();\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this.widget()\n .target(domNode)\n ;\n this._originalPosition = this.position();\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n element\n .style(\"visibility\", this.popupState() ? null : \"hidden\")\n .style(\"opacity\", this.popupState() ? null : 0)\n .style(\"width\", this.shrinkWrap() ? this.widget().width() + \"px\" : this._size.width + \"px\")\n .style(\"height\", this.shrinkWrap() ? this.widget().height() + \"px\" : this._size.height + \"px\")\n ;\n if (this.widget().size().height === 0) {\n this.widget().resize(this.size());\n }\n }\n\n postUpdate(domNode, element) {\n let left;\n let top;\n switch (this.centerPopup()) {\n case \"container\":\n if (this._placeholderElement) {\n left = parseInt(this._placeholderElement.style(\"width\")) / 2 - this.widget().width() / 2;\n top = parseInt(this._placeholderElement.style(\"height\")) / 2 - this.widget().height() / 2;\n }\n this.position(\"absolute\");\n break;\n\n case \"window\":\n left = window.innerWidth / 2 - this.widget().width() / 2;\n top = window.innerHeight / 2 - this.widget().height() / 2;\n this.position(\"fixed\");\n break;\n\n default:\n left = 0;\n top = 0;\n this.position(this._originalPosition);\n break;\n }\n\n this.pos({ x: left, y: top });\n\n super.postUpdate(domNode, element);\n\n element\n .style(\"position\", this.position())\n .style(\"left\", this.left() + \"px\")\n .style(\"right\", this.right() + \"px\")\n .style(\"top\", this.top() + \"px\")\n .style(\"bottom\", this.bottom() + \"px\")\n ;\n }\n\n exit(domNode, element) {\n if (this.widget()) {\n this.widget().target(null);\n }\n super.exit(domNode, element);\n }\n\n click(obj) {\n }\n}\nPopup.prototype._class += \" layout_Popup\";\n\nexport interface Popup {\n popupState(): boolean;\n popupState(_: boolean): this;\n shrinkWrap(): boolean;\n shrinkWrap(_: boolean): this;\n centerPopup(): \"none\" | \"container\" | \"window\";\n centerPopup(_: \"none\" | \"container\" | \"window\"): this;\n top(): number;\n top(_: number): this;\n bottom(): number;\n bottom(_: number): this;\n left(): number;\n left(_: number): this;\n right(): number;\n right(_: number): this;\n position(): string;\n position(_: string): this;\n\n widget(): Widget;\n widget(_: Widget): this;\n}\n\nPopup.prototype.publish(\"popupState\", false, \"boolean\", \"State of the popup, visible (true) or hidden (false)\", null, {});\nPopup.prototype.publish(\"shrinkWrap\", false, \"boolean\", \"The popup parent container either shrinks to the size of its contents (true) or expands to fit thge popup's parentDiv (false)\", null, {});\nPopup.prototype.publish(\"centerPopup\", \"none\", \"set\", \"Center the widget in its container element (target) or in the window\", [\"none\", \"container\", \"window\"], {});\nPopup.prototype.publish(\"top\", null, \"number\", \"Top position property of popup\", null, {});\nPopup.prototype.publish(\"bottom\", null, \"number\", \"Bottom position property of popup\", null, {});\nPopup.prototype.publish(\"left\", null, \"number\", \"Left position property of popup\", null, {});\nPopup.prototype.publish(\"right\", null, \"number\", \"Right position property of popup\", null, {});\nPopup.prototype.publish(\"position\", \"relative\", \"set\", \"Value of the 'position' property\", [\"absolute\", \"relative\", \"fixed\", \"static\", \"initial\", \"inherit\"], { tags: [\"Private\"] });\n\nPopup.prototype.publish(\"widget\", null, \"widget\", \"Widget\", null, { tags: [\"Private\"] });\n", "import { HTMLWidget, Text, Widget } from \"@hpcc-js/common\";\nimport { select as d3Select } from \"d3-selection\";\nimport { Surface } from \"./Surface.ts\";\n\nimport \"../src/Tabbed.css\";\n\nexport class Tabbed extends HTMLWidget {\n _tabContainer;\n _contentContainer;\n\n constructor() {\n super();\n\n this._tag = \"div\";\n }\n\n clearTabs() {\n this.labels([]);\n this.widgets([]);\n return this;\n }\n\n addTab(widget, label, isActive?, callback?) {\n const widgetSize = widget.size();\n if (widgetSize.width === 0 && widgetSize.height === 0) {\n widget.size({ width: \"100%\", height: \"100%\" });\n }\n const labels = this.labels();\n const widgets = this.widgets();\n if (isActive) {\n this.activeTabIdx(this.widgets().length);\n }\n labels.push(label);\n const surface = new Surface().widget(widget ? widget : new Text().text(\"No widget defined for tab\"));\n widgets.push(surface);\n this.labels(labels);\n this.widgets(widgets);\n if (callback) {\n callback(surface);\n }\n return this;\n }\n\n widgetSize(widgetDiv) {\n const width = this.clientWidth();\n let height = this.clientHeight();\n\n const tcBox = this._tabContainer.node().getBoundingClientRect();\n if (typeof (tcBox.height) !== \"undefined\") {\n height -= tcBox.height;\n }\n return { width, height };\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._tabContainer = element.append(\"div\");\n this._contentContainer = element.append(\"div\");\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n\n element.style(\"padding\", this.surfacePadding_exists() ? this.surfacePadding() + \"px\" : null);\n\n const tabs = this._tabContainer.selectAll(\".tab-button.id\" + this.id()).data(this.showTabs() ? this.labels() : [], function (d) { return d; });\n tabs.enter().append(\"span\")\n .attr(\"class\", \"tab-button id\" + this.id())\n .style(\"cursor\", \"pointer\")\n .on(\"click\", function (d, idx) {\n context.click(context.widgets()[idx].widget(), d, idx);\n context\n .activeTabIdx(idx)\n .render()\n ;\n }).merge(tabs)\n .classed(\"active\", function (d, idx) { return context.activeTabIdx() === idx; })\n .text(function (d) { return d; })\n ;\n tabs.exit().remove();\n\n const content = this._contentContainer.selectAll(\".tab-content.id\" + this.id()).data(this.widgets(), function (d) { return d.id(); });\n content.enter().append(\"div\")\n .attr(\"class\", \"tab-content id\" + this.id())\n .each(function (widget, idx) {\n widget.target(this);\n }).merge(content)\n .classed(\"active\", function (d, idx) { return context.activeTabIdx() === idx; })\n .style(\"display\", function (d, idx) { return context.activeTabIdx() === idx ? \"block\" : \"none\"; })\n .each(function (surface, idx) {\n surface.visible(context.activeTabIdx() === idx);\n if (context.activeTabIdx() === idx) {\n const wSize = context.widgetSize(d3Select(this));\n surface\n .surfaceBorderWidth(context.showTabs() ? null : 0)\n .surfacePadding(context.showTabs() ? null : 0)\n .resize(wSize)\n ;\n }\n })\n ;\n content.exit()\n .each(function (widget, idx) {\n widget\n .target(null)\n ;\n })\n .remove();\n\n switch (this.tabLocation()) {\n case \"bottom\":\n this._tabContainer\n .attr(\"class\", \"on_bottom\")\n .style(\"top\", (this._contentContainer.node().offsetHeight + this.surfacePadding()) + \"px\")\n .style(\"position\", \"absolute\")\n ;\n this._contentContainer\n .style(\"top\", this.surfacePadding_exists() ? this.surfacePadding() + \"px\" : null)\n .style(\"position\", \"absolute\")\n ;\n break;\n default:\n this._tabContainer\n .attr(\"class\", \"on_top\")\n .style(\"top\", null)\n .style(\"position\", \"relative\")\n ;\n this._contentContainer\n .style(\"top\", (this._tabContainer.node().offsetHeight + this.surfacePadding()) + \"px\")\n .style(\"position\", \"absolute\")\n ;\n break;\n }\n }\n\n click(widget, column, idx) {\n }\n}\nTabbed.prototype._class += \" layout_Tabbed\";\n\nexport interface Tabbed {\n showTabs(): boolean;\n showTabs(_: boolean): this;\n surfacePadding(): number;\n surfacePadding(_: number): this;\n surfacePadding_exists(): boolean;\n activeTabIdx(): number;\n activeTabIdx(_: number): this;\n\n labels(): string[];\n labels(_: string[]): this;\n tabLocation(): \"top\" | \"bottom\";\n tabLocation(_: \"top\" | \"bottom\"): this;\n widgets(): any[];\n widgets(_: any[]): this;\n}\n\nTabbed.prototype.publish(\"showTabs\", true, \"boolean\", \"Show Tabs\", null, {});\nTabbed.prototype.publish(\"surfacePadding\", 4, \"number\", \"Padding\");\nTabbed.prototype.publish(\"activeTabIdx\", 0, \"number\", \"Index of active tab\", null, {});\n\nTabbed.prototype.publish(\"labels\", [], \"array\", \"Array of tab labels sharing an index with \", null, { tags: [\"Private\"] });\nTabbed.prototype.publish(\"tabLocation\", \"top\", \"set\", \"Position the tabs at the bottom of the widget\", [\"top\", \"bottom\"], { tags: [\"Private\"] });\nTabbed.prototype.publish(\"widgets\", [], \"widgetArray\", \"widgets\", null, { tags: [\"Private\"] });\n", "(function(){\n if (!document.getElementById('6b6715fa')) {\n var e = document.createElement('style');\n e.id = '6b6715fa';\n e.textContent = `.layout_Tabbed .tab-button {\n position: relative;\n top: 1px;\n display: inline-block;\n border-left: 1px solid #ddd;\n border-top: 1px solid #ddd;\n border-right: 1px solid #ddd;\n background-color: transparent;\n margin-right: 4px;\n padding: 2px;\n padding-bottom: 4px;\n background-color: #ccc;\n}\n\n.layout_Tabbed .tab-button.active {\n background-color: white;\n z-index:999;\n}\n.layout_Tabbed .on_bottom .tab-button {\n border-bottom: 1px solid #ddd;\n border-top: none;\n top: -1px;\n}`;\n document.head.appendChild(e);\n }\n })();", "import { HTMLWidget, Widget } from \"@hpcc-js/common\";\nimport { select as d3Select } from \"d3-selection\";\n\nimport \"../src/Toolbar.css\";\n\nexport class Toolbar extends HTMLWidget {\n\n constructor() {\n super();\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 const context = this;\n\n element\n .attr(\"title\", context.title())\n .style(\"background-color\", this.backgroundColor())\n ;\n\n const title = element.selectAll(\"div.toolbar-title\")\n .data(this.title() ? [this.title()] : []);\n title.enter().append(\"div\")\n .classed(\"toolbar-title\", true)\n .append(\"span\")\n ;\n title.selectAll(\"div.toolbar-title > span\")\n .style(\"font-size\", this.fontSize_exists() ? this.fontSize() + \"px\" : null)\n .style(\"color\", this.fontColor_exists() ? this.fontColor() : null)\n .style(\"font-family\", this.fontFamily_exists() ? this.fontFamily() : null)\n .style(\"font-weight\", this.fontBold_exists() ? (this.fontBold() ? \"bold\" : \"normal\") : null)\n .style(\"background-color\", this.backgroundColor_exists() ? this.backgroundColor() : null)\n .text(context.title())\n ;\n title.exit().remove();\n\n const childWidgets = element.selectAll(\"div.toolbar-child\")\n .data(this.widgets() !== null ? this.widgets() : [], function (d) { return d.id(); });\n\n childWidgets.enter().insert(\"div\", \"div.toolbar-title\")\n .each(function (d, i) {\n const widgetClass = context.widgetClasses()[i] ? context.widgetClasses()[i] + \" toolbar-child\" : \"toolbar-child\";\n d3Select(this).classed(widgetClass, true);\n d.target(this);\n });\n childWidgets.exit().each(function (d) {\n d.target(null);\n }).remove();\n childWidgets.order();\n }\n\n render(callback?: (w: Widget) => void): this {\n const context = this;\n return super.render(function (w) {\n const toolbarBBox = context.element().node().getBoundingClientRect();\n let minX = toolbarBBox.left + toolbarBBox.width;\n context.element().selectAll(\"div.toolbar-child\")\n .each(function (d, i) {\n const childBBox = this.getBoundingClientRect();\n if (minX > childBBox.left)\n minX = childBBox.left;\n })\n ;\n context.element().select(\".toolbar-title\")\n .style(\"width\", (minX - toolbarBBox.left - 4) + \"px\")\n ;\n if (callback) {\n callback(w);\n }\n });\n }\n\n exit(domNode, element) {\n this.widgets().forEach(function (w) {\n w.target(null);\n });\n super.exit(domNode, element);\n }\n}\nToolbar.prototype._class += \" layout_Toolbar\";\n\nexport interface Toolbar {\n title(): string;\n title(_: string): this;\n\n fontSize(): number;\n fontSize(_: number): this;\n fontSize_exists(): boolean;\n fontColor(): string;\n fontColor(_: string): this;\n fontColor_exists(): boolean;\n fontFamily(): string;\n fontFamily(_: string): this;\n fontFamily_exists(): boolean;\n fontBold(): boolean;\n fontBold(_: boolean): this;\n fontBold_exists(): boolean;\n backgroundColor(): string;\n backgroundColor(_: string): this;\n backgroundColor_exists(): boolean;\n\n responsive(): boolean;\n responsive(_: boolean): this;\n\n widgets(): any[];\n widgets(_: any[]): this;\n widgetClasses(): string[];\n widgetClasses(_: string[]): this;\n}\n\nToolbar.prototype.publish(\"title\", \"\", \"string\", \"Title\", null, { tags: [\"Intermediate\"] });\n\nToolbar.prototype.publish(\"fontSize\", null, \"number\", \"Title Font Size (px)\", null, { tags: [\"Advanced\"], optional: true });\nToolbar.prototype.publish(\"fontColor\", null, \"html-color\", \"Title Font Color\", null, { tags: [\"Advanced\"], optional: true });\nToolbar.prototype.publish(\"fontFamily\", null, \"string\", \"Title Font Family\", null, { tags: [\"Advanced\"], optional: true });\nToolbar.prototype.publish(\"fontBold\", true, \"boolean\", \"Enable Bold Title Font\", null, { tags: [\"Advanced\"], optional: true });\nToolbar.prototype.publish(\"backgroundColor\", null, \"html-color\", \"Background Color\", null, { tags: [\"Intermediate\"], optional: true });\n\nToolbar.prototype.publish(\"responsive\", true, \"boolean\", \"Adapts to pixel width\", null, { tags: [\"Basic\"] });\n\nToolbar.prototype.publish(\"widgets\", [], \"widgetArray\", \"Child widgets of the toolbar\", null, { tags: [\"Basic\"] });\nToolbar.prototype.publish(\"widgetClasses\", [], \"array\", \"Array of Html Element classes to be assigned to the child widgets (shares index with widgets param)\", null, { tags: [\"Basic\"] });\n", "(function(){\n if (!document.getElementById('67787f94')) {\n var e = document.createElement('style');\n e.id = '67787f94';\n e.textContent = `.layout_Toolbar {\n height:100%;\n background-color:#dddddd;\n white-space: nowrap;\n overflow: hidden;\n}\n.layout_Toolbar .toolbar-title {\n display: inline-block;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n -ms-transform: translateY(-50%);\n\n margin-left:4px;\n font-weight:bold;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n.layout_Toolbar .toolbar-title span {\n}\n.layout_Toolbar .toolbar-child {\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n -ms-transform: translateY(-50%);\n\n float:right;\n margin-left:4px;\n margin-right:4px;\n line-height:16px;\n}\n`;\n document.head.appendChild(e);\n }\n })();", "import { FlexGrid } from \"./FlexGrid.ts\";\n\nexport class VerticalList extends FlexGrid {\n constructor() {\n super();\n this.orientation_default(\"vertical\");\n this.flexWrap_default(\"nowrap\");\n }\n}\nVerticalList.prototype._class += \" layout_VerticalList\";\n\nexport interface VerticalList {\n orientation_default(_: \"horizontal\" | \"vertical\");\n flexWrap_default(_: \"nowrap\" | \"wrap\" | \"wrap-reverse\");\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["require_gridList", "__commonJSMin", "exports", "module", "root", "factory", "GridList", "__name", "items", "options", "k", "_items", "_item", "i", "widthOfGrid", "output", "border", "item", "j", "lanes", "currentColumn", "position", "start", "fixedRow", "x", "y", "newCol", "newRow", "newPosition", "size", "width", "height", "initialItems", "idAttribute", "changedItems", "item1", "item2", "position1", "position2", "row", "col", "N", "GridCol", "collidingItems", "_gridList", "leftOfItem", "rightOfItem", "aboveOfItem", "belowOfItem", "collidingItem", "collidingPosition", "fixedItem", "fixedPosition", "tail", "otherItem", "otherPosition", "key", "value", "nr", "prefix", "PKG_NAME", "PKG_VERSION", "BUILD_VERSION", "HTMLWidget", "e", "AbsoluteSurface", "HTMLWidget", "__name", "domNode", "element", "xPos", "yPos", "width", "height", "widgets", "d", "FAChar", "HTMLWidget", "e", "Accordion", "HTMLWidget", "__name", "widget", "prepend", "protect", "contentArr", "arr", "i", "element", "domNode", "context", "FAChar", "this_id", "rows", "d", "li", "wSize", "cSize", "d3Event", "HTMLWidget", "Platform", "d3Select", "d3SelectAll", "Utility", "d3Drag", "d3Select", "d3SelectAll", "HTMLWidget", "d3Select", "e", "Surface", "HTMLWidget", "__name", "titleDiv", "widgetDiv", "width", "height", "domNode", "element", "element2", "context", "titles", "d", "surfaceButtons", "button", "idx", "el", "d3Select", "_d", "widgets", "widgetSize", "obj", "w", "e", "Cell", "Surface", "__name", "_", "domNode", "element", "context", "arr", "opacity", "indicatorBorderColor", "indicatorGlowColor", "i", "otherElement", "d3Select", "otherWidget", "d3SelectAll", "e", "Border", "HTMLWidget", "__name", "widget", "context", "paramId", "newVal", "oldVal", "Utility", "layoutObj", "cell", "sectionType", "layoutType", "retObj", "topSize", "topPerc", "bottomSize", "bottomPerc", "leftSize", "leftPerc", "rightSize", "rightPerc", "bcRect", "gridRect", "t", "_sectionPlacementObject", "b", "l", "r", "c", "obj", "contentWidget", "d3Select", "idx", "title", "Cell", "id", "handle", "event", "d3Event", "handleElm", "xDelta", "yDelta", "_moveHandles", "handle2", "delta", "handles", "d3SelectAll", "grabbedHandle", "handle3", "_", "retVal", "domNode", "element", "Platform", "rows", "d", "rowsUpdate", "i", "drag", "d3Drag", "contentRect", "rect", "size", "n", "prevBox", "currBox", "w", "HTMLWidget", "Platform", "e", "WidgetDiv", "__name", "div", "_", "size", "getBBox", "availableHeight", "availableWidth", "overflowX", "overflowY", "w", "retVal", "Platform", "Border2", "HTMLWidget", "domNode", "element", "topElement", "centerElement", "leftElement", "rightElement", "bottomElement", "sectionA", "sectionB", "a", "b", "callback", "topBBox", "bottomBBox", "leftBBox", "rightBBox", "bodyWidth", "bodyHeight", "centerOverflowX", "centerOverflowY", "scrollCenterX", "scrollCenterY", "promises", "HTMLWidget", "d3Select", "e", "Carousel", "HTMLWidget", "__name", "domNode", "element", "active", "width", "widgetElements", "d", "update", "w", "i", "d3Select", "callback", "aw", "w2", "Button", "IconBar", "ProgressBar", "Spacer", "SVGWidget", "Text", "TitleBar", "ToggleButton", "Utility", "Table", "d3Select", "instanceOfIHighlight", "Database", "Palette", "SVGWidget", "d3Format", "d3ScaleOrdinal", "pi", "tau", "epsilon", "tauEpsilon", "Path", "__name", "path", "x", "y", "x1", "y1", "x2", "y2", "r", "x0", "y0", "x21", "y21", "x01", "y01", "l01_2", "x20", "y20", "l21_2", "l20_2", "l21", "l01", "l", "t01", "t21", "a0", "a1", "ccw", "dx", "dy", "cw", "da", "w", "h", "path_default", "constant_default", "x", "__name", "pi", "halfPi", "tau", "circle_default", "__name", "context", "size", "r", "pi", "tau", "cross_default", "__name", "context", "size", "r", "tan30", "tan30_2", "diamond_default", "__name", "context", "size", "y", "x", "ka", "kr", "pi", "kx", "tau", "ky", "star_default", "__name", "context", "size", "r", "x", "y", "i", "a", "c", "s", "square_default", "__name", "context", "size", "w", "x", "sqrt3", "triangle_default", "__name", "context", "size", "y", "c", "s", "k", "a", "wye_default", "__name", "context", "size", "r", "x0", "y0", "x1", "y1", "x2", "y2", "symbol_default", "type", "constant_default", "circle_default", "size", "context", "symbol", "buffer", "path_default", "__name", "_", "d3_identity", "__name", "d", "d3_reverse", "arr", "mirror", "i", "l", "length", "d3_textWrapping", "text", "width", "each", "select", "words", "split", "reverse", "word", "line", "lineNumber", "lineHeight", "attr", "dy", "parseFloat", "tspan", "append", "pop", "push", "join", "node", "getComputedTextLength", "d3_mergeLabels", "gen", "labels", "domain", "range", "labelDelimiter", "_typeof", "customLabels", "genLength", "d3_linearLegend", "scale", "cells", "labelFormat", "data", "increment", "map", "d3_quantLegend", "invert", "invertExtent", "d3_ordinalLegend", "d3_cellOver", "cellDispatcher", "obj", "call", "d3_cellOut", "d3_cellClick", "helper", "shape", "shapes", "shapeHeight", "shapeWidth", "shapeRadius", "path", "svg", "enter", "classPrefix", "labelWidth", "selectAll", "ascending", "type", "ticks", "cellFilter", "filterCells", "label", "filter", "dataValues", "labelValues", "indexOf", "orient", "cell", "cellTrans", "textTrans", "labelAlign", "style", "dispatcher", "on", "title", "titleWidth", "titleText", "cellsSvg", "yOffset", "nodes", "getBBox", "height", "xOffset", "x", "color", "scaleLinear", "shapePadding", "useClass", "locale", "d3_defaultLocale", "specifier", "d3_defaultFormatSpecifier", "labelOffset", "d3_defaultDelimiter", "labelWrap", "legendDispatcher", "dispatch", "legend", "d3_calcType", "format", "legendG", "d3_filterCells", "cellEnter", "d3_addEvents", "exit", "transition", "remove", "merge", "d3_drawShapes", "d3_addText", "textSize", "shapeSize", "feature", "textAlign", "cellSize", "Math", "max", "sum", "slice", "y", "d3_placement", "d3_title", "_", "arguments", "formatLocale", "formatSpecifier", "toLowerCase", "textWrap", "value", "apply", "Legend", "SVGWidget", "__name", "circle_default", "cross_default", "diamond_default", "square_default", "star_default", "triangle_default", "wye_default", "owner", "context", "color", "symbol_default", "d", "Database", "row", "disabledCols", "anyDisabled", "col", "idx", "disabled", "cell", "widget", "_", "key", "newProp", "oldProp", "source", "Palette", "sel", "palette", "domNode", "element", "dataArr", "total", "maxLabelWidth", "colLength", "columns", "fillColor", "val", "n", "i", "acc", "label", "textSize", "format", "d3Format", "steps", "weightMin", "weightMax", "stepWeightDiff", "x", "mid", "radius", "size", "strokeWidth", "shapePadding", "ordinal", "d3ScaleOrdinal", "legendCellsBbox", "offsetX", "offsetY", "extraWidth", "extraHeight", "legendTotal", "totalText", "totalOffsetX", "totalOffsetY", "w", "circleSize", "disabledIdx", "instanceOfIHighlight", "rowData", "rowIdx", "_size", "retVal", "bbox", "HTMLWidget", "e", "Modal", "HTMLWidget", "__name", "relativeTarget", "modalRect", "headerRect", "rect", "contentRect", "size", "width", "height", "domNode", "element", "header_h", "n", "title", "e", "ChartPanel", "Border2", "__name", "Legend", "ProgressBar", "Modal", "ToggleButton", "Text", "origCloseFunc", "Button", "selected", "Spacer", "TitleBar", "Carousel", "Table", "_", "asDefault", "namePrefix", "nameSuffix", "Utility", "widget", "SVGWidget", "column", "cssTag", "element", "d3Select", "highlight", "domNode", "scale_x", "scale_y", "x_is_smaller", "chart", "idx", "widgetIconBar", "IconBar", "buttons", "hiddenButtons", "iconDiv", "_node", "containerRect", "rect", "icon_top", "parentRect", "row", "col", "sel", "more", "context", "tmpAny", "HTMLWidget", "d3Select", "e", "FlexGrid", "HTMLWidget", "__name", "domNode", "element", "d3Select", "context", "cachedSizes", "listItems", "w", "n", "i", "flexBasis", "flexGrow", "rect", "_GridList", "d3Event", "d3Drag", "HTMLWidget", "Platform", "d3Select", "Utility", "e", "GridList", "_GridList", "Grid", "HTMLWidget", "__name", "Utility", "size", "cell", "widget", "contentWidget", "w", "row", "col", "title", "rowSpan", "colSpan", "Cell", "l", "r", "retVal", "id", "item", "origItem", "domNode", "element", "Platform", "context", "d3Drag", "_d", "d", "d3Event", "event", "pos", "resize", "transitionDuration", "_noRender", "element2", "dimensions", "clientWidth", "cellLaneRatio", "laneWidth", "divItems", "key", "newVal", "oldVal", "d3Select", "lanesBackground", "lanes", "_", "selectionObj", "selected", "layoutArr", "x", "y", "h", "elem", "HorizontalList", "FlexGrid", "__name", "HTMLWidget", "Text", "e", "Layered", "HTMLWidget", "__name", "widget", "placement", "widthRatio", "heightRatio", "widgets", "Text", "domNode", "element", "context", "content", "d", "idx", "clientSize", "widgetSize", "widgetPosition", "HTMLWidget", "Popup", "HTMLWidget", "__name", "visible", "domNode", "element", "left", "top", "obj", "HTMLWidget", "Text", "d3Select", "e", "Tabbed", "HTMLWidget", "__name", "widget", "label", "isActive", "callback", "widgetSize", "labels", "widgets", "surface", "Surface", "Text", "widgetDiv", "width", "height", "tcBox", "domNode", "element", "context", "tabs", "d", "idx", "content", "wSize", "d3Select", "column", "HTMLWidget", "d3Select", "e", "Toolbar", "HTMLWidget", "__name", "domNode", "element", "context", "title", "childWidgets", "d", "i", "widgetClass", "d3Select", "callback", "w", "toolbarBBox", "minX", "childBBox", "VerticalList", "FlexGrid", "__name"]
7
+ }