@hpcc-js/tree 2.40.17 → 2.41.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.
- package/dist/index.es6.js +3 -3
- package/dist/index.es6.js.map +1 -1
- package/dist/index.js +2 -4
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +7 -7
- package/src/__package__.ts +2 -2
- package/types/__package__.d.ts +2 -2
- package/types/__package__.d.ts.map +1 -1
- package/types-3.4/__package__.d.ts +2 -2
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/__package__.ts","../../../node_modules/tslib/tslib.es6.mjs","../../../node_modules/d3-hierarchy/src/cluster.js","../../../node_modules/d3-hierarchy/src/hierarchy/count.js","../../../node_modules/d3-hierarchy/src/hierarchy/each.js","../../../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../../../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../../../node_modules/d3-hierarchy/src/hierarchy/sum.js","../../../node_modules/d3-hierarchy/src/hierarchy/sort.js","../../../node_modules/d3-hierarchy/src/hierarchy/path.js","../../../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../../../node_modules/d3-hierarchy/src/hierarchy/descendants.js","../../../node_modules/d3-hierarchy/src/hierarchy/leaves.js","../../../node_modules/d3-hierarchy/src/hierarchy/links.js","../../../node_modules/d3-hierarchy/src/hierarchy/index.js","../../../node_modules/d3-hierarchy/src/array.js","../../../node_modules/d3-hierarchy/src/pack/enclose.js","../../../node_modules/d3-hierarchy/src/pack/siblings.js","../../../node_modules/d3-hierarchy/src/accessors.js","../../../node_modules/d3-hierarchy/src/constant.js","../../../node_modules/d3-hierarchy/src/pack/index.js","../../../node_modules/d3-hierarchy/src/treemap/round.js","../../../node_modules/d3-hierarchy/src/treemap/dice.js","../../../node_modules/d3-hierarchy/src/partition.js","../../../node_modules/d3-hierarchy/src/tree.js","../../../node_modules/d3-hierarchy/src/treemap/slice.js","../../../node_modules/d3-hierarchy/src/treemap/squarify.js","../../../node_modules/d3-hierarchy/src/treemap/index.js","../../../node_modules/d3-hierarchy/src/treemap/binary.js","../../../node_modules/d3-hierarchy/src/treemap/sliceDice.js","../../../node_modules/d3-hierarchy/src/treemap/resquarify.js","../../../node_modules/style-inject/dist/style-inject.es.js","../src/CirclePacking.ts","../src/Dendrogram.ts","../src/DirectoryTree.ts","../src/Indented.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/arc.js","../src/SunburstPartition.ts","../src/Treemap.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/tree\";\nexport const PKG_VERSION = \"2.40.17\";\nexport const BUILD_VERSION = \"2.105.9\";\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\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\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;\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 }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\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 defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\nfunction meanX(children) {\n return children.reduce(meanXReduce, 0) / children.length;\n}\n\nfunction meanXReduce(x, c) {\n return x + c.x;\n}\n\nfunction maxY(children) {\n return 1 + children.reduce(maxYReduce, 0);\n}\n\nfunction maxYReduce(y, c) {\n return Math.max(y, c.y);\n}\n\nfunction leafLeft(node) {\n var children;\n while (children = node.children) node = children[0];\n return node;\n}\n\nfunction leafRight(node) {\n var children;\n while (children = node.children) node = children[children.length - 1];\n return node;\n}\n\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = false;\n\n function cluster(root) {\n var previousNode,\n x = 0;\n\n // First walk, computing the initial x & y values.\n root.eachAfter(function(node) {\n var children = node.children;\n if (children) {\n node.x = meanX(children);\n node.y = maxY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n\n var left = leafLeft(root),\n right = leafRight(root),\n x0 = left.x - separation(left, right) / 2,\n x1 = right.x + separation(right, left) / 2;\n\n // Second walk, normalizing x & y to the desired size.\n return root.eachAfter(nodeSize ? function(node) {\n node.x = (node.x - root.x) * dx;\n node.y = (root.y - node.y) * dy;\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * dx;\n node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;\n });\n }\n\n cluster.separation = function(x) {\n return arguments.length ? (separation = x, cluster) : separation;\n };\n\n cluster.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);\n };\n\n cluster.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);\n };\n\n return cluster;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function(callback) {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n callback(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n } while (next.length);\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], children, i;\n while (node = nodes.pop()) {\n callback(node), children = node.children;\n if (children) for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], next = [], children, i, n;\n while (node = nodes.pop()) {\n next.push(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n while (node = next.pop()) {\n callback(node);\n }\n return this;\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n var nodes = [];\n this.each(function(node) {\n nodes.push(node);\n });\n return nodes;\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\n\nexport default function hierarchy(data, children) {\n var root = new Node(data),\n valued = +data.value && (root.value = data.value),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n if (children == null) children = defaultChildren;\n\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction defaultChildren(d) {\n return d.children;\n}\n\nfunction copyData(node) {\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy\n};\n","export var slice = Array.prototype.slice;\n\nexport function shuffle(array) {\n var m = array.length,\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m];\n array[m] = array[i];\n array[i] = t;\n }\n\n return array;\n}\n","import {shuffle, slice} from \"../array.js\";\n\nexport default function(circles) {\n var i = 0, n = (circles = shuffle(slice.call(circles))).length, B = [], p, e;\n\n while (i < n) {\n p = circles[i];\n if (e && enclosesWeak(e, p)) ++i;\n else e = encloseBasis(B = extendBasis(B, p)), i = 0;\n }\n\n return e;\n}\n\nfunction extendBasis(B, p) {\n var i, j;\n\n if (enclosesWeakAll(p, B)) return [p];\n\n // If we get here then B must have at least one element.\n for (i = 0; i < B.length; ++i) {\n if (enclosesNot(p, B[i])\n && enclosesWeakAll(encloseBasis2(B[i], p), B)) {\n return [B[i], p];\n }\n }\n\n // If we get here then B must have at least two elements.\n for (i = 0; i < B.length - 1; ++i) {\n for (j = i + 1; j < B.length; ++j) {\n if (enclosesNot(encloseBasis2(B[i], B[j]), p)\n && enclosesNot(encloseBasis2(B[i], p), B[j])\n && enclosesNot(encloseBasis2(B[j], p), B[i])\n && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) {\n return [B[i], B[j], p];\n }\n }\n }\n\n // If we get here then something is very wrong.\n throw new Error;\n}\n\nfunction enclosesNot(a, b) {\n var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y;\n return dr < 0 || dr * dr < dx * dx + dy * dy;\n}\n\nfunction enclosesWeak(a, b) {\n var dr = a.r - b.r + 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction enclosesWeakAll(a, B) {\n for (var i = 0; i < B.length; ++i) {\n if (!enclosesWeak(a, B[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction encloseBasis(B) {\n switch (B.length) {\n case 1: return encloseBasis1(B[0]);\n case 2: return encloseBasis2(B[0], B[1]);\n case 3: return encloseBasis3(B[0], B[1], B[2]);\n }\n}\n\nfunction encloseBasis1(a) {\n return {\n x: a.x,\n y: a.y,\n r: a.r\n };\n}\n\nfunction encloseBasis2(a, b) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1,\n l = Math.sqrt(x21 * x21 + y21 * y21);\n return {\n x: (x1 + x2 + x21 / l * r21) / 2,\n y: (y1 + y2 + y21 / l * r21) / 2,\n r: (l + r1 + r2) / 2\n };\n}\n\nfunction encloseBasis3(a, b, c) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x3 = c.x, y3 = c.y, r3 = c.r,\n a2 = x1 - x2,\n a3 = x1 - x3,\n b2 = y1 - y2,\n b3 = y1 - y3,\n c2 = r2 - r1,\n c3 = r3 - r1,\n d1 = x1 * x1 + y1 * y1 - r1 * r1,\n d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2,\n d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3,\n ab = a3 * b2 - a2 * b3,\n xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1,\n xb = (b3 * c2 - b2 * c3) / ab,\n ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1,\n yb = (a2 * c3 - a3 * c2) / ab,\n A = xb * xb + yb * yb - 1,\n B = 2 * (r1 + xa * xb + ya * yb),\n C = xa * xa + ya * ya - r1 * r1,\n r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B);\n return {\n x: x1 + xa + xb * r,\n y: y1 + ya + yb * r,\n r: r\n };\n}\n","import enclose from \"./enclose.js\";\n\nfunction place(b, a, c) {\n var dx = b.x - a.x, x, a2,\n dy = b.y - a.y, y, b2,\n d2 = dx * dx + dy * dy;\n if (d2) {\n a2 = a.r + c.r, a2 *= a2;\n b2 = b.r + c.r, b2 *= b2;\n if (a2 > b2) {\n x = (d2 + b2 - a2) / (2 * d2);\n y = Math.sqrt(Math.max(0, b2 / d2 - x * x));\n c.x = b.x - x * dx - y * dy;\n c.y = b.y - x * dy + y * dx;\n } else {\n x = (d2 + a2 - b2) / (2 * d2);\n y = Math.sqrt(Math.max(0, a2 / d2 - x * x));\n c.x = a.x + x * dx - y * dy;\n c.y = a.y + x * dy + y * dx;\n }\n } else {\n c.x = a.x + c.r;\n c.y = a.y;\n }\n}\n\nfunction intersects(a, b) {\n var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction score(node) {\n var a = node._,\n b = node.next._,\n ab = a.r + b.r,\n dx = (a.x * b.r + b.x * a.r) / ab,\n dy = (a.y * b.r + b.y * a.r) / ab;\n return dx * dx + dy * dy;\n}\n\nfunction Node(circle) {\n this._ = circle;\n this.next = null;\n this.previous = null;\n}\n\nexport function packEnclose(circles) {\n if (!(n = circles.length)) return 0;\n\n var a, b, c, n, aa, ca, i, j, k, sj, sk;\n\n // Place the first circle.\n a = circles[0], a.x = 0, a.y = 0;\n if (!(n > 1)) return a.r;\n\n // Place the second circle.\n b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;\n if (!(n > 2)) return a.r + b.r;\n\n // Place the third circle.\n place(b, a, c = circles[2]);\n\n // Initialize the front-chain using the first three circles a, b and c.\n a = new Node(a), b = new Node(b), c = new Node(c);\n a.next = c.previous = b;\n b.next = a.previous = c;\n c.next = b.previous = a;\n\n // Attempt to place each remaining circle…\n pack: for (i = 3; i < n; ++i) {\n place(a._, b._, c = circles[i]), c = new Node(c);\n\n // Find the closest intersecting circle on the front-chain, if any.\n // “Closeness” is determined by linear distance along the front-chain.\n // “Ahead” or “behind” is likewise determined by linear distance.\n j = b.next, k = a.previous, sj = b._.r, sk = a._.r;\n do {\n if (sj <= sk) {\n if (intersects(j._, c._)) {\n b = j, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sj += j._.r, j = j.next;\n } else {\n if (intersects(k._, c._)) {\n a = k, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sk += k._.r, k = k.previous;\n }\n } while (j !== k.next);\n\n // Success! Insert the new circle c between a and b.\n c.previous = a, c.next = b, a.next = b.previous = b = c;\n\n // Compute the new closest circle pair to the centroid.\n aa = score(a);\n while ((c = c.next) !== b) {\n if ((ca = score(c)) < aa) {\n a = c, aa = ca;\n }\n }\n b = a.next;\n }\n\n // Compute the enclosing circle of the front chain.\n a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = enclose(a);\n\n // Translate the circles to put the enclosing circle around the origin.\n for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;\n\n return c.r;\n}\n\nexport default function(circles) {\n packEnclose(circles);\n return circles;\n}\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","import {packEnclose} from \"./siblings.js\";\nimport {optional} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nfunction defaultRadius(d) {\n return Math.sqrt(d.value);\n}\n\nexport default function() {\n var radius = null,\n dx = 1,\n dy = 1,\n padding = constantZero;\n\n function pack(root) {\n root.x = dx / 2, root.y = dy / 2;\n if (radius) {\n root.eachBefore(radiusLeaf(radius))\n .eachAfter(packChildren(padding, 0.5))\n .eachBefore(translateChild(1));\n } else {\n root.eachBefore(radiusLeaf(defaultRadius))\n .eachAfter(packChildren(constantZero, 1))\n .eachAfter(packChildren(padding, root.r / Math.min(dx, dy)))\n .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));\n }\n return root;\n }\n\n pack.radius = function(x) {\n return arguments.length ? (radius = optional(x), pack) : radius;\n };\n\n pack.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];\n };\n\n pack.padding = function(x) {\n return arguments.length ? (padding = typeof x === \"function\" ? x : constant(+x), pack) : padding;\n };\n\n return pack;\n}\n\nfunction radiusLeaf(radius) {\n return function(node) {\n if (!node.children) {\n node.r = Math.max(0, +radius(node) || 0);\n }\n };\n}\n\nfunction packChildren(padding, k) {\n return function(node) {\n if (children = node.children) {\n var children,\n i,\n n = children.length,\n r = padding(node) * k || 0,\n e;\n\n if (r) for (i = 0; i < n; ++i) children[i].r += r;\n e = packEnclose(children);\n if (r) for (i = 0; i < n; ++i) children[i].r -= r;\n node.r = e + r;\n }\n };\n}\n\nfunction translateChild(k) {\n return function(node) {\n var parent = node.parent;\n node.r *= k;\n if (parent) {\n node.x = parent.x + k * node.x;\n node.y = parent.y + k * node.y;\n }\n };\n}\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","import roundNode from \"./treemap/round.js\";\nimport treemapDice from \"./treemap/dice.js\";\n\nexport default function() {\n var dx = 1,\n dy = 1,\n padding = 0,\n round = false;\n\n function partition(root) {\n var n = root.height + 1;\n root.x0 =\n root.y0 = padding;\n root.x1 = dx;\n root.y1 = dy / n;\n root.eachBefore(positionNode(dy, n));\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(dy, n) {\n return function(node) {\n if (node.children) {\n treemapDice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);\n }\n var x0 = node.x0,\n y0 = node.y0,\n x1 = node.x1 - padding,\n y1 = node.y1 - padding;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n };\n }\n\n partition.round = function(x) {\n return arguments.length ? (round = !!x, partition) : round;\n };\n\n partition.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];\n };\n\n partition.padding = function(x) {\n return arguments.length ? (padding = +x, partition) : padding;\n };\n\n return partition;\n}\n","import {Node} from \"./hierarchy/index.js\";\n\nfunction defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\n// function radialSeparation(a, b) {\n// return (a.parent === b.parent ? 1 : 2) / a.depth;\n// }\n\n// This function is used to traverse the left contour of a subtree (or\n// subforest). It returns the successor of v on this contour. This successor is\n// either given by the leftmost child of v or by the thread of v. The function\n// returns null if and only if v is on the highest level of its subtree.\nfunction nextLeft(v) {\n var children = v.children;\n return children ? children[0] : v.t;\n}\n\n// This function works analogously to nextLeft.\nfunction nextRight(v) {\n var children = v.children;\n return children ? children[children.length - 1] : v.t;\n}\n\n// Shifts the current subtree rooted at w+. This is done by increasing\n// prelim(w+) and mod(w+) by shift.\nfunction moveSubtree(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n}\n\n// All other shifts, applied to the smaller subtrees between w- and w+, are\n// performed by this function. To prepare the shifts, we have to adjust\n// change(w+), shift(w+), and change(w-).\nfunction executeShifts(v) {\n var shift = 0,\n change = 0,\n children = v.children,\n i = children.length,\n w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n}\n\n// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,\n// returns the specified (default) ancestor.\nfunction nextAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n}\n\nfunction TreeNode(node, i) {\n this._ = node;\n this.parent = null;\n this.children = null;\n this.A = null; // default ancestor\n this.a = this; // ancestor\n this.z = 0; // prelim\n this.m = 0; // mod\n this.c = 0; // change\n this.s = 0; // shift\n this.t = null; // thread\n this.i = i; // number\n}\n\nTreeNode.prototype = Object.create(Node.prototype);\n\nfunction treeRoot(root) {\n var tree = new TreeNode(root, 0),\n node,\n nodes = [tree],\n child,\n children,\n i,\n n;\n\n while (node = nodes.pop()) {\n if (children = node._.children) {\n node.children = new Array(n = children.length);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new TreeNode(children[i], i));\n child.parent = node;\n }\n }\n }\n\n (tree.parent = new TreeNode(null, 0)).children = [tree];\n return tree;\n}\n\n// Node-link tree diagram using the Reingold-Tilford \"tidy\" algorithm\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = null;\n\n function tree(root) {\n var t = treeRoot(root);\n\n // Compute the layout using Buchheim et al.’s algorithm.\n t.eachAfter(firstWalk), t.parent.m = -t.z;\n t.eachBefore(secondWalk);\n\n // If a fixed node size is specified, scale x and y.\n if (nodeSize) root.eachBefore(sizeNode);\n\n // If a fixed tree size is specified, scale x and y based on the extent.\n // Compute the left-most, right-most, and depth-most nodes for extents.\n else {\n var left = root,\n right = root,\n bottom = root;\n root.eachBefore(function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var s = left === right ? 1 : separation(left, right) / 2,\n tx = s - left.x,\n kx = dx / (right.x + s + tx),\n ky = dy / (bottom.depth || 1);\n root.eachBefore(function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n\n return root;\n }\n\n // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is\n // applied recursively to the children of v, as well as the function\n // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the\n // node v is placed to the midpoint of its outermost children.\n function firstWalk(v) {\n var children = v.children,\n siblings = v.parent.children,\n w = v.i ? siblings[v.i - 1] : null;\n if (children) {\n executeShifts(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n }\n\n // Computes all real x-coordinates by summing up the modifiers recursively.\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n\n // The core of the algorithm. Here, a new subtree is combined with the\n // previous subtrees. Threads are used to traverse the inside and outside\n // contours of the left and right subtree up to the highest common level. The\n // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the\n // superscript o means outside and i means inside, the subscript - means left\n // subtree and + means right subtree. For summing up the modifiers along the\n // contour, we use respective variables si+, si-, so-, and so+. Whenever two\n // nodes of the inside contours conflict, we compute the left one of the\n // greatest uncommon ancestors using the function ANCESTOR and call MOVE\n // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.\n // Finally, we add a new thread (if necessary).\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v,\n vop = v,\n vim = w,\n vom = vip.parent.children[0],\n sip = vip.m,\n sop = vop.m,\n sim = vim.m,\n som = vom.m,\n shift;\n while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {\n vom = nextLeft(vom);\n vop = nextRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n moveSubtree(nextAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !nextRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !nextLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n\n function sizeNode(node) {\n node.x *= dx;\n node.y = node.depth * dy;\n }\n\n tree.separation = function(x) {\n return arguments.length ? (separation = x, tree) : separation;\n };\n\n tree.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);\n };\n\n tree.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);\n };\n\n return tree;\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n i, n = nodes.length,\n sum, sums = new Array(n + 1);\n\n for (sums[0] = sum = i = 0; i < n; ++i) {\n sums[i + 1] = sum += nodes[i].value;\n }\n\n partition(0, n, parent.value, x0, y0, x1, y1);\n\n function partition(i, j, value, x0, y0, x1, y1) {\n if (i >= j - 1) {\n var node = nodes[i];\n node.x0 = x0, node.y0 = y0;\n node.x1 = x1, node.y1 = y1;\n return;\n }\n\n var valueOffset = sums[i],\n valueTarget = (value / 2) + valueOffset,\n k = i + 1,\n hi = j - 1;\n\n while (k < hi) {\n var mid = k + hi >>> 1;\n if (sums[mid] < valueTarget) k = mid + 1;\n else hi = mid;\n }\n\n if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k;\n\n var valueLeft = sums[k] - valueOffset,\n valueRight = value - valueLeft;\n\n if ((x1 - x0) > (y1 - y0)) {\n var xk = (x0 * valueRight + x1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, xk, y1);\n partition(k, j, valueRight, xk, y0, x1, y1);\n } else {\n var yk = (y0 * valueRight + y1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, x1, yk);\n partition(k, j, valueRight, x0, yk, x1, y1);\n }\n }\n}\n","import dice from \"./dice.js\";\nimport slice from \"./slice.js\";\n\nexport default function(parent, x0, y0, x1, y1) {\n (parent.depth & 1 ? slice : dice)(parent, x0, y0, x1, y1);\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\nimport {phi, squarifyRatio} from \"./squarify.js\";\n\nexport default (function custom(ratio) {\n\n function resquarify(parent, x0, y0, x1, y1) {\n if ((rows = parent._squarify) && (rows.ratio === ratio)) {\n var rows,\n row,\n nodes,\n i,\n j = -1,\n n,\n m = rows.length,\n value = parent.value;\n\n while (++j < m) {\n row = rows[j], nodes = row.children;\n for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;\n if (row.dice) treemapDice(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value);\n else treemapSlice(row, x0, y0, x0 += (x1 - x0) * row.value / value, y1);\n value -= row.value;\n }\n } else {\n parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);\n rows.ratio = ratio;\n }\n }\n\n resquarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return resquarify;\n})(phi);\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 { ITree } from \"@hpcc-js/api\";\nimport { d3Event, SVGWidget } from \"@hpcc-js/common\";\nimport { rgb as d3Rgb } from \"d3-color\";\nimport { hierarchy as d3Hierarchy, pack as d3Pack } from \"d3-hierarchy\";\nimport { interpolateZoom as d3InterpolateZoom } from \"d3-interpolate\";\nimport \"d3-transition\";\n\nimport \"../src/CirclePacking.css\";\n\nexport class CirclePacking extends SVGWidget {\n diameter;\n pack;\n svg;\n _focus;\n circle;\n view;\n protected _node;\n\n constructor() {\n super();\n ITree.call(this);\n }\n\n enter(_domNode, element) {\n this.diameter = Math.min(this.width(), this.height());\n\n this.pack = d3Pack()\n .size([this.diameter - 4, this.diameter - 4])\n .padding(1.5)\n ;\n\n this.svg = element\n .append(\"g\")\n ;\n }\n\n update(_domNode, _element) {\n const context = this;\n\n this.diameter = Math.min(this.width(), this.height());\n this.pack\n .size([this.diameter - 4, this.diameter - 4])\n .padding(1.5)\n ;\n\n this._palette = this._palette.switch(this.paletteID());\n if (this.useClonedPalette()) {\n this._palette = this._palette.cloneNotExists(this.paletteID() + \"_\" + this.id());\n }\n\n this.svg.selectAll(\"circle\").remove();\n this.svg.selectAll(\"text\").remove();\n\n const root: any = d3Hierarchy(this.data())\n .sum(function (d) {\n return d && d.size ? d.size : 1;\n }).sort(function (a, b) {\n return a.value < b.value ? -1 : a.value > b.value ? 1 : 0;\n })\n ;\n this._focus = root;\n this.pack(root);\n\n this.circle = this.svg.selectAll(\"circle\").data(root.descendants())\n .enter().append(\"circle\")\n .attr(\"class\", function (d) { return d.parent ? d.children ? \"node\" : \"node leaf\" : \"node root\"; })\n .style(\"fill\", function (d) {\n d.color = context.paletteDepthLevel_exists() && d.depth > context.paletteDepthLevel() ? d3Rgb(d.parent.color)[context.paletteDepthVariant()](1) : context._palette(d.data.label);\n return d.color;\n })\n .on(\"click\", function (d) { context.click(d.data, null, null); })\n .on(\"dblclick\", function (d) {\n if (this._focus !== d) {\n context.zoom(d);\n }\n d3Event().stopPropagation();\n })\n ;\n this.circle.append(\"title\").text(function (d) { return d.data.label; });\n\n this.svg.selectAll(\"text\").data(root.descendants())\n .enter().append(\"text\")\n .attr(\"class\", \"label\")\n .style(\"fill-opacity\", function (d) { return d.parent === root ? 1 : 0; })\n .style(\"display\", function (d) { return d.parent === root ? null : \"none\"; })\n .text(function (d) {\n return d.data.label + (context.showSize() && typeof d.data.size !== \"undefined\" ? \" \" + d.data.size : \"\");\n })\n ;\n\n this._node = this.svg.selectAll(\"circle,text\");\n\n this.zoomTo([root.x, root.y, root.r * 2]);\n }\n\n zoom(newFocus) {\n this._focus = newFocus;\n const context = this;\n const transition = this.svg.transition()\n .duration(d3Event().altKey ? 7500 : 750)\n .tween(\"zoom\", function () {\n const i = d3InterpolateZoom(context.view, [context._focus.x, context._focus.y, context._focus.r * 2]);\n return function (t) { context.zoomTo(i(t)); };\n });\n\n function showText(d) {\n return (d === context._focus && !d.children) || d.parent === context._focus;\n }\n\n transition.selectAll(\"text\")\n .filter(function (d) { return showText(d) || this.style.display === \"inline\"; })\n .style(\"fill-opacity\", function (d) { return showText(d) ? 1 : 0; })\n .on(\"start\", function (d) { if (showText(d)) this.style.display = \"inline\"; })\n .on(\"end\", function (d) { if (!showText(d)) this.style.display = \"none\"; });\n }\n\n zoomTo(v) {\n const k = this.diameter / v[2];\n this.view = v;\n this._node.attr(\"transform\", function (d) { return \"translate(\" + (d.x - v[0]) * k + \",\" + (d.y - v[1]) * k + \")\"; });\n this.circle.attr(\"r\", function (d) { return d.r * k; });\n }\n\n paletteID: (_?: string) => string | CirclePacking;\n useClonedPalette: (_?: boolean) => boolean | CirclePacking;\n\n // I2DChart\n _palette;\n click: (row, column, selected) => void;\n dblclick: (row, column, selected) => void;\n}\nCirclePacking.prototype._class += \" tree_CirclePacking\";\nCirclePacking.prototype.implements(ITree.prototype);\nexport interface CirclePacking {\n showSize(): boolean;\n showSize(_: boolean): this;\n paletteDepthLevel(): number;\n paletteDepthLevel(_: number): this;\n paletteDepthLevel_exists(): boolean;\n paletteDepthVariant(): \"brighter\" | \"darker\";\n paletteDepthVariant(_: \"brighter\" | \"darker\"): this;\n}\n\nCirclePacking.prototype.publish(\"showSize\", true, \"boolean\", \"Show size along with label\");\nCirclePacking.prototype.publish(\"paletteDepthLevel\", null, \"number\", \"If not null then beyond this depth number the child node colors are based on parent\", null, { optional: true });\nCirclePacking.prototype.publish(\"paletteDepthVariant\", \"brighter\", \"set\", \"Determines paletteDepthLevel decendant color shade variant\", [\"brighter\", \"darker\"], { disable: w => w.paletteDepthLevel_exists() });\nCirclePacking.prototype.publish(\"paletteID\", \"default\", \"set\", \"Color palette for this widget\", CirclePacking.prototype._palette.switch(), { tags: [\"Basic\", \"Shared\"] });\nCirclePacking.prototype.publish(\"useClonedPalette\", false, \"boolean\", \"Enable or disable using a cloned palette\", null, { tags: [\"Intermediate\", \"Shared\"] });\n","import { ITree } from \"@hpcc-js/api\";\nimport { PropertyExt, SVGZoomWidget, Utility } from \"@hpcc-js/common\";\nimport { cluster as d3Cluster, hierarchy as d3Hierarchy, tree as d3Tree } from \"d3-hierarchy\";\nimport { select as d3Select } from \"d3-selection\";\n\nimport \"../src/Dendrogram.css\";\n\nexport class DendrogramColumn extends PropertyExt {\n _owner: Dendrogram;\n\n constructor() {\n super();\n }\n\n owner(): Dendrogram;\n owner(_: Dendrogram): this;\n owner(_?: Dendrogram): Dendrogram | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n valid(): boolean {\n return !!this.column();\n }\n\n column: { (): string; (_: string): Dendrogram; };\n}\nDendrogramColumn.prototype._class += \" tree_Dendrogram.DendrogramColumn\";\n\nDendrogramColumn.prototype.publish(\"column\", null, \"set\", \"Field\", function (this: DendrogramColumn) { return this._owner ? this._owner.columns() : []; }, { optional: true });\n\n// ===\nexport class Dendrogram extends SVGZoomWidget {\n Column;\n _d3LayoutCluster;\n _d3LayoutTree;\n _d3Layout;\n\n constructor() {\n super();\n ITree.call(this);\n Utility.SimpleSelectionMixin.call(this);\n\n this._drawStartPos = \"origin\";\n\n this._d3LayoutCluster = d3Cluster();\n this._d3LayoutTree = d3Tree();\n }\n\n dendrogramData() {\n if (this.data().length === 0) return [];\n if (!this.mappings().filter(mapping => mapping.valid()).length) {\n return this.data();\n }\n const view = this._db.rollupView(this.mappings().map(function (mapping) { return mapping.column(); }));\n const retVal = {\n key: \"root\",\n values: view.entries()\n };\n return formatData(retVal);\n\n function formatData(node) {\n return {\n label: node.key,\n children: node.values.filter(function (value) { return !(value instanceof Array); }).map(function (value) { return formatData(value); }),\n origRows: node.values\n };\n }\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._renderElement\n .attr(\"opacity\", 0)\n .transition().duration(500)\n .attr(\"opacity\", 1)\n ;\n this._selection.widgetElement(this._renderElement);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n const isVertical = this.orientation() === \"vertical\";\n\n this._palette = this._palette.switch(this.paletteID());\n if (this.useClonedPalette()) {\n this._palette = this._palette.cloneNotExists(this.paletteID() + \"_\" + this.id());\n }\n\n this._d3Layout = this.dendrogram() ? this._d3LayoutCluster : this._d3LayoutTree;\n\n if (this.radial()) {\n this._d3Layout\n .size([360, this.separation() * 2])\n ;\n this._d3Layout.separation(function separation(a, b) {\n return (a.parent === b.parent ? 1 : 2) / a.depth;\n });\n } else {\n this._d3Layout.nodeSize([14, this.separation()]);\n this._d3Layout.separation(function separation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n });\n }\n\n const data = this.dendrogramData();\n const root = d3Hierarchy(data);\n this._d3Layout(root);\n\n const dataNodes = root.descendants();\n const links = root.descendants().slice(1);\n\n // Lines ---\n function linkVertical(d) {\n return \"M\" + d.parent.x + \",\" + d.parent.y\n + \"C\" + d.parent.x + \",\" + (d.parent.y + d.y) / 2\n + \" \" + d.x + \",\" + (d.parent.y + d.y) / 2\n + \" \" + d.x + \",\" + d.y;\n }\n\n function linkHorizontal(d) {\n return \"M\" + d.y + \",\" + d.x\n + \"C\" + (d.y + d.parent.y) / 2 + \",\" + d.x\n + \" \" + (d.y + d.parent.y) / 2 + \",\" + d.parent.x\n + \" \" + d.parent.y + \",\" + d.parent.x;\n }\n function diagonal(d) {\n return isVertical ? linkVertical(d) : linkHorizontal(d);\n }\n\n function project(x, y) {\n const angle = (x - 90) / 180 * Math.PI;\n const radius = y;\n return [radius * Math.cos(angle), radius * Math.sin(angle)];\n }\n\n function radialDiagonal(d) {\n return \"M\" + project(d.x, d.y)\n + \"C\" + project(d.x, (d.y + d.parent.y) / 2)\n + \" \" + project(d.parent.x, (d.y + d.parent.y) / 2)\n + \" \" + project(d.parent.x, d.parent.y);\n }\n\n const transitionDuration = this._renderCount ? 500 : 0;\n const lines = this._renderElement.selectAll(\".link\").data(links);\n lines.enter().append(\"path\")\n .attr(\"class\", \"link\")\n .attr(\"d\", this.radial() ? radialDiagonal : diagonal)\n ;\n lines.transition().duration(transitionDuration)\n .attr(\"d\", this.radial() ? radialDiagonal : diagonal)\n ;\n lines.exit().remove();\n\n // Nodes ---\n const textOffsetX = this.circleRadius() + 2;\n function nodeTransform(d) {\n if (context.radial()) {\n return \"rotate(\" + (d.x - 90) + \")translate(\" + d.y + \")\";\n }\n return context.orientation() === \"horizontal\" ? \"translate(\" + d.y + \",\" + d.x + \")\" : \"translate(\" + d.x + \",\" + d.y + \")\";\n }\n const nodes = this._renderElement.selectAll(\".node\").data(dataNodes);\n nodes.transition().duration(transitionDuration)\n .attr(\"transform\", nodeTransform)\n ;\n const enterNodes = nodes.enter().append(\"g\")\n .attr(\"class\", \"node\")\n .attr(\"transform\", nodeTransform)\n .call(this._selection.enter.bind(this._selection))\n .on(\"click\", function (d) {\n let tmp = d;\n while (tmp.children) {\n tmp = tmp.children[0];\n }\n if (d.depth > 0) {\n if(tmp.origRows) {\n context.click(context.rowToObj(tmp.origRows[0]), context.mappings()[d.depth - 1].column(), true);\n } else {\n context.click(tmp.data, context.mappings()[d.depth - 1].column(), true);\n }\n }\n })\n .on(\"dblclick\", function (d) {\n let tmp = d;\n while (tmp.children) {\n tmp = tmp.children[0];\n }\n if (d.depth > 0) {\n if(tmp.origRows) {\n context.dblclick(context.rowToObj(tmp.origRows[0]), context.mappings()[d.depth - 1].column(), true);\n } else {\n context.dblclick(tmp.data, context.mappings()[d.depth - 1].column(), true);\n }\n }\n })\n .each(function () {\n const e = d3Select(this);\n e.append(\"circle\");\n e.append(\"text\");\n })\n ;\n enterNodes.merge(nodes).select(\"circle\")\n .attr(\"r\", this.circleRadius())\n .style(\"fill\", function (d) { return context._palette(d.data.label); })\n .append(\"title\")\n .text(function (d) { return d.data.label; })\n ;\n enterNodes.merge(nodes).select(\"text\")\n .attr(\"dx\", function (d) {\n if (context.radial()) {\n if (d.children) {\n return d.x < 180 ? -textOffsetX : textOffsetX;\n } else {\n return d.x < 180 ? textOffsetX : -textOffsetX;\n }\n } else if (isVertical) {\n return d.children ? textOffsetX : -textOffsetX;\n }\n return d.children ? -textOffsetX : textOffsetX;\n })\n .attr(\"dy\", \"0.25em\")\n .style(\"text-anchor\", function (d) {\n if (context.radial()) {\n if (d.children) {\n return d.x < 180 ? \"end\" : \"start\";\n } else {\n return d.x < 180 ? \"start\" : \"end\";\n }\n } else if (isVertical) {\n return d.children ? \"start\" : \"end\";\n }\n return d.children ? \"end\" : \"start\";\n })\n .attr(\"transform\", function (d) {\n if (context.radial()) {\n return d.x < 180 ? null : \"rotate(180)\";\n } else if (isVertical) {\n return \"rotate(-66)\";\n }\n return null;\n })\n .text(function (d) { return d.data.label; })\n ;\n nodes.exit().remove();\n\n if (!this._renderCount) {\n context.zoomToFit();\n }\n }\n\n paletteID: { (): string; (_: string): Dendrogram; };\n useClonedPalette: { (): boolean; (_: boolean): Dendrogram; };\n mappings: { (): DendrogramColumn[]; (_: DendrogramColumn[]): Dendrogram; };\n\n circleRadius: { (): number; (_: number): Dendrogram; };\n separation: { (): number; (_: number): Dendrogram; };\n dendrogram: { (): boolean; (_: boolean): Dendrogram; };\n radial: { (): boolean; (_: boolean): Dendrogram; };\n orientation: { (): string; (_: string): Dendrogram; };\n\n // ITree\n _palette;\n click: (row, column, selected) => void;\n dblclick: (row, column, selected) => void;\n\n // SimpleSelectionMixin\n _selection;\n}\nDendrogram.prototype._class += \" tree_Dendrogram\";\nDendrogram.prototype.implements(ITree.prototype);\nDendrogram.prototype.mixin(Utility.SimpleSelectionMixin);\nDendrogram.prototype.Column = DendrogramColumn;\n\nDendrogram.prototype.publish(\"paletteID\", \"default\", \"set\", \"Color palette for this widget\", Dendrogram.prototype._palette.switch(), { tags: [\"Basic\", \"Shared\"] });\nDendrogram.prototype.publish(\"useClonedPalette\", false, \"boolean\", \"Enable or disable using a cloned palette\", null, { tags: [\"Intermediate\", \"Shared\"] });\nDendrogram.prototype.publish(\"mappings\", [], \"propertyArray\", \"Source Columns\", null, { autoExpand: DendrogramColumn });\n\nDendrogram.prototype.publish(\"circleRadius\", 4.5, \"number\", \"Text offset from circle\");\nDendrogram.prototype.publish(\"separation\", 240, \"number\", \"Leaf Separation\");\nDendrogram.prototype.publish(\"dendrogram\", true, \"boolean\", \"Dendrogram\");\nDendrogram.prototype.publish(\"radial\", false, \"boolean\", \"Radial\");\nDendrogram.prototype.publish(\"orientation\", \"horizontal\", \"set\", \"Orientation\", [\"horizontal\", \"vertical\"], { tags: [\"Private\"], disable: w => w.radial() });\n","import { HTMLWidget, Palette, Platform, select as d3Select, Utility, } from \"@hpcc-js/common\";\nimport { max as d3Max} from \"d3-array\";\nimport { hierarchy as d3Hierarchy } from \"d3-hierarchy\";\n\ninterface DirectoryItem {\n color?: string;\n iconClass?: string;\n label: string;\n depth: number;\n content?: string;\n markers?: any;\n isFolder: boolean;\n bold?: boolean;\n selected?: boolean;\n weightValue?: string;\n weightColor?: string;\n}\n\nexport class DirectoryTree extends HTMLWidget {\n\n _palette;\n\n constructor() {\n super();\n }\n\n flattenData(json): DirectoryItem[] {\n const context = this;\n const root = d3Hierarchy(json);\n const ret = [];\n\n if (!this.omitRoot()) {\n visitNode(root);\n } else if (root.children) {\n root.children.forEach(visitNode);\n }\n\n return ret;\n\n function visitNode(node) {\n const weightValue = node.data.markers && node.data.markers.length ? node.data.markers.length : \"\";\n ret.push({\n label: node.data.label,\n depth: node.depth - (context.omitRoot() ? 1 : 0),\n content: node.data.content,\n isFolder: !!node.data.children,\n iconClass: node.data.iconClass,\n color: node.data.color,\n bold: node.data.bold,\n weightValue,\n markers: node.data.markers,\n selected: node.data.selected\n });\n if (node.children) {\n node.children.forEach(visitNode);\n }\n }\n }\n\n protected iconClass(d) {\n if (d.label === \"error\") {\n return \"fa fa-exclamation\";\n }\n if (d.isFolder) {\n return this.folderIconOpen();\n }\n return this.textFileIcon();\n }\n\n protected calcRequiredWidth() {\n const flatData = this.flattenData(this.data());\n\n let widest = 0;\n\n const padding = this.rowItemPadding();\n const iconWidth = this.iconSize() + (padding * 2);\n const scrollbarWidth = Platform.getScrollbarWidth();\n\n flatData.forEach(row => {\n const offsetWidth = (row.depth * iconWidth) + (padding * 2);\n const textWidth = Utility.textSize(\n row.label,\n this.fontFamily(),\n this.fontSize(),\n !!row.bold\n ).width + (padding * 2);\n const totalWidth = textWidth + iconWidth + offsetWidth + scrollbarWidth;\n if (widest < totalWidth) {\n widest = totalWidth;\n }\n });\n return widest;\n }\n\n rowClick(str, markers) {}\n\n enter(domNode, element) {\n super.enter(domNode, element);\n element\n .style(\"width\", \"100%\")\n .style(\"height\", \"100%\")\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n this._palette = this._palette.switch(this.paletteID());\n\n element\n .style(\"overflow-y\", this.verticalScroll() ? \"scroll\" : null)\n ;\n const flatData = this.flattenData(this.data());\n const maxWeightValue = d3Max(flatData, n=>Number(n.weightValue));\n\n flatData.forEach(d=>{\n if(!d.weightValue){\n d.weightColor = \"transparent\";\n } else {\n d.weightColor = this._palette(d.weightValue, 1, maxWeightValue);\n }\n });\n const context = this;\n const padding = this.rowItemPadding();\n const iconWidth = this.iconSize() + padding;\n const lineHeight = Math.max(context.iconSize(), context.fontSize());\n const rowSelection = element.selectAll(\".directory-row\").data(flatData);\n const fontFamily = this.fontFamily();\n const fontSize = this.fontSize();\n const maxWeightWidth = d3Max(flatData, d=>this.textSize(d.weightValue, fontFamily, fontSize).width);\n const rowItemPadding = `${padding}px ${padding}px ${padding / 2}px ${padding}px`;\n\n const rowEnter = rowSelection.enter().append(\"div\")\n .attr(\"class\", d => `directory-row directory-row-depth-${d.depth}`)\n .style(\"display\", \"flex\")\n .style(\"cursor\", \"pointer\")\n .each(function (d: DirectoryItem) {\n const rowDiv = d3Select(this);\n\n const fontColor = d.color ? d.color : context.fontColor();\n const weightColor = d.weightColor ? d.weightColor : \"transparent\";\n const weightFontColor = Palette.textColor(weightColor);\n\n const weightDiv = rowDiv.append(\"div\")\n .attr(\"class\", \"row-weight\")\n .style(\"padding\", rowItemPadding)\n .style(\"color\", weightFontColor)\n .style(\"box-shadow\", `inset 0 0 100px ${weightColor}`)\n .style(\"font-weight\", d.bold ? \"bold\" : \"normal\")\n .style(\"font-family\", fontFamily)\n .style(\"font-size\", fontSize + \"px\")\n .text(d.weightValue)\n .attr(\"title\", d.weightValue)\n .style(\"overflow\", \"hidden\")\n .style(\"width\", (maxWeightWidth + (padding * 2)) + \"px\")\n .style(\"text-overflow\", \"ellipsis\")\n .style(\"text-align\", \"right\")\n .style(\"line-height\", lineHeight + \"px\")\n ;\n rowDiv.append(\"div\")\n .attr(\"class\", \"row-depth\")\n .style(\"width\", (context.depthSize() * d.depth) + \"px\")\n .style(\"opacity\", 1)\n .style(\"line-height\", lineHeight + \"px\")\n ;\n const iconDiv = rowDiv.append(\"div\")\n .attr(\"class\", \"row-icon \" + (d.iconClass ? d.iconClass : context.iconClass(d)))\n .style(\"width\", iconWidth + \"px\")\n .style(\"height\", lineHeight + \"px\")\n .style(\"color\", fontColor)\n .style(\"background-color\", d.selected ? context.selectionBackgroundColor() : \"transparent\")\n .style(\"font-size\", context.iconSize() + \"px\")\n .style(\"padding\", rowItemPadding)\n .style(\"line-height\", lineHeight + \"px\")\n ;\n const labelDiv = rowDiv.append(\"div\")\n .attr(\"class\", \"row-label\")\n .style(\"padding\", rowItemPadding)\n .style(\"color\", fontColor)\n .style(\"background-color\", d.selected ? context.selectionBackgroundColor() : \"transparent\")\n .style(\"font-weight\", d.bold ? \"bold\" : \"normal\")\n .style(\"font-family\", context.fontFamily())\n .style(\"font-size\", context.fontSize() + \"px\")\n .text(d.label)\n .attr(\"title\", d.label)\n .style(\"flex\", 1)\n .style(\"overflow\", \"hidden\")\n .style(\"text-overflow\", \"ellipsis\")\n .style(\"line-height\", lineHeight + \"px\")\n ;\n \n rowDiv\n .on(\"mouseenter\", () => {\n labelDiv.style(\"font-weight\", \"bold\");\n })\n .on(\"mouseleave\", () => {\n labelDiv.style(\"font-weight\", d.bold ? \"bold\" : \"normal\");\n })\n ;\n weightDiv\n .on(\"mouseenter\", () => {\n context.weight_mouseenter(d);\n })\n .on(\"mouseleave\", () => {\n context.weight_mouseleave(d);\n })\n ;\n \n if (d.isFolder) {\n rowDiv.on(\"click\", function (d: any) {\n let next = this.nextSibling;\n const wasClosed = rowDiv.classed(\"folder-closed\");\n if (wasClosed) {\n rowDiv.classed(\"folder-closed\", false);\n rowDiv.classed(\"folder-open\", true);\n iconDiv.attr(\"class\", \"row-icon \" + context.folderIconOpen());\n } else {\n rowDiv.classed(\"folder-closed\", true);\n rowDiv.classed(\"folder-open\", false);\n iconDiv.attr(\"class\", \"row-icon \" + context.folderIconClosed());\n }\n while (next !== null) {\n const nextDepth = (d3Select(next).datum() as any).depth;\n if (nextDepth > d.depth) {\n next.style.display = wasClosed ? \"flex\" : \"none\";\n next = next.nextSibling;\n } else {\n next = null;\n }\n }\n });\n } else {\n rowDiv.on(\"click\", () => {\n element.selectAll(\".row-label\").style(\"background-color\", \"transparent\");\n element.selectAll(\".row-icon\").style(\"background-color\", \"transparent\");\n iconDiv.style(\"background-color\", context.selectionBackgroundColor());\n labelDiv.style(\"background-color\", context.selectionBackgroundColor());\n const ext = d.label.split(\".\").pop().toLowerCase();\n context.rowClick(ext === \"json\" ? JSON.stringify(JSON.parse(d.content), null, 4) : d.content, d.markers);\n });\n }\n })\n ;\n\n rowEnter\n .merge(rowSelection)\n .style(\"background-color\", context.backgroundColor())\n ;\n\n rowSelection.exit().remove();\n }\n weight_mouseenter(d){\n \n }\n weight_mouseleave(d){\n\n }\n}\nDirectoryTree.prototype._class += \" tree_DirectoryTree\";\n\nexport interface DirectoryTree {\n backgroundColor(): string;\n backgroundColor(_: string): this;\n fontColor(): string;\n fontColor(_: string): this;\n fontFamily(): string;\n fontFamily(_: string): this;\n omitRoot(): boolean;\n omitRoot(_: boolean): this;\n fontSize(): number;\n fontSize(_: number): this;\n iconSize(): number;\n iconSize(_: number): this;\n fileIconSize(): number;\n fileIconSize(_: number): this;\n folderIconOpen(): string;\n folderIconOpen(_: string): this;\n folderIconClosed(): string;\n folderIconClosed(_: string): this;\n hoverBackgroundColor(): string;\n hoverBackgroundColor(_: string): this;\n selectionBackgroundColor(): string;\n selectionBackgroundColor(_: string): this;\n rowItemPadding(): number;\n rowItemPadding(_: number): this;\n textFileIcon(): string;\n textFileIcon(_: string): this;\n verticalScroll(): boolean;\n verticalScroll(_: boolean): this;\n paletteID(): string;\n paletteID(_: string): this;\n depthSize(): number;\n depthSize(_: number): this;\n}\nDirectoryTree.prototype._palette = Palette.rainbow(\"Blues\");\n\nDirectoryTree.prototype.publish(\"depthSize\", 14, \"number\", \"Width of indentation per file or folder depth (pixels)\");\nDirectoryTree.prototype.publish(\"paletteID\", \"Blues\", \"set\", \"Color palette for the weight backgrounds\", DirectoryTree.prototype._palette.switch(), { tags: [\"Basic\"] });\nDirectoryTree.prototype.publish(\"omitRoot\", false, \"boolean\", \"If true, root node will not display\");\nDirectoryTree.prototype.publish(\"rowItemPadding\", 2, \"number\", \"Top, bottom, left and right row item padding\");\nDirectoryTree.prototype.publish(\"selectionBackgroundColor\", \"#CCC\", \"html-color\", \"Background color of selected directory rows\");\nDirectoryTree.prototype.publish(\"backgroundColor\", \"#FFF\", \"html-color\", \"Directory item background color\");\nDirectoryTree.prototype.publish(\"fontColor\", \"#000\", \"html-color\", \"Directory item font color\");\nDirectoryTree.prototype.publish(\"fontFamily\", \"Arial\", \"string\", \"Directory item font family\");\nDirectoryTree.prototype.publish(\"fontSize\", 12, \"number\", \"Directory item font size (pixels)\");\nDirectoryTree.prototype.publish(\"iconSize\", 12, \"number\", \"Directory folder and file icon size (pixels)\");\nDirectoryTree.prototype.publish(\"folderIconOpen\", \"fa fa-folder-open\", \"string\", \"Open folder icon class\");\nDirectoryTree.prototype.publish(\"folderIconClosed\", \"fa fa-folder\", \"string\", \"Closed folder icon class\");\nDirectoryTree.prototype.publish(\"textFileIcon\", \"fa fa-file-text-o\", \"string\", \"Text file icon class\");\nDirectoryTree.prototype.publish(\"verticalScroll\", true, \"boolean\", \"If true, vertical scroll bar will be shown\");\n","import { ITree } from \"@hpcc-js/api\";\nimport { PropertyExt, SVGZoomWidget, Utility } from \"@hpcc-js/common\";\nimport { hierarchy as d3Hierarchy, tree as d3Tree } from \"d3-hierarchy\";\nimport { select as d3Select } from \"d3-selection\";\n\nimport \"../src/Indented.css\";\n\nexport class IndentedColumn extends PropertyExt {\n _owner: Indented;\n\n constructor() {\n super();\n }\n\n owner(): Indented;\n owner(_: Indented): this;\n owner(_?: Indented): Indented | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n valid(): boolean {\n return !!this.column();\n }\n\n column: (_?: string) => string | IndentedColumn;\n}\nIndentedColumn.prototype._class += \" tree_Dendrogram.IndentedColumn\";\n\nIndentedColumn.prototype.publish(\"column\", null, \"set\", \"Field\", function (this: IndentedColumn) { return this._owner ? this._owner.columns() : []; }, { optional: true });\n\n// ===\nexport class Indented extends SVGZoomWidget {\n Column;\n _d3Tree;\n _xml;\n _svgLinks;\n _svgNodes;\n _treeData;\n _collapsed: { [key: string]: boolean } = {};\n\n constructor() {\n super();\n ITree.call(this);\n Utility.SimpleSelectionMixin.call(this);\n\n this._drawStartPos = \"origin\";\n\n this._d3Tree = d3Tree();\n }\n\n xmlToData(xml, id = \"\") {\n if (DOMParser) {\n const parser = new DOMParser();\n const doc = parser.parseFromString(xml, \"text/xml\");\n return xmlToJson(doc, id).children[0];\n }\n return [];\n }\n\n xml(_) {\n if (!arguments.length) return this._xml;\n this._xml = _;\n this.data(this.xmlToData(this._xml));\n return this;\n }\n\n IndentedData() {\n if (this.data().length === 0) return [];\n if (this.xmlColumn_exists()) {\n const cellIdx = this.columns().indexOf(this.xmlColumn());\n const retVal = {\n label: this.xmlColumn(),\n children: this.data().map(function (row, idx) {\n return this.xmlToData(row[cellIdx], \"[\" + idx + \"]\");\n }, this)\n };\n return retVal.children.length === 1 ? retVal.children[0] : retVal;\n } else {\n if (!this.mappings().filter(mapping => mapping.valid()).length) {\n return this.data();\n }\n const view = this._db.rollupView(this.mappings().map(function (mapping) { return mapping.column(); }));\n const root = {\n key: \"root\",\n values: view.entries()\n };\n return formatData(root);\n }\n\n function formatData(node): any {\n if (node.values instanceof Array) {\n const children = node.values.filter(function (value) {\n return !(value instanceof Array);\n }).map(function (value) {\n return formatData(value);\n });\n const retVal: any = {\n label: node.key\n };\n if (children.length) {\n retVal.children = children;\n } else {\n retVal.size = 22;\n }\n return retVal;\n }\n return {\n label: node.key,\n size: node.values.aggregate,\n origRows: node.values\n };\n }\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._svgLinks = this._renderElement.append(\"g\");\n this._svgNodes = this._renderElement.append(\"g\");\n this._selection.widgetElement(this._svgNodes);\n }\n\n protected _prevDataChecksum;\n update(domNode, _element) {\n super.update(domNode, _element);\n const context = this;\n\n this._d3Tree\n .nodeSize([0, this.barHeight()])\n ;\n const dataChecksum = this._db.dataChecksum();\n if (this._prevDataChecksum !== dataChecksum) {\n this._treeData = this.IndentedData();\n this._prevDataChecksum = dataChecksum;\n }\n\n function getID(d) {\n return (d.parent ? getID(d.parent) + \".\" : \"\") + d.data.label;\n }\n\n const root = d3Hierarchy(this.data())\n .sum(function (d) {\n return d.size || 50;\n }).each((d) => {\n if (this._collapsed[getID(d)]) {\n delete (d.children);\n }\n })\n ;\n\n const dataNodes = this._d3Tree(root).descendants();\n const links = this._d3Tree(root).descendants().slice(1);\n\n let nodeIdx = 0;\n root.eachBefore((n: any) => {\n n.x = nodeIdx * context.barHeight();\n ++nodeIdx;\n });\n\n const boxSize = this.barHeight() - 4;\n const transitionDuration = this._renderCount ? 500 : 0;\n\n // Lines ---\n const lines = this._svgLinks.selectAll(\".link\").data(links, function (d) { return getID(d); });\n lines.enter().append(\"path\")\n .attr(\"class\", \"link\")\n .attr(\"d\", elbow)\n ;\n lines.transition().duration(transitionDuration)\n .attr(\"d\", elbow)\n ;\n lines.exit().remove();\n\n function elbow(d) {\n return \"M\" + d.parent.y + \",\" + d.parent.x\n + \"V\" + d.x + \", H\" + d.y;\n }\n\n // Nodes ---\n const nodes = this._svgNodes.selectAll(\".node\").data(dataNodes, function (d) { return getID(d); });\n nodes.transition().duration(transitionDuration)\n .attr(\"transform\", function (d) { return \"translate(\" + d.y + \",\" + d.x + \")\"; })\n ;\n const enterNodes = nodes.enter().append(\"g\")\n .attr(\"class\", \"node\")\n .attr(\"transform\", function (d) { return \"translate(\" + d.y + \",\" + d.x + \")\"; })\n .call(this._selection.enter.bind(this._selection))\n .each(function () {\n const element = d3Select(this);\n element.append(\"rect\")\n .attr(\"height\", boxSize)\n .attr(\"width\", boxSize)\n .on(\"click\", function (d: any) {\n if (context._collapsed[getID(d)]) {\n delete context._collapsed[getID(d)];\n } else if (d.children) {\n context._collapsed[getID(d)] = true;\n }\n context.lazyRender();\n })\n ;\n element.append(\"text\");\n })\n .style(\"opacity\", 0)\n ;\n enterNodes.transition()\n .style(\"opacity\", 1)\n ;\n enterNodes.merge(nodes).select(\"rect\")\n .attr(\"x\", -boxSize / 2)\n .attr(\"y\", -boxSize / 2)\n .style(\"fill\", color)\n ;\n enterNodes.merge(nodes).select(\"text\")\n .attr(\"dx\", boxSize / 2 + 4 + \"px\")\n .attr(\"dy\", \"0.33em\")\n .text(function (d) { return d.data.label; })\n ;\n nodes.exit().transition()\n .style(\"opacity\", 0)\n .remove()\n ;\n\n if (!this._renderCount) {\n context.zoomToFit();\n }\n\n function color(d) {\n return context._collapsed[getID(d)] ? \"#3182bd\" : d.children ? \"#c6dbef\" : \"#fd8d3c\";\n }\n }\n\n xmlColumn: { (_: string): Indented; (): string; };\n xmlColumn_exists: () => boolean;\n mappings: { (_: IndentedColumn[]): Indented; (): IndentedColumn[]; };\n barHeight: { (_: number): Indented; (): number; };\n\n // ITree\n _palette;\n click: (row, column, selected) => void;\n dblclick: (row, column, selected) => void;\n\n // SimpleSelectionMixin\n _selection;\n}\nIndented.prototype._class += \" tree_Indented\";\nIndented.prototype.implements(ITree.prototype);\nIndented.prototype.mixin(Utility.SimpleSelectionMixin);\nIndented.prototype.Column = IndentedColumn;\n\nIndented.prototype.publish(\"xmlColumn\", null, \"set\", \"Field\", function () { return this.columns(); }, { optional: true });\nIndented.prototype.publish(\"mappings\", [], \"propertyArray\", \"Source Columns\", null, { autoExpand: IndentedColumn, disable: (w) => w.xmlColumn_exists() });\nIndented.prototype.publish(\"barHeight\", 16, \"number\", \"Bar height\");\n\nfunction xmlToJson(xml, id = \"\") {\n const retVal = {\n id,\n label: \"\",\n attributes: {},\n children: []\n };\n\n retVal.label = xml.nodeName;\n if (xml.nodeType === 1) { // element\n if (xml.attributes.length > 0) {\n for (let j = 0; j < xml.attributes.length; j++) {\n const attribute = xml.attributes.item(j);\n retVal.attributes[attribute.nodeName] = attribute.nodeValue;\n }\n }\n } else if (xml.nodeType === 3) { // text\n retVal.label = xml.nodeValue;\n }\n\n if (xml.hasChildNodes()) {\n for (let i = 0; i < xml.childNodes.length; i++) {\n const item = xml.childNodes.item(i);\n const child = xmlToJson(item, id + \"[\" + retVal.children.length + \"]\");\n retVal.children.push(child);\n }\n }\n return retVal;\n}\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 {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","import { ITree } from \"@hpcc-js/api\";\nimport { d3Event, select as d3Select, SVGWidget } from \"@hpcc-js/common\";\nimport { hierarchy as d3Hierarchy, partition as d3Parition } from \"d3-hierarchy\";\nimport { interpolate as d3Interpolate } from \"d3-interpolate\";\nimport { scaleLinear as d3ScaleLinear, scaleSqrt as d3ScaleSqrt } from \"d3-scale\";\nimport { arc as d3Arc } from \"d3-shape\";\n\nimport \"../src/SunburstPartition.css\";\n\nexport class SunburstPartition extends SVGWidget {\n svg;\n radius;\n _xScale;\n _yScale;\n partition;\n arc;\n _resetRoot;\n\n constructor() {\n super();\n ITree.call(this);\n }\n\n data(): any;\n data(_: any): this;\n data(_?: any): any | this {\n const retVal = SVGWidget.prototype.data.apply(this, arguments);\n if (arguments.length) {\n this._resetRoot = true;\n }\n return retVal;\n }\n\n enter(_domNode, element) {\n const context = this;\n\n this.radius = Math.min(this.width(), this.height()) / 2;\n\n this._xScale = d3ScaleLinear()\n .range([0, 2 * Math.PI])\n ;\n\n this._yScale = d3ScaleSqrt()\n .range([0, this.radius])\n ;\n\n this.partition = d3Parition();\n\n this.arc = d3Arc()\n .startAngle(function (d: any) {\n return Math.max(0, Math.min(2 * Math.PI, context._xScale(d.x0)));\n })\n .endAngle(function (d: any) {\n return Math.max(0, Math.min(2 * Math.PI, context._xScale(d.x1)));\n })\n .innerRadius(function (d: any) {\n return Math.max(0, context._yScale(d.y0));\n })\n .outerRadius(function (d: any) {\n return Math.max(0, context._yScale(d.y1));\n })\n ;\n\n this.svg = element.append(\"g\");\n }\n\n update(_domNode, _element) {\n const context = this;\n\n this._palette = this._palette.switch(this.paletteID());\n if (this.useClonedPalette()) {\n this._palette = this._palette.cloneNotExists(this.paletteID() + \"_\" + this.id());\n }\n\n this.radius = Math.min(this.width(), this.height()) / 2;\n this._yScale.range([0, this.radius]);\n\n const root = d3Hierarchy(this.data())\n .sum(function (d) {\n return d.size !== undefined ? d.size : 1;\n })\n ;\n\n const paths = this.svg.selectAll(\"path\").data(this.partition(root).descendants(), function (d, i) {\n return d.data.label !== undefined ? d.data.label : i;\n });\n\n paths.enter().append(\"path\")\n .on(\"click\", function (d) { context.click(d.data, null, null); })\n .on(\"dblclick\", function (d) {\n const event = d3Event();\n if (event) {\n event.stopPropagation();\n }\n context.zoomTo(d);\n })\n .each(function () {\n const element = d3Select(this);\n element\n .append(\"title\")\n ;\n })\n .merge(paths)\n .attr(\"d\", this.arc)\n .style(\"fill\", function (d) {\n return d.data.__viz_fill ? d.data.__viz_fill : context._palette(d.data.label);\n })\n .style(\"stroke\", function (d) {\n return d.value > 16 ? \"white\" : \"none\";\n })\n .select(\"title\")\n .text(function (d) {\n return d.data.label;\n })\n ;\n\n paths.exit().remove();\n\n if (this._resetRoot) {\n this._resetRoot = false;\n this.zoomTo(root);\n }\n }\n\n zoomTo(d) {\n const context = this;\n this.svg.transition()\n .duration(750)\n .tween(\"scale\", function () {\n const xd = d3Interpolate(context._xScale.domain(), [d.x0, d.x1]);\n const yd = d3Interpolate(context._yScale.domain(), [d.y0, 1]);\n const yr = d3Interpolate(context._yScale.range(), [d.y0 ? 20 : 0, context.radius]);\n return function (t) { context._xScale.domain(xd(t)); context._yScale.domain(yd(t)).range(yr(t)); };\n })\n .selectAll(\"path\")\n .attrTween(\"d\", function (d2) { return function () { return context.arc(d2); }; });\n }\n\n paletteID: (_?: string) => string | SunburstPartition;\n useClonedPalette: (_?: boolean) => boolean | SunburstPartition;\n\n // ITree\n _palette;\n click: (row, column, selected) => void;\n dblclick: (row, column, selected) => void;\n}\nSunburstPartition.prototype._class += \" tree_SunburstPartition\";\nSunburstPartition.prototype.implements(ITree.prototype);\n\nSunburstPartition.prototype.publish(\"paletteID\", \"default\", \"set\", \"Color palette for this widget\", SunburstPartition.prototype._palette.switch(), { tags: [\"Basic\", \"Shared\"] });\nSunburstPartition.prototype.publish(\"useClonedPalette\", false, \"boolean\", \"Enable or disable using a cloned palette\", null, { tags: [\"Intermediate\", \"Shared\"] });\n","import { ITree } from \"@hpcc-js/api\";\nimport { HTMLWidget, Palette, PropertyExt, Utility } from \"@hpcc-js/common\";\nimport { rgb as d3rgb } from \"d3-color\";\nimport { hierarchy as d3Hierarchy, treemap as d3Treemap, treemapBinary as d3treemapBinary, treemapDice as d3treemapDice, treemapResquarify as d3treemapResquarify, treemapSlice as d3treemapSlice, treemapSliceDice as d3treemapSliceDice, treemapSquarify as d3treemapSquarify } from \"d3-hierarchy\";\n\nimport \"../src/Treemap.css\";\n\nexport class TreemapColumn extends PropertyExt {\n _owner: Treemap;\n\n constructor() {\n super();\n }\n\n owner(): Treemap;\n owner(_: Treemap): this;\n owner(_?: Treemap): Treemap | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.column();\n }\n\n column: { (): string; (_: string): TreemapColumn; };\n}\nTreemapColumn.prototype._class += \" tree_Dendrogram.TreemapColumn\";\n\nTreemapColumn.prototype.publish(\"column\", null, \"set\", \"Field\", function (this: TreemapColumn) { return this._owner ? this._owner.columns() : []; }, { optional: true });\n\n// ===\nexport class Treemap extends HTMLWidget {\n Column;\n protected _d3Treemap;\n protected _elementDIV;\n protected _selection;\n constructor() {\n super();\n ITree.call(this);\n Utility.SimpleSelectionMixin.call(this, true);\n }\n\n private getTilingMethod() {\n switch (this.tilingMethod()) {\n case \"treemapBinary\":\n return d3treemapBinary;\n case \"treemapDice\":\n return d3treemapDice;\n case \"treemapSlice\":\n return d3treemapSlice;\n case \"treemapSliceDice\":\n return d3treemapSliceDice;\n case \"treemapResquarify\":\n return d3treemapResquarify;\n case \"treemapSquarify\":\n default:\n return d3treemapSquarify;\n }\n }\n\n treemapData() {\n if (!this.mappings().filter(mapping => mapping.valid()).length) {\n return this.data();\n }\n\n const view = this._db.aggregateView(this.mappings().map(function (mapping) { return mapping.column(); }), this.aggrType(), this.aggrColumn());\n const retVal = {\n key: \"root\",\n values: view.entries()\n };\n return formatData(retVal);\n\n function formatData(node): any {\n if (node.values instanceof Array) {\n const children = node.values.filter(function (value) {\n return !(value instanceof Array);\n }).map(function (value) {\n return formatData(value);\n });\n const retVal2: any = {\n label: node.key\n };\n if (children.length) {\n retVal2.children = children;\n } else {\n retVal2.size = 22;\n }\n return retVal2;\n }\n return {\n label: node.key,\n size: node.values.aggregate,\n origRows: node.values\n };\n }\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._d3Treemap = d3Treemap();\n\n this._elementDIV = element.append(\"div\");\n this._selection.widgetElement(this._elementDIV);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n\n this._palette = this._palette.switch(this.paletteID());\n if (this.useClonedPalette()) {\n this._palette = this._palette.cloneNotExists(this.paletteID() + \"_\" + this.id());\n }\n\n const root = d3Hierarchy(this.treemapData())\n .sum(this.nodeWeight)\n ;\n\n this._d3Treemap\n .size([this.width(), this.height()])\n .paddingInner(this.paddingInner())\n .paddingOuter(this.paddingOuter())\n .paddingTop(this.paddingTop())\n ;\n if ([\"treemapSquarify\", \"treemapResquarify\"].indexOf(this.tilingMethod()) !== -1) {\n this._d3Treemap.tile(this.getTilingMethod()[\"ratio\"](this.squarifyRatio()));\n } else {\n this._d3Treemap.tile(this.getTilingMethod());\n }\n this._d3Treemap(root);\n\n this._elementDIV\n .style(\"font-size\", this.fontSize_exists() ? this.fontSize() + \"px\" : null)\n .style(\"line-height\", this.fontSize_exists() ? (this.fontSize() + 2) + \"px\" : null)\n ;\n\n const node = this._elementDIV.selectAll(\".node\").data(root.descendants());\n node.enter().append(\"div\")\n .attr(\"class\", \"node\")\n .call(this._selection.enter.bind(this._selection))\n .on(\"click\", function (d) {\n if (d) {\n let columnLabel = \"\";\n context.mappings().forEach(function (mapping) {\n if (mapping.column()) {\n columnLabel = mapping.column();\n }\n });\n if(d.origRows) {\n context.click(context.rowToObj(d.origRows[0]), columnLabel, context._selection.selected(this));\n } else {\n context.click(d.data, columnLabel, context._selection.selected(this));\n }\n }\n })\n .on(\"dblclick\", function (d) {\n if (d) {\n let columnLabel = \"\";\n context.mappings().forEach(function (mapping) {\n if (mapping.column()) {\n columnLabel = mapping.column();\n }\n });\n if(d.origRows) {\n context.dblclick(context.rowToObj(d.origRows[0]), columnLabel, context._selection.selected(this));\n } else {\n context.dblclick(d.data, columnLabel, context._selection.selected(this));\n }\n }\n })\n .merge(node)\n .style(\"left\", function (d) { return (d.x0 + Math.max(0, d.x1 - d.x0) / 2) + \"px\"; })\n .style(\"top\", function (d) { return (d.y0 + Math.max(0, d.y1 - d.y0) / 2) + \"px\"; })\n .style(\"width\", function () { return 0 + \"px\"; })\n .style(\"height\", function () { return 0 + \"px\"; })\n .style(\"font-size\", function (d) { return (d.children ? context.parentFontSize() : context.leafFontSize()) + \"px\"; })\n .style(\"line-height\", function (d) { return (d.children ? context.parentFontSize() : context.leafFontSize()) + \"px\"; })\n .attr(\"title\", tooltip)\n .html(function (d) {\n if (!context.showRoot() && d.depth === 0) {\n return null;\n }\n if (d.children) {\n if (context.enableParentLabels()) {\n return context.parentWeightHTML(d);\n } else {\n return null;\n }\n } else {\n return context.leafWeightHTML(d);\n }\n })\n .style(\"background\", function (d) {\n if (!context.showRoot() && d.depth === 0) {\n this.style.color = \"transparent\";\n return \"transparent\";\n }\n const light_dark = context.brighterLeafNodes() ? \"brighter\" : \"darker\";\n let _color;\n if (context.usePaletteOnParentNodes()) {\n _color = d.children ? context._palette(d.data.label) : d3rgb(context._palette(d.parent.data.label))[light_dark](1);\n } else {\n if (d.depth > context.depthColorLimit()) {\n _color = d3rgb(d.parent.color)[light_dark](1);\n } else {\n _color = context._palette(d.data.label);\n }\n d.color = _color;\n }\n this.style.color = Palette.textColor(_color);\n return _color;\n })\n .transition().duration(this.transitionDuration())\n .style(\"pointer-events\", function (d) { return !context.showRoot() && d.depth === 0 ? \"none\" : \"all\"; })\n .style(\"opacity\", function (d) { return d.children ? 1 : null; })\n .style(\"left\", function (d) { return d.x0 + \"px\"; })\n .style(\"top\", function (d) { return d.y0 + \"px\"; })\n .style(\"width\", function (d) { return Math.max(0, d.x1 - d.x0) + \"px\"; })\n .style(\"height\", function (d) { return Math.max(0, d.y1 - d.y0) + \"px\"; })\n .each(function (d) {\n if (d.depth === 0) {\n this.style.color = !context.showRoot() ? \"transparent\" : \"\";\n this.style.borderColor = !context.showRoot() ? \"transparent\" : \"\";\n }\n })\n ;\n node.exit().transition().duration(this.transitionDuration())\n .style(\"opacity\", 0)\n .remove()\n ;\n function tooltip(d) {\n if (d.children && !context.enableParentTooltips()) {\n return null;\n }\n let retVal = d.data.label + \" (\" + d.value + \")\";\n while (d.parent && d.parent.parent) {\n retVal = d.parent.data.label + \" -> \" + retVal;\n d = d.parent;\n }\n return retVal;\n }\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n\n nodeWeight(d) {\n return d.size || 1;\n }\n\n parentWeightHTML(d) {\n return this.showParentWeight() ? `<span class=\"treemap-parent-label\">${d.data.label}</span><span class=\"treemap-parent-value\">${d.value}${this.weightSuffix()}</span>` : `<span class=\"treemap-parent-label\">${d.data.label}</span>`;\n }\n\n leafWeightHTML(d) {\n return this.showLeafWeight() ? `<span class=\"treemap-leaf-label\">${d.data.label}</span><span class=\"treemap-leaf-value\">${d.value}${this.weightSuffix()}</span>` : `<span class=\"treemap-leaf-label\">${d.data.label}</span>`;\n }\n\n paletteID: { (): string[]; (_: string[]): Treemap; };\n useClonedPalette: { (): boolean[]; (_: boolean[]): Treemap; };\n mappings: { (): TreemapColumn[]; (_: TreemapColumn[]): Treemap; };\n aggrType: { (): string; (_: string): Treemap; };\n aggrColumn: { (): string; (_: string): Treemap; };\n fontSize: { (): number; (_: number): Treemap; };\n fontSize_exists: () => boolean;\n paddingInner: { (): number; (_: number): Treemap; };\n paddingOuter: { (): number; (_: number): Treemap; };\n paddingTop: { (): number; (_: number): Treemap; };\n parentFontSize: { (): number; (_: number): Treemap; };\n leafFontSize: { (): number; (_: number): Treemap; };\n brighterLeafNodes: { (): boolean; (_: boolean): Treemap; };\n showRoot: { (): boolean; (_: boolean): Treemap; };\n enableParentLabels: { (): boolean; (_: boolean): Treemap; };\n enableParentTooltips: { (): boolean; (_: boolean): Treemap; };\n showParentWeight: { (): boolean; (_: boolean): Treemap; };\n showLeafWeight: { (): boolean; (_: boolean): Treemap; };\n usePaletteOnParentNodes: { (): boolean; (_: boolean): Treemap; };\n depthColorLimit: { (): number; (_: number): Treemap; };\n squarifyRatio: { (): number; (_: number): Treemap; };\n weightSuffix: { (): string; (_: string): Treemap; };\n tilingMethod: { (): string; (_: string): Treemap; };\n\n transitionDuration: { (): number[]; (_: number[]): Treemap; };\n\n // ITree\n _palette;\n click: (row, column, selected) => void;\n dblclick: (row, column, selected) => void;\n}\nTreemap.prototype._class += \" tree_Treemap\";\nTreemap.prototype.implements(ITree.prototype);\nTreemap.prototype.mixin(Utility.SimpleSelectionMixin);\nTreemap.prototype.Column = TreemapColumn;\n\nTreemap.prototype.publish(\"paletteID\", \"default\", \"set\", \"Color palette for this widget\", Treemap.prototype._palette.switch(), { tags: [\"Basic\", \"Shared\"] });\nTreemap.prototype.publish(\"useClonedPalette\", false, \"boolean\", \"Enable or disable using a cloned palette\", null, { tags: [\"Intermediate\", \"Shared\"] });\nTreemap.prototype.publish(\"mappings\", [], \"propertyArray\", \"Source Columns\", null, { autoExpand: TreemapColumn });\nTreemap.prototype.publish(\"aggrType\", null, \"set\", \"Aggregation Type\", [null, \"mean\", \"median\", \"sum\", \"min\", \"max\"], { optional: true });\nTreemap.prototype.publish(\"aggrColumn\", null, \"set\", \"Aggregation Field\", function () { return this.columns(); }, { optional: true, disable: (w) => !w.aggrType() });\nTreemap.prototype.publish(\"fontSize\", null, \"number\", \"Font Size\", null, { optional: true });\nTreemap.prototype.publish(\"paddingInner\", 18.6, \"number\", \"Pixel spacing between each sibling node\");\nTreemap.prototype.publish(\"paddingOuter\", 30, \"number\", \"Pixel padding of parent nodes\");\nTreemap.prototype.publish(\"paddingTop\", 41.4, \"number\", \"Additional top pixel padding of parent nodes\");\nTreemap.prototype.publish(\"showRoot\", false, \"boolean\", \"Show root element\");\nTreemap.prototype.publish(\"parentFontSize\", 18, \"number\", \"Parent font-size\");\nTreemap.prototype.publish(\"leafFontSize\", 16, \"number\", \"Leaf font-size\");\nTreemap.prototype.publish(\"usePaletteOnParentNodes\", false, \"boolean\", \"Assign a color from the palette to every parent node\");\nTreemap.prototype.publish(\"depthColorLimit\", 1, \"number\", \"Assign a color from the palette to node with depth lower than this value\", null, { optional: true, disable: (w) => w.usePaletteOnParentNodes() });\nTreemap.prototype.publish(\"squarifyRatio\", 1, \"number\", \"Specifies the desired aspect ratio of the generated rectangles (must be >= 1)\", null, { optional: true, disable: (w) => [\"treemapSquarify\", \"treemapResquarify\"].indexOf(w.tilingMethod()) === -1 });\nTreemap.prototype.publish(\"showParentWeight\", true, \"boolean\", \"Show weight of parent nodes\");\nTreemap.prototype.publish(\"showLeafWeight\", true, \"boolean\", \"Show weight of leaf nodes\");\nTreemap.prototype.publish(\"weightSuffix\", \"\", \"string\", \"Weight suffix (ex: 'ms')\");\nTreemap.prototype.publish(\"brighterLeafNodes\", false, \"boolean\", \"Brighter/darker leaf node color (false = darker)\");\nTreemap.prototype.publish(\"enableParentLabels\", true, \"boolean\", \"Enable parent labels\");\nTreemap.prototype.publish(\"enableParentTooltips\", true, \"boolean\", \"Enable parent tooltips\");\nTreemap.prototype.publish(\"transitionDuration\", 250, \"number\", \"Transition Duration\");\nTreemap.prototype.publish(\"tilingMethod\", \"treemapSquarify\", \"set\", \"Transition Duration\", [\"treemapBinary\", \"treemapDice\", \"treemapResquarify\", \"treemapSlice\", \"treemapSliceDice\", \"treemapSquarify\"]);\n"],"names":["defaultSeparation","Node","constant","treemapDice","treemapSlice","squarify","slice","dice","ITree","d3Hierarchy","d3Rgb","d3Event","d3InterpolateZoom","SVGWidget","PropertyExt","Utility","d3Select","SVGZoomWidget","Platform","d3Max","Palette","HTMLWidget","pi","tau","epsilon","d3ScaleLinear","d3ScaleSqrt","d3Interpolate","d3rgb"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/__package__.ts","../../../node_modules/tslib/tslib.es6.mjs","../../../node_modules/d3-hierarchy/src/cluster.js","../../../node_modules/d3-hierarchy/src/hierarchy/count.js","../../../node_modules/d3-hierarchy/src/hierarchy/each.js","../../../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../../../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../../../node_modules/d3-hierarchy/src/hierarchy/sum.js","../../../node_modules/d3-hierarchy/src/hierarchy/sort.js","../../../node_modules/d3-hierarchy/src/hierarchy/path.js","../../../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../../../node_modules/d3-hierarchy/src/hierarchy/descendants.js","../../../node_modules/d3-hierarchy/src/hierarchy/leaves.js","../../../node_modules/d3-hierarchy/src/hierarchy/links.js","../../../node_modules/d3-hierarchy/src/hierarchy/index.js","../../../node_modules/d3-hierarchy/src/array.js","../../../node_modules/d3-hierarchy/src/pack/enclose.js","../../../node_modules/d3-hierarchy/src/pack/siblings.js","../../../node_modules/d3-hierarchy/src/accessors.js","../../../node_modules/d3-hierarchy/src/constant.js","../../../node_modules/d3-hierarchy/src/pack/index.js","../../../node_modules/d3-hierarchy/src/treemap/round.js","../../../node_modules/d3-hierarchy/src/treemap/dice.js","../../../node_modules/d3-hierarchy/src/partition.js","../../../node_modules/d3-hierarchy/src/tree.js","../../../node_modules/d3-hierarchy/src/treemap/slice.js","../../../node_modules/d3-hierarchy/src/treemap/squarify.js","../../../node_modules/d3-hierarchy/src/treemap/index.js","../../../node_modules/d3-hierarchy/src/treemap/binary.js","../../../node_modules/d3-hierarchy/src/treemap/sliceDice.js","../../../node_modules/d3-hierarchy/src/treemap/resquarify.js","../../../node_modules/style-inject/dist/style-inject.es.js","../src/CirclePacking.ts","../src/Dendrogram.ts","../src/DirectoryTree.ts","../src/Indented.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/arc.js","../src/SunburstPartition.ts","../src/Treemap.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/tree\";\nexport const PKG_VERSION = \"2.41.0\";\nexport const BUILD_VERSION = \"2.106.0\";\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 defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\nfunction meanX(children) {\n return children.reduce(meanXReduce, 0) / children.length;\n}\n\nfunction meanXReduce(x, c) {\n return x + c.x;\n}\n\nfunction maxY(children) {\n return 1 + children.reduce(maxYReduce, 0);\n}\n\nfunction maxYReduce(y, c) {\n return Math.max(y, c.y);\n}\n\nfunction leafLeft(node) {\n var children;\n while (children = node.children) node = children[0];\n return node;\n}\n\nfunction leafRight(node) {\n var children;\n while (children = node.children) node = children[children.length - 1];\n return node;\n}\n\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = false;\n\n function cluster(root) {\n var previousNode,\n x = 0;\n\n // First walk, computing the initial x & y values.\n root.eachAfter(function(node) {\n var children = node.children;\n if (children) {\n node.x = meanX(children);\n node.y = maxY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n\n var left = leafLeft(root),\n right = leafRight(root),\n x0 = left.x - separation(left, right) / 2,\n x1 = right.x + separation(right, left) / 2;\n\n // Second walk, normalizing x & y to the desired size.\n return root.eachAfter(nodeSize ? function(node) {\n node.x = (node.x - root.x) * dx;\n node.y = (root.y - node.y) * dy;\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * dx;\n node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;\n });\n }\n\n cluster.separation = function(x) {\n return arguments.length ? (separation = x, cluster) : separation;\n };\n\n cluster.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);\n };\n\n cluster.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);\n };\n\n return cluster;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function(callback) {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n callback(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n } while (next.length);\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], children, i;\n while (node = nodes.pop()) {\n callback(node), children = node.children;\n if (children) for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], next = [], children, i, n;\n while (node = nodes.pop()) {\n next.push(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n while (node = next.pop()) {\n callback(node);\n }\n return this;\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n var nodes = [];\n this.each(function(node) {\n nodes.push(node);\n });\n return nodes;\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\n\nexport default function hierarchy(data, children) {\n var root = new Node(data),\n valued = +data.value && (root.value = data.value),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n if (children == null) children = defaultChildren;\n\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction defaultChildren(d) {\n return d.children;\n}\n\nfunction copyData(node) {\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy\n};\n","export var slice = Array.prototype.slice;\n\nexport function shuffle(array) {\n var m = array.length,\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m];\n array[m] = array[i];\n array[i] = t;\n }\n\n return array;\n}\n","import {shuffle, slice} from \"../array.js\";\n\nexport default function(circles) {\n var i = 0, n = (circles = shuffle(slice.call(circles))).length, B = [], p, e;\n\n while (i < n) {\n p = circles[i];\n if (e && enclosesWeak(e, p)) ++i;\n else e = encloseBasis(B = extendBasis(B, p)), i = 0;\n }\n\n return e;\n}\n\nfunction extendBasis(B, p) {\n var i, j;\n\n if (enclosesWeakAll(p, B)) return [p];\n\n // If we get here then B must have at least one element.\n for (i = 0; i < B.length; ++i) {\n if (enclosesNot(p, B[i])\n && enclosesWeakAll(encloseBasis2(B[i], p), B)) {\n return [B[i], p];\n }\n }\n\n // If we get here then B must have at least two elements.\n for (i = 0; i < B.length - 1; ++i) {\n for (j = i + 1; j < B.length; ++j) {\n if (enclosesNot(encloseBasis2(B[i], B[j]), p)\n && enclosesNot(encloseBasis2(B[i], p), B[j])\n && enclosesNot(encloseBasis2(B[j], p), B[i])\n && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) {\n return [B[i], B[j], p];\n }\n }\n }\n\n // If we get here then something is very wrong.\n throw new Error;\n}\n\nfunction enclosesNot(a, b) {\n var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y;\n return dr < 0 || dr * dr < dx * dx + dy * dy;\n}\n\nfunction enclosesWeak(a, b) {\n var dr = a.r - b.r + 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction enclosesWeakAll(a, B) {\n for (var i = 0; i < B.length; ++i) {\n if (!enclosesWeak(a, B[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction encloseBasis(B) {\n switch (B.length) {\n case 1: return encloseBasis1(B[0]);\n case 2: return encloseBasis2(B[0], B[1]);\n case 3: return encloseBasis3(B[0], B[1], B[2]);\n }\n}\n\nfunction encloseBasis1(a) {\n return {\n x: a.x,\n y: a.y,\n r: a.r\n };\n}\n\nfunction encloseBasis2(a, b) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1,\n l = Math.sqrt(x21 * x21 + y21 * y21);\n return {\n x: (x1 + x2 + x21 / l * r21) / 2,\n y: (y1 + y2 + y21 / l * r21) / 2,\n r: (l + r1 + r2) / 2\n };\n}\n\nfunction encloseBasis3(a, b, c) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x3 = c.x, y3 = c.y, r3 = c.r,\n a2 = x1 - x2,\n a3 = x1 - x3,\n b2 = y1 - y2,\n b3 = y1 - y3,\n c2 = r2 - r1,\n c3 = r3 - r1,\n d1 = x1 * x1 + y1 * y1 - r1 * r1,\n d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2,\n d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3,\n ab = a3 * b2 - a2 * b3,\n xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1,\n xb = (b3 * c2 - b2 * c3) / ab,\n ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1,\n yb = (a2 * c3 - a3 * c2) / ab,\n A = xb * xb + yb * yb - 1,\n B = 2 * (r1 + xa * xb + ya * yb),\n C = xa * xa + ya * ya - r1 * r1,\n r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B);\n return {\n x: x1 + xa + xb * r,\n y: y1 + ya + yb * r,\n r: r\n };\n}\n","import enclose from \"./enclose.js\";\n\nfunction place(b, a, c) {\n var dx = b.x - a.x, x, a2,\n dy = b.y - a.y, y, b2,\n d2 = dx * dx + dy * dy;\n if (d2) {\n a2 = a.r + c.r, a2 *= a2;\n b2 = b.r + c.r, b2 *= b2;\n if (a2 > b2) {\n x = (d2 + b2 - a2) / (2 * d2);\n y = Math.sqrt(Math.max(0, b2 / d2 - x * x));\n c.x = b.x - x * dx - y * dy;\n c.y = b.y - x * dy + y * dx;\n } else {\n x = (d2 + a2 - b2) / (2 * d2);\n y = Math.sqrt(Math.max(0, a2 / d2 - x * x));\n c.x = a.x + x * dx - y * dy;\n c.y = a.y + x * dy + y * dx;\n }\n } else {\n c.x = a.x + c.r;\n c.y = a.y;\n }\n}\n\nfunction intersects(a, b) {\n var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction score(node) {\n var a = node._,\n b = node.next._,\n ab = a.r + b.r,\n dx = (a.x * b.r + b.x * a.r) / ab,\n dy = (a.y * b.r + b.y * a.r) / ab;\n return dx * dx + dy * dy;\n}\n\nfunction Node(circle) {\n this._ = circle;\n this.next = null;\n this.previous = null;\n}\n\nexport function packEnclose(circles) {\n if (!(n = circles.length)) return 0;\n\n var a, b, c, n, aa, ca, i, j, k, sj, sk;\n\n // Place the first circle.\n a = circles[0], a.x = 0, a.y = 0;\n if (!(n > 1)) return a.r;\n\n // Place the second circle.\n b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;\n if (!(n > 2)) return a.r + b.r;\n\n // Place the third circle.\n place(b, a, c = circles[2]);\n\n // Initialize the front-chain using the first three circles a, b and c.\n a = new Node(a), b = new Node(b), c = new Node(c);\n a.next = c.previous = b;\n b.next = a.previous = c;\n c.next = b.previous = a;\n\n // Attempt to place each remaining circle…\n pack: for (i = 3; i < n; ++i) {\n place(a._, b._, c = circles[i]), c = new Node(c);\n\n // Find the closest intersecting circle on the front-chain, if any.\n // “Closeness” is determined by linear distance along the front-chain.\n // “Ahead” or “behind” is likewise determined by linear distance.\n j = b.next, k = a.previous, sj = b._.r, sk = a._.r;\n do {\n if (sj <= sk) {\n if (intersects(j._, c._)) {\n b = j, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sj += j._.r, j = j.next;\n } else {\n if (intersects(k._, c._)) {\n a = k, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sk += k._.r, k = k.previous;\n }\n } while (j !== k.next);\n\n // Success! Insert the new circle c between a and b.\n c.previous = a, c.next = b, a.next = b.previous = b = c;\n\n // Compute the new closest circle pair to the centroid.\n aa = score(a);\n while ((c = c.next) !== b) {\n if ((ca = score(c)) < aa) {\n a = c, aa = ca;\n }\n }\n b = a.next;\n }\n\n // Compute the enclosing circle of the front chain.\n a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = enclose(a);\n\n // Translate the circles to put the enclosing circle around the origin.\n for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;\n\n return c.r;\n}\n\nexport default function(circles) {\n packEnclose(circles);\n return circles;\n}\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","import {packEnclose} from \"./siblings.js\";\nimport {optional} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nfunction defaultRadius(d) {\n return Math.sqrt(d.value);\n}\n\nexport default function() {\n var radius = null,\n dx = 1,\n dy = 1,\n padding = constantZero;\n\n function pack(root) {\n root.x = dx / 2, root.y = dy / 2;\n if (radius) {\n root.eachBefore(radiusLeaf(radius))\n .eachAfter(packChildren(padding, 0.5))\n .eachBefore(translateChild(1));\n } else {\n root.eachBefore(radiusLeaf(defaultRadius))\n .eachAfter(packChildren(constantZero, 1))\n .eachAfter(packChildren(padding, root.r / Math.min(dx, dy)))\n .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));\n }\n return root;\n }\n\n pack.radius = function(x) {\n return arguments.length ? (radius = optional(x), pack) : radius;\n };\n\n pack.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];\n };\n\n pack.padding = function(x) {\n return arguments.length ? (padding = typeof x === \"function\" ? x : constant(+x), pack) : padding;\n };\n\n return pack;\n}\n\nfunction radiusLeaf(radius) {\n return function(node) {\n if (!node.children) {\n node.r = Math.max(0, +radius(node) || 0);\n }\n };\n}\n\nfunction packChildren(padding, k) {\n return function(node) {\n if (children = node.children) {\n var children,\n i,\n n = children.length,\n r = padding(node) * k || 0,\n e;\n\n if (r) for (i = 0; i < n; ++i) children[i].r += r;\n e = packEnclose(children);\n if (r) for (i = 0; i < n; ++i) children[i].r -= r;\n node.r = e + r;\n }\n };\n}\n\nfunction translateChild(k) {\n return function(node) {\n var parent = node.parent;\n node.r *= k;\n if (parent) {\n node.x = parent.x + k * node.x;\n node.y = parent.y + k * node.y;\n }\n };\n}\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","import roundNode from \"./treemap/round.js\";\nimport treemapDice from \"./treemap/dice.js\";\n\nexport default function() {\n var dx = 1,\n dy = 1,\n padding = 0,\n round = false;\n\n function partition(root) {\n var n = root.height + 1;\n root.x0 =\n root.y0 = padding;\n root.x1 = dx;\n root.y1 = dy / n;\n root.eachBefore(positionNode(dy, n));\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(dy, n) {\n return function(node) {\n if (node.children) {\n treemapDice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);\n }\n var x0 = node.x0,\n y0 = node.y0,\n x1 = node.x1 - padding,\n y1 = node.y1 - padding;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n };\n }\n\n partition.round = function(x) {\n return arguments.length ? (round = !!x, partition) : round;\n };\n\n partition.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];\n };\n\n partition.padding = function(x) {\n return arguments.length ? (padding = +x, partition) : padding;\n };\n\n return partition;\n}\n","import {Node} from \"./hierarchy/index.js\";\n\nfunction defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\n// function radialSeparation(a, b) {\n// return (a.parent === b.parent ? 1 : 2) / a.depth;\n// }\n\n// This function is used to traverse the left contour of a subtree (or\n// subforest). It returns the successor of v on this contour. This successor is\n// either given by the leftmost child of v or by the thread of v. The function\n// returns null if and only if v is on the highest level of its subtree.\nfunction nextLeft(v) {\n var children = v.children;\n return children ? children[0] : v.t;\n}\n\n// This function works analogously to nextLeft.\nfunction nextRight(v) {\n var children = v.children;\n return children ? children[children.length - 1] : v.t;\n}\n\n// Shifts the current subtree rooted at w+. This is done by increasing\n// prelim(w+) and mod(w+) by shift.\nfunction moveSubtree(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n}\n\n// All other shifts, applied to the smaller subtrees between w- and w+, are\n// performed by this function. To prepare the shifts, we have to adjust\n// change(w+), shift(w+), and change(w-).\nfunction executeShifts(v) {\n var shift = 0,\n change = 0,\n children = v.children,\n i = children.length,\n w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n}\n\n// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,\n// returns the specified (default) ancestor.\nfunction nextAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n}\n\nfunction TreeNode(node, i) {\n this._ = node;\n this.parent = null;\n this.children = null;\n this.A = null; // default ancestor\n this.a = this; // ancestor\n this.z = 0; // prelim\n this.m = 0; // mod\n this.c = 0; // change\n this.s = 0; // shift\n this.t = null; // thread\n this.i = i; // number\n}\n\nTreeNode.prototype = Object.create(Node.prototype);\n\nfunction treeRoot(root) {\n var tree = new TreeNode(root, 0),\n node,\n nodes = [tree],\n child,\n children,\n i,\n n;\n\n while (node = nodes.pop()) {\n if (children = node._.children) {\n node.children = new Array(n = children.length);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new TreeNode(children[i], i));\n child.parent = node;\n }\n }\n }\n\n (tree.parent = new TreeNode(null, 0)).children = [tree];\n return tree;\n}\n\n// Node-link tree diagram using the Reingold-Tilford \"tidy\" algorithm\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = null;\n\n function tree(root) {\n var t = treeRoot(root);\n\n // Compute the layout using Buchheim et al.’s algorithm.\n t.eachAfter(firstWalk), t.parent.m = -t.z;\n t.eachBefore(secondWalk);\n\n // If a fixed node size is specified, scale x and y.\n if (nodeSize) root.eachBefore(sizeNode);\n\n // If a fixed tree size is specified, scale x and y based on the extent.\n // Compute the left-most, right-most, and depth-most nodes for extents.\n else {\n var left = root,\n right = root,\n bottom = root;\n root.eachBefore(function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var s = left === right ? 1 : separation(left, right) / 2,\n tx = s - left.x,\n kx = dx / (right.x + s + tx),\n ky = dy / (bottom.depth || 1);\n root.eachBefore(function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n\n return root;\n }\n\n // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is\n // applied recursively to the children of v, as well as the function\n // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the\n // node v is placed to the midpoint of its outermost children.\n function firstWalk(v) {\n var children = v.children,\n siblings = v.parent.children,\n w = v.i ? siblings[v.i - 1] : null;\n if (children) {\n executeShifts(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n }\n\n // Computes all real x-coordinates by summing up the modifiers recursively.\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n\n // The core of the algorithm. Here, a new subtree is combined with the\n // previous subtrees. Threads are used to traverse the inside and outside\n // contours of the left and right subtree up to the highest common level. The\n // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the\n // superscript o means outside and i means inside, the subscript - means left\n // subtree and + means right subtree. For summing up the modifiers along the\n // contour, we use respective variables si+, si-, so-, and so+. Whenever two\n // nodes of the inside contours conflict, we compute the left one of the\n // greatest uncommon ancestors using the function ANCESTOR and call MOVE\n // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.\n // Finally, we add a new thread (if necessary).\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v,\n vop = v,\n vim = w,\n vom = vip.parent.children[0],\n sip = vip.m,\n sop = vop.m,\n sim = vim.m,\n som = vom.m,\n shift;\n while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {\n vom = nextLeft(vom);\n vop = nextRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n moveSubtree(nextAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !nextRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !nextLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n\n function sizeNode(node) {\n node.x *= dx;\n node.y = node.depth * dy;\n }\n\n tree.separation = function(x) {\n return arguments.length ? (separation = x, tree) : separation;\n };\n\n tree.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);\n };\n\n tree.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);\n };\n\n return tree;\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n i, n = nodes.length,\n sum, sums = new Array(n + 1);\n\n for (sums[0] = sum = i = 0; i < n; ++i) {\n sums[i + 1] = sum += nodes[i].value;\n }\n\n partition(0, n, parent.value, x0, y0, x1, y1);\n\n function partition(i, j, value, x0, y0, x1, y1) {\n if (i >= j - 1) {\n var node = nodes[i];\n node.x0 = x0, node.y0 = y0;\n node.x1 = x1, node.y1 = y1;\n return;\n }\n\n var valueOffset = sums[i],\n valueTarget = (value / 2) + valueOffset,\n k = i + 1,\n hi = j - 1;\n\n while (k < hi) {\n var mid = k + hi >>> 1;\n if (sums[mid] < valueTarget) k = mid + 1;\n else hi = mid;\n }\n\n if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k;\n\n var valueLeft = sums[k] - valueOffset,\n valueRight = value - valueLeft;\n\n if ((x1 - x0) > (y1 - y0)) {\n var xk = (x0 * valueRight + x1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, xk, y1);\n partition(k, j, valueRight, xk, y0, x1, y1);\n } else {\n var yk = (y0 * valueRight + y1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, x1, yk);\n partition(k, j, valueRight, x0, yk, x1, y1);\n }\n }\n}\n","import dice from \"./dice.js\";\nimport slice from \"./slice.js\";\n\nexport default function(parent, x0, y0, x1, y1) {\n (parent.depth & 1 ? slice : dice)(parent, x0, y0, x1, y1);\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\nimport {phi, squarifyRatio} from \"./squarify.js\";\n\nexport default (function custom(ratio) {\n\n function resquarify(parent, x0, y0, x1, y1) {\n if ((rows = parent._squarify) && (rows.ratio === ratio)) {\n var rows,\n row,\n nodes,\n i,\n j = -1,\n n,\n m = rows.length,\n value = parent.value;\n\n while (++j < m) {\n row = rows[j], nodes = row.children;\n for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;\n if (row.dice) treemapDice(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value);\n else treemapSlice(row, x0, y0, x0 += (x1 - x0) * row.value / value, y1);\n value -= row.value;\n }\n } else {\n parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);\n rows.ratio = ratio;\n }\n }\n\n resquarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return resquarify;\n})(phi);\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 { ITree } from \"@hpcc-js/api\";\nimport { d3Event, SVGWidget } from \"@hpcc-js/common\";\nimport { rgb as d3Rgb } from \"d3-color\";\nimport { hierarchy as d3Hierarchy, pack as d3Pack } from \"d3-hierarchy\";\nimport { interpolateZoom as d3InterpolateZoom } from \"d3-interpolate\";\nimport \"d3-transition\";\n\nimport \"../src/CirclePacking.css\";\n\nexport class CirclePacking extends SVGWidget {\n diameter;\n pack;\n svg;\n _focus;\n circle;\n view;\n protected _node;\n\n constructor() {\n super();\n ITree.call(this);\n }\n\n enter(_domNode, element) {\n this.diameter = Math.min(this.width(), this.height());\n\n this.pack = d3Pack()\n .size([this.diameter - 4, this.diameter - 4])\n .padding(1.5)\n ;\n\n this.svg = element\n .append(\"g\")\n ;\n }\n\n update(_domNode, _element) {\n const context = this;\n\n this.diameter = Math.min(this.width(), this.height());\n this.pack\n .size([this.diameter - 4, this.diameter - 4])\n .padding(1.5)\n ;\n\n this._palette = this._palette.switch(this.paletteID());\n if (this.useClonedPalette()) {\n this._palette = this._palette.cloneNotExists(this.paletteID() + \"_\" + this.id());\n }\n\n this.svg.selectAll(\"circle\").remove();\n this.svg.selectAll(\"text\").remove();\n\n const root: any = d3Hierarchy(this.data())\n .sum(function (d) {\n return d && d.size ? d.size : 1;\n }).sort(function (a, b) {\n return a.value < b.value ? -1 : a.value > b.value ? 1 : 0;\n })\n ;\n this._focus = root;\n this.pack(root);\n\n this.circle = this.svg.selectAll(\"circle\").data(root.descendants())\n .enter().append(\"circle\")\n .attr(\"class\", function (d) { return d.parent ? d.children ? \"node\" : \"node leaf\" : \"node root\"; })\n .style(\"fill\", function (d) {\n d.color = context.paletteDepthLevel_exists() && d.depth > context.paletteDepthLevel() ? d3Rgb(d.parent.color)[context.paletteDepthVariant()](1) : context._palette(d.data.label);\n return d.color;\n })\n .on(\"click\", function (d) { context.click(d.data, null, null); })\n .on(\"dblclick\", function (d) {\n if (this._focus !== d) {\n context.zoom(d);\n }\n d3Event().stopPropagation();\n })\n ;\n this.circle.append(\"title\").text(function (d) { return d.data.label; });\n\n this.svg.selectAll(\"text\").data(root.descendants())\n .enter().append(\"text\")\n .attr(\"class\", \"label\")\n .style(\"fill-opacity\", function (d) { return d.parent === root ? 1 : 0; })\n .style(\"display\", function (d) { return d.parent === root ? null : \"none\"; })\n .text(function (d) {\n return d.data.label + (context.showSize() && typeof d.data.size !== \"undefined\" ? \" \" + d.data.size : \"\");\n })\n ;\n\n this._node = this.svg.selectAll(\"circle,text\");\n\n this.zoomTo([root.x, root.y, root.r * 2]);\n }\n\n zoom(newFocus) {\n this._focus = newFocus;\n const context = this;\n const transition = this.svg.transition()\n .duration(d3Event().altKey ? 7500 : 750)\n .tween(\"zoom\", function () {\n const i = d3InterpolateZoom(context.view, [context._focus.x, context._focus.y, context._focus.r * 2]);\n return function (t) { context.zoomTo(i(t)); };\n });\n\n function showText(d) {\n return (d === context._focus && !d.children) || d.parent === context._focus;\n }\n\n transition.selectAll(\"text\")\n .filter(function (d) { return showText(d) || this.style.display === \"inline\"; })\n .style(\"fill-opacity\", function (d) { return showText(d) ? 1 : 0; })\n .on(\"start\", function (d) { if (showText(d)) this.style.display = \"inline\"; })\n .on(\"end\", function (d) { if (!showText(d)) this.style.display = \"none\"; });\n }\n\n zoomTo(v) {\n const k = this.diameter / v[2];\n this.view = v;\n this._node.attr(\"transform\", function (d) { return \"translate(\" + (d.x - v[0]) * k + \",\" + (d.y - v[1]) * k + \")\"; });\n this.circle.attr(\"r\", function (d) { return d.r * k; });\n }\n\n paletteID: (_?: string) => string | CirclePacking;\n useClonedPalette: (_?: boolean) => boolean | CirclePacking;\n\n // I2DChart\n _palette;\n click: (row, column, selected) => void;\n dblclick: (row, column, selected) => void;\n}\nCirclePacking.prototype._class += \" tree_CirclePacking\";\nCirclePacking.prototype.implements(ITree.prototype);\nexport interface CirclePacking {\n showSize(): boolean;\n showSize(_: boolean): this;\n paletteDepthLevel(): number;\n paletteDepthLevel(_: number): this;\n paletteDepthLevel_exists(): boolean;\n paletteDepthVariant(): \"brighter\" | \"darker\";\n paletteDepthVariant(_: \"brighter\" | \"darker\"): this;\n}\n\nCirclePacking.prototype.publish(\"showSize\", true, \"boolean\", \"Show size along with label\");\nCirclePacking.prototype.publish(\"paletteDepthLevel\", null, \"number\", \"If not null then beyond this depth number the child node colors are based on parent\", null, { optional: true });\nCirclePacking.prototype.publish(\"paletteDepthVariant\", \"brighter\", \"set\", \"Determines paletteDepthLevel decendant color shade variant\", [\"brighter\", \"darker\"], { disable: w => w.paletteDepthLevel_exists() });\nCirclePacking.prototype.publish(\"paletteID\", \"default\", \"set\", \"Color palette for this widget\", CirclePacking.prototype._palette.switch(), { tags: [\"Basic\", \"Shared\"] });\nCirclePacking.prototype.publish(\"useClonedPalette\", false, \"boolean\", \"Enable or disable using a cloned palette\", null, { tags: [\"Intermediate\", \"Shared\"] });\n","import { ITree } from \"@hpcc-js/api\";\nimport { PropertyExt, SVGZoomWidget, Utility } from \"@hpcc-js/common\";\nimport { cluster as d3Cluster, hierarchy as d3Hierarchy, tree as d3Tree } from \"d3-hierarchy\";\nimport { select as d3Select } from \"d3-selection\";\n\nimport \"../src/Dendrogram.css\";\n\nexport class DendrogramColumn extends PropertyExt {\n _owner: Dendrogram;\n\n constructor() {\n super();\n }\n\n owner(): Dendrogram;\n owner(_: Dendrogram): this;\n owner(_?: Dendrogram): Dendrogram | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n valid(): boolean {\n return !!this.column();\n }\n\n column: { (): string; (_: string): Dendrogram; };\n}\nDendrogramColumn.prototype._class += \" tree_Dendrogram.DendrogramColumn\";\n\nDendrogramColumn.prototype.publish(\"column\", null, \"set\", \"Field\", function (this: DendrogramColumn) { return this._owner ? this._owner.columns() : []; }, { optional: true });\n\n// ===\nexport class Dendrogram extends SVGZoomWidget {\n Column;\n _d3LayoutCluster;\n _d3LayoutTree;\n _d3Layout;\n\n constructor() {\n super();\n ITree.call(this);\n Utility.SimpleSelectionMixin.call(this);\n\n this._drawStartPos = \"origin\";\n\n this._d3LayoutCluster = d3Cluster();\n this._d3LayoutTree = d3Tree();\n }\n\n dendrogramData() {\n if (this.data().length === 0) return [];\n if (!this.mappings().filter(mapping => mapping.valid()).length) {\n return this.data();\n }\n const view = this._db.rollupView(this.mappings().map(function (mapping) { return mapping.column(); }));\n const retVal = {\n key: \"root\",\n values: view.entries()\n };\n return formatData(retVal);\n\n function formatData(node) {\n return {\n label: node.key,\n children: node.values.filter(function (value) { return !(value instanceof Array); }).map(function (value) { return formatData(value); }),\n origRows: node.values\n };\n }\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._renderElement\n .attr(\"opacity\", 0)\n .transition().duration(500)\n .attr(\"opacity\", 1)\n ;\n this._selection.widgetElement(this._renderElement);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n const isVertical = this.orientation() === \"vertical\";\n\n this._palette = this._palette.switch(this.paletteID());\n if (this.useClonedPalette()) {\n this._palette = this._palette.cloneNotExists(this.paletteID() + \"_\" + this.id());\n }\n\n this._d3Layout = this.dendrogram() ? this._d3LayoutCluster : this._d3LayoutTree;\n\n if (this.radial()) {\n this._d3Layout\n .size([360, this.separation() * 2])\n ;\n this._d3Layout.separation(function separation(a, b) {\n return (a.parent === b.parent ? 1 : 2) / a.depth;\n });\n } else {\n this._d3Layout.nodeSize([14, this.separation()]);\n this._d3Layout.separation(function separation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n });\n }\n\n const data = this.dendrogramData();\n const root = d3Hierarchy(data);\n this._d3Layout(root);\n\n const dataNodes = root.descendants();\n const links = root.descendants().slice(1);\n\n // Lines ---\n function linkVertical(d) {\n return \"M\" + d.parent.x + \",\" + d.parent.y\n + \"C\" + d.parent.x + \",\" + (d.parent.y + d.y) / 2\n + \" \" + d.x + \",\" + (d.parent.y + d.y) / 2\n + \" \" + d.x + \",\" + d.y;\n }\n\n function linkHorizontal(d) {\n return \"M\" + d.y + \",\" + d.x\n + \"C\" + (d.y + d.parent.y) / 2 + \",\" + d.x\n + \" \" + (d.y + d.parent.y) / 2 + \",\" + d.parent.x\n + \" \" + d.parent.y + \",\" + d.parent.x;\n }\n function diagonal(d) {\n return isVertical ? linkVertical(d) : linkHorizontal(d);\n }\n\n function project(x, y) {\n const angle = (x - 90) / 180 * Math.PI;\n const radius = y;\n return [radius * Math.cos(angle), radius * Math.sin(angle)];\n }\n\n function radialDiagonal(d) {\n return \"M\" + project(d.x, d.y)\n + \"C\" + project(d.x, (d.y + d.parent.y) / 2)\n + \" \" + project(d.parent.x, (d.y + d.parent.y) / 2)\n + \" \" + project(d.parent.x, d.parent.y);\n }\n\n const transitionDuration = this._renderCount ? 500 : 0;\n const lines = this._renderElement.selectAll(\".link\").data(links);\n lines.enter().append(\"path\")\n .attr(\"class\", \"link\")\n .attr(\"d\", this.radial() ? radialDiagonal : diagonal)\n ;\n lines.transition().duration(transitionDuration)\n .attr(\"d\", this.radial() ? radialDiagonal : diagonal)\n ;\n lines.exit().remove();\n\n // Nodes ---\n const textOffsetX = this.circleRadius() + 2;\n function nodeTransform(d) {\n if (context.radial()) {\n return \"rotate(\" + (d.x - 90) + \")translate(\" + d.y + \")\";\n }\n return context.orientation() === \"horizontal\" ? \"translate(\" + d.y + \",\" + d.x + \")\" : \"translate(\" + d.x + \",\" + d.y + \")\";\n }\n const nodes = this._renderElement.selectAll(\".node\").data(dataNodes);\n nodes.transition().duration(transitionDuration)\n .attr(\"transform\", nodeTransform)\n ;\n const enterNodes = nodes.enter().append(\"g\")\n .attr(\"class\", \"node\")\n .attr(\"transform\", nodeTransform)\n .call(this._selection.enter.bind(this._selection))\n .on(\"click\", function (d) {\n let tmp = d;\n while (tmp.children) {\n tmp = tmp.children[0];\n }\n if (d.depth > 0) {\n if(tmp.origRows) {\n context.click(context.rowToObj(tmp.origRows[0]), context.mappings()[d.depth - 1].column(), true);\n } else {\n context.click(tmp.data, context.mappings()[d.depth - 1].column(), true);\n }\n }\n })\n .on(\"dblclick\", function (d) {\n let tmp = d;\n while (tmp.children) {\n tmp = tmp.children[0];\n }\n if (d.depth > 0) {\n if(tmp.origRows) {\n context.dblclick(context.rowToObj(tmp.origRows[0]), context.mappings()[d.depth - 1].column(), true);\n } else {\n context.dblclick(tmp.data, context.mappings()[d.depth - 1].column(), true);\n }\n }\n })\n .each(function () {\n const e = d3Select(this);\n e.append(\"circle\");\n e.append(\"text\");\n })\n ;\n enterNodes.merge(nodes).select(\"circle\")\n .attr(\"r\", this.circleRadius())\n .style(\"fill\", function (d) { return context._palette(d.data.label); })\n .append(\"title\")\n .text(function (d) { return d.data.label; })\n ;\n enterNodes.merge(nodes).select(\"text\")\n .attr(\"dx\", function (d) {\n if (context.radial()) {\n if (d.children) {\n return d.x < 180 ? -textOffsetX : textOffsetX;\n } else {\n return d.x < 180 ? textOffsetX : -textOffsetX;\n }\n } else if (isVertical) {\n return d.children ? textOffsetX : -textOffsetX;\n }\n return d.children ? -textOffsetX : textOffsetX;\n })\n .attr(\"dy\", \"0.25em\")\n .style(\"text-anchor\", function (d) {\n if (context.radial()) {\n if (d.children) {\n return d.x < 180 ? \"end\" : \"start\";\n } else {\n return d.x < 180 ? \"start\" : \"end\";\n }\n } else if (isVertical) {\n return d.children ? \"start\" : \"end\";\n }\n return d.children ? \"end\" : \"start\";\n })\n .attr(\"transform\", function (d) {\n if (context.radial()) {\n return d.x < 180 ? null : \"rotate(180)\";\n } else if (isVertical) {\n return \"rotate(-66)\";\n }\n return null;\n })\n .text(function (d) { return d.data.label; })\n ;\n nodes.exit().remove();\n\n if (!this._renderCount) {\n context.zoomToFit();\n }\n }\n\n paletteID: { (): string; (_: string): Dendrogram; };\n useClonedPalette: { (): boolean; (_: boolean): Dendrogram; };\n mappings: { (): DendrogramColumn[]; (_: DendrogramColumn[]): Dendrogram; };\n\n circleRadius: { (): number; (_: number): Dendrogram; };\n separation: { (): number; (_: number): Dendrogram; };\n dendrogram: { (): boolean; (_: boolean): Dendrogram; };\n radial: { (): boolean; (_: boolean): Dendrogram; };\n orientation: { (): string; (_: string): Dendrogram; };\n\n // ITree\n _palette;\n click: (row, column, selected) => void;\n dblclick: (row, column, selected) => void;\n\n // SimpleSelectionMixin\n _selection;\n}\nDendrogram.prototype._class += \" tree_Dendrogram\";\nDendrogram.prototype.implements(ITree.prototype);\nDendrogram.prototype.mixin(Utility.SimpleSelectionMixin);\nDendrogram.prototype.Column = DendrogramColumn;\n\nDendrogram.prototype.publish(\"paletteID\", \"default\", \"set\", \"Color palette for this widget\", Dendrogram.prototype._palette.switch(), { tags: [\"Basic\", \"Shared\"] });\nDendrogram.prototype.publish(\"useClonedPalette\", false, \"boolean\", \"Enable or disable using a cloned palette\", null, { tags: [\"Intermediate\", \"Shared\"] });\nDendrogram.prototype.publish(\"mappings\", [], \"propertyArray\", \"Source Columns\", null, { autoExpand: DendrogramColumn });\n\nDendrogram.prototype.publish(\"circleRadius\", 4.5, \"number\", \"Text offset from circle\");\nDendrogram.prototype.publish(\"separation\", 240, \"number\", \"Leaf Separation\");\nDendrogram.prototype.publish(\"dendrogram\", true, \"boolean\", \"Dendrogram\");\nDendrogram.prototype.publish(\"radial\", false, \"boolean\", \"Radial\");\nDendrogram.prototype.publish(\"orientation\", \"horizontal\", \"set\", \"Orientation\", [\"horizontal\", \"vertical\"], { tags: [\"Private\"], disable: w => w.radial() });\n","import { HTMLWidget, Palette, Platform, select as d3Select, Utility, } from \"@hpcc-js/common\";\nimport { max as d3Max} from \"d3-array\";\nimport { hierarchy as d3Hierarchy } from \"d3-hierarchy\";\n\ninterface DirectoryItem {\n color?: string;\n iconClass?: string;\n label: string;\n depth: number;\n content?: string;\n markers?: any;\n isFolder: boolean;\n bold?: boolean;\n selected?: boolean;\n weightValue?: string;\n weightColor?: string;\n}\n\nexport class DirectoryTree extends HTMLWidget {\n\n _palette;\n\n constructor() {\n super();\n }\n\n flattenData(json): DirectoryItem[] {\n const context = this;\n const root = d3Hierarchy(json);\n const ret = [];\n\n if (!this.omitRoot()) {\n visitNode(root);\n } else if (root.children) {\n root.children.forEach(visitNode);\n }\n\n return ret;\n\n function visitNode(node) {\n const weightValue = node.data.markers && node.data.markers.length ? node.data.markers.length : \"\";\n ret.push({\n label: node.data.label,\n depth: node.depth - (context.omitRoot() ? 1 : 0),\n content: node.data.content,\n isFolder: !!node.data.children,\n iconClass: node.data.iconClass,\n color: node.data.color,\n bold: node.data.bold,\n weightValue,\n markers: node.data.markers,\n selected: node.data.selected\n });\n if (node.children) {\n node.children.forEach(visitNode);\n }\n }\n }\n\n protected iconClass(d) {\n if (d.label === \"error\") {\n return \"fa fa-exclamation\";\n }\n if (d.isFolder) {\n return this.folderIconOpen();\n }\n return this.textFileIcon();\n }\n\n protected calcRequiredWidth() {\n const flatData = this.flattenData(this.data());\n\n let widest = 0;\n\n const padding = this.rowItemPadding();\n const iconWidth = this.iconSize() + (padding * 2);\n const scrollbarWidth = Platform.getScrollbarWidth();\n\n flatData.forEach(row => {\n const offsetWidth = (row.depth * iconWidth) + (padding * 2);\n const textWidth = Utility.textSize(\n row.label,\n this.fontFamily(),\n this.fontSize(),\n !!row.bold\n ).width + (padding * 2);\n const totalWidth = textWidth + iconWidth + offsetWidth + scrollbarWidth;\n if (widest < totalWidth) {\n widest = totalWidth;\n }\n });\n return widest;\n }\n\n rowClick(str, markers) {}\n\n enter(domNode, element) {\n super.enter(domNode, element);\n element\n .style(\"width\", \"100%\")\n .style(\"height\", \"100%\")\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n this._palette = this._palette.switch(this.paletteID());\n\n element\n .style(\"overflow-y\", this.verticalScroll() ? \"scroll\" : null)\n ;\n const flatData = this.flattenData(this.data());\n const maxWeightValue = d3Max(flatData, n=>Number(n.weightValue));\n\n flatData.forEach(d=>{\n if(!d.weightValue){\n d.weightColor = \"transparent\";\n } else {\n d.weightColor = this._palette(d.weightValue, 1, maxWeightValue);\n }\n });\n const context = this;\n const padding = this.rowItemPadding();\n const iconWidth = this.iconSize() + padding;\n const lineHeight = Math.max(context.iconSize(), context.fontSize());\n const rowSelection = element.selectAll(\".directory-row\").data(flatData);\n const fontFamily = this.fontFamily();\n const fontSize = this.fontSize();\n const maxWeightWidth = d3Max(flatData, d=>this.textSize(d.weightValue, fontFamily, fontSize).width);\n const rowItemPadding = `${padding}px ${padding}px ${padding / 2}px ${padding}px`;\n\n const rowEnter = rowSelection.enter().append(\"div\")\n .attr(\"class\", d => `directory-row directory-row-depth-${d.depth}`)\n .style(\"display\", \"flex\")\n .style(\"cursor\", \"pointer\")\n .each(function (d: DirectoryItem) {\n const rowDiv = d3Select(this);\n\n const fontColor = d.color ? d.color : context.fontColor();\n const weightColor = d.weightColor ? d.weightColor : \"transparent\";\n const weightFontColor = Palette.textColor(weightColor);\n\n const weightDiv = rowDiv.append(\"div\")\n .attr(\"class\", \"row-weight\")\n .style(\"padding\", rowItemPadding)\n .style(\"color\", weightFontColor)\n .style(\"box-shadow\", `inset 0 0 100px ${weightColor}`)\n .style(\"font-weight\", d.bold ? \"bold\" : \"normal\")\n .style(\"font-family\", fontFamily)\n .style(\"font-size\", fontSize + \"px\")\n .text(d.weightValue)\n .attr(\"title\", d.weightValue)\n .style(\"overflow\", \"hidden\")\n .style(\"width\", (maxWeightWidth + (padding * 2)) + \"px\")\n .style(\"text-overflow\", \"ellipsis\")\n .style(\"text-align\", \"right\")\n .style(\"line-height\", lineHeight + \"px\")\n ;\n rowDiv.append(\"div\")\n .attr(\"class\", \"row-depth\")\n .style(\"width\", (context.depthSize() * d.depth) + \"px\")\n .style(\"opacity\", 1)\n .style(\"line-height\", lineHeight + \"px\")\n ;\n const iconDiv = rowDiv.append(\"div\")\n .attr(\"class\", \"row-icon \" + (d.iconClass ? d.iconClass : context.iconClass(d)))\n .style(\"width\", iconWidth + \"px\")\n .style(\"height\", lineHeight + \"px\")\n .style(\"color\", fontColor)\n .style(\"background-color\", d.selected ? context.selectionBackgroundColor() : \"transparent\")\n .style(\"font-size\", context.iconSize() + \"px\")\n .style(\"padding\", rowItemPadding)\n .style(\"line-height\", lineHeight + \"px\")\n ;\n const labelDiv = rowDiv.append(\"div\")\n .attr(\"class\", \"row-label\")\n .style(\"padding\", rowItemPadding)\n .style(\"color\", fontColor)\n .style(\"background-color\", d.selected ? context.selectionBackgroundColor() : \"transparent\")\n .style(\"font-weight\", d.bold ? \"bold\" : \"normal\")\n .style(\"font-family\", context.fontFamily())\n .style(\"font-size\", context.fontSize() + \"px\")\n .text(d.label)\n .attr(\"title\", d.label)\n .style(\"flex\", 1)\n .style(\"overflow\", \"hidden\")\n .style(\"text-overflow\", \"ellipsis\")\n .style(\"line-height\", lineHeight + \"px\")\n ;\n \n rowDiv\n .on(\"mouseenter\", () => {\n labelDiv.style(\"font-weight\", \"bold\");\n })\n .on(\"mouseleave\", () => {\n labelDiv.style(\"font-weight\", d.bold ? \"bold\" : \"normal\");\n })\n ;\n weightDiv\n .on(\"mouseenter\", () => {\n context.weight_mouseenter(d);\n })\n .on(\"mouseleave\", () => {\n context.weight_mouseleave(d);\n })\n ;\n \n if (d.isFolder) {\n rowDiv.on(\"click\", function (d: any) {\n let next = this.nextSibling;\n const wasClosed = rowDiv.classed(\"folder-closed\");\n if (wasClosed) {\n rowDiv.classed(\"folder-closed\", false);\n rowDiv.classed(\"folder-open\", true);\n iconDiv.attr(\"class\", \"row-icon \" + context.folderIconOpen());\n } else {\n rowDiv.classed(\"folder-closed\", true);\n rowDiv.classed(\"folder-open\", false);\n iconDiv.attr(\"class\", \"row-icon \" + context.folderIconClosed());\n }\n while (next !== null) {\n const nextDepth = (d3Select(next).datum() as any).depth;\n if (nextDepth > d.depth) {\n next.style.display = wasClosed ? \"flex\" : \"none\";\n next = next.nextSibling;\n } else {\n next = null;\n }\n }\n });\n } else {\n rowDiv.on(\"click\", () => {\n element.selectAll(\".row-label\").style(\"background-color\", \"transparent\");\n element.selectAll(\".row-icon\").style(\"background-color\", \"transparent\");\n iconDiv.style(\"background-color\", context.selectionBackgroundColor());\n labelDiv.style(\"background-color\", context.selectionBackgroundColor());\n const ext = d.label.split(\".\").pop().toLowerCase();\n context.rowClick(ext === \"json\" ? JSON.stringify(JSON.parse(d.content), null, 4) : d.content, d.markers);\n });\n }\n })\n ;\n\n rowEnter\n .merge(rowSelection)\n .style(\"background-color\", context.backgroundColor())\n ;\n\n rowSelection.exit().remove();\n }\n weight_mouseenter(d){\n \n }\n weight_mouseleave(d){\n\n }\n}\nDirectoryTree.prototype._class += \" tree_DirectoryTree\";\n\nexport interface DirectoryTree {\n backgroundColor(): string;\n backgroundColor(_: string): this;\n fontColor(): string;\n fontColor(_: string): this;\n fontFamily(): string;\n fontFamily(_: string): this;\n omitRoot(): boolean;\n omitRoot(_: boolean): this;\n fontSize(): number;\n fontSize(_: number): this;\n iconSize(): number;\n iconSize(_: number): this;\n fileIconSize(): number;\n fileIconSize(_: number): this;\n folderIconOpen(): string;\n folderIconOpen(_: string): this;\n folderIconClosed(): string;\n folderIconClosed(_: string): this;\n hoverBackgroundColor(): string;\n hoverBackgroundColor(_: string): this;\n selectionBackgroundColor(): string;\n selectionBackgroundColor(_: string): this;\n rowItemPadding(): number;\n rowItemPadding(_: number): this;\n textFileIcon(): string;\n textFileIcon(_: string): this;\n verticalScroll(): boolean;\n verticalScroll(_: boolean): this;\n paletteID(): string;\n paletteID(_: string): this;\n depthSize(): number;\n depthSize(_: number): this;\n}\nDirectoryTree.prototype._palette = Palette.rainbow(\"Blues\");\n\nDirectoryTree.prototype.publish(\"depthSize\", 14, \"number\", \"Width of indentation per file or folder depth (pixels)\");\nDirectoryTree.prototype.publish(\"paletteID\", \"Blues\", \"set\", \"Color palette for the weight backgrounds\", DirectoryTree.prototype._palette.switch(), { tags: [\"Basic\"] });\nDirectoryTree.prototype.publish(\"omitRoot\", false, \"boolean\", \"If true, root node will not display\");\nDirectoryTree.prototype.publish(\"rowItemPadding\", 2, \"number\", \"Top, bottom, left and right row item padding\");\nDirectoryTree.prototype.publish(\"selectionBackgroundColor\", \"#CCC\", \"html-color\", \"Background color of selected directory rows\");\nDirectoryTree.prototype.publish(\"backgroundColor\", \"#FFF\", \"html-color\", \"Directory item background color\");\nDirectoryTree.prototype.publish(\"fontColor\", \"#000\", \"html-color\", \"Directory item font color\");\nDirectoryTree.prototype.publish(\"fontFamily\", \"Arial\", \"string\", \"Directory item font family\");\nDirectoryTree.prototype.publish(\"fontSize\", 12, \"number\", \"Directory item font size (pixels)\");\nDirectoryTree.prototype.publish(\"iconSize\", 12, \"number\", \"Directory folder and file icon size (pixels)\");\nDirectoryTree.prototype.publish(\"folderIconOpen\", \"fa fa-folder-open\", \"string\", \"Open folder icon class\");\nDirectoryTree.prototype.publish(\"folderIconClosed\", \"fa fa-folder\", \"string\", \"Closed folder icon class\");\nDirectoryTree.prototype.publish(\"textFileIcon\", \"fa fa-file-text-o\", \"string\", \"Text file icon class\");\nDirectoryTree.prototype.publish(\"verticalScroll\", true, \"boolean\", \"If true, vertical scroll bar will be shown\");\n","import { ITree } from \"@hpcc-js/api\";\nimport { PropertyExt, SVGZoomWidget, Utility } from \"@hpcc-js/common\";\nimport { hierarchy as d3Hierarchy, tree as d3Tree } from \"d3-hierarchy\";\nimport { select as d3Select } from \"d3-selection\";\n\nimport \"../src/Indented.css\";\n\nexport class IndentedColumn extends PropertyExt {\n _owner: Indented;\n\n constructor() {\n super();\n }\n\n owner(): Indented;\n owner(_: Indented): this;\n owner(_?: Indented): Indented | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n valid(): boolean {\n return !!this.column();\n }\n\n column: (_?: string) => string | IndentedColumn;\n}\nIndentedColumn.prototype._class += \" tree_Dendrogram.IndentedColumn\";\n\nIndentedColumn.prototype.publish(\"column\", null, \"set\", \"Field\", function (this: IndentedColumn) { return this._owner ? this._owner.columns() : []; }, { optional: true });\n\n// ===\nexport class Indented extends SVGZoomWidget {\n Column;\n _d3Tree;\n _xml;\n _svgLinks;\n _svgNodes;\n _treeData;\n _collapsed: { [key: string]: boolean } = {};\n\n constructor() {\n super();\n ITree.call(this);\n Utility.SimpleSelectionMixin.call(this);\n\n this._drawStartPos = \"origin\";\n\n this._d3Tree = d3Tree();\n }\n\n xmlToData(xml, id = \"\") {\n if (DOMParser) {\n const parser = new DOMParser();\n const doc = parser.parseFromString(xml, \"text/xml\");\n return xmlToJson(doc, id).children[0];\n }\n return [];\n }\n\n xml(_) {\n if (!arguments.length) return this._xml;\n this._xml = _;\n this.data(this.xmlToData(this._xml));\n return this;\n }\n\n IndentedData() {\n if (this.data().length === 0) return [];\n if (this.xmlColumn_exists()) {\n const cellIdx = this.columns().indexOf(this.xmlColumn());\n const retVal = {\n label: this.xmlColumn(),\n children: this.data().map(function (row, idx) {\n return this.xmlToData(row[cellIdx], \"[\" + idx + \"]\");\n }, this)\n };\n return retVal.children.length === 1 ? retVal.children[0] : retVal;\n } else {\n if (!this.mappings().filter(mapping => mapping.valid()).length) {\n return this.data();\n }\n const view = this._db.rollupView(this.mappings().map(function (mapping) { return mapping.column(); }));\n const root = {\n key: \"root\",\n values: view.entries()\n };\n return formatData(root);\n }\n\n function formatData(node): any {\n if (node.values instanceof Array) {\n const children = node.values.filter(function (value) {\n return !(value instanceof Array);\n }).map(function (value) {\n return formatData(value);\n });\n const retVal: any = {\n label: node.key\n };\n if (children.length) {\n retVal.children = children;\n } else {\n retVal.size = 22;\n }\n return retVal;\n }\n return {\n label: node.key,\n size: node.values.aggregate,\n origRows: node.values\n };\n }\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._svgLinks = this._renderElement.append(\"g\");\n this._svgNodes = this._renderElement.append(\"g\");\n this._selection.widgetElement(this._svgNodes);\n }\n\n protected _prevDataChecksum;\n update(domNode, _element) {\n super.update(domNode, _element);\n const context = this;\n\n this._d3Tree\n .nodeSize([0, this.barHeight()])\n ;\n const dataChecksum = this._db.dataChecksum();\n if (this._prevDataChecksum !== dataChecksum) {\n this._treeData = this.IndentedData();\n this._prevDataChecksum = dataChecksum;\n }\n\n function getID(d) {\n return (d.parent ? getID(d.parent) + \".\" : \"\") + d.data.label;\n }\n\n const root = d3Hierarchy(this.data())\n .sum(function (d) {\n return d.size || 50;\n }).each((d) => {\n if (this._collapsed[getID(d)]) {\n delete (d.children);\n }\n })\n ;\n\n const dataNodes = this._d3Tree(root).descendants();\n const links = this._d3Tree(root).descendants().slice(1);\n\n let nodeIdx = 0;\n root.eachBefore((n: any) => {\n n.x = nodeIdx * context.barHeight();\n ++nodeIdx;\n });\n\n const boxSize = this.barHeight() - 4;\n const transitionDuration = this._renderCount ? 500 : 0;\n\n // Lines ---\n const lines = this._svgLinks.selectAll(\".link\").data(links, function (d) { return getID(d); });\n lines.enter().append(\"path\")\n .attr(\"class\", \"link\")\n .attr(\"d\", elbow)\n ;\n lines.transition().duration(transitionDuration)\n .attr(\"d\", elbow)\n ;\n lines.exit().remove();\n\n function elbow(d) {\n return \"M\" + d.parent.y + \",\" + d.parent.x\n + \"V\" + d.x + \", H\" + d.y;\n }\n\n // Nodes ---\n const nodes = this._svgNodes.selectAll(\".node\").data(dataNodes, function (d) { return getID(d); });\n nodes.transition().duration(transitionDuration)\n .attr(\"transform\", function (d) { return \"translate(\" + d.y + \",\" + d.x + \")\"; })\n ;\n const enterNodes = nodes.enter().append(\"g\")\n .attr(\"class\", \"node\")\n .attr(\"transform\", function (d) { return \"translate(\" + d.y + \",\" + d.x + \")\"; })\n .call(this._selection.enter.bind(this._selection))\n .each(function () {\n const element = d3Select(this);\n element.append(\"rect\")\n .attr(\"height\", boxSize)\n .attr(\"width\", boxSize)\n .on(\"click\", function (d: any) {\n if (context._collapsed[getID(d)]) {\n delete context._collapsed[getID(d)];\n } else if (d.children) {\n context._collapsed[getID(d)] = true;\n }\n context.lazyRender();\n })\n ;\n element.append(\"text\");\n })\n .style(\"opacity\", 0)\n ;\n enterNodes.transition()\n .style(\"opacity\", 1)\n ;\n enterNodes.merge(nodes).select(\"rect\")\n .attr(\"x\", -boxSize / 2)\n .attr(\"y\", -boxSize / 2)\n .style(\"fill\", color)\n ;\n enterNodes.merge(nodes).select(\"text\")\n .attr(\"dx\", boxSize / 2 + 4 + \"px\")\n .attr(\"dy\", \"0.33em\")\n .text(function (d) { return d.data.label; })\n ;\n nodes.exit().transition()\n .style(\"opacity\", 0)\n .remove()\n ;\n\n if (!this._renderCount) {\n context.zoomToFit();\n }\n\n function color(d) {\n return context._collapsed[getID(d)] ? \"#3182bd\" : d.children ? \"#c6dbef\" : \"#fd8d3c\";\n }\n }\n\n xmlColumn: { (_: string): Indented; (): string; };\n xmlColumn_exists: () => boolean;\n mappings: { (_: IndentedColumn[]): Indented; (): IndentedColumn[]; };\n barHeight: { (_: number): Indented; (): number; };\n\n // ITree\n _palette;\n click: (row, column, selected) => void;\n dblclick: (row, column, selected) => void;\n\n // SimpleSelectionMixin\n _selection;\n}\nIndented.prototype._class += \" tree_Indented\";\nIndented.prototype.implements(ITree.prototype);\nIndented.prototype.mixin(Utility.SimpleSelectionMixin);\nIndented.prototype.Column = IndentedColumn;\n\nIndented.prototype.publish(\"xmlColumn\", null, \"set\", \"Field\", function () { return this.columns(); }, { optional: true });\nIndented.prototype.publish(\"mappings\", [], \"propertyArray\", \"Source Columns\", null, { autoExpand: IndentedColumn, disable: (w) => w.xmlColumn_exists() });\nIndented.prototype.publish(\"barHeight\", 16, \"number\", \"Bar height\");\n\nfunction xmlToJson(xml, id = \"\") {\n const retVal = {\n id,\n label: \"\",\n attributes: {},\n children: []\n };\n\n retVal.label = xml.nodeName;\n if (xml.nodeType === 1) { // element\n if (xml.attributes.length > 0) {\n for (let j = 0; j < xml.attributes.length; j++) {\n const attribute = xml.attributes.item(j);\n retVal.attributes[attribute.nodeName] = attribute.nodeValue;\n }\n }\n } else if (xml.nodeType === 3) { // text\n retVal.label = xml.nodeValue;\n }\n\n if (xml.hasChildNodes()) {\n for (let i = 0; i < xml.childNodes.length; i++) {\n const item = xml.childNodes.item(i);\n const child = xmlToJson(item, id + \"[\" + retVal.children.length + \"]\");\n retVal.children.push(child);\n }\n }\n return retVal;\n}\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 {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","import { ITree } from \"@hpcc-js/api\";\nimport { d3Event, select as d3Select, SVGWidget } from \"@hpcc-js/common\";\nimport { hierarchy as d3Hierarchy, partition as d3Parition } from \"d3-hierarchy\";\nimport { interpolate as d3Interpolate } from \"d3-interpolate\";\nimport { scaleLinear as d3ScaleLinear, scaleSqrt as d3ScaleSqrt } from \"d3-scale\";\nimport { arc as d3Arc } from \"d3-shape\";\n\nimport \"../src/SunburstPartition.css\";\n\nexport class SunburstPartition extends SVGWidget {\n svg;\n radius;\n _xScale;\n _yScale;\n partition;\n arc;\n _resetRoot;\n\n constructor() {\n super();\n ITree.call(this);\n }\n\n data(): any;\n data(_: any): this;\n data(_?: any): any | this {\n const retVal = SVGWidget.prototype.data.apply(this, arguments);\n if (arguments.length) {\n this._resetRoot = true;\n }\n return retVal;\n }\n\n enter(_domNode, element) {\n const context = this;\n\n this.radius = Math.min(this.width(), this.height()) / 2;\n\n this._xScale = d3ScaleLinear()\n .range([0, 2 * Math.PI])\n ;\n\n this._yScale = d3ScaleSqrt()\n .range([0, this.radius])\n ;\n\n this.partition = d3Parition();\n\n this.arc = d3Arc()\n .startAngle(function (d: any) {\n return Math.max(0, Math.min(2 * Math.PI, context._xScale(d.x0)));\n })\n .endAngle(function (d: any) {\n return Math.max(0, Math.min(2 * Math.PI, context._xScale(d.x1)));\n })\n .innerRadius(function (d: any) {\n return Math.max(0, context._yScale(d.y0));\n })\n .outerRadius(function (d: any) {\n return Math.max(0, context._yScale(d.y1));\n })\n ;\n\n this.svg = element.append(\"g\");\n }\n\n update(_domNode, _element) {\n const context = this;\n\n this._palette = this._palette.switch(this.paletteID());\n if (this.useClonedPalette()) {\n this._palette = this._palette.cloneNotExists(this.paletteID() + \"_\" + this.id());\n }\n\n this.radius = Math.min(this.width(), this.height()) / 2;\n this._yScale.range([0, this.radius]);\n\n const root = d3Hierarchy(this.data())\n .sum(function (d) {\n return d.size !== undefined ? d.size : 1;\n })\n ;\n\n const paths = this.svg.selectAll(\"path\").data(this.partition(root).descendants(), function (d, i) {\n return d.data.label !== undefined ? d.data.label : i;\n });\n\n paths.enter().append(\"path\")\n .on(\"click\", function (d) { context.click(d.data, null, null); })\n .on(\"dblclick\", function (d) {\n const event = d3Event();\n if (event) {\n event.stopPropagation();\n }\n context.zoomTo(d);\n })\n .each(function () {\n const element = d3Select(this);\n element\n .append(\"title\")\n ;\n })\n .merge(paths)\n .attr(\"d\", this.arc)\n .style(\"fill\", function (d) {\n return d.data.__viz_fill ? d.data.__viz_fill : context._palette(d.data.label);\n })\n .style(\"stroke\", function (d) {\n return d.value > 16 ? \"white\" : \"none\";\n })\n .select(\"title\")\n .text(function (d) {\n return d.data.label;\n })\n ;\n\n paths.exit().remove();\n\n if (this._resetRoot) {\n this._resetRoot = false;\n this.zoomTo(root);\n }\n }\n\n zoomTo(d) {\n const context = this;\n this.svg.transition()\n .duration(750)\n .tween(\"scale\", function () {\n const xd = d3Interpolate(context._xScale.domain(), [d.x0, d.x1]);\n const yd = d3Interpolate(context._yScale.domain(), [d.y0, 1]);\n const yr = d3Interpolate(context._yScale.range(), [d.y0 ? 20 : 0, context.radius]);\n return function (t) { context._xScale.domain(xd(t)); context._yScale.domain(yd(t)).range(yr(t)); };\n })\n .selectAll(\"path\")\n .attrTween(\"d\", function (d2) { return function () { return context.arc(d2); }; });\n }\n\n paletteID: (_?: string) => string | SunburstPartition;\n useClonedPalette: (_?: boolean) => boolean | SunburstPartition;\n\n // ITree\n _palette;\n click: (row, column, selected) => void;\n dblclick: (row, column, selected) => void;\n}\nSunburstPartition.prototype._class += \" tree_SunburstPartition\";\nSunburstPartition.prototype.implements(ITree.prototype);\n\nSunburstPartition.prototype.publish(\"paletteID\", \"default\", \"set\", \"Color palette for this widget\", SunburstPartition.prototype._palette.switch(), { tags: [\"Basic\", \"Shared\"] });\nSunburstPartition.prototype.publish(\"useClonedPalette\", false, \"boolean\", \"Enable or disable using a cloned palette\", null, { tags: [\"Intermediate\", \"Shared\"] });\n","import { ITree } from \"@hpcc-js/api\";\nimport { HTMLWidget, Palette, PropertyExt, Utility } from \"@hpcc-js/common\";\nimport { rgb as d3rgb } from \"d3-color\";\nimport { hierarchy as d3Hierarchy, treemap as d3Treemap, treemapBinary as d3treemapBinary, treemapDice as d3treemapDice, treemapResquarify as d3treemapResquarify, treemapSlice as d3treemapSlice, treemapSliceDice as d3treemapSliceDice, treemapSquarify as d3treemapSquarify } from \"d3-hierarchy\";\n\nimport \"../src/Treemap.css\";\n\nexport class TreemapColumn extends PropertyExt {\n _owner: Treemap;\n\n constructor() {\n super();\n }\n\n owner(): Treemap;\n owner(_: Treemap): this;\n owner(_?: Treemap): Treemap | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.column();\n }\n\n column: { (): string; (_: string): TreemapColumn; };\n}\nTreemapColumn.prototype._class += \" tree_Dendrogram.TreemapColumn\";\n\nTreemapColumn.prototype.publish(\"column\", null, \"set\", \"Field\", function (this: TreemapColumn) { return this._owner ? this._owner.columns() : []; }, { optional: true });\n\n// ===\nexport class Treemap extends HTMLWidget {\n Column;\n protected _d3Treemap;\n protected _elementDIV;\n protected _selection;\n constructor() {\n super();\n ITree.call(this);\n Utility.SimpleSelectionMixin.call(this, true);\n }\n\n private getTilingMethod() {\n switch (this.tilingMethod()) {\n case \"treemapBinary\":\n return d3treemapBinary;\n case \"treemapDice\":\n return d3treemapDice;\n case \"treemapSlice\":\n return d3treemapSlice;\n case \"treemapSliceDice\":\n return d3treemapSliceDice;\n case \"treemapResquarify\":\n return d3treemapResquarify;\n case \"treemapSquarify\":\n default:\n return d3treemapSquarify;\n }\n }\n\n treemapData() {\n if (!this.mappings().filter(mapping => mapping.valid()).length) {\n return this.data();\n }\n\n const view = this._db.aggregateView(this.mappings().map(function (mapping) { return mapping.column(); }), this.aggrType(), this.aggrColumn());\n const retVal = {\n key: \"root\",\n values: view.entries()\n };\n return formatData(retVal);\n\n function formatData(node): any {\n if (node.values instanceof Array) {\n const children = node.values.filter(function (value) {\n return !(value instanceof Array);\n }).map(function (value) {\n return formatData(value);\n });\n const retVal2: any = {\n label: node.key\n };\n if (children.length) {\n retVal2.children = children;\n } else {\n retVal2.size = 22;\n }\n return retVal2;\n }\n return {\n label: node.key,\n size: node.values.aggregate,\n origRows: node.values\n };\n }\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._d3Treemap = d3Treemap();\n\n this._elementDIV = element.append(\"div\");\n this._selection.widgetElement(this._elementDIV);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n const context = this;\n\n this._palette = this._palette.switch(this.paletteID());\n if (this.useClonedPalette()) {\n this._palette = this._palette.cloneNotExists(this.paletteID() + \"_\" + this.id());\n }\n\n const root = d3Hierarchy(this.treemapData())\n .sum(this.nodeWeight)\n ;\n\n this._d3Treemap\n .size([this.width(), this.height()])\n .paddingInner(this.paddingInner())\n .paddingOuter(this.paddingOuter())\n .paddingTop(this.paddingTop())\n ;\n if ([\"treemapSquarify\", \"treemapResquarify\"].indexOf(this.tilingMethod()) !== -1) {\n this._d3Treemap.tile(this.getTilingMethod()[\"ratio\"](this.squarifyRatio()));\n } else {\n this._d3Treemap.tile(this.getTilingMethod());\n }\n this._d3Treemap(root);\n\n this._elementDIV\n .style(\"font-size\", this.fontSize_exists() ? this.fontSize() + \"px\" : null)\n .style(\"line-height\", this.fontSize_exists() ? (this.fontSize() + 2) + \"px\" : null)\n ;\n\n const node = this._elementDIV.selectAll(\".node\").data(root.descendants());\n node.enter().append(\"div\")\n .attr(\"class\", \"node\")\n .call(this._selection.enter.bind(this._selection))\n .on(\"click\", function (d) {\n if (d) {\n let columnLabel = \"\";\n context.mappings().forEach(function (mapping) {\n if (mapping.column()) {\n columnLabel = mapping.column();\n }\n });\n if(d.origRows) {\n context.click(context.rowToObj(d.origRows[0]), columnLabel, context._selection.selected(this));\n } else {\n context.click(d.data, columnLabel, context._selection.selected(this));\n }\n }\n })\n .on(\"dblclick\", function (d) {\n if (d) {\n let columnLabel = \"\";\n context.mappings().forEach(function (mapping) {\n if (mapping.column()) {\n columnLabel = mapping.column();\n }\n });\n if(d.origRows) {\n context.dblclick(context.rowToObj(d.origRows[0]), columnLabel, context._selection.selected(this));\n } else {\n context.dblclick(d.data, columnLabel, context._selection.selected(this));\n }\n }\n })\n .merge(node)\n .style(\"left\", function (d) { return (d.x0 + Math.max(0, d.x1 - d.x0) / 2) + \"px\"; })\n .style(\"top\", function (d) { return (d.y0 + Math.max(0, d.y1 - d.y0) / 2) + \"px\"; })\n .style(\"width\", function () { return 0 + \"px\"; })\n .style(\"height\", function () { return 0 + \"px\"; })\n .style(\"font-size\", function (d) { return (d.children ? context.parentFontSize() : context.leafFontSize()) + \"px\"; })\n .style(\"line-height\", function (d) { return (d.children ? context.parentFontSize() : context.leafFontSize()) + \"px\"; })\n .attr(\"title\", tooltip)\n .html(function (d) {\n if (!context.showRoot() && d.depth === 0) {\n return null;\n }\n if (d.children) {\n if (context.enableParentLabels()) {\n return context.parentWeightHTML(d);\n } else {\n return null;\n }\n } else {\n return context.leafWeightHTML(d);\n }\n })\n .style(\"background\", function (d) {\n if (!context.showRoot() && d.depth === 0) {\n this.style.color = \"transparent\";\n return \"transparent\";\n }\n const light_dark = context.brighterLeafNodes() ? \"brighter\" : \"darker\";\n let _color;\n if (context.usePaletteOnParentNodes()) {\n _color = d.children ? context._palette(d.data.label) : d3rgb(context._palette(d.parent.data.label))[light_dark](1);\n } else {\n if (d.depth > context.depthColorLimit()) {\n _color = d3rgb(d.parent.color)[light_dark](1);\n } else {\n _color = context._palette(d.data.label);\n }\n d.color = _color;\n }\n this.style.color = Palette.textColor(_color);\n return _color;\n })\n .transition().duration(this.transitionDuration())\n .style(\"pointer-events\", function (d) { return !context.showRoot() && d.depth === 0 ? \"none\" : \"all\"; })\n .style(\"opacity\", function (d) { return d.children ? 1 : null; })\n .style(\"left\", function (d) { return d.x0 + \"px\"; })\n .style(\"top\", function (d) { return d.y0 + \"px\"; })\n .style(\"width\", function (d) { return Math.max(0, d.x1 - d.x0) + \"px\"; })\n .style(\"height\", function (d) { return Math.max(0, d.y1 - d.y0) + \"px\"; })\n .each(function (d) {\n if (d.depth === 0) {\n this.style.color = !context.showRoot() ? \"transparent\" : \"\";\n this.style.borderColor = !context.showRoot() ? \"transparent\" : \"\";\n }\n })\n ;\n node.exit().transition().duration(this.transitionDuration())\n .style(\"opacity\", 0)\n .remove()\n ;\n function tooltip(d) {\n if (d.children && !context.enableParentTooltips()) {\n return null;\n }\n let retVal = d.data.label + \" (\" + d.value + \")\";\n while (d.parent && d.parent.parent) {\n retVal = d.parent.data.label + \" -> \" + retVal;\n d = d.parent;\n }\n return retVal;\n }\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n\n nodeWeight(d) {\n return d.size || 1;\n }\n\n parentWeightHTML(d) {\n return this.showParentWeight() ? `<span class=\"treemap-parent-label\">${d.data.label}</span><span class=\"treemap-parent-value\">${d.value}${this.weightSuffix()}</span>` : `<span class=\"treemap-parent-label\">${d.data.label}</span>`;\n }\n\n leafWeightHTML(d) {\n return this.showLeafWeight() ? `<span class=\"treemap-leaf-label\">${d.data.label}</span><span class=\"treemap-leaf-value\">${d.value}${this.weightSuffix()}</span>` : `<span class=\"treemap-leaf-label\">${d.data.label}</span>`;\n }\n\n paletteID: { (): string[]; (_: string[]): Treemap; };\n useClonedPalette: { (): boolean[]; (_: boolean[]): Treemap; };\n mappings: { (): TreemapColumn[]; (_: TreemapColumn[]): Treemap; };\n aggrType: { (): string; (_: string): Treemap; };\n aggrColumn: { (): string; (_: string): Treemap; };\n fontSize: { (): number; (_: number): Treemap; };\n fontSize_exists: () => boolean;\n paddingInner: { (): number; (_: number): Treemap; };\n paddingOuter: { (): number; (_: number): Treemap; };\n paddingTop: { (): number; (_: number): Treemap; };\n parentFontSize: { (): number; (_: number): Treemap; };\n leafFontSize: { (): number; (_: number): Treemap; };\n brighterLeafNodes: { (): boolean; (_: boolean): Treemap; };\n showRoot: { (): boolean; (_: boolean): Treemap; };\n enableParentLabels: { (): boolean; (_: boolean): Treemap; };\n enableParentTooltips: { (): boolean; (_: boolean): Treemap; };\n showParentWeight: { (): boolean; (_: boolean): Treemap; };\n showLeafWeight: { (): boolean; (_: boolean): Treemap; };\n usePaletteOnParentNodes: { (): boolean; (_: boolean): Treemap; };\n depthColorLimit: { (): number; (_: number): Treemap; };\n squarifyRatio: { (): number; (_: number): Treemap; };\n weightSuffix: { (): string; (_: string): Treemap; };\n tilingMethod: { (): string; (_: string): Treemap; };\n\n transitionDuration: { (): number[]; (_: number[]): Treemap; };\n\n // ITree\n _palette;\n click: (row, column, selected) => void;\n dblclick: (row, column, selected) => void;\n}\nTreemap.prototype._class += \" tree_Treemap\";\nTreemap.prototype.implements(ITree.prototype);\nTreemap.prototype.mixin(Utility.SimpleSelectionMixin);\nTreemap.prototype.Column = TreemapColumn;\n\nTreemap.prototype.publish(\"paletteID\", \"default\", \"set\", \"Color palette for this widget\", Treemap.prototype._palette.switch(), { tags: [\"Basic\", \"Shared\"] });\nTreemap.prototype.publish(\"useClonedPalette\", false, \"boolean\", \"Enable or disable using a cloned palette\", null, { tags: [\"Intermediate\", \"Shared\"] });\nTreemap.prototype.publish(\"mappings\", [], \"propertyArray\", \"Source Columns\", null, { autoExpand: TreemapColumn });\nTreemap.prototype.publish(\"aggrType\", null, \"set\", \"Aggregation Type\", [null, \"mean\", \"median\", \"sum\", \"min\", \"max\"], { optional: true });\nTreemap.prototype.publish(\"aggrColumn\", null, \"set\", \"Aggregation Field\", function () { return this.columns(); }, { optional: true, disable: (w) => !w.aggrType() });\nTreemap.prototype.publish(\"fontSize\", null, \"number\", \"Font Size\", null, { optional: true });\nTreemap.prototype.publish(\"paddingInner\", 18.6, \"number\", \"Pixel spacing between each sibling node\");\nTreemap.prototype.publish(\"paddingOuter\", 30, \"number\", \"Pixel padding of parent nodes\");\nTreemap.prototype.publish(\"paddingTop\", 41.4, \"number\", \"Additional top pixel padding of parent nodes\");\nTreemap.prototype.publish(\"showRoot\", false, \"boolean\", \"Show root element\");\nTreemap.prototype.publish(\"parentFontSize\", 18, \"number\", \"Parent font-size\");\nTreemap.prototype.publish(\"leafFontSize\", 16, \"number\", \"Leaf font-size\");\nTreemap.prototype.publish(\"usePaletteOnParentNodes\", false, \"boolean\", \"Assign a color from the palette to every parent node\");\nTreemap.prototype.publish(\"depthColorLimit\", 1, \"number\", \"Assign a color from the palette to node with depth lower than this value\", null, { optional: true, disable: (w) => w.usePaletteOnParentNodes() });\nTreemap.prototype.publish(\"squarifyRatio\", 1, \"number\", \"Specifies the desired aspect ratio of the generated rectangles (must be >= 1)\", null, { optional: true, disable: (w) => [\"treemapSquarify\", \"treemapResquarify\"].indexOf(w.tilingMethod()) === -1 });\nTreemap.prototype.publish(\"showParentWeight\", true, \"boolean\", \"Show weight of parent nodes\");\nTreemap.prototype.publish(\"showLeafWeight\", true, \"boolean\", \"Show weight of leaf nodes\");\nTreemap.prototype.publish(\"weightSuffix\", \"\", \"string\", \"Weight suffix (ex: 'ms')\");\nTreemap.prototype.publish(\"brighterLeafNodes\", false, \"boolean\", \"Brighter/darker leaf node color (false = darker)\");\nTreemap.prototype.publish(\"enableParentLabels\", true, \"boolean\", \"Enable parent labels\");\nTreemap.prototype.publish(\"enableParentTooltips\", true, \"boolean\", \"Enable parent tooltips\");\nTreemap.prototype.publish(\"transitionDuration\", 250, \"number\", \"Transition Duration\");\nTreemap.prototype.publish(\"tilingMethod\", \"treemapSquarify\", \"set\", \"Transition Duration\", [\"treemapBinary\", \"treemapDice\", \"treemapResquarify\", \"treemapSlice\", \"treemapSliceDice\", \"treemapSquarify\"]);\n"],"names":["defaultSeparation","Node","constant","treemapDice","treemapSlice","squarify","slice","dice","ITree","d3Hierarchy","d3Rgb","d3Event","d3InterpolateZoom","SVGWidget","PropertyExt","Utility","d3Select","SVGZoomWidget","Platform","d3Max","Palette","HTMLWidget","pi","tau","epsilon","d3ScaleLinear","d3ScaleSqrt","d3Interpolate","d3rgb"],"mappings":"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","x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,36,37,38,39]}
|