@hpcc-js/eclwatch 2.75.7 → 2.76.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 +3 -3
- 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 +13 -13
- 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.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__metadata","metadataKey","metadataValue","metadata","__spreadArray","to","from","pack","ar","l","slice","concat","SuppressedError","ECLArchiveViewer","_super","_this","_directoryPane","DirectoryTree","_fileEditorPane","Editor","text","rowClick","render","transformArchiveTreeData","json","ret","label","name","children","_children","map","transformNode","node","_node","filter","content","trim","JSON","stringify","updateDirectoryPane","contentStr","parse","e","xml2json","_data","data","enter","domNode","element","addWidget","update","hash","hashSum","baseUrl","wuid","_prevHash","_contentStr","Workunit","attach","fetchArchive","then","resp","relativeSizes","directoryWidthRatio","SplitPanel","styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","_class","publish","publishProxy","LegendVertex","_icon","on","click","kind","Vertex","WUGraphLegend","icon","d3Local","_disabled2","disabled","_","retVal","push","forEach","toggle","context","items","_g","selectAll","append","attr","each","set","textbox_shape_colorStroke","textbox_shape_colorFill","iconAnchor","faChar","count","tooltip","mouseover","mouseout","merge","bbox","get","icon_shape_colorFill","getBBox","d3Select","width","exit","remove","height","Legend","faCharFactory","WUScopeController","subgraphsMap","rSubgraphsMap","verticesMap","rVerticesMap","edgesMap","rEdgesMap","kindMap","_disabled","clear","masterGraph","graphDB","graphGui","walk","item","UtilSubgraph","UtilVertex","RawValue","subgraphs","vertices","edges","hierarchy","subgraph","appendSubgraph","showMinMax","minState","appendVertex","UtilEdge","appendEdge","format","labelTpl","obj","lpos","indexOf","rpos","substring","console","warn","split","join","createSubgraph","sg","Id","Subgraph","title","minClick","id","createVertex","vertex","v","attrs","rawAttrs","ScopeType","parent_1","parent","Icon","shape_colorFill","shape_colorStroke","image_colorFill","icon_image_colorFill","annotations","hasAttr","annotationIcons","isSpill","edge","sourceKind","source","targetKind","spansSubgraph","createEdge","sourceV","targetV","strokeDasharray","weight","Edge","sourceVertex","targetVertex","sourceMarker","targetMarker","child","filterLegend","this_1","BaseScope","ScopeName","Properties","Property","Notes","Note","SinkActivity","filterPartial","_i","_a","vShow","vHide","_b","childVertices_1","inEdges","some","outEdges","dummyDetails","Name","Formatted","Measure","Creator","CreatorType","dummyScope","dummyVertex","_c","vHide_1","_d","_e","dummyEdgeScope","_f","filterEmptySubgraphs","emptySubgraphs","removeObsoleteSubgraphs","graphData","clone","calcLegend","parseInt","formatRow","columns","row","formattedAttrs","idx","undefined","activityData","edgeData","subgraphData","calcGraphTooltip","scope","parentScope","calcTooltip","WUGraph","_partialAll","Button","stateClick","_maxAll","_toggleGraph","ToggleButton","selected","viewClick","_toggleActivities","_toggleEdges","_toggleSubgraphs","_graph","GraphWidget","layout","applyScaleOnLayout","showToolbar","allowDragging","_activities","Table","pagination","_edges","_subgraphs","_legend","_gc","highlightVerticies","_view","Carousel","widgets","topOverlay","widget","buttons","Spacer","iconBarButtons","loadGraph","w","selection","centerOnItem","tooltipHTML","sourceB","sourceTB","active","fetchScopeGraph","graphID","subgraphID","_prevScopeGraph","_prevHashSum","Promise","resolve","startProgress","fetchGraphs","graphs","graphs_1","graph","finishProgress","scopeGraph","_element","callback","scopedGraph","ChartPanel","safeEncode","toString","replace","STATUS","STATUS_ACTIVE","Store","wuResult","schema","renderHtml","_cache","_filter","_columns","schema2Columns","root","rowFormatter","RowFormatter","parentNode","prefix","keyed","column","field","leafID","className","sortable","isSet","reduce","prev","childNode","charWidth","formatter","cell","html","isChildDataset","propCount","firstPropType","rowToTable","__row","table","domConstruct","border","cellspacing","tr","innerHTML","tr1","tr2","td","val","getIdentity","__hpcc_id","_request","start","end","totalLength","cacheKey","fetchRows","rows","Total","formattedRow","__hpcc_orig","fetchRange","options","Deferred","response","QueryResults","WUResult","opts","resultName","sequence","nodeGroup","logicalFile","userID","user","password","calcResult","resultHash","_prevResultHash","_result","Result","attachLogicalFile","fetch","abortController","AbortController","result","signal","storeHash","_prevStoreHash","result_1","fetchXMLSchema","_localStore","_dgrid","col","sel","Common","WUStatus","zoomable","zoomToFitLimit","hierarchyRankDirection","attachWorkunit","_wu","_wuHandle","release","watch","changes","lazyRender","icon_diameter","icon_shape_colorStroke","textbox_text_colorFill","updateVertex","color","updateVertexStatus","level","completeColor","isFailed","_create","CREATE","_compile","COMPILE","_execute","EXECUTE","_complete","COMPLETE","strokeColor","showArc","e1","e2","e3","StateID","WUStateID","Blocked","Wait","Scheduled","UploadingFiled","Compiling","Submitted","Compiled","Aborting","Running","Aborted","Archived","Completed","Failed","DebugPaused","DebugRunning","Paused","Unknown","zoomToFit","Graph","WUTimeline","_palette","Palette","ordinal","titleColumn","iconColumn","colorColumn","seriesColumn","timePattern","tickFormat","tooltipTimeFormat","fetchScopes","request","fetchDetails","scopes","whenStarted","timeElapsed","Date","toISOString","ReactTimelineSeries","ScopeFilter","MaxDepth","ScopeTypes","NestedFilter","Depth","PropertiesToReturn","AllProperties","AllStatistics","AllHints","ScopeOptions","IncludeId","IncludeScope","IncludeScopeType","PropertyOptions","IncludeName","IncludeRawValue","IncludeFormatted","IncludeMeasure","IncludeCreator","IncludeCreatorType"],"sources":["../src/__package__.ts","../../../node_modules/tslib/tslib.es6.mjs","../src/ECLArchiveViewer.ts","../../../node_modules/style-inject/dist/style-inject.es.js","../src/WUGraphLegend.ts","../src/WUScopeController.ts","../src/WUGraph.ts","../src/WUResultStore.ts","../src/WUStatus.ts","../src/WUResult.ts","../src/WUTimeline.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/eclwatch\";\nexport const PKG_VERSION = \"2.75.7\";\nexport const BUILD_VERSION = \"2.106.10\";\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","import { Editor } from \"@hpcc-js/codemirror\";\nimport { Workunit } from \"@hpcc-js/comms\";\nimport { SplitPanel } from \"@hpcc-js/phosphor\";\nimport { DirectoryTree } from \"@hpcc-js/tree\";\nimport { hashSum, xml2json } from \"@hpcc-js/util\";\n\nexport class ECLArchiveViewer extends SplitPanel {\n private _prevHash;\n private _contentStr;\n public _directoryPane = new DirectoryTree();\n public _fileEditorPane = new Editor()\n .text(\"\")\n ;\n\n constructor() {\n super(\"horizontal\");\n this._directoryPane.rowClick = (text) => {\n this._fileEditorPane\n .text(text)\n .render()\n ;\n };\n }\n\n protected transformArchiveTreeData(json) {\n const ret = {\n label: json.name,\n children: json._children.map(transformNode).filter(n => n)\n };\n\n if (ret.children && ret.children[0] && ret.children[0].label === \"html\") {\n // must be parsererror\n return {\n label: \"root\",\n children: [\n {\n label: \"error\",\n content: JSON.stringify(ret, null, 4)\n }\n ]\n };\n }\n return ret;\n\n function transformNode(node) {\n const _node: any = {};\n _node.label = node.name + (node[\"$\"] && node[\"$\"].key ? ` (${node[\"$\"].key})` : \"\");\n if (node._children && node._children.length > 0) {\n _node.children = node._children.map(_node => {\n return transformNode(_node);\n })\n .filter(n => n)\n ;\n } else if (typeof node.content === \"string\" && node.content.trim()) {\n _node.content = node.content;\n } else {\n return false;\n }\n return _node;\n }\n }\n\n updateDirectoryPane(contentStr) {\n let json;\n if (contentStr) {\n try {\n json = JSON.parse(contentStr);\n } catch (e) {\n json = xml2json(contentStr);\n }\n }\n if (json) {\n const _data = this.transformArchiveTreeData(json);\n this._directoryPane\n .data(_data)\n .render()\n ;\n }\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this\n .addWidget(this._directoryPane)\n .addWidget(this._fileEditorPane)\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n const hash = hashSum({\n baseUrl: this.baseUrl(),\n wuid: this.wuid()\n });\n\n if (this._prevHash !== hash || typeof this._contentStr === \"undefined\") {\n Workunit.attach({ baseUrl: this.baseUrl() }, this.wuid())\n .fetchArchive()\n .then(resp => {\n\n this._contentStr = resp;\n this.updateDirectoryPane(this._contentStr);\n\n this._prevHash = hash;\n });\n } else {\n this.updateDirectoryPane(this._contentStr);\n }\n\n this.relativeSizes([this.directoryWidthRatio(), 1 - this.directoryWidthRatio()]);\n }\n}\nECLArchiveViewer.prototype._class += \" eclwatch_ECLArchiveViewer\";\n\nexport interface ECLArchiveViewer {\n directoryPaneColor(): string;\n directoryPaneColor(_: string): this;\n directoryPaneHoverColor(): string;\n directoryPaneHoverColor(_: string): this;\n fontColor(): string;\n fontColor(_: string): this;\n fontFamily(): string;\n fontFamily(_: string): this;\n fontSize(): number;\n fontSize(_: number): this;\n fileIconSize(): number;\n fileIconSize(_: number): this;\n folderIconOpen(): string;\n folderIconOpen(_: string): this;\n folderIconClosed(): string;\n folderIconClosed(_: string): this;\n textFileIcon(): string;\n textFileIcon(_: string): this;\n codeFileIcon(): string;\n codeFileIcon(_: string): this;\n verticalScroll(): boolean;\n verticalScroll(_: boolean): this;\n directoryWidthRatio(): number;\n directoryWidthRatio(_: number): this;\n baseUrl(): string;\n baseUrl(_: string): this;\n wuid(): string;\n wuid(_: string): this;\n}\nECLArchiveViewer.prototype.publish(\"baseUrl\", \"\", \"string\", \"HPCC Platform Base URL\");\nECLArchiveViewer.prototype.publish(\"wuid\", \"\", \"string\", \"Workunit ID\");\nECLArchiveViewer.prototype.publish(\"directoryWidthRatio\", 0.38, \"number\", \"Default directory panel width ratio relative to the full width\");\nECLArchiveViewer.prototype.publish(\"contentString\", null, \"string\", \"XML/JSON archive content string\");\nECLArchiveViewer.prototype.publishProxy(\"directoryPaneColor\", \"_directoryPane\", \"backgroundColor\");\nECLArchiveViewer.prototype.publishProxy(\"directoryPaneHoverColor\", \"_directoryPane\", \"hoverBackgroundColor\");\nECLArchiveViewer.prototype.publishProxy(\"iconSize\", \"_directoryPane\");\nECLArchiveViewer.prototype.publishProxy(\"fontColor\", \"_directoryPane\");\nECLArchiveViewer.prototype.publishProxy(\"fontFamily\", \"_directoryPane\");\nECLArchiveViewer.prototype.publishProxy(\"fontSize\", \"_directoryPane\");\nECLArchiveViewer.prototype.publishProxy(\"folderIconOpen\", \"_directoryPane\");\nECLArchiveViewer.prototype.publishProxy(\"folderIconClosed\", \"_directoryPane\");\nECLArchiveViewer.prototype.publishProxy(\"textFileIcon\", \"_directoryPane\");\nECLArchiveViewer.prototype.publishProxy(\"codeFileIcon\", \"_directoryPane\");\nECLArchiveViewer.prototype.publishProxy(\"verticalScroll\", \"_directoryPane\");\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 { Vertex } from \"@hpcc-js/graph\";\nimport { Legend } from \"@hpcc-js/layout\";\nimport { local as d3Local, select as d3Select } from \"d3-selection\";\n\nimport \"../src/WUGraphLegend.css\";\n\nexport interface WUGraphLegendData {\n kind: number;\n faChar: string;\n label: string;\n count: number;\n}\n\nclass LegendVertex extends Vertex {\n\n constructor() {\n super();\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._icon.on(\"click\", () => {\n this.click(this.data());\n });\n }\n\n click(kind: number) {\n }\n}\n\nexport class WUGraphLegend extends Legend {\n\n private icon = d3Local<Vertex>();\n protected _disabled2: { [kind: number]: boolean } = {\n /* TODO: Default some to disabled?\n 43: true,\n 71: true,\n 82: true,\n 88: true\n */\n };\n\n disabled(): number[];\n disabled(_: number[]): this;\n disabled(_?: number[]): number[] | this {\n if (!arguments.length) {\n const retVal = [];\n for (const key in this._disabled2) {\n if (this._disabled2[key]) {\n retVal.push(key);\n }\n }\n return retVal;\n }\n this._disabled2 = {};\n _.forEach(kind => this._disabled2[kind] = true);\n return this;\n }\n\n toggle(kind: number) {\n this._disabled2[kind] = !this._disabled2[kind];\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n const context = this;\n const items = this._g.selectAll(\".legendItem\").data(this.data(), (d: any) => d.kind);\n items.enter().append(\"g\")\n .attr(\"class\", \"legendItem\")\n .each(function (this: HTMLElement, d) {\n context.icon.set(this, new LegendVertex()\n .target(this)\n .data(d.kind)\n .textbox_shape_colorStroke(\"none\")\n .textbox_shape_colorFill(\"none\")\n .iconAnchor(\"left\")\n .faChar(d.faChar)\n .text(`${d.label} (${d.count})`)\n .tooltip(`${d.kind} - ${d.label}`)\n .on(\"click\", kind => {\n context.toggle(kind);\n context.render();\n context.click(kind);\n })\n .on(\"mouseover\", kind => {\n context.mouseover(kind);\n })\n .on(\"mouseout\", kind => {\n context.mouseout(kind);\n })\n );\n })\n .merge(items)\n .each(function (this: HTMLElement, d, i) {\n const bbox = context.icon.get(this)\n .icon_shape_colorFill(context._disabled2[d.kind] ? \"gray\" : null)\n .render().getBBox();\n\n d3Select(this)\n .attr(\"transform\", `translate(${+bbox.width / 2}, ${i * 30})`)\n ;\n })\n ;\n items.exit()\n .each(function (this: HTMLElement, d) {\n context.icon.get(this)\n .target(null)\n .render();\n })\n .remove();\n const bbox = this.getBBox(true, true);\n this._g.attr(\"transform\", `translate(16, ${this.height() / 2 - bbox.height / 2})`);\n }\n\n // Events ---\n click(kind: number) {\n }\n\n mouseover(kind: number) {\n }\n\n mouseout(kind: number) {\n }\n}\nWUGraphLegend.prototype._class += \" eclwatch_WUGraphLegend\";\n","import { Icon } from \"@hpcc-js/common\";\nimport { BaseScope, ScopeEdge, ScopeGraph, ScopeSubgraph, ScopeVertex } from \"@hpcc-js/comms\";\nimport { Edge, IGraphData, Lineage, Subgraph, Vertex } from \"@hpcc-js/graph\";\nimport { Edge as UtilEdge, Subgraph as UtilSubgraph, Vertex as UtilVertex } from \"@hpcc-js/util\";\nimport { WUGraphLegendData } from \"./WUGraphLegend\";\n\nexport type VertexType = Vertex | Icon;\n\nexport interface MyGraphData {\n subgraphs: Subgraph[];\n vertices: VertexType[];\n edges: Edge[];\n hierarchy: Lineage[];\n}\n\nfunction faCharFactory(kind): string {\n switch (kind) {\n case \"2\": return \"\\uf0c7\"; // Disk Write\n case \"3\": return \"\\uf15d\"; // sort\n case \"5\": return \"\\uf0b0\"; // Filter\n case \"6\": return \"\\uf1e0\"; // Split\n case \"12\": return \"\\uf039\"; // First N\n case \"15\": return \"\\uf126\"; // Lightweight Join\n case \"17\": return \"\\uf126\"; // Lookup Join\n case \"22\": return \"\\uf1e6\"; // Pipe Output\n case \"23\": return \"\\uf078\"; // Funnel\n case \"25\": return \"\\uf0ce\"; // Inline Dataset\n case \"26\": return \"\\uf074\"; // distribute\n case \"29\": return \"\\uf005\"; // Store Internal Result\n case \"36\": return \"\\uf128\"; // If\n case \"44\": return \"\\uf0c7\"; // write csv\n case \"47\": return \"\\uf0c7\"; // write\n case \"54\": return \"\\uf013\"; // Workunit Read\n case \"56\": return \"\\uf0c7\"; // Spill\n case \"59\": return \"\\uf126\"; // Merge\n case \"61\": return \"\\uf0c7\"; // write xml\n case \"82\": return \"\\uf1c0\"; // Projected Disk Read Spill\n case \"88\": return \"\\uf1c0\"; // Projected Disk Read Spill\n case \"92\": return \"\\uf129\"; // Limted Index Read\n case \"93\": return \"\\uf129\"; // Limted Index Read\n case \"99\": return \"\\uf1c0\"; // CSV Read\n case \"105\": return \"\\uf1c0\"; // CSV Read\n\n case \"7\": return \"\\uf090\"; // Project\n case \"9\": return \"\\uf0e2\"; // Local Iterate\n case \"16\": return \"\\uf005\"; // Output Internal\n case \"19\": return \"\\uf074\"; // Hash Distribute\n case \"21\": return \"\\uf275\"; // Normalize\n case \"35\": return \"\\uf0c7\"; // CSV Write\n case \"37\": return \"\\uf0c7\"; // Index Write\n case \"71\": return \"\\uf1c0\"; // Disk Read Spill\n case \"133\": return \"\\uf0ce\"; // Inline Dataset\n case \"148\": return \"\\uf0ce\"; // Inline Dataset\n case \"168\": return \"\\uf275\"; // Local Denormalize\n }\n return \"\\uf063\";\n}\n\nexport class WUScopeController {\n private graphDB: ScopeGraph;\n private subgraphsMap: { [id: string]: Subgraph } = {};\n private rSubgraphsMap: { [id: string]: ScopeSubgraph } = {};\n private verticesMap: { [id: string]: VertexType } = {};\n private rVerticesMap: { [id: string]: ScopeVertex } = {};\n private edgesMap: { [id: string]: Edge } = {};\n private rEdgesMap: { [id: string]: ScopeEdge } = {};\n private kindMap: { [id: string]: ScopeVertex[] } = {};\n\n protected _disabled: { [kind: number]: boolean } = {};\n\n constructor() {\n }\n\n clear() {\n this.subgraphsMap = {};\n this.rSubgraphsMap = {};\n this.verticesMap = {};\n this.rVerticesMap = {};\n this.edgesMap = {};\n this.rEdgesMap = {};\n }\n\n set(masterGraph: ScopeGraph) {\n this.graphDB = masterGraph;\n this.graphGui(this.graphDB);\n\n this.kindMap = {};\n this.graphDB.walk(item => {\n if (item instanceof UtilSubgraph) {\n } else if (item instanceof UtilVertex) {\n const kind = item._.attr(\"Kind\").RawValue;\n if (!this.kindMap[kind]) {\n this.kindMap[kind] = [];\n }\n this.kindMap[kind].push(item);\n } else if (item instanceof UtilEdge) {\n }\n });\n }\n\n disabled(): number[];\n disabled(_: number[]): this;\n disabled(_?: number[]): number[] | this {\n if (!arguments.length) {\n const retVal = [];\n for (const key in this._disabled) {\n if (this._disabled[key]) {\n retVal.push(key);\n }\n }\n return retVal;\n }\n this._disabled = {};\n _.forEach(kind => this._disabled[kind] = true);\n return this;\n }\n\n graphGui(graphDB: ScopeGraph): IGraphData {\n const graphGui: MyGraphData = {\n subgraphs: [],\n vertices: [],\n edges: [],\n hierarchy: []\n };\n\n graphDB.walk((item) => {\n if (item instanceof UtilSubgraph) {\n const subgraph = this.appendSubgraph(item, graphGui.hierarchy, graphGui.subgraphs);\n subgraph.showMinMax(item.vertices.length > 3 || subgraph.minState() !== \"normal\");\n } else if (item instanceof UtilVertex) {\n this.appendVertex(item, graphGui.hierarchy, graphGui.vertices);\n } else if (item instanceof UtilEdge) {\n this.appendEdge(item, graphGui.edges);\n }\n });\n\n return graphGui;\n }\n\n format(labelTpl, obj) {\n let retVal = \"\";\n let lpos = labelTpl.indexOf(\"%\");\n let rpos = -1;\n while (lpos >= 0) {\n retVal += labelTpl.substring(rpos + 1, lpos);\n rpos = labelTpl.indexOf(\"%\", lpos + 1);\n if (rpos < 0) {\n console.warn(\"Invalid Label Template\");\n break;\n }\n const key = labelTpl.substring(lpos + 1, rpos);\n retVal += !key ? \"%\" : (obj[labelTpl.substring(lpos + 1, rpos)] || \"\");\n lpos = labelTpl.indexOf(\"%\", rpos + 1);\n }\n retVal += labelTpl.substring(rpos + 1, labelTpl.length);\n return retVal.split(\"\\\\n\").join(\"\\n\");\n }\n\n createSubgraph(subgraph: ScopeSubgraph): Subgraph {\n let sg = this.subgraphsMap[subgraph._.Id];\n if (!sg) {\n sg = new Subgraph()\n .title(subgraph._.Id)\n .on(\"minClick\", () => {\n this.minClick(sg);\n })\n ;\n this.subgraphsMap[subgraph._.Id] = sg;\n this.rSubgraphsMap[sg.id()] = subgraph;\n }\n return sg;\n }\n\n createVertex(vertex: ScopeVertex): VertexType {\n let v = this.verticesMap[vertex._.Id];\n if (!v) {\n const attrs = vertex._.rawAttrs();\n if (vertex._.ScopeType === \"dummy\") {\n const parent = this.subgraphsMap[vertex.parent._.Id];\n v = new Icon()\n .shape_colorFill(\"darkred\")\n .shape_colorStroke(\"darkred\")\n .image_colorFill(\"white\")\n .faChar(\"\\uf067\")\n .on(\"click\", () => {\n parent.minState(\"normal\");\n this.minClick(parent);\n })\n ;\n } else {\n v = new Vertex()\n .icon_shape_colorFill(\"#1f77b4\")\n .icon_image_colorFill(\"white\")\n .faChar(faCharFactory(attrs[\"Kind\"]))\n .text(attrs[\"Label\"])\n ;\n const annotations = [];\n if (vertex._.hasAttr(\"Definition\")) {\n annotations.push({\n faChar: \"\\uf036\",\n tooltip: \"Definition\",\n shape_colorFill: \"lightgray\",\n shape_colorStroke: \"lightgray\",\n image_colorFill: \"black\"\n });\n }\n if (vertex._.hasAttr(\"IsInternal\")) {\n annotations.push({\n faChar: \"\\uf085\",\n tooltip: \"IsInternal\",\n shape_colorFill: \"red\",\n shape_colorStroke: \"red\",\n image_colorFill: \"white\"\n });\n }\n v.annotationIcons(annotations);\n }\n this.verticesMap[vertex._.Id] = v;\n this.rVerticesMap[v.id()] = vertex;\n }\n return v;\n }\n\n isSpill(edge: ScopeEdge): boolean {\n const sourceKind = edge.source._.attr(\"Kind\").RawValue;\n const targetKind = edge.target._.attr(\"Kind\").RawValue;\n return sourceKind === \"2\" || targetKind === \"71\";\n }\n\n spansSubgraph(edge: ScopeEdge): boolean {\n return edge.source.parent._.Id !== edge.target.parent._.Id;\n }\n\n createEdge(edge: ScopeEdge): Edge | undefined {\n let e = this.edgesMap[edge._.Id];\n if (!e) {\n const attrs = edge._.rawAttrs();\n const sourceV = this.verticesMap[edge.source._.Id];\n const targetV = this.verticesMap[edge.target._.Id];\n if (sourceV && targetV) {\n const isSpill = this.isSpill(edge);\n const spansSubgraph = this.spansSubgraph(edge);\n\n const label = this.format(\"%Label%\\n%NumRowsProcessed%\", attrs);\n /* TODO: Add extra annotations once WUDetails is fixed...\n const numSlaves = parseInt(attrs[\"NumSlaves\"]);\n const numStarts = parseInt(attrs[\"NumStarts\"]);\n const numStops = parseInt(attrs[\"NumStops\"]);\n const started = numStarts > 0;\n const finished = numStops === numSlaves;\n const active = started && !finished;\n */\n\n let strokeDasharray = null;\n let weight = 100;\n if (attrs[\"IsDependency\"]) {\n weight = 10;\n strokeDasharray = \"1,5\";\n } else if (attrs[\"_childGraph\"]) {\n strokeDasharray = \"5,5\";\n } else if (isSpill) {\n weight = 25;\n strokeDasharray = \"5,5,10,5\";\n } else if (spansSubgraph) {\n weight = 5;\n strokeDasharray = \"5,5\";\n }\n e = new Edge()\n .sourceVertex(sourceV)\n .targetVertex(targetV)\n .sourceMarker(\"circle\")\n .targetMarker(\"arrow\")\n .weight(weight)\n .strokeDasharray(strokeDasharray)\n .text(label)\n ;\n this.edgesMap[edge._.Id] = e;\n this.rEdgesMap[e.id()] = edge;\n }\n }\n return e;\n }\n\n appendSubgraph(subgraph: ScopeSubgraph, hierarchy: Lineage[], subgraphs: Subgraph[]): Subgraph {\n const sg = this.createSubgraph(subgraph);\n subgraphs.push(sg);\n const parent = this.subgraphsMap[subgraph.parent._.Id];\n if (parent) {\n hierarchy.push({ parent, child: sg });\n }\n return sg;\n }\n\n appendVertex(vertex: ScopeVertex, hierarchy: Lineage[], vertices: VertexType[]): VertexType {\n const v = this.createVertex(vertex);\n vertices.push(v);\n const parent = this.subgraphsMap[vertex.parent._.Id];\n if (parent) {\n hierarchy.push({ parent, child: v });\n }\n return v;\n }\n\n appendEdge(edge: ScopeEdge, edges: Edge[]): Edge {\n const e = this.createEdge(edge);\n if (e) {\n edges.push(e);\n }\n return e;\n }\n\n filterLegend(graphDB: ScopeGraph) {\n for (let i = graphDB.vertices.length - 1; i >= 0; --i) {\n const vertex = graphDB.vertices[i];\n const kind = vertex._.attr(\"Kind\").RawValue;\n if (this._disabled[kind]) {\n vertex.remove(false, (source: BaseScope, target: BaseScope) => {\n return new BaseScope({\n ScopeName: vertex._.ScopeName + \":in\",\n Id: source.Id + \"->\" + target.Id,\n ScopeType: \"dummy-edge\",\n Properties: {\n Property: [vertex._.attr(\"Label\")]\n },\n Notes: {\n Note: []\n },\n SinkActivity: \"\"\n });\n });\n }\n }\n }\n\n filterPartial(graphDB: ScopeGraph) {\n for (const subgraph of graphDB.subgraphs) {\n const sg = this.subgraphsMap[subgraph._.Id];\n switch (sg.minState()) {\n case \"partial\":\n const childVertices: ReadonlyArray<ScopeVertex> = subgraph.vertices;\n const vShow: ScopeVertex[] = [];\n const vHide: ScopeVertex[] = [];\n\n for (const vertex of childVertices) {\n if (vertex.inEdges.length === 0 || vertex.inEdges.some(edge => edge.source.parent !== edge.target.parent) ||\n vertex.outEdges.length === 0 || vertex.outEdges.some(edge => edge.source.parent !== edge.target.parent)) {\n vShow.push(vertex);\n } else {\n vHide.push(vertex);\n }\n }\n\n if (vHide.length > 1) {\n const dummyDetails = {\n ScopeName: subgraph._.ScopeName,\n Id: subgraph._.Id + \":dummy\",\n ScopeType: \"dummy\",\n Properties: {\n Property: [{\n Name: \"Activities\",\n RawValue: \"\" + vHide.length,\n Formatted: \"\" + vHide.length,\n Measure: \"count\",\n Creator: \"\",\n CreatorType: \"\"\n }]\n },\n Notes: {\n Note: []\n },\n SinkActivity: \"\"\n };\n const dummyScope = new BaseScope(dummyDetails);\n const dummyVertex = subgraph.createVertex(dummyScope);\n\n for (const vertex of vHide) {\n for (const edge of vertex.inEdges) {\n if (vShow.indexOf(edge.source) >= 0) {\n const dummyEdgeScope = new BaseScope({\n ScopeName: edge.source._.ScopeName,\n Id: edge.source._.Id + \"->\" + dummyVertex._.Id,\n ScopeType: \"dummy-in\",\n Properties: {\n Property: []\n },\n Notes: {\n Note: []\n },\n SinkActivity: \"\"\n });\n subgraph.createEdge(edge.source, dummyVertex, dummyEdgeScope);\n }\n }\n for (const edge of vertex.outEdges) {\n if (vShow.indexOf(edge.target) >= 0) {\n const dummyEdgeScope = new BaseScope({\n ScopeName: edge.target._.ScopeName,\n Id: dummyVertex._.Id + \"->\" + edge.target._.Id,\n ScopeType: \"dummy-out\",\n Properties: {\n Property: []\n },\n Notes: {\n Note: []\n },\n SinkActivity: \"\"\n });\n subgraph.createEdge(dummyVertex, edge.target, dummyEdgeScope);\n }\n }\n }\n vHide.forEach(vertex => vertex.remove(true));\n }\n break;\n }\n }\n }\n\n filterEmptySubgraphs(graphDB: ScopeGraph) {\n while (true) {\n const emptySubgraphs = graphDB.subgraphs.filter(subgraph => subgraph.subgraphs.length === 0 && subgraph.vertices.length === 0);\n if (emptySubgraphs.length === 0) break;\n emptySubgraphs.forEach(subgraph => subgraph.remove(true));\n }\n }\n\n removeObsoleteSubgraphs(graphDB: ScopeGraph) {\n for (const subgraph of [...graphDB.subgraphs]) {\n if (subgraph.vertices.length === 0) {\n subgraph.remove(false);\n }\n }\n }\n\n graphData(): IGraphData {\n const graphDB = this.graphDB.clone();\n this.filterLegend(graphDB);\n this.filterPartial(graphDB);\n this.filterEmptySubgraphs(graphDB);\n this.removeObsoleteSubgraphs(graphDB);\n return this.graphGui(graphDB);\n }\n\n calcLegend(): WUGraphLegendData[] {\n const retVal: WUGraphLegendData[] = [];\n for (const kind in this.kindMap) {\n retVal.push({\n kind: parseInt(kind),\n faChar: faCharFactory(kind),\n label: this.kindMap[kind][0]._.attr(\"Label\").RawValue.split(\"\\n\")[0],\n count: this.kindMap[kind].length\n });\n }\n return retVal;\n }\n\n vertices(kind: number): VertexType[] {\n const retVal: VertexType[] = [];\n for (const v of this.kindMap[kind]) {\n retVal.push(this.verticesMap[v._.Id]);\n }\n return retVal;\n }\n\n formatRow(item: ScopeEdge | ScopeSubgraph | ScopeVertex, columns, row) {\n const attrs = item._.formattedAttrs();\n for (const key in attrs) {\n const idx = columns.indexOf(key);\n if (idx === -1) {\n columns.push(key);\n row.push(attrs[key]);\n } else {\n row[idx] = attrs[key];\n }\n }\n for (let i = 0; i < 100; ++i) {\n if (row[i] === undefined) {\n row[i] = \"\";\n }\n }\n return row;\n }\n\n activityData(): { columns: string[], data: any[][] } {\n const columns = [\"Id\", \"Kind\", \"Label\"];\n const data = this.graphDB.vertices.map(v => {\n const row = [parseInt(v._.Id.split(\"a\")[1])];\n return this.formatRow(v, columns, row);\n });\n return { columns, data };\n }\n\n edgeData(): { columns: string[], data: any[][] } {\n const columns = [\"Id\", \"Label\"];\n const data = this.graphDB.edges.map(e => {\n const row = [e._.Id];\n return this.formatRow(e, columns, row);\n });\n return { columns, data };\n }\n\n subgraphData(): { columns: string[], data: any[][] } {\n const columns = [\"Id\", \"Label\"];\n const data = this.graphDB.subgraphs.map(sg => {\n const row = [sg._.Id];\n return this.formatRow(sg, columns, row);\n });\n return { columns, data };\n }\n\n calcGraphTooltip(item: VertexType | Edge) {\n let scope;\n let parentScope;\n if (item instanceof Subgraph) {\n const subgraph = this.rSubgraphsMap[item.id()];\n scope = subgraph._;\n parentScope = subgraph.parent._;\n } else if (item instanceof Vertex || item instanceof Icon) {\n const vertex = this.rVerticesMap[item.id()];\n scope = vertex._;\n parentScope = vertex.parent._;\n } else if (item instanceof Edge) {\n const edge = this.rEdgesMap[item.id()];\n scope = edge._;\n parentScope = edge.parent._;\n }\n if (scope) {\n return scope.calcTooltip(parentScope);\n }\n return \"\";\n }\n\n subgraph(id: string): Subgraph | undefined {\n return this.subgraphsMap[id];\n }\n\n vertex(id: string): VertexType | undefined {\n return this.verticesMap[id];\n }\n\n edge(id: string): Edge {\n return this.edgesMap[id];\n }\n\n // Events ---\n minClick(sg: Subgraph) {\n }\n}\n","import { Button, Spacer, ToggleButton, Widget } from \"@hpcc-js/common\";\nimport { ScopeGraph, Workunit } from \"@hpcc-js/comms\";\nimport { Table } from \"@hpcc-js/dgrid\";\nimport { Graph as GraphWidget, Subgraph, Vertex } from \"@hpcc-js/graph\";\nimport { Carousel, ChartPanel } from \"@hpcc-js/layout\";\nimport { hashSum } from \"@hpcc-js/util\";\nimport { WUGraphLegend } from \"./WUGraphLegend\";\nimport { WUScopeController } from \"./WUScopeController\";\n\nimport \"../src/WUGraph.css\";\n\nexport class WUGraph extends ChartPanel {\n\n private _partialAll = new Button().faChar(\"fa-window-restore\").tooltip(\"Partial All\")\n .on(\"click\", () => {\n this.stateClick(this._partialAll);\n });\n\n private _maxAll = new Button().faChar(\"fa-window-maximize\").tooltip(\"Max All\")\n .on(\"click\", () => {\n this.stateClick(this._maxAll);\n });\n\n private _toggleGraph = new ToggleButton().faChar(\"fa-chain\").tooltip(\"Graph\")\n .selected(true)\n .on(\"click\", () => {\n this.viewClick(this._toggleGraph);\n });\n\n private _toggleActivities = new ToggleButton().faChar(\"fa-table\").tooltip(\"Activitiies\")\n .selected(false)\n .on(\"click\", () => {\n this.viewClick(this._toggleActivities);\n });\n\n private _toggleEdges = new ToggleButton().faChar(\"fa-table\").tooltip(\"Edges\")\n .selected(false)\n .on(\"click\", () => {\n this.viewClick(this._toggleEdges);\n });\n\n private _toggleSubgraphs = new ToggleButton().faChar(\"fa-table\").tooltip(\"Subgraphs\")\n .selected(false)\n .on(\"click\", () => {\n this.viewClick(this._toggleSubgraphs);\n });\n\n protected _graph = new GraphWidget()\n .layout(\"Hierarchy\")\n .applyScaleOnLayout(true)\n .showToolbar(false)\n .allowDragging(false)\n ;\n\n private _activities = new Table()\n .pagination(false)\n ;\n\n private _edges = new Table()\n .pagination(false)\n ;\n\n private _subgraphs = new Table()\n .pagination(false)\n ;\n\n protected _legend = new WUGraphLegend(this)\n .on(\"click\", kind => {\n this.render();\n })\n .on(\"mouseover\", kind => {\n const verticesMap: { [id: string]: boolean } = {};\n for (const vertex of this._gc.vertices(kind)) {\n verticesMap[vertex.id()] = true;\n }\n this._graph.highlightVerticies(verticesMap);\n })\n .on(\"mouseout\", kind => {\n this._graph.highlightVerticies();\n })\n ;\n\n protected _view = new Carousel().widgets([this._graph, this._activities, this._edges, this._subgraphs]);\n\n protected _gc = new WUScopeController();\n\n constructor() {\n super();\n this.topOverlay(false);\n this.widget(this._view);\n const buttons: Widget[] = [\n this._toggleGraph,\n this._toggleActivities,\n this._toggleEdges,\n this._toggleSubgraphs,\n new Spacer(),\n this._partialAll,\n this._maxAll,\n new Spacer(),\n ...this._graph.iconBarButtons(),\n new Spacer()];\n this.buttons(buttons.concat(this.buttons()));\n this._gc.minClick = (sg: Subgraph) => {\n this.loadGraph();\n this._graph.render(w => {\n this._graph\n .selection([sg])\n .centerOnItem(sg)\n ;\n });\n };\n\n this._graph.tooltipHTML((v: Vertex) => {\n return this._gc.calcGraphTooltip(v);\n });\n }\n\n stateClick(sourceB: Button) {\n switch (sourceB) {\n case this._partialAll:\n this._graph.data().subgraphs.forEach((sg: Subgraph) => {\n sg.minState(\"partial\");\n });\n break;\n case this._maxAll:\n this._graph.data().subgraphs.forEach((sg: Subgraph) => {\n sg.minState(\"normal\");\n });\n break;\n }\n this.render();\n }\n\n viewClick(sourceTB: ToggleButton) {\n this._toggleGraph.selected(sourceTB === this._toggleGraph);\n this._toggleActivities.selected(sourceTB === this._toggleActivities);\n this._toggleEdges.selected(sourceTB === this._toggleEdges);\n this._toggleSubgraphs.selected(sourceTB === this._toggleSubgraphs);\n switch (sourceTB) {\n case this._toggleGraph:\n this._view.active(0);\n break;\n case this._toggleActivities:\n this._view.active(1);\n break;\n case this._toggleEdges:\n this._view.active(2);\n break;\n case this._toggleSubgraphs:\n this._view.active(3);\n break;\n }\n this.render(w => {\n });\n }\n\n private _prevHashSum;\n private _prevScopeGraph: ScopeGraph;\n fetchScopeGraph(): Promise<ScopeGraph> {\n const hash = hashSum({\n baseUrl: this.baseUrl(),\n wuid: this.wuid(),\n graphID: this.graphID(),\n subgraphID: this.subgraphID()\n });\n if (!this._prevScopeGraph || this._prevHashSum !== hash) {\n this.startProgress();\n this._prevHashSum = hash;\n this._gc.clear();\n const wu = Workunit.attach({ baseUrl: this.baseUrl() }, this.wuid());\n return wu.fetchGraphs().then(graphs => {\n for (const graph of graphs) {\n if (graph.Name === this.graphID()) {\n this.finishProgress();\n return graph.fetchScopeGraph(this.subgraphID());\n }\n }\n }).then(scopeGraph => {\n this._prevScopeGraph = scopeGraph;\n return this._prevScopeGraph;\n });\n }\n return Promise.resolve(this._prevScopeGraph);\n }\n\n enter(domNode, _element) {\n super.enter(domNode, _element);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n\n loadGraph() {\n this._gc.disabled(this._legend.disabled());\n this._graph\n .data(this._gc.graphData(), true)\n ;\n {\n const { columns, data } = this._gc.activityData();\n this._activities\n .columns(columns)\n .data(data)\n ;\n }\n {\n const { columns, data } = this._gc.edgeData();\n this._edges\n .columns(columns)\n .data(data)\n ;\n }\n {\n const { columns, data } = this._gc.subgraphData();\n this._subgraphs\n .columns(columns)\n .data(data)\n ;\n }\n }\n\n render(callback?: (w: Widget) => void): this {\n if (this.wuid() && this.graphID()) {\n this.fetchScopeGraph().then(scopedGraph => {\n this._gc.set(scopedGraph);\n this._legend.data(this._gc.calcLegend());\n this.loadGraph();\n super.render(callback);\n });\n } else {\n super.render(callback);\n }\n return this;\n }\n\n selection(_?) {\n if (!arguments.length) return this._graph.selection();\n const item = this._gc.vertex(_) || this._gc.edge(_) || this._gc.subgraph(_);\n if (item) {\n this._graph.selection([item]);\n }\n return this;\n }\n}\nWUGraph.prototype._class += \" eclwatch_WUGraph\";\n\nexport interface WUGraph {\n baseUrl(): string;\n baseUrl(_: string): this;\n wuid(): string;\n wuid(_: string): this;\n graphID(): string;\n graphID(_: string): this;\n subgraphID(): string;\n subgraphID(_: string): this;\n}\n\nWUGraph.prototype.publish(\"baseUrl\", \"\", \"string\", \"HPCC Platform Base URL\");\nWUGraph.prototype.publish(\"wuid\", \"\", \"string\", \"Workunit ID\");\nWUGraph.prototype.publish(\"graphID\", \"\", \"string\", \"Graph ID\");\nWUGraph.prototype.publish(\"subgraphID\", \"\", \"string\", \"Subgraph ID\");\n","import { ResultFilter, Result, XSDSchema, XSDXMLNode } from \"@hpcc-js/comms\";\nimport { ColumnType, Deferred, domConstruct, QueryResults, RowFormatter } from \"@hpcc-js/dgrid\";\n\nfunction entitiesEncode(str) {\n return String(str).replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\").replace(/\"/g, \""\");\n}\n\nfunction safeEncode(item) {\n switch (Object.prototype.toString.call(item)) {\n case \"[object Undefined]\":\n case \"[object Boolean]\":\n case \"[object Number]\":\n return item;\n case \"[object String]\":\n return entitiesEncode(item);\n default:\n console.warn(\"Unknown cell type: \" + Object.prototype.toString.call(item));\n }\n return item;\n}\n\nexport class Store {\n protected wuResult: Result;\n protected schema: XSDSchema;\n protected _columns: any[];\n protected _cache: { [key: string]: Promise<{ totalLength: number, data: any[] }> } = {};\n private rowFormatter: RowFormatter;\n protected _filter: ResultFilter = {};\n\n constructor(wuResult: Result, schema: XSDSchema, renderHtml: boolean, filter: ResultFilter = {}) {\n this.wuResult = wuResult;\n this.schema = schema;\n this._columns = this.schema2Columns(this.schema.root);\n this.rowFormatter = new RowFormatter(this._columns, renderHtml);\n this._filter = filter;\n }\n\n columns() {\n return this._columns;\n }\n\n schema2Columns(parentNode: XSDXMLNode, prefix: string = \"\"): ColumnType[] {\n if (!parentNode) return [];\n return parentNode.children().filter(node => node.name.indexOf(\"__hidden\", node.name.length - \"__hidden\".length) === -1).map((node, idx) => {\n const label = node.name;\n const keyed = node.attrs[\"hpcc:keyed\"];\n const column: ColumnType = {\n field: prefix + label,\n leafID: label,\n idx,\n label: label + (keyed ? \" (i)\" : \"\"),\n className: \"resultGridCell\",\n sortable: false,\n width: keyed ? 16 : 0,\n isSet: node.isSet\n };\n const children = this.schema2Columns(node, prefix + label + \"_\");\n if (children.length) {\n column.width += 10 + children.reduce((prev: number, childNode: ColumnType) => {\n return prev + childNode.width!;\n }, 0);\n column.children = children;\n } else {\n column.width += node.charWidth() * 9;\n column.formatter = (cell, row) => {\n switch (typeof cell) {\n case \"string\":\n return {\n html: cell.replace(/\\t/g, \" \").trim()\n };\n case \"undefined\":\n return \"\";\n }\n return cell;\n };\n }\n return column;\n });\n }\n\n isChildDataset(cell) {\n if (Object.prototype.toString.call(cell) !== \"[object Object]\") {\n return false;\n }\n let propCount = 0;\n let firstPropType = null;\n for (const key in cell) {\n if (!firstPropType) {\n firstPropType = Object.prototype.toString.call(cell[key]);\n }\n propCount++;\n }\n return propCount === 1 && firstPropType === \"[object Array]\";\n }\n\n rowToTable(cell, __row, node) {\n if (this.isChildDataset(cell)) { // Don't display \"Row\" as a header ---\n for (const key in cell) {\n this.rowToTable(cell[key], __row, node);\n }\n return;\n }\n\n const table = domConstruct.create(\"table\", { border: 1, cellspacing: 0, width: \"100%\" }, node);\n switch (Object.prototype.toString.call(cell)) {\n case \"[object Object]\":\n let tr = domConstruct.create(\"tr\", null, table);\n for (const key in cell) {\n domConstruct.create(\"th\", { innerHTML: safeEncode(key) }, tr);\n }\n tr = domConstruct.create(\"tr\", null, table);\n for (const key in cell) {\n switch (Object.prototype.toString.call(cell[key])) {\n case \"[object Object]\":\n case \"[object Array]\":\n this.rowToTable(cell[key], __row, node);\n break;\n default:\n domConstruct.create(\"td\", { innerHTML: safeEncode(cell[key]) }, tr);\n break;\n }\n }\n break;\n case \"[object Array]\":\n for (let i = 0; i < cell.length; ++i) {\n switch (Object.prototype.toString.call(cell[i])) {\n case \"[object Boolean]\":\n case \"[object Number]\":\n case \"[object String]\":\n // Item in Scalar ---\n const tr1 = domConstruct.create(\"tr\", null, table);\n domConstruct.create(\"td\", { innerHTML: safeEncode(cell[i]) }, tr1);\n break;\n default:\n // Child Dataset ---\n if (i === 0) {\n const tr2 = domConstruct.create(\"tr\", null, table);\n for (const key in cell[i]) {\n domConstruct.create(\"th\", { innerHTML: safeEncode(key) }, tr2);\n }\n }\n domConstruct.create(\"tr\", null, table);\n for (const key in cell[i]) {\n if (cell[i][key]) {\n if (Object.prototype.toString.call(cell[i][key]) === \"[object Object]\" || Object.prototype.toString.call(cell[i][key]) === \"[object Array]\") {\n const td = domConstruct.create(\"td\", null, tr1);\n this.rowToTable(cell[i][key], cell[i], td);\n } else if (key.indexOf(\"__html\", key.length - \"__html\".length) !== -1) {\n domConstruct.create(\"td\", { innerHTML: cell[i][key] }, tr1);\n } else if (key.indexOf(\"__javascript\", key.length - \"__javascript\".length) !== -1) {\n /*const td = */ domConstruct.create(\"td\", null, tr1);\n // this.injectJavascript(cell[i][key], cell[i], td);\n } else {\n const val = cell[i][key];\n domConstruct.create(\"td\", { innerHTML: safeEncode(val) }, tr1);\n }\n } else {\n domConstruct.create(\"td\", { innerHTML: \"\" }, tr1);\n }\n }\n }\n }\n break;\n }\n }\n\n getIdentity(row) {\n return row.__hpcc_id;\n }\n\n _request(start, end): Promise<{ totalLength: number, data: any[] }> {\n if (!this.wuResult) return Promise.resolve({ totalLength: 0, data: [] });\n const cacheKey = `${start}->${end}`;\n if (this._cache[cacheKey]) return this._cache[cacheKey];\n const retVal = this.wuResult.fetchRows(start, end - start, false, this._filter).then((rows: any[]) => {\n return {\n totalLength: this.wuResult.Total,\n data: rows.map((row, idx) => {\n const formattedRow: any = this.rowFormatter.format(row);\n formattedRow.__hpcc_id = start + idx;\n formattedRow.__hpcc_orig = row;\n return formattedRow;\n })\n };\n });\n this._cache[cacheKey] = retVal;\n return retVal;\n }\n\n fetchRange(options): Promise<any[]> {\n const retVal = new Deferred();\n this._request(options.start, options.end).then(response => retVal.resolve(response));\n return new QueryResults(retVal.then(response => response.data), {\n totalLength: retVal.then(response => response.totalLength)\n });\n }\n}\n","import { Workunit, WUStateID } from \"@hpcc-js/comms\";\nimport { Edge, Graph, Vertex } from \"@hpcc-js/graph\";\nimport { hashSum, IObserverHandle } from \"@hpcc-js/util\";\n\nexport enum STATUS {\n CREATE = \"Created\",\n COMPILE = \"Compiled\",\n EXECUTE = \"Executed\",\n COMPLETE = \"Completed\"\n}\n\nexport enum STATUS_ACTIVE {\n CREATE = \"Creating\",\n COMPILE = \"Compiling\",\n EXECUTE = \"Executing\",\n COMPLETE = \"Completed\"\n}\n\nexport class WUStatus extends Graph {\n\n protected _wu: Workunit;\n protected _wuHandle: IObserverHandle;\n\n protected _create: Vertex;\n protected _compile: Vertex;\n protected _execute: Vertex;\n protected _complete: Vertex;\n\n constructor() {\n super();\n this\n .zoomable(false)\n .zoomToFitLimit(1)\n .layout(\"Hierarchy\")\n .hierarchyRankDirection(\"LR\")\n .showToolbar(false)\n .allowDragging(false)\n ;\n }\n\n private _prevHash;\n attachWorkunit() {\n const hash = hashSum({\n baseUrl: this.baseUrl(),\n wuid: this.wuid()\n });\n if (this._prevHash !== hash) {\n this._prevHash = hash;\n this._wu = Workunit.attach({ baseUrl: this.baseUrl() }, this.wuid());\n if (this._wuHandle) {\n this._wuHandle.release();\n }\n this._wuHandle = this._wu.watch(changes => {\n this.lazyRender();\n });\n }\n }\n\n createVertex(faChar: string) {\n return new Vertex()\n .icon_diameter(32)\n .icon_shape_colorFill(\"none\")\n .icon_shape_colorStroke(\"none\")\n .icon_image_colorFill(\"darkgray\")\n .iconAnchor(\"middle\")\n .textbox_shape_colorFill(\"none\")\n .textbox_shape_colorStroke(\"none\")\n .textbox_text_colorFill(\"darkgray\")\n .faChar(faChar)\n ;\n }\n\n updateVertex(vertex: Vertex, color: string) {\n vertex\n .icon_image_colorFill(color)\n .textbox_text_colorFill(color)\n ;\n }\n\n updateVertexStatus(level: 0 | 1 | 2 | 3 | 4, active: boolean = false) {\n const completeColor = this._wu.isFailed() ? \"darkred\" : \"darkgreen\";\n this._create.text(STATUS.CREATE);\n this._compile.text(STATUS.COMPILE);\n this._execute.text(STATUS.EXECUTE);\n this._complete.text(STATUS.COMPLETE);\n switch (level) {\n case 0:\n this.updateVertex(this._create, \"darkgray\");\n this.updateVertex(this._compile, \"darkgray\");\n this.updateVertex(this._execute, \"darkgray\");\n this.updateVertex(this._complete, \"darkgray\");\n break;\n case 1:\n this._create.text(STATUS_ACTIVE.CREATE);\n this.updateVertex(this._create, active ? \"orange\" : completeColor);\n this.updateVertex(this._compile, \"darkgray\");\n this.updateVertex(this._execute, \"darkgray\");\n this.updateVertex(this._complete, \"darkgray\");\n break;\n case 2:\n this._compile.text(STATUS_ACTIVE.COMPILE);\n this.updateVertex(this._create, completeColor);\n this.updateVertex(this._compile, active ? \"orange\" : completeColor);\n this.updateVertex(this._execute, completeColor);\n this.updateVertex(this._complete, \"darkgray\");\n break;\n case 3:\n this._execute.text(STATUS_ACTIVE.EXECUTE);\n this.updateVertex(this._create, completeColor);\n this.updateVertex(this._compile, completeColor);\n this.updateVertex(this._execute, active ? \"orange\" : completeColor);\n this.updateVertex(this._complete, \"darkgray\");\n break;\n case 4:\n this.updateVertex(this._create, completeColor);\n this.updateVertex(this._compile, completeColor);\n this.updateVertex(this._execute, completeColor);\n this.updateVertex(this._complete, completeColor);\n break;\n }\n }\n\n createEdge(source, target) {\n return new Edge()\n .sourceVertex(source)\n .targetVertex(target)\n .strokeColor(\"black\")\n .showArc(false)\n ;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._create = this.createVertex(\"\\uf11d\");\n this._compile = this.createVertex(\"\\uf085\");\n this._execute = this.createVertex(\"\\uf275\");\n this._complete = this.createVertex(\"\\uf11e\");\n const e1 = this.createEdge(this._create, this._compile);\n const e2 = this.createEdge(this._compile, this._execute);\n const e3 = this.createEdge(this._execute, this._complete);\n this.data({\n vertices: [this._create, this._compile, this._execute, this._complete],\n edges: [e1, e2, e3]\n });\n }\n\n update(domNode, element) {\n this.attachWorkunit();\n switch (this._wu.StateID) {\n case WUStateID.Blocked:\n case WUStateID.Wait:\n case WUStateID.Scheduled:\n case WUStateID.UploadingFiled:\n this.updateVertexStatus(1);\n break;\n case WUStateID.Compiling:\n this.updateVertexStatus(2, true);\n break;\n case WUStateID.Submitted:\n this.updateVertexStatus(1, true);\n break;\n case WUStateID.Compiled:\n this.updateVertexStatus(2);\n break;\n case WUStateID.Aborting:\n case WUStateID.Running:\n this.updateVertexStatus(3, true);\n break;\n case WUStateID.Aborted:\n case WUStateID.Archived:\n case WUStateID.Completed:\n this.updateVertexStatus(4);\n break;\n case WUStateID.Failed:\n this.updateVertexStatus(4, false);\n break;\n case WUStateID.DebugPaused:\n case WUStateID.DebugRunning:\n case WUStateID.Paused:\n case WUStateID.Unknown:\n default:\n this.updateVertexStatus(0);\n break;\n }\n super.update(domNode, element);\n this.zoomToFit();\n }\n\n exit(domNode, element) {\n if (this._wuHandle) {\n this._wuHandle.release();\n }\n super.exit(domNode, element);\n }\n}\nWUStatus.prototype._class += \" eclwatch_WUStatus\";\n\nexport interface WUStatus {\n baseUrl(): string;\n baseUrl(_: string): this;\n wuid(): string;\n wuid(_: string): this;\n}\n\nWUStatus.prototype.publish(\"baseUrl\", \"\", \"string\", \"HPCC Platform Base URL\");\nWUStatus.prototype.publish(\"wuid\", \"\", \"string\", \"Workunit ID\");\n","import { publish } from \"@hpcc-js/common\";\nimport { ResultFilter, IOptions, Result } from \"@hpcc-js/comms\";\nimport { Common } from \"@hpcc-js/dgrid\";\nimport { hashSum } from \"@hpcc-js/util\";\nimport { Store } from \"./WUResultStore\";\n\nexport class WUResult extends Common {\n\n protected _result: Result;\n protected _localStore: Store;\n\n constructor() {\n super();\n this.renderHtml(false);\n }\n\n @publish(\"\", \"string\", \"URL to WsWorkunits\")\n baseUrl: { (): string, (_: string): WUResult };\n @publish(undefined, \"string\", \"Workunit ID\")\n user: { (): string, (_: string): WUResult };\n @publish(undefined, \"string\", \"User ID\")\n password: { (): string, (_: string): WUResult };\n @publish(undefined, \"string\", \"Password\")\n wuid: { (): string, (_: string): WUResult };\n @publish(undefined, \"string\", \"Result Name\")\n resultName: { (): string, (_: string): WUResult };\n @publish(undefined, \"number\", \"Sequence Number\")\n sequence: { (): number, (_: number): WUResult };\n @publish(\"\", \"string\", \"NodeGroup\")\n nodeGroup: { (): string, (_: string): WUResult };\n @publish(\"\", \"string\", \"Logical File Name\")\n logicalFile: { (): string, (_: string): WUResult };\n @publish({}, \"object\", \"Filter\")\n filter: { (): ResultFilter, (_: ResultFilter): WUResult };\n\n hashSum(opts: any = {}) {\n return hashSum({\n baseUrl: this.baseUrl(),\n wuid: this.wuid(),\n resultName: this.resultName(),\n sequence: this.sequence(),\n nodeGroup: this.nodeGroup(),\n logicalFile: this.logicalFile(),\n userID: this.user(),\n password: this.password(),\n ...opts\n });\n }\n\n protected _prevResultHash: string;\n calcResult(): Result | null {\n const resultHash = this.hashSum();\n if (this._prevResultHash !== resultHash) {\n this._prevResultHash = resultHash;\n\n const opts: IOptions = {\n baseUrl: this.baseUrl(),\n userID: this.user(),\n password: this.password()\n };\n if (this.wuid() && this.resultName()) {\n this._result = Result.attach(opts, this.wuid(), this.resultName());\n } else if (this.wuid() && this.sequence() !== undefined) {\n this._result = Result.attach(opts, this.wuid(), this.sequence());\n } else if (this.logicalFile() && this.nodeGroup()) {\n this._result = Result.attachLogicalFile(opts, this.nodeGroup(), this.logicalFile());\n } else if (this.logicalFile()) {\n this._result = Result.attachLogicalFile(opts, \"\", this.logicalFile());\n }\n }\n return this._result;\n }\n\n fetch(row, count, abortController = new AbortController()): Promise<object[]> {\n const result = this.calcResult();\n if (result) {\n return result.fetchRows(row, count, false, {}, abortController.signal);\n }\n return Promise.resolve([]);\n }\n\n protected _prevStoreHash: string;\n protected _prevQueryHash: string;\n update(domNode, element) {\n super.update(domNode, element);\n const storeHash = this.hashSum({\n renderHtml: this.renderHtml(),\n filter: this.filter()\n });\n if (this._prevStoreHash !== storeHash) {\n this._prevStoreHash = storeHash;\n const result = this.calcResult();\n if (result) {\n result.fetchXMLSchema().then(schema => {\n this._localStore = new Store(result, schema, this.renderHtml(), this.filter());\n this._dgrid?.set(\"columns\", this._localStore.columns());\n this._dgrid?.set(\"collection\", this._localStore);\n });\n }\n }\n }\n\n click(row, col, sel) {\n }\n}\nWUResult.prototype._class += \" eclwatch_WUResult\";\n","import { Palette } from \"@hpcc-js/common\";\nimport { Scope, Workunit, WsWorkunits } from \"@hpcc-js/comms\";\nimport { ReactTimelineSeries } from \"@hpcc-js/timeline\";\nimport { hashSum, RecursivePartial } from \"@hpcc-js/util\";\n\nimport \"../src/WUGraph.css\";\n\nconst columns = [\"label\", \"start\", \"end\", \"icon\", \"color\", \"series\"];\n\nexport class WUTimeline extends ReactTimelineSeries {\n\n protected _palette = Palette.ordinal(\"default\");\n\n constructor() {\n super();\n this\n .columns(columns)\n .titleColumn(\"label\")\n .iconColumn(\"icon\")\n .colorColumn(\"color\")\n .seriesColumn(\"series\")\n .timePattern(\"%Y-%m-%dT%H:%M:%S.%LZ\")\n .tickFormat(\"%H:%M\")\n .tooltipTimeFormat(\"%H:%M:%S.%L\")\n .tooltipHTML(d => {\n return d[columns.length].calcTooltip();\n })\n ;\n }\n\n private _prevHashSum;\n clear(): this {\n delete this._prevHashSum;\n return this;\n }\n fetchScopes() {\n const hash = hashSum({\n baseUrl: this.baseUrl(),\n wuid: this.wuid(),\n request: this.request()\n });\n if (this._prevHashSum !== hash) {\n this._prevHashSum = hash;\n const wu = Workunit.attach({ baseUrl: this.baseUrl() }, this.wuid());\n wu.fetchDetails(this.request()).then(scopes => {\n return scopes.filter(scope => scope.Id && scope.attr(\"WhenStarted\").RawValue).map((scope: Scope) => {\n const whenStarted = +scope.attr(\"WhenStarted\").RawValue / 1000;\n const timeElapsed = +scope.attr(\"TimeElapsed\").RawValue / 1000000;\n return [\n scope.Id,\n new Date(whenStarted).toISOString(),\n timeElapsed ? new Date(whenStarted + timeElapsed).toISOString() : undefined,\n null,\n this._palette(scope.ScopeType),\n scope.ScopeName.split(\"::\").join(\":\").split(\":\").slice(0, 1),\n scope\n ];\n });\n }).then(scopes => {\n this\n .data(scopes)\n .render()\n ;\n });\n }\n }\n\n enter(domNode, _element) {\n super.enter(domNode, _element);\n }\n\n update(domNode, element) {\n this.fetchScopes();\n super.update(domNode, element);\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n}\nWUTimeline.prototype._class += \" eclwatch_WUTimeline\";\n\nexport interface WUTimeline {\n baseUrl(): string;\n baseUrl(_: string): this;\n wuid(): string;\n wuid(_: string): this;\n request(): Partial<WsWorkunits.WUDetails>;\n request(_: RecursivePartial<WsWorkunits.WUDetails>): this;\n}\n\nWUTimeline.prototype.publish(\"baseUrl\", \"\", \"string\", \"HPCC Platform Base URL\");\nWUTimeline.prototype.publish(\"wuid\", \"\", \"string\", \"Workunit ID\");\nWUTimeline.prototype.publish(\"request\", {\n ScopeFilter: {\n MaxDepth: 3,\n ScopeTypes: [\"graph\", \"subgraph\"]\n },\n NestedFilter: {\n Depth: 0,\n ScopeTypes: []\n },\n PropertiesToReturn: {\n AllProperties: false,\n AllStatistics: true,\n AllHints: false,\n Properties: [\"WhenStarted\", \"TimeElapsed\"]\n },\n ScopeOptions: {\n IncludeId: true,\n IncludeScope: true,\n IncludeScopeType: true\n },\n PropertyOptions: {\n IncludeName: true,\n IncludeRawValue: true,\n IncludeFormatted: true,\n IncludeMeasure: true,\n IncludeCreator: false,\n IncludeCreatorType: false\n }\n}, \"object\", \"WUDetails Request\");\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__metadata","metadataKey","metadataValue","metadata","__spreadArray","to","from","pack","ar","l","slice","concat","SuppressedError","ECLArchiveViewer","_super","_this","_directoryPane","DirectoryTree","_fileEditorPane","Editor","text","rowClick","render","transformArchiveTreeData","json","ret","label","name","children","_children","map","transformNode","node","_node","filter","content","trim","JSON","stringify","updateDirectoryPane","contentStr","parse","e","xml2json","_data","data","enter","domNode","element","addWidget","update","hash","hashSum","baseUrl","wuid","_prevHash","_contentStr","Workunit","attach","fetchArchive","then","resp","relativeSizes","directoryWidthRatio","SplitPanel","styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","_class","publish","publishProxy","LegendVertex","_icon","on","click","kind","Vertex","WUGraphLegend","icon","d3Local","_disabled2","disabled","_","retVal","push","forEach","toggle","context","items","_g","selectAll","append","attr","each","set","textbox_shape_colorStroke","textbox_shape_colorFill","iconAnchor","faChar","count","tooltip","mouseover","mouseout","merge","bbox","get","icon_shape_colorFill","getBBox","d3Select","width","exit","remove","height","Legend","faCharFactory","WUScopeController","subgraphsMap","rSubgraphsMap","verticesMap","rVerticesMap","edgesMap","rEdgesMap","kindMap","_disabled","clear","masterGraph","graphDB","graphGui","walk","item","UtilSubgraph","UtilVertex","RawValue","subgraphs","vertices","edges","hierarchy","subgraph","appendSubgraph","showMinMax","minState","appendVertex","UtilEdge","appendEdge","format","labelTpl","obj","lpos","indexOf","rpos","substring","console","warn","split","join","createSubgraph","sg","Id","Subgraph","title","minClick","id","createVertex","vertex","v","attrs","rawAttrs","ScopeType","parent_1","parent","Icon","shape_colorFill","shape_colorStroke","image_colorFill","icon_image_colorFill","annotations","hasAttr","annotationIcons","isSpill","edge","sourceKind","source","targetKind","spansSubgraph","createEdge","sourceV","targetV","strokeDasharray","weight","Edge","sourceVertex","targetVertex","sourceMarker","targetMarker","child","filterLegend","this_1","BaseScope","ScopeName","Properties","Property","Notes","Note","SinkActivity","filterPartial","_i","_a","vShow","vHide","_b","childVertices_1","inEdges","some","outEdges","dummyDetails","Name","Formatted","Measure","Creator","CreatorType","dummyScope","dummyVertex","_c","vHide_1","_d","_e","dummyEdgeScope","_f","filterEmptySubgraphs","emptySubgraphs","removeObsoleteSubgraphs","graphData","clone","calcLegend","parseInt","formatRow","columns","row","formattedAttrs","idx","undefined","activityData","edgeData","subgraphData","calcGraphTooltip","scope","parentScope","calcTooltip","WUGraph","_partialAll","Button","stateClick","_maxAll","_toggleGraph","ToggleButton","selected","viewClick","_toggleActivities","_toggleEdges","_toggleSubgraphs","_graph","GraphWidget","layout","applyScaleOnLayout","showToolbar","allowDragging","_activities","Table","pagination","_edges","_subgraphs","_legend","_gc","highlightVerticies","_view","Carousel","widgets","topOverlay","widget","buttons","Spacer","iconBarButtons","loadGraph","w","selection","centerOnItem","tooltipHTML","sourceB","sourceTB","active","fetchScopeGraph","graphID","subgraphID","_prevScopeGraph","_prevHashSum","Promise","resolve","startProgress","fetchGraphs","graphs","graphs_1","graph","finishProgress","scopeGraph","_element","callback","scopedGraph","ChartPanel","safeEncode","toString","replace","STATUS","STATUS_ACTIVE","Store","wuResult","schema","renderHtml","_cache","_filter","_columns","schema2Columns","root","rowFormatter","RowFormatter","parentNode","prefix","keyed","column","field","leafID","className","sortable","isSet","reduce","prev","childNode","charWidth","formatter","cell","html","isChildDataset","propCount","firstPropType","rowToTable","__row","table","domConstruct","border","cellspacing","tr","innerHTML","tr1","tr2","td","val","getIdentity","__hpcc_id","_request","start","end","totalLength","cacheKey","fetchRows","rows","Total","formattedRow","__hpcc_orig","fetchRange","options","Deferred","response","QueryResults","WUResult","opts","resultName","sequence","nodeGroup","logicalFile","userID","user","password","calcResult","resultHash","_prevResultHash","_result","Result","attachLogicalFile","fetch","abortController","AbortController","result","signal","storeHash","_prevStoreHash","result_1","fetchXMLSchema","_localStore","_dgrid","col","sel","Common","WUStatus","zoomable","zoomToFitLimit","hierarchyRankDirection","attachWorkunit","_wu","_wuHandle","release","watch","changes","lazyRender","icon_diameter","icon_shape_colorStroke","textbox_text_colorFill","updateVertex","color","updateVertexStatus","level","completeColor","isFailed","_create","CREATE","_compile","COMPILE","_execute","EXECUTE","_complete","COMPLETE","strokeColor","showArc","e1","e2","e3","StateID","WUStateID","Blocked","Wait","Scheduled","UploadingFiled","Compiling","Submitted","Compiled","Aborting","Running","Aborted","Archived","Completed","Failed","DebugPaused","DebugRunning","Paused","Unknown","zoomToFit","Graph","WUTimeline","_palette","Palette","ordinal","titleColumn","iconColumn","colorColumn","seriesColumn","timePattern","tickFormat","tooltipTimeFormat","fetchScopes","request","fetchDetails","scopes","whenStarted","timeElapsed","Date","toISOString","ReactTimelineSeries","ScopeFilter","MaxDepth","ScopeTypes","NestedFilter","Depth","PropertiesToReturn","AllProperties","AllStatistics","AllHints","ScopeOptions","IncludeId","IncludeScope","IncludeScopeType","PropertyOptions","IncludeName","IncludeRawValue","IncludeFormatted","IncludeMeasure","IncludeCreator","IncludeCreatorType"],"sources":["../src/__package__.ts","../../../node_modules/tslib/tslib.es6.mjs","../src/ECLArchiveViewer.ts","../../../node_modules/style-inject/dist/style-inject.es.js","../src/WUGraphLegend.ts","../src/WUScopeController.ts","../src/WUGraph.ts","../src/WUResultStore.ts","../src/WUStatus.ts","../src/WUResult.ts","../src/WUTimeline.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/eclwatch\";\nexport const PKG_VERSION = \"2.76.0\";\nexport const BUILD_VERSION = \"2.107.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, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\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 var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport 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","import { Editor } from \"@hpcc-js/codemirror\";\nimport { Workunit } from \"@hpcc-js/comms\";\nimport { SplitPanel } from \"@hpcc-js/phosphor\";\nimport { DirectoryTree } from \"@hpcc-js/tree\";\nimport { hashSum, xml2json } from \"@hpcc-js/util\";\n\nexport class ECLArchiveViewer extends SplitPanel {\n private _prevHash;\n private _contentStr;\n public _directoryPane = new DirectoryTree();\n public _fileEditorPane = new Editor()\n .text(\"\")\n ;\n\n constructor() {\n super(\"horizontal\");\n this._directoryPane.rowClick = (text) => {\n this._fileEditorPane\n .text(text)\n .render()\n ;\n };\n }\n\n protected transformArchiveTreeData(json) {\n const ret = {\n label: json.name,\n children: json._children.map(transformNode).filter(n => n)\n };\n\n if (ret.children && ret.children[0] && ret.children[0].label === \"html\") {\n // must be parsererror\n return {\n label: \"root\",\n children: [\n {\n label: \"error\",\n content: JSON.stringify(ret, null, 4)\n }\n ]\n };\n }\n return ret;\n\n function transformNode(node) {\n const _node: any = {};\n _node.label = node.name + (node[\"$\"] && node[\"$\"].key ? ` (${node[\"$\"].key})` : \"\");\n if (node._children && node._children.length > 0) {\n _node.children = node._children.map(_node => {\n return transformNode(_node);\n })\n .filter(n => n)\n ;\n } else if (typeof node.content === \"string\" && node.content.trim()) {\n _node.content = node.content;\n } else {\n return false;\n }\n return _node;\n }\n }\n\n updateDirectoryPane(contentStr) {\n let json;\n if (contentStr) {\n try {\n json = JSON.parse(contentStr);\n } catch (e) {\n json = xml2json(contentStr);\n }\n }\n if (json) {\n const _data = this.transformArchiveTreeData(json);\n this._directoryPane\n .data(_data)\n .render()\n ;\n }\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this\n .addWidget(this._directoryPane)\n .addWidget(this._fileEditorPane)\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n const hash = hashSum({\n baseUrl: this.baseUrl(),\n wuid: this.wuid()\n });\n\n if (this._prevHash !== hash || typeof this._contentStr === \"undefined\") {\n Workunit.attach({ baseUrl: this.baseUrl() }, this.wuid())\n .fetchArchive()\n .then(resp => {\n\n this._contentStr = resp;\n this.updateDirectoryPane(this._contentStr);\n\n this._prevHash = hash;\n });\n } else {\n this.updateDirectoryPane(this._contentStr);\n }\n\n this.relativeSizes([this.directoryWidthRatio(), 1 - this.directoryWidthRatio()]);\n }\n}\nECLArchiveViewer.prototype._class += \" eclwatch_ECLArchiveViewer\";\n\nexport interface ECLArchiveViewer {\n directoryPaneColor(): string;\n directoryPaneColor(_: string): this;\n directoryPaneHoverColor(): string;\n directoryPaneHoverColor(_: string): this;\n fontColor(): string;\n fontColor(_: string): this;\n fontFamily(): string;\n fontFamily(_: string): this;\n fontSize(): number;\n fontSize(_: number): this;\n fileIconSize(): number;\n fileIconSize(_: number): this;\n folderIconOpen(): string;\n folderIconOpen(_: string): this;\n folderIconClosed(): string;\n folderIconClosed(_: string): this;\n textFileIcon(): string;\n textFileIcon(_: string): this;\n codeFileIcon(): string;\n codeFileIcon(_: string): this;\n verticalScroll(): boolean;\n verticalScroll(_: boolean): this;\n directoryWidthRatio(): number;\n directoryWidthRatio(_: number): this;\n baseUrl(): string;\n baseUrl(_: string): this;\n wuid(): string;\n wuid(_: string): this;\n}\nECLArchiveViewer.prototype.publish(\"baseUrl\", \"\", \"string\", \"HPCC Platform Base URL\");\nECLArchiveViewer.prototype.publish(\"wuid\", \"\", \"string\", \"Workunit ID\");\nECLArchiveViewer.prototype.publish(\"directoryWidthRatio\", 0.38, \"number\", \"Default directory panel width ratio relative to the full width\");\nECLArchiveViewer.prototype.publish(\"contentString\", null, \"string\", \"XML/JSON archive content string\");\nECLArchiveViewer.prototype.publishProxy(\"directoryPaneColor\", \"_directoryPane\", \"backgroundColor\");\nECLArchiveViewer.prototype.publishProxy(\"directoryPaneHoverColor\", \"_directoryPane\", \"hoverBackgroundColor\");\nECLArchiveViewer.prototype.publishProxy(\"iconSize\", \"_directoryPane\");\nECLArchiveViewer.prototype.publishProxy(\"fontColor\", \"_directoryPane\");\nECLArchiveViewer.prototype.publishProxy(\"fontFamily\", \"_directoryPane\");\nECLArchiveViewer.prototype.publishProxy(\"fontSize\", \"_directoryPane\");\nECLArchiveViewer.prototype.publishProxy(\"folderIconOpen\", \"_directoryPane\");\nECLArchiveViewer.prototype.publishProxy(\"folderIconClosed\", \"_directoryPane\");\nECLArchiveViewer.prototype.publishProxy(\"textFileIcon\", \"_directoryPane\");\nECLArchiveViewer.prototype.publishProxy(\"codeFileIcon\", \"_directoryPane\");\nECLArchiveViewer.prototype.publishProxy(\"verticalScroll\", \"_directoryPane\");\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 { Vertex } from \"@hpcc-js/graph\";\nimport { Legend } from \"@hpcc-js/layout\";\nimport { local as d3Local, select as d3Select } from \"d3-selection\";\n\nimport \"../src/WUGraphLegend.css\";\n\nexport interface WUGraphLegendData {\n kind: number;\n faChar: string;\n label: string;\n count: number;\n}\n\nclass LegendVertex extends Vertex {\n\n constructor() {\n super();\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._icon.on(\"click\", () => {\n this.click(this.data());\n });\n }\n\n click(kind: number) {\n }\n}\n\nexport class WUGraphLegend extends Legend {\n\n private icon = d3Local<Vertex>();\n protected _disabled2: { [kind: number]: boolean } = {\n /* TODO: Default some to disabled?\n 43: true,\n 71: true,\n 82: true,\n 88: true\n */\n };\n\n disabled(): number[];\n disabled(_: number[]): this;\n disabled(_?: number[]): number[] | this {\n if (!arguments.length) {\n const retVal = [];\n for (const key in this._disabled2) {\n if (this._disabled2[key]) {\n retVal.push(key);\n }\n }\n return retVal;\n }\n this._disabled2 = {};\n _.forEach(kind => this._disabled2[kind] = true);\n return this;\n }\n\n toggle(kind: number) {\n this._disabled2[kind] = !this._disabled2[kind];\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n const context = this;\n const items = this._g.selectAll(\".legendItem\").data(this.data(), (d: any) => d.kind);\n items.enter().append(\"g\")\n .attr(\"class\", \"legendItem\")\n .each(function (this: HTMLElement, d) {\n context.icon.set(this, new LegendVertex()\n .target(this)\n .data(d.kind)\n .textbox_shape_colorStroke(\"none\")\n .textbox_shape_colorFill(\"none\")\n .iconAnchor(\"left\")\n .faChar(d.faChar)\n .text(`${d.label} (${d.count})`)\n .tooltip(`${d.kind} - ${d.label}`)\n .on(\"click\", kind => {\n context.toggle(kind);\n context.render();\n context.click(kind);\n })\n .on(\"mouseover\", kind => {\n context.mouseover(kind);\n })\n .on(\"mouseout\", kind => {\n context.mouseout(kind);\n })\n );\n })\n .merge(items)\n .each(function (this: HTMLElement, d, i) {\n const bbox = context.icon.get(this)\n .icon_shape_colorFill(context._disabled2[d.kind] ? \"gray\" : null)\n .render().getBBox();\n\n d3Select(this)\n .attr(\"transform\", `translate(${+bbox.width / 2}, ${i * 30})`)\n ;\n })\n ;\n items.exit()\n .each(function (this: HTMLElement, d) {\n context.icon.get(this)\n .target(null)\n .render();\n })\n .remove();\n const bbox = this.getBBox(true, true);\n this._g.attr(\"transform\", `translate(16, ${this.height() / 2 - bbox.height / 2})`);\n }\n\n // Events ---\n click(kind: number) {\n }\n\n mouseover(kind: number) {\n }\n\n mouseout(kind: number) {\n }\n}\nWUGraphLegend.prototype._class += \" eclwatch_WUGraphLegend\";\n","import { Icon } from \"@hpcc-js/common\";\nimport { BaseScope, ScopeEdge, ScopeGraph, ScopeSubgraph, ScopeVertex } from \"@hpcc-js/comms\";\nimport { Edge, IGraphData, Lineage, Subgraph, Vertex } from \"@hpcc-js/graph\";\nimport { Edge as UtilEdge, Subgraph as UtilSubgraph, Vertex as UtilVertex } from \"@hpcc-js/util\";\nimport { WUGraphLegendData } from \"./WUGraphLegend\";\n\nexport type VertexType = Vertex | Icon;\n\nexport interface MyGraphData {\n subgraphs: Subgraph[];\n vertices: VertexType[];\n edges: Edge[];\n hierarchy: Lineage[];\n}\n\nfunction faCharFactory(kind): string {\n switch (kind) {\n case \"2\": return \"\\uf0c7\"; // Disk Write\n case \"3\": return \"\\uf15d\"; // sort\n case \"5\": return \"\\uf0b0\"; // Filter\n case \"6\": return \"\\uf1e0\"; // Split\n case \"12\": return \"\\uf039\"; // First N\n case \"15\": return \"\\uf126\"; // Lightweight Join\n case \"17\": return \"\\uf126\"; // Lookup Join\n case \"22\": return \"\\uf1e6\"; // Pipe Output\n case \"23\": return \"\\uf078\"; // Funnel\n case \"25\": return \"\\uf0ce\"; // Inline Dataset\n case \"26\": return \"\\uf074\"; // distribute\n case \"29\": return \"\\uf005\"; // Store Internal Result\n case \"36\": return \"\\uf128\"; // If\n case \"44\": return \"\\uf0c7\"; // write csv\n case \"47\": return \"\\uf0c7\"; // write\n case \"54\": return \"\\uf013\"; // Workunit Read\n case \"56\": return \"\\uf0c7\"; // Spill\n case \"59\": return \"\\uf126\"; // Merge\n case \"61\": return \"\\uf0c7\"; // write xml\n case \"82\": return \"\\uf1c0\"; // Projected Disk Read Spill\n case \"88\": return \"\\uf1c0\"; // Projected Disk Read Spill\n case \"92\": return \"\\uf129\"; // Limted Index Read\n case \"93\": return \"\\uf129\"; // Limted Index Read\n case \"99\": return \"\\uf1c0\"; // CSV Read\n case \"105\": return \"\\uf1c0\"; // CSV Read\n\n case \"7\": return \"\\uf090\"; // Project\n case \"9\": return \"\\uf0e2\"; // Local Iterate\n case \"16\": return \"\\uf005\"; // Output Internal\n case \"19\": return \"\\uf074\"; // Hash Distribute\n case \"21\": return \"\\uf275\"; // Normalize\n case \"35\": return \"\\uf0c7\"; // CSV Write\n case \"37\": return \"\\uf0c7\"; // Index Write\n case \"71\": return \"\\uf1c0\"; // Disk Read Spill\n case \"133\": return \"\\uf0ce\"; // Inline Dataset\n case \"148\": return \"\\uf0ce\"; // Inline Dataset\n case \"168\": return \"\\uf275\"; // Local Denormalize\n }\n return \"\\uf063\";\n}\n\nexport class WUScopeController {\n private graphDB: ScopeGraph;\n private subgraphsMap: { [id: string]: Subgraph } = {};\n private rSubgraphsMap: { [id: string]: ScopeSubgraph } = {};\n private verticesMap: { [id: string]: VertexType } = {};\n private rVerticesMap: { [id: string]: ScopeVertex } = {};\n private edgesMap: { [id: string]: Edge } = {};\n private rEdgesMap: { [id: string]: ScopeEdge } = {};\n private kindMap: { [id: string]: ScopeVertex[] } = {};\n\n protected _disabled: { [kind: number]: boolean } = {};\n\n constructor() {\n }\n\n clear() {\n this.subgraphsMap = {};\n this.rSubgraphsMap = {};\n this.verticesMap = {};\n this.rVerticesMap = {};\n this.edgesMap = {};\n this.rEdgesMap = {};\n }\n\n set(masterGraph: ScopeGraph) {\n this.graphDB = masterGraph;\n this.graphGui(this.graphDB);\n\n this.kindMap = {};\n this.graphDB.walk(item => {\n if (item instanceof UtilSubgraph) {\n } else if (item instanceof UtilVertex) {\n const kind = item._.attr(\"Kind\").RawValue;\n if (!this.kindMap[kind]) {\n this.kindMap[kind] = [];\n }\n this.kindMap[kind].push(item);\n } else if (item instanceof UtilEdge) {\n }\n });\n }\n\n disabled(): number[];\n disabled(_: number[]): this;\n disabled(_?: number[]): number[] | this {\n if (!arguments.length) {\n const retVal = [];\n for (const key in this._disabled) {\n if (this._disabled[key]) {\n retVal.push(key);\n }\n }\n return retVal;\n }\n this._disabled = {};\n _.forEach(kind => this._disabled[kind] = true);\n return this;\n }\n\n graphGui(graphDB: ScopeGraph): IGraphData {\n const graphGui: MyGraphData = {\n subgraphs: [],\n vertices: [],\n edges: [],\n hierarchy: []\n };\n\n graphDB.walk((item) => {\n if (item instanceof UtilSubgraph) {\n const subgraph = this.appendSubgraph(item, graphGui.hierarchy, graphGui.subgraphs);\n subgraph.showMinMax(item.vertices.length > 3 || subgraph.minState() !== \"normal\");\n } else if (item instanceof UtilVertex) {\n this.appendVertex(item, graphGui.hierarchy, graphGui.vertices);\n } else if (item instanceof UtilEdge) {\n this.appendEdge(item, graphGui.edges);\n }\n });\n\n return graphGui;\n }\n\n format(labelTpl, obj) {\n let retVal = \"\";\n let lpos = labelTpl.indexOf(\"%\");\n let rpos = -1;\n while (lpos >= 0) {\n retVal += labelTpl.substring(rpos + 1, lpos);\n rpos = labelTpl.indexOf(\"%\", lpos + 1);\n if (rpos < 0) {\n console.warn(\"Invalid Label Template\");\n break;\n }\n const key = labelTpl.substring(lpos + 1, rpos);\n retVal += !key ? \"%\" : (obj[labelTpl.substring(lpos + 1, rpos)] || \"\");\n lpos = labelTpl.indexOf(\"%\", rpos + 1);\n }\n retVal += labelTpl.substring(rpos + 1, labelTpl.length);\n return retVal.split(\"\\\\n\").join(\"\\n\");\n }\n\n createSubgraph(subgraph: ScopeSubgraph): Subgraph {\n let sg = this.subgraphsMap[subgraph._.Id];\n if (!sg) {\n sg = new Subgraph()\n .title(subgraph._.Id)\n .on(\"minClick\", () => {\n this.minClick(sg);\n })\n ;\n this.subgraphsMap[subgraph._.Id] = sg;\n this.rSubgraphsMap[sg.id()] = subgraph;\n }\n return sg;\n }\n\n createVertex(vertex: ScopeVertex): VertexType {\n let v = this.verticesMap[vertex._.Id];\n if (!v) {\n const attrs = vertex._.rawAttrs();\n if (vertex._.ScopeType === \"dummy\") {\n const parent = this.subgraphsMap[vertex.parent._.Id];\n v = new Icon()\n .shape_colorFill(\"darkred\")\n .shape_colorStroke(\"darkred\")\n .image_colorFill(\"white\")\n .faChar(\"\\uf067\")\n .on(\"click\", () => {\n parent.minState(\"normal\");\n this.minClick(parent);\n })\n ;\n } else {\n v = new Vertex()\n .icon_shape_colorFill(\"#1f77b4\")\n .icon_image_colorFill(\"white\")\n .faChar(faCharFactory(attrs[\"Kind\"]))\n .text(attrs[\"Label\"])\n ;\n const annotations = [];\n if (vertex._.hasAttr(\"Definition\")) {\n annotations.push({\n faChar: \"\\uf036\",\n tooltip: \"Definition\",\n shape_colorFill: \"lightgray\",\n shape_colorStroke: \"lightgray\",\n image_colorFill: \"black\"\n });\n }\n if (vertex._.hasAttr(\"IsInternal\")) {\n annotations.push({\n faChar: \"\\uf085\",\n tooltip: \"IsInternal\",\n shape_colorFill: \"red\",\n shape_colorStroke: \"red\",\n image_colorFill: \"white\"\n });\n }\n v.annotationIcons(annotations);\n }\n this.verticesMap[vertex._.Id] = v;\n this.rVerticesMap[v.id()] = vertex;\n }\n return v;\n }\n\n isSpill(edge: ScopeEdge): boolean {\n const sourceKind = edge.source._.attr(\"Kind\").RawValue;\n const targetKind = edge.target._.attr(\"Kind\").RawValue;\n return sourceKind === \"2\" || targetKind === \"71\";\n }\n\n spansSubgraph(edge: ScopeEdge): boolean {\n return edge.source.parent._.Id !== edge.target.parent._.Id;\n }\n\n createEdge(edge: ScopeEdge): Edge | undefined {\n let e = this.edgesMap[edge._.Id];\n if (!e) {\n const attrs = edge._.rawAttrs();\n const sourceV = this.verticesMap[edge.source._.Id];\n const targetV = this.verticesMap[edge.target._.Id];\n if (sourceV && targetV) {\n const isSpill = this.isSpill(edge);\n const spansSubgraph = this.spansSubgraph(edge);\n\n const label = this.format(\"%Label%\\n%NumRowsProcessed%\", attrs);\n /* TODO: Add extra annotations once WUDetails is fixed...\n const numSlaves = parseInt(attrs[\"NumSlaves\"]);\n const numStarts = parseInt(attrs[\"NumStarts\"]);\n const numStops = parseInt(attrs[\"NumStops\"]);\n const started = numStarts > 0;\n const finished = numStops === numSlaves;\n const active = started && !finished;\n */\n\n let strokeDasharray = null;\n let weight = 100;\n if (attrs[\"IsDependency\"]) {\n weight = 10;\n strokeDasharray = \"1,5\";\n } else if (attrs[\"_childGraph\"]) {\n strokeDasharray = \"5,5\";\n } else if (isSpill) {\n weight = 25;\n strokeDasharray = \"5,5,10,5\";\n } else if (spansSubgraph) {\n weight = 5;\n strokeDasharray = \"5,5\";\n }\n e = new Edge()\n .sourceVertex(sourceV)\n .targetVertex(targetV)\n .sourceMarker(\"circle\")\n .targetMarker(\"arrow\")\n .weight(weight)\n .strokeDasharray(strokeDasharray)\n .text(label)\n ;\n this.edgesMap[edge._.Id] = e;\n this.rEdgesMap[e.id()] = edge;\n }\n }\n return e;\n }\n\n appendSubgraph(subgraph: ScopeSubgraph, hierarchy: Lineage[], subgraphs: Subgraph[]): Subgraph {\n const sg = this.createSubgraph(subgraph);\n subgraphs.push(sg);\n const parent = this.subgraphsMap[subgraph.parent._.Id];\n if (parent) {\n hierarchy.push({ parent, child: sg });\n }\n return sg;\n }\n\n appendVertex(vertex: ScopeVertex, hierarchy: Lineage[], vertices: VertexType[]): VertexType {\n const v = this.createVertex(vertex);\n vertices.push(v);\n const parent = this.subgraphsMap[vertex.parent._.Id];\n if (parent) {\n hierarchy.push({ parent, child: v });\n }\n return v;\n }\n\n appendEdge(edge: ScopeEdge, edges: Edge[]): Edge {\n const e = this.createEdge(edge);\n if (e) {\n edges.push(e);\n }\n return e;\n }\n\n filterLegend(graphDB: ScopeGraph) {\n for (let i = graphDB.vertices.length - 1; i >= 0; --i) {\n const vertex = graphDB.vertices[i];\n const kind = vertex._.attr(\"Kind\").RawValue;\n if (this._disabled[kind]) {\n vertex.remove(false, (source: BaseScope, target: BaseScope) => {\n return new BaseScope({\n ScopeName: vertex._.ScopeName + \":in\",\n Id: source.Id + \"->\" + target.Id,\n ScopeType: \"dummy-edge\",\n Properties: {\n Property: [vertex._.attr(\"Label\")]\n },\n Notes: {\n Note: []\n },\n SinkActivity: \"\"\n });\n });\n }\n }\n }\n\n filterPartial(graphDB: ScopeGraph) {\n for (const subgraph of graphDB.subgraphs) {\n const sg = this.subgraphsMap[subgraph._.Id];\n switch (sg.minState()) {\n case \"partial\":\n const childVertices: ReadonlyArray<ScopeVertex> = subgraph.vertices;\n const vShow: ScopeVertex[] = [];\n const vHide: ScopeVertex[] = [];\n\n for (const vertex of childVertices) {\n if (vertex.inEdges.length === 0 || vertex.inEdges.some(edge => edge.source.parent !== edge.target.parent) ||\n vertex.outEdges.length === 0 || vertex.outEdges.some(edge => edge.source.parent !== edge.target.parent)) {\n vShow.push(vertex);\n } else {\n vHide.push(vertex);\n }\n }\n\n if (vHide.length > 1) {\n const dummyDetails = {\n ScopeName: subgraph._.ScopeName,\n Id: subgraph._.Id + \":dummy\",\n ScopeType: \"dummy\",\n Properties: {\n Property: [{\n Name: \"Activities\",\n RawValue: \"\" + vHide.length,\n Formatted: \"\" + vHide.length,\n Measure: \"count\",\n Creator: \"\",\n CreatorType: \"\"\n }]\n },\n Notes: {\n Note: []\n },\n SinkActivity: \"\"\n };\n const dummyScope = new BaseScope(dummyDetails);\n const dummyVertex = subgraph.createVertex(dummyScope);\n\n for (const vertex of vHide) {\n for (const edge of vertex.inEdges) {\n if (vShow.indexOf(edge.source) >= 0) {\n const dummyEdgeScope = new BaseScope({\n ScopeName: edge.source._.ScopeName,\n Id: edge.source._.Id + \"->\" + dummyVertex._.Id,\n ScopeType: \"dummy-in\",\n Properties: {\n Property: []\n },\n Notes: {\n Note: []\n },\n SinkActivity: \"\"\n });\n subgraph.createEdge(edge.source, dummyVertex, dummyEdgeScope);\n }\n }\n for (const edge of vertex.outEdges) {\n if (vShow.indexOf(edge.target) >= 0) {\n const dummyEdgeScope = new BaseScope({\n ScopeName: edge.target._.ScopeName,\n Id: dummyVertex._.Id + \"->\" + edge.target._.Id,\n ScopeType: \"dummy-out\",\n Properties: {\n Property: []\n },\n Notes: {\n Note: []\n },\n SinkActivity: \"\"\n });\n subgraph.createEdge(dummyVertex, edge.target, dummyEdgeScope);\n }\n }\n }\n vHide.forEach(vertex => vertex.remove(true));\n }\n break;\n }\n }\n }\n\n filterEmptySubgraphs(graphDB: ScopeGraph) {\n while (true) {\n const emptySubgraphs = graphDB.subgraphs.filter(subgraph => subgraph.subgraphs.length === 0 && subgraph.vertices.length === 0);\n if (emptySubgraphs.length === 0) break;\n emptySubgraphs.forEach(subgraph => subgraph.remove(true));\n }\n }\n\n removeObsoleteSubgraphs(graphDB: ScopeGraph) {\n for (const subgraph of [...graphDB.subgraphs]) {\n if (subgraph.vertices.length === 0) {\n subgraph.remove(false);\n }\n }\n }\n\n graphData(): IGraphData {\n const graphDB = this.graphDB.clone();\n this.filterLegend(graphDB);\n this.filterPartial(graphDB);\n this.filterEmptySubgraphs(graphDB);\n this.removeObsoleteSubgraphs(graphDB);\n return this.graphGui(graphDB);\n }\n\n calcLegend(): WUGraphLegendData[] {\n const retVal: WUGraphLegendData[] = [];\n for (const kind in this.kindMap) {\n retVal.push({\n kind: parseInt(kind),\n faChar: faCharFactory(kind),\n label: this.kindMap[kind][0]._.attr(\"Label\").RawValue.split(\"\\n\")[0],\n count: this.kindMap[kind].length\n });\n }\n return retVal;\n }\n\n vertices(kind: number): VertexType[] {\n const retVal: VertexType[] = [];\n for (const v of this.kindMap[kind]) {\n retVal.push(this.verticesMap[v._.Id]);\n }\n return retVal;\n }\n\n formatRow(item: ScopeEdge | ScopeSubgraph | ScopeVertex, columns, row) {\n const attrs = item._.formattedAttrs();\n for (const key in attrs) {\n const idx = columns.indexOf(key);\n if (idx === -1) {\n columns.push(key);\n row.push(attrs[key]);\n } else {\n row[idx] = attrs[key];\n }\n }\n for (let i = 0; i < 100; ++i) {\n if (row[i] === undefined) {\n row[i] = \"\";\n }\n }\n return row;\n }\n\n activityData(): { columns: string[], data: any[][] } {\n const columns = [\"Id\", \"Kind\", \"Label\"];\n const data = this.graphDB.vertices.map(v => {\n const row = [parseInt(v._.Id.split(\"a\")[1])];\n return this.formatRow(v, columns, row);\n });\n return { columns, data };\n }\n\n edgeData(): { columns: string[], data: any[][] } {\n const columns = [\"Id\", \"Label\"];\n const data = this.graphDB.edges.map(e => {\n const row = [e._.Id];\n return this.formatRow(e, columns, row);\n });\n return { columns, data };\n }\n\n subgraphData(): { columns: string[], data: any[][] } {\n const columns = [\"Id\", \"Label\"];\n const data = this.graphDB.subgraphs.map(sg => {\n const row = [sg._.Id];\n return this.formatRow(sg, columns, row);\n });\n return { columns, data };\n }\n\n calcGraphTooltip(item: VertexType | Edge) {\n let scope;\n let parentScope;\n if (item instanceof Subgraph) {\n const subgraph = this.rSubgraphsMap[item.id()];\n scope = subgraph._;\n parentScope = subgraph.parent._;\n } else if (item instanceof Vertex || item instanceof Icon) {\n const vertex = this.rVerticesMap[item.id()];\n scope = vertex._;\n parentScope = vertex.parent._;\n } else if (item instanceof Edge) {\n const edge = this.rEdgesMap[item.id()];\n scope = edge._;\n parentScope = edge.parent._;\n }\n if (scope) {\n return scope.calcTooltip(parentScope);\n }\n return \"\";\n }\n\n subgraph(id: string): Subgraph | undefined {\n return this.subgraphsMap[id];\n }\n\n vertex(id: string): VertexType | undefined {\n return this.verticesMap[id];\n }\n\n edge(id: string): Edge {\n return this.edgesMap[id];\n }\n\n // Events ---\n minClick(sg: Subgraph) {\n }\n}\n","import { Button, Spacer, ToggleButton, Widget } from \"@hpcc-js/common\";\nimport { ScopeGraph, Workunit } from \"@hpcc-js/comms\";\nimport { Table } from \"@hpcc-js/dgrid\";\nimport { Graph as GraphWidget, Subgraph, Vertex } from \"@hpcc-js/graph\";\nimport { Carousel, ChartPanel } from \"@hpcc-js/layout\";\nimport { hashSum } from \"@hpcc-js/util\";\nimport { WUGraphLegend } from \"./WUGraphLegend\";\nimport { WUScopeController } from \"./WUScopeController\";\n\nimport \"../src/WUGraph.css\";\n\nexport class WUGraph extends ChartPanel {\n\n private _partialAll = new Button().faChar(\"fa-window-restore\").tooltip(\"Partial All\")\n .on(\"click\", () => {\n this.stateClick(this._partialAll);\n });\n\n private _maxAll = new Button().faChar(\"fa-window-maximize\").tooltip(\"Max All\")\n .on(\"click\", () => {\n this.stateClick(this._maxAll);\n });\n\n private _toggleGraph = new ToggleButton().faChar(\"fa-chain\").tooltip(\"Graph\")\n .selected(true)\n .on(\"click\", () => {\n this.viewClick(this._toggleGraph);\n });\n\n private _toggleActivities = new ToggleButton().faChar(\"fa-table\").tooltip(\"Activitiies\")\n .selected(false)\n .on(\"click\", () => {\n this.viewClick(this._toggleActivities);\n });\n\n private _toggleEdges = new ToggleButton().faChar(\"fa-table\").tooltip(\"Edges\")\n .selected(false)\n .on(\"click\", () => {\n this.viewClick(this._toggleEdges);\n });\n\n private _toggleSubgraphs = new ToggleButton().faChar(\"fa-table\").tooltip(\"Subgraphs\")\n .selected(false)\n .on(\"click\", () => {\n this.viewClick(this._toggleSubgraphs);\n });\n\n protected _graph = new GraphWidget()\n .layout(\"Hierarchy\")\n .applyScaleOnLayout(true)\n .showToolbar(false)\n .allowDragging(false)\n ;\n\n private _activities = new Table()\n .pagination(false)\n ;\n\n private _edges = new Table()\n .pagination(false)\n ;\n\n private _subgraphs = new Table()\n .pagination(false)\n ;\n\n protected _legend = new WUGraphLegend(this)\n .on(\"click\", kind => {\n this.render();\n })\n .on(\"mouseover\", kind => {\n const verticesMap: { [id: string]: boolean } = {};\n for (const vertex of this._gc.vertices(kind)) {\n verticesMap[vertex.id()] = true;\n }\n this._graph.highlightVerticies(verticesMap);\n })\n .on(\"mouseout\", kind => {\n this._graph.highlightVerticies();\n })\n ;\n\n protected _view = new Carousel().widgets([this._graph, this._activities, this._edges, this._subgraphs]);\n\n protected _gc = new WUScopeController();\n\n constructor() {\n super();\n this.topOverlay(false);\n this.widget(this._view);\n const buttons: Widget[] = [\n this._toggleGraph,\n this._toggleActivities,\n this._toggleEdges,\n this._toggleSubgraphs,\n new Spacer(),\n this._partialAll,\n this._maxAll,\n new Spacer(),\n ...this._graph.iconBarButtons(),\n new Spacer()];\n this.buttons(buttons.concat(this.buttons()));\n this._gc.minClick = (sg: Subgraph) => {\n this.loadGraph();\n this._graph.render(w => {\n this._graph\n .selection([sg])\n .centerOnItem(sg)\n ;\n });\n };\n\n this._graph.tooltipHTML((v: Vertex) => {\n return this._gc.calcGraphTooltip(v);\n });\n }\n\n stateClick(sourceB: Button) {\n switch (sourceB) {\n case this._partialAll:\n this._graph.data().subgraphs.forEach((sg: Subgraph) => {\n sg.minState(\"partial\");\n });\n break;\n case this._maxAll:\n this._graph.data().subgraphs.forEach((sg: Subgraph) => {\n sg.minState(\"normal\");\n });\n break;\n }\n this.render();\n }\n\n viewClick(sourceTB: ToggleButton) {\n this._toggleGraph.selected(sourceTB === this._toggleGraph);\n this._toggleActivities.selected(sourceTB === this._toggleActivities);\n this._toggleEdges.selected(sourceTB === this._toggleEdges);\n this._toggleSubgraphs.selected(sourceTB === this._toggleSubgraphs);\n switch (sourceTB) {\n case this._toggleGraph:\n this._view.active(0);\n break;\n case this._toggleActivities:\n this._view.active(1);\n break;\n case this._toggleEdges:\n this._view.active(2);\n break;\n case this._toggleSubgraphs:\n this._view.active(3);\n break;\n }\n this.render(w => {\n });\n }\n\n private _prevHashSum;\n private _prevScopeGraph: ScopeGraph;\n fetchScopeGraph(): Promise<ScopeGraph> {\n const hash = hashSum({\n baseUrl: this.baseUrl(),\n wuid: this.wuid(),\n graphID: this.graphID(),\n subgraphID: this.subgraphID()\n });\n if (!this._prevScopeGraph || this._prevHashSum !== hash) {\n this.startProgress();\n this._prevHashSum = hash;\n this._gc.clear();\n const wu = Workunit.attach({ baseUrl: this.baseUrl() }, this.wuid());\n return wu.fetchGraphs().then(graphs => {\n for (const graph of graphs) {\n if (graph.Name === this.graphID()) {\n this.finishProgress();\n return graph.fetchScopeGraph(this.subgraphID());\n }\n }\n }).then(scopeGraph => {\n this._prevScopeGraph = scopeGraph;\n return this._prevScopeGraph;\n });\n }\n return Promise.resolve(this._prevScopeGraph);\n }\n\n enter(domNode, _element) {\n super.enter(domNode, _element);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n\n loadGraph() {\n this._gc.disabled(this._legend.disabled());\n this._graph\n .data(this._gc.graphData(), true)\n ;\n {\n const { columns, data } = this._gc.activityData();\n this._activities\n .columns(columns)\n .data(data)\n ;\n }\n {\n const { columns, data } = this._gc.edgeData();\n this._edges\n .columns(columns)\n .data(data)\n ;\n }\n {\n const { columns, data } = this._gc.subgraphData();\n this._subgraphs\n .columns(columns)\n .data(data)\n ;\n }\n }\n\n render(callback?: (w: Widget) => void): this {\n if (this.wuid() && this.graphID()) {\n this.fetchScopeGraph().then(scopedGraph => {\n this._gc.set(scopedGraph);\n this._legend.data(this._gc.calcLegend());\n this.loadGraph();\n super.render(callback);\n });\n } else {\n super.render(callback);\n }\n return this;\n }\n\n selection(_?) {\n if (!arguments.length) return this._graph.selection();\n const item = this._gc.vertex(_) || this._gc.edge(_) || this._gc.subgraph(_);\n if (item) {\n this._graph.selection([item]);\n }\n return this;\n }\n}\nWUGraph.prototype._class += \" eclwatch_WUGraph\";\n\nexport interface WUGraph {\n baseUrl(): string;\n baseUrl(_: string): this;\n wuid(): string;\n wuid(_: string): this;\n graphID(): string;\n graphID(_: string): this;\n subgraphID(): string;\n subgraphID(_: string): this;\n}\n\nWUGraph.prototype.publish(\"baseUrl\", \"\", \"string\", \"HPCC Platform Base URL\");\nWUGraph.prototype.publish(\"wuid\", \"\", \"string\", \"Workunit ID\");\nWUGraph.prototype.publish(\"graphID\", \"\", \"string\", \"Graph ID\");\nWUGraph.prototype.publish(\"subgraphID\", \"\", \"string\", \"Subgraph ID\");\n","import { ResultFilter, Result, XSDSchema, XSDXMLNode } from \"@hpcc-js/comms\";\nimport { ColumnType, Deferred, domConstruct, QueryResults, RowFormatter } from \"@hpcc-js/dgrid\";\n\nfunction entitiesEncode(str) {\n return String(str).replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\").replace(/\"/g, \""\");\n}\n\nfunction safeEncode(item) {\n switch (Object.prototype.toString.call(item)) {\n case \"[object Undefined]\":\n case \"[object Boolean]\":\n case \"[object Number]\":\n return item;\n case \"[object String]\":\n return entitiesEncode(item);\n default:\n console.warn(\"Unknown cell type: \" + Object.prototype.toString.call(item));\n }\n return item;\n}\n\nexport class Store {\n protected wuResult: Result;\n protected schema: XSDSchema;\n protected _columns: any[];\n protected _cache: { [key: string]: Promise<{ totalLength: number, data: any[] }> } = {};\n private rowFormatter: RowFormatter;\n protected _filter: ResultFilter = {};\n\n constructor(wuResult: Result, schema: XSDSchema, renderHtml: boolean, filter: ResultFilter = {}) {\n this.wuResult = wuResult;\n this.schema = schema;\n this._columns = this.schema2Columns(this.schema.root);\n this.rowFormatter = new RowFormatter(this._columns, renderHtml);\n this._filter = filter;\n }\n\n columns() {\n return this._columns;\n }\n\n schema2Columns(parentNode: XSDXMLNode, prefix: string = \"\"): ColumnType[] {\n if (!parentNode) return [];\n return parentNode.children().filter(node => node.name.indexOf(\"__hidden\", node.name.length - \"__hidden\".length) === -1).map((node, idx) => {\n const label = node.name;\n const keyed = node.attrs[\"hpcc:keyed\"];\n const column: ColumnType = {\n field: prefix + label,\n leafID: label,\n idx,\n label: label + (keyed ? \" (i)\" : \"\"),\n className: \"resultGridCell\",\n sortable: false,\n width: keyed ? 16 : 0,\n isSet: node.isSet\n };\n const children = this.schema2Columns(node, prefix + label + \"_\");\n if (children.length) {\n column.width += 10 + children.reduce((prev: number, childNode: ColumnType) => {\n return prev + childNode.width!;\n }, 0);\n column.children = children;\n } else {\n column.width += node.charWidth() * 9;\n column.formatter = (cell, row) => {\n switch (typeof cell) {\n case \"string\":\n return {\n html: cell.replace(/\\t/g, \" \").trim()\n };\n case \"undefined\":\n return \"\";\n }\n return cell;\n };\n }\n return column;\n });\n }\n\n isChildDataset(cell) {\n if (Object.prototype.toString.call(cell) !== \"[object Object]\") {\n return false;\n }\n let propCount = 0;\n let firstPropType = null;\n for (const key in cell) {\n if (!firstPropType) {\n firstPropType = Object.prototype.toString.call(cell[key]);\n }\n propCount++;\n }\n return propCount === 1 && firstPropType === \"[object Array]\";\n }\n\n rowToTable(cell, __row, node) {\n if (this.isChildDataset(cell)) { // Don't display \"Row\" as a header ---\n for (const key in cell) {\n this.rowToTable(cell[key], __row, node);\n }\n return;\n }\n\n const table = domConstruct.create(\"table\", { border: 1, cellspacing: 0, width: \"100%\" }, node);\n switch (Object.prototype.toString.call(cell)) {\n case \"[object Object]\":\n let tr = domConstruct.create(\"tr\", null, table);\n for (const key in cell) {\n domConstruct.create(\"th\", { innerHTML: safeEncode(key) }, tr);\n }\n tr = domConstruct.create(\"tr\", null, table);\n for (const key in cell) {\n switch (Object.prototype.toString.call(cell[key])) {\n case \"[object Object]\":\n case \"[object Array]\":\n this.rowToTable(cell[key], __row, node);\n break;\n default:\n domConstruct.create(\"td\", { innerHTML: safeEncode(cell[key]) }, tr);\n break;\n }\n }\n break;\n case \"[object Array]\":\n for (let i = 0; i < cell.length; ++i) {\n switch (Object.prototype.toString.call(cell[i])) {\n case \"[object Boolean]\":\n case \"[object Number]\":\n case \"[object String]\":\n // Item in Scalar ---\n const tr1 = domConstruct.create(\"tr\", null, table);\n domConstruct.create(\"td\", { innerHTML: safeEncode(cell[i]) }, tr1);\n break;\n default:\n // Child Dataset ---\n if (i === 0) {\n const tr2 = domConstruct.create(\"tr\", null, table);\n for (const key in cell[i]) {\n domConstruct.create(\"th\", { innerHTML: safeEncode(key) }, tr2);\n }\n }\n domConstruct.create(\"tr\", null, table);\n for (const key in cell[i]) {\n if (cell[i][key]) {\n if (Object.prototype.toString.call(cell[i][key]) === \"[object Object]\" || Object.prototype.toString.call(cell[i][key]) === \"[object Array]\") {\n const td = domConstruct.create(\"td\", null, tr1);\n this.rowToTable(cell[i][key], cell[i], td);\n } else if (key.indexOf(\"__html\", key.length - \"__html\".length) !== -1) {\n domConstruct.create(\"td\", { innerHTML: cell[i][key] }, tr1);\n } else if (key.indexOf(\"__javascript\", key.length - \"__javascript\".length) !== -1) {\n /*const td = */ domConstruct.create(\"td\", null, tr1);\n // this.injectJavascript(cell[i][key], cell[i], td);\n } else {\n const val = cell[i][key];\n domConstruct.create(\"td\", { innerHTML: safeEncode(val) }, tr1);\n }\n } else {\n domConstruct.create(\"td\", { innerHTML: \"\" }, tr1);\n }\n }\n }\n }\n break;\n }\n }\n\n getIdentity(row) {\n return row.__hpcc_id;\n }\n\n _request(start, end): Promise<{ totalLength: number, data: any[] }> {\n if (!this.wuResult) return Promise.resolve({ totalLength: 0, data: [] });\n const cacheKey = `${start}->${end}`;\n if (this._cache[cacheKey]) return this._cache[cacheKey];\n const retVal = this.wuResult.fetchRows(start, end - start, false, this._filter).then((rows: any[]) => {\n return {\n totalLength: this.wuResult.Total,\n data: rows.map((row, idx) => {\n const formattedRow: any = this.rowFormatter.format(row);\n formattedRow.__hpcc_id = start + idx;\n formattedRow.__hpcc_orig = row;\n return formattedRow;\n })\n };\n });\n this._cache[cacheKey] = retVal;\n return retVal;\n }\n\n fetchRange(options): Promise<any[]> {\n const retVal = new Deferred();\n this._request(options.start, options.end).then(response => retVal.resolve(response));\n return new QueryResults(retVal.then(response => response.data), {\n totalLength: retVal.then(response => response.totalLength)\n });\n }\n}\n","import { Workunit, WUStateID } from \"@hpcc-js/comms\";\nimport { Edge, Graph, Vertex } from \"@hpcc-js/graph\";\nimport { hashSum, IObserverHandle } from \"@hpcc-js/util\";\n\nexport enum STATUS {\n CREATE = \"Created\",\n COMPILE = \"Compiled\",\n EXECUTE = \"Executed\",\n COMPLETE = \"Completed\"\n}\n\nexport enum STATUS_ACTIVE {\n CREATE = \"Creating\",\n COMPILE = \"Compiling\",\n EXECUTE = \"Executing\",\n COMPLETE = \"Completed\"\n}\n\nexport class WUStatus extends Graph {\n\n protected _wu: Workunit;\n protected _wuHandle: IObserverHandle;\n\n protected _create: Vertex;\n protected _compile: Vertex;\n protected _execute: Vertex;\n protected _complete: Vertex;\n\n constructor() {\n super();\n this\n .zoomable(false)\n .zoomToFitLimit(1)\n .layout(\"Hierarchy\")\n .hierarchyRankDirection(\"LR\")\n .showToolbar(false)\n .allowDragging(false)\n ;\n }\n\n private _prevHash;\n attachWorkunit() {\n const hash = hashSum({\n baseUrl: this.baseUrl(),\n wuid: this.wuid()\n });\n if (this._prevHash !== hash) {\n this._prevHash = hash;\n this._wu = Workunit.attach({ baseUrl: this.baseUrl() }, this.wuid());\n if (this._wuHandle) {\n this._wuHandle.release();\n }\n this._wuHandle = this._wu.watch(changes => {\n this.lazyRender();\n });\n }\n }\n\n createVertex(faChar: string) {\n return new Vertex()\n .icon_diameter(32)\n .icon_shape_colorFill(\"none\")\n .icon_shape_colorStroke(\"none\")\n .icon_image_colorFill(\"darkgray\")\n .iconAnchor(\"middle\")\n .textbox_shape_colorFill(\"none\")\n .textbox_shape_colorStroke(\"none\")\n .textbox_text_colorFill(\"darkgray\")\n .faChar(faChar)\n ;\n }\n\n updateVertex(vertex: Vertex, color: string) {\n vertex\n .icon_image_colorFill(color)\n .textbox_text_colorFill(color)\n ;\n }\n\n updateVertexStatus(level: 0 | 1 | 2 | 3 | 4, active: boolean = false) {\n const completeColor = this._wu.isFailed() ? \"darkred\" : \"darkgreen\";\n this._create.text(STATUS.CREATE);\n this._compile.text(STATUS.COMPILE);\n this._execute.text(STATUS.EXECUTE);\n this._complete.text(STATUS.COMPLETE);\n switch (level) {\n case 0:\n this.updateVertex(this._create, \"darkgray\");\n this.updateVertex(this._compile, \"darkgray\");\n this.updateVertex(this._execute, \"darkgray\");\n this.updateVertex(this._complete, \"darkgray\");\n break;\n case 1:\n this._create.text(STATUS_ACTIVE.CREATE);\n this.updateVertex(this._create, active ? \"orange\" : completeColor);\n this.updateVertex(this._compile, \"darkgray\");\n this.updateVertex(this._execute, \"darkgray\");\n this.updateVertex(this._complete, \"darkgray\");\n break;\n case 2:\n this._compile.text(STATUS_ACTIVE.COMPILE);\n this.updateVertex(this._create, completeColor);\n this.updateVertex(this._compile, active ? \"orange\" : completeColor);\n this.updateVertex(this._execute, completeColor);\n this.updateVertex(this._complete, \"darkgray\");\n break;\n case 3:\n this._execute.text(STATUS_ACTIVE.EXECUTE);\n this.updateVertex(this._create, completeColor);\n this.updateVertex(this._compile, completeColor);\n this.updateVertex(this._execute, active ? \"orange\" : completeColor);\n this.updateVertex(this._complete, \"darkgray\");\n break;\n case 4:\n this.updateVertex(this._create, completeColor);\n this.updateVertex(this._compile, completeColor);\n this.updateVertex(this._execute, completeColor);\n this.updateVertex(this._complete, completeColor);\n break;\n }\n }\n\n createEdge(source, target) {\n return new Edge()\n .sourceVertex(source)\n .targetVertex(target)\n .strokeColor(\"black\")\n .showArc(false)\n ;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._create = this.createVertex(\"\\uf11d\");\n this._compile = this.createVertex(\"\\uf085\");\n this._execute = this.createVertex(\"\\uf275\");\n this._complete = this.createVertex(\"\\uf11e\");\n const e1 = this.createEdge(this._create, this._compile);\n const e2 = this.createEdge(this._compile, this._execute);\n const e3 = this.createEdge(this._execute, this._complete);\n this.data({\n vertices: [this._create, this._compile, this._execute, this._complete],\n edges: [e1, e2, e3]\n });\n }\n\n update(domNode, element) {\n this.attachWorkunit();\n switch (this._wu.StateID) {\n case WUStateID.Blocked:\n case WUStateID.Wait:\n case WUStateID.Scheduled:\n case WUStateID.UploadingFiled:\n this.updateVertexStatus(1);\n break;\n case WUStateID.Compiling:\n this.updateVertexStatus(2, true);\n break;\n case WUStateID.Submitted:\n this.updateVertexStatus(1, true);\n break;\n case WUStateID.Compiled:\n this.updateVertexStatus(2);\n break;\n case WUStateID.Aborting:\n case WUStateID.Running:\n this.updateVertexStatus(3, true);\n break;\n case WUStateID.Aborted:\n case WUStateID.Archived:\n case WUStateID.Completed:\n this.updateVertexStatus(4);\n break;\n case WUStateID.Failed:\n this.updateVertexStatus(4, false);\n break;\n case WUStateID.DebugPaused:\n case WUStateID.DebugRunning:\n case WUStateID.Paused:\n case WUStateID.Unknown:\n default:\n this.updateVertexStatus(0);\n break;\n }\n super.update(domNode, element);\n this.zoomToFit();\n }\n\n exit(domNode, element) {\n if (this._wuHandle) {\n this._wuHandle.release();\n }\n super.exit(domNode, element);\n }\n}\nWUStatus.prototype._class += \" eclwatch_WUStatus\";\n\nexport interface WUStatus {\n baseUrl(): string;\n baseUrl(_: string): this;\n wuid(): string;\n wuid(_: string): this;\n}\n\nWUStatus.prototype.publish(\"baseUrl\", \"\", \"string\", \"HPCC Platform Base URL\");\nWUStatus.prototype.publish(\"wuid\", \"\", \"string\", \"Workunit ID\");\n","import { publish } from \"@hpcc-js/common\";\nimport { ResultFilter, IOptions, Result } from \"@hpcc-js/comms\";\nimport { Common } from \"@hpcc-js/dgrid\";\nimport { hashSum } from \"@hpcc-js/util\";\nimport { Store } from \"./WUResultStore\";\n\nexport class WUResult extends Common {\n\n protected _result: Result;\n protected _localStore: Store;\n\n constructor() {\n super();\n this.renderHtml(false);\n }\n\n @publish(\"\", \"string\", \"URL to WsWorkunits\")\n baseUrl: { (): string, (_: string): WUResult };\n @publish(undefined, \"string\", \"Workunit ID\")\n user: { (): string, (_: string): WUResult };\n @publish(undefined, \"string\", \"User ID\")\n password: { (): string, (_: string): WUResult };\n @publish(undefined, \"string\", \"Password\")\n wuid: { (): string, (_: string): WUResult };\n @publish(undefined, \"string\", \"Result Name\")\n resultName: { (): string, (_: string): WUResult };\n @publish(undefined, \"number\", \"Sequence Number\")\n sequence: { (): number, (_: number): WUResult };\n @publish(\"\", \"string\", \"NodeGroup\")\n nodeGroup: { (): string, (_: string): WUResult };\n @publish(\"\", \"string\", \"Logical File Name\")\n logicalFile: { (): string, (_: string): WUResult };\n @publish({}, \"object\", \"Filter\")\n filter: { (): ResultFilter, (_: ResultFilter): WUResult };\n\n hashSum(opts: any = {}) {\n return hashSum({\n baseUrl: this.baseUrl(),\n wuid: this.wuid(),\n resultName: this.resultName(),\n sequence: this.sequence(),\n nodeGroup: this.nodeGroup(),\n logicalFile: this.logicalFile(),\n userID: this.user(),\n password: this.password(),\n ...opts\n });\n }\n\n protected _prevResultHash: string;\n calcResult(): Result | null {\n const resultHash = this.hashSum();\n if (this._prevResultHash !== resultHash) {\n this._prevResultHash = resultHash;\n\n const opts: IOptions = {\n baseUrl: this.baseUrl(),\n userID: this.user(),\n password: this.password()\n };\n if (this.wuid() && this.resultName()) {\n this._result = Result.attach(opts, this.wuid(), this.resultName());\n } else if (this.wuid() && this.sequence() !== undefined) {\n this._result = Result.attach(opts, this.wuid(), this.sequence());\n } else if (this.logicalFile() && this.nodeGroup()) {\n this._result = Result.attachLogicalFile(opts, this.nodeGroup(), this.logicalFile());\n } else if (this.logicalFile()) {\n this._result = Result.attachLogicalFile(opts, \"\", this.logicalFile());\n }\n }\n return this._result;\n }\n\n fetch(row, count, abortController = new AbortController()): Promise<object[]> {\n const result = this.calcResult();\n if (result) {\n return result.fetchRows(row, count, false, {}, abortController.signal);\n }\n return Promise.resolve([]);\n }\n\n protected _prevStoreHash: string;\n protected _prevQueryHash: string;\n update(domNode, element) {\n super.update(domNode, element);\n const storeHash = this.hashSum({\n renderHtml: this.renderHtml(),\n filter: this.filter()\n });\n if (this._prevStoreHash !== storeHash) {\n this._prevStoreHash = storeHash;\n const result = this.calcResult();\n if (result) {\n result.fetchXMLSchema().then(schema => {\n this._localStore = new Store(result, schema, this.renderHtml(), this.filter());\n this._dgrid?.set(\"columns\", this._localStore.columns());\n this._dgrid?.set(\"collection\", this._localStore);\n });\n }\n }\n }\n\n click(row, col, sel) {\n }\n}\nWUResult.prototype._class += \" eclwatch_WUResult\";\n","import { Palette } from \"@hpcc-js/common\";\nimport { Scope, Workunit, WsWorkunits } from \"@hpcc-js/comms\";\nimport { ReactTimelineSeries } from \"@hpcc-js/timeline\";\nimport { hashSum, RecursivePartial } from \"@hpcc-js/util\";\n\nimport \"../src/WUGraph.css\";\n\nconst columns = [\"label\", \"start\", \"end\", \"icon\", \"color\", \"series\"];\n\nexport class WUTimeline extends ReactTimelineSeries {\n\n protected _palette = Palette.ordinal(\"default\");\n\n constructor() {\n super();\n this\n .columns(columns)\n .titleColumn(\"label\")\n .iconColumn(\"icon\")\n .colorColumn(\"color\")\n .seriesColumn(\"series\")\n .timePattern(\"%Y-%m-%dT%H:%M:%S.%LZ\")\n .tickFormat(\"%H:%M\")\n .tooltipTimeFormat(\"%H:%M:%S.%L\")\n .tooltipHTML(d => {\n return d[columns.length].calcTooltip();\n })\n ;\n }\n\n private _prevHashSum;\n clear(): this {\n delete this._prevHashSum;\n return this;\n }\n fetchScopes() {\n const hash = hashSum({\n baseUrl: this.baseUrl(),\n wuid: this.wuid(),\n request: this.request()\n });\n if (this._prevHashSum !== hash) {\n this._prevHashSum = hash;\n const wu = Workunit.attach({ baseUrl: this.baseUrl() }, this.wuid());\n wu.fetchDetails(this.request()).then(scopes => {\n return scopes.filter(scope => scope.Id && scope.attr(\"WhenStarted\").RawValue).map((scope: Scope) => {\n const whenStarted = +scope.attr(\"WhenStarted\").RawValue / 1000;\n const timeElapsed = +scope.attr(\"TimeElapsed\").RawValue / 1000000;\n return [\n scope.Id,\n new Date(whenStarted).toISOString(),\n timeElapsed ? new Date(whenStarted + timeElapsed).toISOString() : undefined,\n null,\n this._palette(scope.ScopeType),\n scope.ScopeName.split(\"::\").join(\":\").split(\":\").slice(0, 1),\n scope\n ];\n });\n }).then(scopes => {\n this\n .data(scopes)\n .render()\n ;\n });\n }\n }\n\n enter(domNode, _element) {\n super.enter(domNode, _element);\n }\n\n update(domNode, element) {\n this.fetchScopes();\n super.update(domNode, element);\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n }\n}\nWUTimeline.prototype._class += \" eclwatch_WUTimeline\";\n\nexport interface WUTimeline {\n baseUrl(): string;\n baseUrl(_: string): this;\n wuid(): string;\n wuid(_: string): this;\n request(): Partial<WsWorkunits.WUDetails>;\n request(_: RecursivePartial<WsWorkunits.WUDetails>): this;\n}\n\nWUTimeline.prototype.publish(\"baseUrl\", \"\", \"string\", \"HPCC Platform Base URL\");\nWUTimeline.prototype.publish(\"wuid\", \"\", \"string\", \"Workunit ID\");\nWUTimeline.prototype.publish(\"request\", {\n ScopeFilter: {\n MaxDepth: 3,\n ScopeTypes: [\"graph\", \"subgraph\"]\n },\n NestedFilter: {\n Depth: 0,\n ScopeTypes: []\n },\n PropertiesToReturn: {\n AllProperties: false,\n AllStatistics: true,\n AllHints: false,\n Properties: [\"WhenStarted\", \"TimeElapsed\"]\n },\n ScopeOptions: {\n IncludeId: true,\n IncludeScope: true,\n IncludeScopeType: true\n },\n PropertyOptions: {\n IncludeName: true,\n IncludeRawValue: true,\n IncludeFormatted: true,\n IncludeMeasure: true,\n IncludeCreator: false,\n IncludeCreatorType: false\n }\n}, \"object\", \"WUDetails Request\");\n"],"mappings":"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","ignoreList":[]}
|