{"version":3,"file":"index.umd.cjs","sources":["../src/I1DChart.ts","../src/I2DChart.ts","../src/I2DAggrChart.ts","../src/IGraph.ts","../src/IHighlight.ts","../src/IInput.ts","../src/INDChart.ts","../src/Tooltip.ts","../src/ITooltip.ts","../src/ITree.ts","../src/__package__.ts"],"sourcesContent":["import { Palette } from \"@hpcc-js/common\";\n\nexport function I1DChart() {\n}\nI1DChart.prototype._dataFamily = \"1D\";\nI1DChart.prototype._palette = Palette.rainbow(\"default\");\n\n//  Events  ---\nI1DChart.prototype.click = function (row, column, selected) {\n};\n\nI1DChart.prototype.dblclick = function (row, column, selected) {\n};\n","import { Palette } from \"@hpcc-js/common\";\nimport { hsl as d3Hsl } from \"d3-color\";\n\nexport function I2DChart() {\n}\nI2DChart.prototype._dataFamily = \"2D\";\nI2DChart.prototype._palette = Palette.ordinal(\"default\");\n\nI2DChart.prototype.fillColor = function (row: any[], column, value, origRow): string {\n    return this._palette(row[0]);\n};\n\nI2DChart.prototype.strokeColor = function (row: any[], column, value, origRow): string {\n    return d3Hsl(this.fillColor(row, column, value, origRow)).darker().toString();\n};\n\nI2DChart.prototype.textColor = function (row: any[], column, value, origRow): string {\n    return Palette.textColor(this.fillColor(row, column, value, origRow));\n};\n\n//  Events  ---\nI2DChart.prototype.click = function (row: object, column, selected) {\n};\n\nI2DChart.prototype.dblclick = function (row: object, column, selected) {\n};\n","import { Palette } from \"@hpcc-js/common\";\nimport { hsl as d3Hsl } from \"d3-color\";\n\nexport function I2DAggrChart() {\n}\nI2DAggrChart.prototype._palette = Palette.rainbow(\"default\");\n\nI2DAggrChart.prototype.fillColor = function (row: any[][], column, value): string {\n    return this._palette(row.length);\n};\n\nI2DAggrChart.prototype.strokeColor = function (row: any[][], column, value): string {\n    return d3Hsl(this.fillColor(row, column, value)).darker().toString();\n};\n\nI2DAggrChart.prototype.textColor = function (row: any[][], column, value): string {\n    return Palette.textColor(this.fillColor(row, column, value));\n};\n\n//  Events  ---\nI2DAggrChart.prototype.click = function (row: object[], column, selected) {\n};\n\nI2DAggrChart.prototype.dblclick = function (row: object[], column, selected) {\n};\n","export function IGraph() {\n}\nIGraph.prototype._dataFamily = \"graph\";\n\n//  Events  ---\nIGraph.prototype.vertex_click = function (_row, _col, _sel, more) {\n    if (more && more.vertex) {\n    }\n};\n\nIGraph.prototype.vertex_dblclick = function (_row, _col, _sel, more) {\n    if (more && more.vertex) {\n    }\n};\n\nIGraph.prototype.edge_click = function (_row, _col, _sel, more) {\n    if (more && more.edge) {\n    }\n};\n\nIGraph.prototype.edge_dblclick = function (_row, _col, _sel, more) {\n    if (more && more.edge) {\n    }\n};\n","export interface IHighlight {\n    highlightColumn(column: string): this;\n}\n\nexport function instanceOfIHighlight(w: any): w is IHighlight {\n    return typeof (w as any).highlightColumn === \"function\";\n}\n","import { Widget } from \"@hpcc-js/common\";\n\n//  Use old school class declaration as this is a mixin  ---\nexport function IInput() {\n}\nIInput.prototype = Object.create(Widget.prototype);\nIInput.prototype.constructor = IInput;\n\n// abstract target(): any;\n// abstract target(_: any): this;\n\n//  Implementation  ---\nIInput.prototype.isValid = function () {\n    if (this.validate()) {\n        const re = new RegExp(this.validate());\n        if (!re.test(this.value())) {\n            return false;\n        }\n    }\n    return true;\n};\n\nIInput.prototype.hasValue = function () {\n    if (typeof (this as any).type === \"function\") {\n        switch ((this as any).type()) {\n            case \"radio\":\n            /* falls through */\n            case \"checkbox\":\n                if (this.value() && this.value() !== \"false\") {\n                    return true;\n                }\n                break;\n            default:\n                if (this.value()) {\n                    return true;\n                }\n                break;\n        }\n        return false;\n    }\n    return this.value() !== \"\";\n};\n\n//  Events  ---\nIInput.prototype.blur = function (_w) {\n};\nIInput.prototype.keyup = function (_w) {\n};\nIInput.prototype.focus = function (_w) {\n};\nIInput.prototype.click = function (_w) {\n};\nIInput.prototype.dblclick = function (_w) {\n};\nIInput.prototype.change = function (_w, complete: boolean) {\n};\n\nIInput.prototype.resetValue = function (w) {\n    w.value(w._inputElement[0].node().value);\n};\n\nIInput.prototype.disable = function (disable) {\n    this._inputElement.forEach(function (e, idx) {\n        e.attr(\"disabled\", disable ? \"disabled\" : null);\n    });\n};\n\nIInput.prototype.setFocus = function () {\n    if (this._inputElement.length) {\n        this._inputElement[0].node().focus();\n    }\n};\n\nexport interface IInput {\n    name: { (): string; (_: string): IInput };\n    name_exists: () => boolean;\n    label: { (): string; (_: string): IInput };\n    label_exists: () => boolean;\n    value: { (): any; (_: any): IInput };\n    value_exists: () => boolean;\n    validate: { (): string; (_: string): IInput };\n    validate_exists: () => boolean;\n}\nIInput.prototype.publish(\"name\", \"\", \"string\", \"HTML name for the input\");\nIInput.prototype.publish(\"label\", \"\", \"string\", \"Descriptive label\");\nIInput.prototype.publish(\"value\", \"\", \"string\", \"Input Current Value\");\nIInput.prototype.publish(\"validate\", null, \"string\", \"Input Validation\");\n","import { Palette } from \"@hpcc-js/common\";\nimport { hsl as d3Hsl } from \"d3-color\";\n\nexport function INDChart() {\n}\nINDChart.prototype._dataFamily = \"ND\";\nINDChart.prototype._palette = Palette.ordinal(\"default\");\n\nINDChart.prototype.fillColor = function (row: any[], column: string, value: number, origRow: any): string {\n    return this._palette(column);\n};\n\nINDChart.prototype.strokeColor = function (row: any[], column: string, value: number, origRow: any): string {\n    return d3Hsl(this.fillColor(row, column, value, origRow)).darker().toString();\n};\n\nINDChart.prototype.textColor = function (row: any[], column: string, value: number, origRow: any): string {\n    return Palette.textColor(this.fillColor(row, column, value, origRow));\n};\n\n//  Events  ---\nINDChart.prototype.click = function (row, column, selected) {\n};\n\nINDChart.prototype.dblclick = function (row, column, selected) {\n};\n","//  Based on  https://github.com/GordonSmith/d3-tip forked from https://github.com/Caged/d3-tip\n\nimport { map } from \"d3-collection\";\nimport { select, selection } from \"d3-selection\";\n\nexport function tip() {\n    let direction = d3TipDirection;\n    let offset = d3TipOffset;\n    let html = d3TipHTML;\n    let rootElement = functor(document.body);\n    let node = initNode();\n    let svg = null;\n    let point = null;\n    let target = null;\n\n    const tip: any = function (vis) {\n        svg = getSVGNode(vis);\n        if (!svg) return;\n        point = svg.createSVGPoint();\n        const re = rootElement();\n        if (!re) return;\n        if (!node) return;\n        re.appendChild(node);\n    };\n\n    // Public - show the tooltip on the screen\n    //\n    // Returns a tip\n    tip.show = function (d, idx, arr) {\n        target = arr[idx];\n        const args = Array.prototype.slice.call(arguments) as [];\n        const content = html.apply(this, args);\n        if (content === null) {\n            return tip;\n        }\n        const poffset = offset.apply(this, args);\n        const nodel = getNodeEl();\n        let i = directions.length;\n        let coords;\n        const root_bbox = rootElement().getBoundingClientRect();\n        nodel.html(content)\n            .style(\"opacity\", 1).style(\"pointer-events\", \"all\");\n\n        while (i--) nodel.classed(directions[i], false);\n        let placement_success = false;\n        const placement_overflow = {};\n        let least_overflow_direction = directions[0];\n        for (let i = 0; i < directions.length; i++) {\n            placement_success = _placement_attempt(directions[i]);\n            if (placement_success) break;\n        }\n        if (!placement_success) {\n            nodel.classed(\"notick\", true);\n            const top_offset = _vertical_adjustment(placement_overflow[least_overflow_direction]);\n            const left_offset = _horizontal_adjustment(placement_overflow[least_overflow_direction]);\n            _placement_attempt(least_overflow_direction, top_offset, left_offset);\n        } else {\n            nodel.classed(\"notick\", false);\n        }\n        return tip;\n\n        function _horizontal_adjustment(overflow_obj) {\n            if (overflow_obj.left > overflow_obj.right) {\n                return overflow_obj.left > 0 ? -overflow_obj.left : 0;\n            } else {\n                return overflow_obj.right > 0 ? overflow_obj.right : 0;\n            }\n        }\n        function _vertical_adjustment(overflow_obj) {\n            if (overflow_obj.top > overflow_obj.bottom) {\n                return overflow_obj.top > 0 ? -overflow_obj.top : 0;\n            } else {\n                return overflow_obj.bottom;\n            }\n        }\n\n        function _placement_attempt(this: any, _dir, _top_offset?, _left_offset?) {\n            _top_offset = _top_offset ? _top_offset : 0;\n            _left_offset = _left_offset ? _left_offset : 0;\n            nodel.style(\"white-space\", \"nowrap\");\n            coords = directionCallbacks.get(_dir).apply(this);\n            nodel.classed(_dir, true)\n                .style(\"top\", (coords.top + poffset[0] - _top_offset) + \"px\")\n                .style(\"left\", (coords.left + poffset[1] - _left_offset) + \"px\");\n            const nodel_bbox = nodel.node().getBoundingClientRect();\n            const ret = nodel_bbox.top > root_bbox.top\n                && nodel_bbox.left > root_bbox.left\n                && nodel_bbox.bottom < root_bbox.bottom\n                && nodel_bbox.right < root_bbox.right\n                ;\n            placement_overflow[_dir] = {\n                top: root_bbox.top - nodel_bbox.top,\n                right: nodel_bbox.right - root_bbox.right,\n                bottom: nodel_bbox.bottom - root_bbox.bottom,\n                left: root_bbox.left - nodel_bbox.left\n            };\n            nodel.style(\"white-space\", \"normal\");\n            placement_overflow[_dir].total_overflow = Object.keys(placement_overflow[_dir])\n                .filter(side => placement_overflow[_dir][side] > 0)\n                .reduce((sum, side) => {\n                    const side_overflow = placement_overflow[_dir][side];\n                    return sum + side_overflow;\n                }, 0);\n            if (placement_overflow[least_overflow_direction].total_overflow > placement_overflow[_dir].total_overflow) {\n                least_overflow_direction = _dir;\n            }\n            if (!ret) {\n                nodel.classed(_dir, false);\n            }\n            return ret;\n        }\n    };\n\n    // Public - hide the tooltip\n    //\n    // Returns a tip\n    tip.hide = function () {\n        const nodel = getNodeEl();\n        nodel.style(\"opacity\", 0).style(\"pointer-events\", \"none\");\n        return tip;\n    };\n\n    // Public: Proxy attr calls to the d3 tip container.\n    // Sets or gets attribute value.\n    //\n    // n - name of the attribute\n    // v - value of the attribute\n    //\n    // Returns tip or attribute value\n    tip.attr = function (n, v) {\n        if (arguments.length < 2 && typeof n === \"string\") {\n            return getNodeEl().attr(n);\n        }\n\n        const args = Array.prototype.slice.call(arguments);\n        selection.prototype.attr.apply(getNodeEl(), args);\n        return tip;\n    };\n\n    // Public: Proxy style calls to the d3 tip container.\n    // Sets or gets a style value.\n    //\n    // n - name of the property\n    // v - value of the property\n    //\n    // Returns tip or style property value \n    tip.style = function (n, v) {\n        if (arguments.length < 2 && typeof n === \"string\") {\n            return getNodeEl().style(n);\n        }\n\n        const args = Array.prototype.slice.call(arguments);\n        selection.prototype.style.apply(getNodeEl(), args);\n        return tip;\n    };\n\n    // Public: Set or get the direction of the tooltip\n    //\n    // v - One of n(north), s(south), e(east), or w(west), nw(northwest),\n    //     sw(southwest), ne(northeast) or se(southeast)\n    //\n    // Returns tip or direction\n    tip.direction = function (v) {\n        if (!arguments.length) return direction;\n        direction = v == null ? v : functor(v);\n\n        return tip;\n    };\n\n    // Public: Sets or gets the offset of the tip\n    //\n    // v - Array of [x, y] offset\n    //\n    // Returns offset or\n    tip.offset = function (v) {\n        if (!arguments.length) return offset;\n        offset = v == null ? v : functor(v);\n\n        return tip;\n    };\n\n    // Public: sets or gets the html value of the tooltip\n    //\n    // v - String value of the tip\n    //\n    // Returns html value or tip\n    tip.html = function (v) {\n        if (!arguments.length) return html;\n        html = v == null ? v : functor(v);\n\n        return tip;\n    };\n\n    // Public: sets or gets the root element anchor of the tooltip\n    //\n    // v - root element of the tooltip\n    //\n    // Returns root node of tip\n    tip.rootElement = function (v) {\n        if (!arguments.length) return rootElement;\n        rootElement = functor(v);\n\n        return tip;\n    };\n\n    // Public: destroys the tooltip and removes it from the DOM\n    //\n    // Returns a tip\n    tip.destroy = function () {\n        if (node) {\n            getNodeEl().remove();\n            node = null;\n        }\n        return tip;\n    };\n\n    function d3TipDirection() { return \"n\"; }\n    function d3TipOffset() { return [0, 0]; }\n    function d3TipHTML() { return \" \"; }\n\n    const directionCallbacks = map({\n        n: directionNorth,\n        s: directionSouth,\n        e: directionEast,\n        w: directionWest,\n        nw: directionNorthWest,\n        ne: directionNorthEast,\n        sw: directionSouthWest,\n        se: directionSouthEast\n    });\n    const directions = directionCallbacks.keys();\n\n    function directionNorth() {\n        const bbox = getScreenBBox(window);\n        return {\n            top: bbox.n.y - node.offsetHeight,\n            left: bbox.n.x - node.offsetWidth / 2\n        };\n    }\n\n    function directionSouth() {\n        const bbox = getScreenBBox(window);\n        return {\n            top: bbox.s.y + 8,\n            left: bbox.s.x - node.offsetWidth / 2\n        };\n    }\n\n    function directionEast() {\n        const bbox = getScreenBBox(window);\n        return {\n            top: bbox.e.y - node.offsetHeight / 2,\n            left: bbox.e.x + 8\n        };\n    }\n\n    function directionWest() {\n        const bbox = getScreenBBox(window);\n        return {\n            top: bbox.w.y - node.offsetHeight / 2,\n            left: bbox.w.x - node.offsetWidth - 8\n        };\n    }\n\n    function directionNorthWest() {\n        const bbox = getScreenBBox(window);\n        return {\n            top: bbox.nw.y - node.offsetHeight,\n            left: bbox.nw.x - node.offsetWidth\n        };\n    }\n\n    function directionNorthEast() {\n        const bbox = getScreenBBox(window);\n        return {\n            top: bbox.ne.y - node.offsetHeight,\n            left: bbox.ne.x\n        };\n    }\n\n    function directionSouthWest() {\n        const bbox = getScreenBBox(window);\n        return {\n            top: bbox.sw.y,\n            left: bbox.sw.x - node.offsetWidth\n        };\n    }\n\n    function directionSouthEast() {\n        const bbox = getScreenBBox(window);\n        return {\n            top: bbox.se.y,\n            left: bbox.se.x\n        };\n    }\n\n    function initNode() {\n        const div = select(document.createElement(\"div\"));\n        div\n            .attr(\"class\", \"d3-tip\")\n            .style(\"position\", \"absolute\")\n            .style(\"top\", \"0px\")\n            .style(\"opacity\", 0)\n            .style(\"pointer-events\", \"none\")\n            .style(\"box-sizing\", \"border-box\");\n\n        return div.node();\n    }\n\n    function getSVGNode(element) {\n        const svgNode = element.node();\n        if (!svgNode) return null;\n        if (svgNode.tagName.toLowerCase() === \"svg\") return svgNode;\n        return svgNode.ownerSVGElement;\n    }\n\n    function getNodeEl() {\n        if (node == null) {\n            node = initNode();\n            // re-add node to DOM\n            rootElement().appendChild(node);\n        }\n        return select(node);\n    }\n\n    // Private - gets the screen coordinates of a shape\n    //\n    // Given a shape on the screen, will return an SVGPoint for the directions\n    // n(north), s(south), e(east), w(west), ne(northeast), se(southeast),\n    // nw(northwest), sw(southwest).\n    //\n    //    +-+-+\n    //    |   |\n    //    +   +\n    //    |   |\n    //    +-+-+\n    //\n    // Returns an Object {n, s, e, w, nw, sw, ne, se}\n    function getScreenBBox(targetShape) {\n        let targetel = target || targetShape;\n\n        while (targetel.getCTM == null && targetel.parentNode != null) {\n            targetel = targetel.parentNode;\n        }\n\n        const bbox: any = {};\n        const matrix = targetel.getCTM();\n        const tbbox = targetel.getBBox();\n        const width = tbbox.width;\n        const height = tbbox.height;\n        const x = tbbox.x;\n        const y = tbbox.y;\n\n        point.x = x;\n        point.y = y;\n        bbox.nw = point.matrixTransform(matrix);\n        point.x += width;\n        bbox.ne = point.matrixTransform(matrix);\n        point.y += height;\n        bbox.se = point.matrixTransform(matrix);\n        point.x -= width;\n        bbox.sw = point.matrixTransform(matrix);\n        point.y -= height / 2;\n        bbox.w = point.matrixTransform(matrix);\n        point.x += width;\n        bbox.e = point.matrixTransform(matrix);\n        point.x -= width / 2;\n        point.y -= height / 2;\n        bbox.n = point.matrixTransform(matrix);\n        point.y += height;\n        bbox.s = point.matrixTransform(matrix);\n\n        return bbox;\n    }\n\n    // Private - replace D3JS 3.X d3.functor() function\n    function functor(v) {\n        return typeof v === \"function\" ? v : function () {\n            return v;\n        };\n    }\n\n    return tip;\n}\n","import { Widget } from \"@hpcc-js/common\";\nimport { format as d3Format } from \"d3-format\";\nimport { tip } from \"./Tooltip.ts\";\n\nimport \"../src/ITooltip.css\";\n\ndeclare const event: object;\n\n//  Use old school class declaration as this is a mixin  ---\nexport function ITooltip(this: any) {\n    this.tooltip = tip();\n\n    if (this.tooltipLabelFormat_exists()) {\n        this._labelFormatter = d3Format(this.tooltipLabelFormat() as string);\n    }\n\n    if (this.tooltipValueFormat_exists()) {\n        this._valueFormatter = d3Format(this.tooltipValueFormat() as string);\n    }\n\n    if (this.layerEnter) {\n        const layerEnter = this.layerEnter;\n        this.layerEnter = function (_base, svgElement, _domElement) {\n            if (!this._parentOverlay) {\n                this._parentOverlay = _base._parentOverlay;\n            }\n            this.tooltipEnter(svgElement);\n            layerEnter.apply(this, arguments);\n        };\n        const layerUpdate = this.layerUpdate;\n        this.layerUpdate = function (_base) {\n            layerUpdate.apply(this, arguments);\n            this.tooltipUpdate();\n        };\n        const layerExit = this.layerExit;\n        this.layerExit = function (_base) {\n            this.tooltipExit();\n            layerExit.apply(this, arguments);\n        };\n    } else {\n        const enter = this.enter;\n        this.enter = function (_domNode, element) {\n            this.tooltipEnter(element);\n            enter.apply(this, arguments);\n        };\n        const update = this.update;\n        this.update = function (_domNode, _element) {\n            update.apply(this, arguments);\n            this.tooltipUpdate();\n        };\n        const exit = this.exit;\n        this.exit = function (_domNode, _element) {\n            this.tooltipExit();\n            exit.apply(this, arguments);\n        };\n    }\n}\nITooltip.prototype = Object.create(Widget.prototype);\nITooltip.prototype.constructor = ITooltip;\n\n// abstract target(): any;\n// abstract target(_: any): this;\n\nITooltip.prototype.tooltipEnter = function (element) {\n    const overlayElement = this.parentOverlay();\n    if (!overlayElement.empty()) {\n        this.tooltip.rootElement(overlayElement.node().parentNode);\n    }\n    element.call(this.tooltip);\n};\n\nITooltip.prototype.tooltipUpdate = function () {\n    this.tooltip.offset(() => {\n        if (event && this.tooltipFollowMouse()) {\n            const d3tipElement: HTMLDivElement = document.querySelector(\".d3-tip\"); // d3Tip offers no reference to the '.d3-tip' element...?\n            d3tipElement.style.display = \"block\";\n            d3tipElement.style.left = this.tooltipOffset() + ((event as any).clientX) + \"px\";\n            d3tipElement.style.top = (event as any).clientY + \"px\";\n            return [];\n        }\n        switch (this.tooltip.direction()()) {\n            case \"e\":\n                return [0, this.tooltipOffset()];\n            default:\n                return [-this.tooltipOffset(), 0];\n        }\n    });\n\n    let classed = this.tooltip.attr(\"class\");\n    if (classed) {\n        classed = classed.split(\" notick\").join(\"\") + (this.tooltipTick() ? \"\" : \" notick\") + (this.tooltipStyle() === \"none\" ? \" hidden\" : \"\");\n        classed = classed.split(\" \")\n            .filter(function (_class) {\n                return _class.indexOf(\"ITooltip-tooltipStyle-\") !== 0;\n            })\n            .join(\" \")\n            ;\n        classed += \" ITooltip-tooltipStyle-\" + this.tooltipStyle();\n        this.tooltip\n            .attr(\"class\", classed)\n            ;\n    }\n};\n\nITooltip.prototype.tooltipExit = function () {\n    if (this.tooltip) {\n        this.tooltip.destroy();\n    }\n};\n\nITooltip.prototype._tooltipHTML = function (d) {\n    return d;\n};\n\nITooltip.prototype.tooltipHTML = function (_) {\n    return this.tooltip.html(_);\n};\n\nITooltip.prototype.tooltipFormat = function (opts: { label?: string | number, series?: string | number, value?: Date | string | number, arr?: Array<{ color: string, label: string, value: string }> } = {}) {\n    opts.label = opts.label === undefined ? \"\" : opts.label;\n    if (this._labelFormatter) {\n        opts.label = this._labelFormatter(opts.label) || \"\";\n    } else if (this.formatData && this.parseData) {\n        opts.label = this.formatData(this.parseData(opts.label));\n    }\n    opts.series = opts.series || \"\";\n    if (opts.value instanceof Date) {\n        opts.value = opts.value || \"\";\n    } else if (this._valueFormatter) {\n        opts.value = this._valueFormatter(opts.value) || \"\";\n    } else if (this.formatValue && this.parseValue) {\n        opts.value = this.formatValue(this.parseValue(opts.value));\n    }\n    switch (this.tooltipStyle()) {\n        case \"none\":\n            break;\n        case \"series-table\":\n            let html = '<table class=\"ITooltip-series-table\">'\n                + \"<thead>\"\n                + '<tr><th colspan=\"2\">' + opts.label + \"</th></tr>\"\n                + \"</thead>\"\n                + \"<tbody>\";\n            opts.arr.forEach(function (row) {\n                html += \"<tr>\";\n                html += \"<td>\";\n                html += '<div class=\"series-table-row-color\" style=\"background-color:' + row.color + '\"></div>';\n                html += '<div class=\"series-table-row-label\">' + row.label + \"</div>\";\n                html += \"</td>\";\n                html += '<td><div class=\"series-table-row-value\">' + row.value + \"</div></td>\";\n                html += \"</tr>\";\n            });\n            html += \"</tbody>\";\n            html += \"</table>\";\n            return html;\n        default:\n            if (opts.series) {\n                return \"<span style='color:\" + this.tooltipSeriesColor() + \"'>\" + opts.series + \"</span> / <span style='color:\" + this.tooltipLabelColor() + \"'>\" + opts.label + \"</span>:  <span style='color:\" + this.tooltipValueColor() + \"'>\" + opts.value + \"</span>\";\n            }\n            if (opts.label !== \"\") {\n                return \"<span style='color:\" + this.tooltipLabelColor() + \"'>\" + opts.label + \"</span>:  <span style='color:\" + this.tooltipValueColor() + \"'>\" + opts.value + \"</span>\";\n            }\n            return \"<span style='color:\" + this.tooltipValueColor() + \"'>\" + opts.value + \"</span>\";\n    }\n};\n\nITooltip.prototype.tooltipKeyValueFormat = function (titleKey: string, obj: object): string {\n    let body = \"\";\n    for (const key in obj) {\n        if (key !== titleKey) {\n            const value = obj && obj[key] ? obj[key] : \"\";\n            body += `<tr><td style=\"${this.tooltipLabelColor_exists() ? \"color:\" + this.tooltipLabelColor() : \"\"}\">${key}</td><td style=\"font-weight:normal\">${value}</td></tr>`;\n        }\n    }\n    return `<table>\n                    <thead>\n                        <tr><th colspan=\"2\" style=\"font-weight:bold;font-size:16px\">${obj[titleKey]}</th></tr>\n                    </thead>\n                    <tbody>\n                        ${body}\n                    </tbody>\n                </table>`;\n};\n\nexport interface ITooltip {\n    tooltipStyle: { (): \"default\" | \"none\" | \"series-table\"; (_: \"default\" | \"none\" | \"series-table\"): ITooltip; };\n    tooltipFollowMouse: { (): boolean; (_: boolean): ITooltip; };\n    tooltipLabelFormat: (_?) => string | ITooltip;\n    tooltipLabelFormat_exists: () => boolean;\n    tooltipValueFormat: (_?) => string | ITooltip;\n    tooltipValueFormat_exists: () => boolean;\n    tooltipSeriesColor: { (): string; (_: string): ITooltip; };\n    tooltipLabelColor: { (): string; (_: string): ITooltip; };\n    tooltipLabelColor_exists: () => boolean;\n    tooltipValueColor: { (): string; (_: string): ITooltip; };\n    tooltipTick: { (): boolean; (_: boolean): ITooltip; };\n    tooltipOffset: { (): number; (_: number): ITooltip; };\n    tooltipOffset_default: { (): number; (_: number): ITooltip; };\n}\nITooltip.prototype.publish(\"tooltipStyle\", \"default\", \"set\", \"Style mode\", [\"default\", \"none\", \"series-table\"], {});\nITooltip.prototype.publish(\"tooltipFollowMouse\", false, \"boolean\", \"If true, the tooltip will follow mouse movement\", null, {});\nITooltip.prototype.publish(\"tooltipLabelFormat\", undefined, \"string\", \"Format of tooltip label(s) (the domain axis)\", null, {});\nITooltip.prototype.publish(\"tooltipValueFormat\", undefined, \"string\", \"Number format of tooltip value(s)\", null, {});\nITooltip.prototype.publish(\"tooltipSeriesColor\", \"#EAFFFF\", \"html-color\", \"Color of tooltip series text\", null, {});\nITooltip.prototype.publish(\"tooltipLabelColor\", \"#CCFFFF\", \"html-color\", \"Color of tooltip label text (the domain axis)\", null, {});\nITooltip.prototype.publish(\"tooltipValueColor\", \"white\", \"html-color\", \"Color of tooltip value(s)\", null, {});\nITooltip.prototype.publish(\"tooltipTick\", true, \"boolean\", \"Show tooltip tick\", null, {});\nITooltip.prototype.publish(\"tooltipOffset\", 8, \"number\", \"Offset from the cursor\", null, {});\n\nconst tooltipLabelFormat = ITooltip.prototype.tooltipLabelFormat;\nITooltip.prototype.tooltipLabelFormat = function (_?): string | ITooltip {\n    const retVal = tooltipLabelFormat.apply(this, arguments);\n    if (arguments.length) {\n        this._labelFormatter = d3Format(_);\n    }\n    return retVal;\n};\n\nconst tooltipValueFormat = ITooltip.prototype.tooltipValueFormat;\nITooltip.prototype.tooltipValueFormat = function (_?): string | ITooltip {\n    const retVal = tooltipValueFormat.apply(this, arguments);\n    if (arguments.length) {\n        this._valueFormatter = d3Format(_);\n    }\n    return retVal;\n};\n","import { Palette } from \"@hpcc-js/common\";\n\n//  Use old school class declaration as this is a mixin  ---\nexport function ITree() {\n}\nITree.prototype.constructor = ITree;\n\n//  Events  ---\nITree.prototype.click = function (row, column, selected) {\n};\n\nITree.prototype.dblclick = function (row, column, selected) {\n};\n\nITree.prototype._palette = Palette.ordinal(\"default\");\n","export const PKG_NAME = \"__PACKAGE_NAME__\";\nexport const PKG_VERSION = \"__PACKAGE_VERSION__\";\nexport const BUILD_VERSION = \"__BUILD_VERSION__\";\n"],"names":["I1DChart","I2DChart","I2DAggrChart","IGraph","instanceOfIHighlight","w","highlightColumn","IInput","INDChart","tip","direction","d3TipDirection","offset","d3TipOffset","html","d3TipHTML","rootElement","functor","document","body","node","initNode","svg","point","target","vis","getSVGNode","createSVGPoint","re","appendChild","show","d","idx","arr","args","Array","prototype","slice","call","arguments","content","apply","this","poffset","nodel","getNodeEl","coords","i","directions","length","root_bbox","getBoundingClientRect","style","classed","placement_success","placement_overflow","least_overflow_direction","_placement_attempt","top_offset","_vertical_adjustment","left_offset","_horizontal_adjustment","overflow_obj","left","right","top","bottom","_dir","_top_offset","_left_offset","directionCallbacks","get","nodel_bbox","ret","total_overflow","Object","keys","filter","side","reduce","sum","hide","attr","n","v","selection","destroy","remove","__name","map","directionNorth","s","directionSouth","e","directionEast","directionWest","nw","directionNorthWest","ne","directionNorthEast","sw","directionSouthWest","se","directionSouthEast","bbox","getScreenBBox","window","y","offsetHeight","x","offsetWidth","div","select","createElement","element","svgNode","tagName","toLowerCase","ownerSVGElement","targetShape","targetel","getCTM","parentNode","matrix","tbbox","getBBox","width","height","matrixTransform","ITooltip","tooltip","tooltipLabelFormat_exists","_labelFormatter","d3Format","tooltipLabelFormat","tooltipValueFormat_exists","_valueFormatter","tooltipValueFormat","layerEnter","_base","svgElement","_domElement","_parentOverlay","tooltipEnter","layerUpdate","tooltipUpdate","layerExit","tooltipExit","enter","_domNode","update","_element","exit","_dataFamily","_palette","Palette","rainbow","click","row","column","selected","dblclick","ordinal","fillColor","value","origRow","strokeColor","d3Hsl","darker","toString","textColor","vertex_click","_row","_col","_sel","more","vertex","vertex_dblclick","edge_click","edge","edge_dblclick","create","Widget","constructor","isValid","validate","RegExp","test","hasValue","type","blur","_w","keyup","focus","change","complete","resetValue","_inputElement","disable","forEach","setFocus","publish","overlayElement","parentOverlay","empty","event","tooltipFollowMouse","d3tipElement","querySelector","display","tooltipOffset","clientX","clientY","split","join","tooltipTick","tooltipStyle","_class","indexOf","_tooltipHTML","tooltipHTML","_","tooltipFormat","opts","label","formatData","parseData","series","Date","formatValue","parseValue","color","tooltipSeriesColor","tooltipLabelColor","tooltipValueColor","tooltipKeyValueFormat","titleKey","obj","key","tooltipLabelColor_exists","retVal","ITree"],"mappings":"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"}