@carbon/charts 1.2.1 → 1.3.2
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/CHANGELOG.md +33 -0
- package/build/demo/data/bar.d.ts +46 -0
- package/build/demo/data/zoom-bar.d.ts +6 -0
- package/build/src/components/graphs/bar-grouped.d.ts +2 -0
- package/bundle.js +1 -1
- package/components/axes/axis.js +2 -0
- package/components/axes/axis.js.map +1 -1
- package/components/graphs/bar-grouped.d.ts +2 -0
- package/components/graphs/bar-grouped.js +28 -8
- package/components/graphs/bar-grouped.js.map +1 -1
- package/demo/data/bar.d.ts +46 -0
- package/demo/data/bar.js +111 -0
- package/demo/data/bar.js.map +1 -1
- package/demo/data/bundle.js +1 -1
- package/demo/data/index.js +20 -0
- package/demo/data/index.js.map +1 -1
- package/demo/data/zoom-bar.d.ts +6 -0
- package/demo/data/zoom-bar.js +2 -0
- package/demo/data/zoom-bar.js.map +1 -1
- package/demo/tsconfig.tsbuildinfo +5 -5
- package/package.json +1 -2
- package/services/essentials/dom-to-image.d.ts +120 -0
- package/services/essentials/dom-to-image.js +720 -0
- package/services/essentials/dom-to-image.js.map +1 -0
- package/services/essentials/dom-utils.js +1 -1
- package/services/essentials/dom-utils.js.map +1 -1
- package/tsconfig.tsbuildinfo +18 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom-to-image.js","sourceRoot":"","sources":["dom-to-image.js"],"names":[],"mappings":"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","sourcesContent":["/**\nThe MIT License (MIT)\n\nCopyright 2015 Anatolii Saienko\nhttps://github.com/tsayen\n\nCopyright 2012 Paul Bakaus\nhttp://paulbakaus.com/\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n\n(function (global) {\n\t'use strict';\n\n\tvar util = newUtil();\n\tvar inliner = newInliner();\n\tvar fontFaces = newFontFaces();\n\tvar images = newImages();\n\n\t// Default impl options\n\tvar defaultOptions = {\n\t\t// Default is to fail on error, no placeholder\n\t\timagePlaceholder: undefined,\n\t\t// Default cache bust is false, it will use the cache\n\t\tcacheBust: false,\n\t};\n\n\tvar domtoimage = {\n\t\ttoSvg: toSvg,\n\t\ttoPng: toPng,\n\t\ttoJpeg: toJpeg,\n\t\ttoBlob: toBlob,\n\t\ttoPixelData: toPixelData,\n\t\timpl: {\n\t\t\tfontFaces: fontFaces,\n\t\t\timages: images,\n\t\t\tutil: util,\n\t\t\tinliner: inliner,\n\t\t\toptions: {},\n\t\t},\n\t};\n\n\tif (typeof module !== 'undefined') module.exports = domtoimage;\n\telse global.domtoimage = domtoimage;\n\n\t/**\n\t * @param {Node} node - The DOM Node object to render\n\t * @param {Object} options - Rendering options\n\t * @param {Function} options.filter - Should return true if passed node should be included in the output\n\t * (excluding node means excluding it's children as well). Not called on the root node.\n\t * @param {String} options.bgcolor - color for the background, any valid CSS color value.\n\t * @param {Number} options.width - width to be applied to node before rendering.\n\t * @param {Number} options.height - height to be applied to node before rendering.\n\t * @param {Object} options.style - an object whose properties to be copied to node's style before rendering.\n\t * @param {Number} options.quality - a Number between 0 and 1 indicating image quality (applicable to JPEG only),\n\t\t\t\tdefaults to 1.0.\n\t * @param {String} options.imagePlaceholder - dataURL to use as a placeholder for failed images, default behaviour is to fail fast on images we can't fetch\n\t * @param {Boolean} options.cacheBust - set to true to cache bust by appending the time to the request url\n\t * @return {Promise} - A promise that is fulfilled with a SVG image data URL\n\t * */\n\tfunction toSvg(node, options) {\n\t\toptions = options || {};\n\t\tcopyOptions(options);\n\t\treturn Promise.resolve(node)\n\t\t\t.then(function (node) {\n\t\t\t\treturn cloneNode(node, options.filter, true);\n\t\t\t})\n\t\t\t.then(embedFonts)\n\t\t\t.then(inlineImages)\n\t\t\t.then(applyOptions)\n\t\t\t.then(function (clone) {\n\t\t\t\treturn makeSvgDataUri(\n\t\t\t\t\tclone,\n\t\t\t\t\toptions.width || util.width(node),\n\t\t\t\t\toptions.height || util.height(node)\n\t\t\t\t);\n\t\t\t});\n\n\t\tfunction applyOptions(clone) {\n\t\t\tif (options.bgcolor) clone.style.backgroundColor = options.bgcolor;\n\n\t\t\tif (options.width) clone.style.width = options.width + 'px';\n\t\t\tif (options.height) clone.style.height = options.height + 'px';\n\n\t\t\tif (options.style)\n\t\t\t\tObject.keys(options.style).forEach(function (property) {\n\t\t\t\t\tclone.style[property] = options.style[property];\n\t\t\t\t});\n\n\t\t\treturn clone;\n\t\t}\n\t}\n\n\t/**\n\t * @param {Node} node - The DOM Node object to render\n\t * @param {Object} options - Rendering options, @see {@link toSvg}\n\t * @return {Promise} - A promise that is fulfilled with a Uint8Array containing RGBA pixel data.\n\t * */\n\tfunction toPixelData(node, options) {\n\t\treturn draw(node, options || {}).then(function (canvas) {\n\t\t\treturn canvas\n\t\t\t\t.getContext('2d')\n\t\t\t\t.getImageData(0, 0, util.width(node), util.height(node)).data;\n\t\t});\n\t}\n\n\t/**\n\t * @param {Node} node - The DOM Node object to render\n\t * @param {Object} options - Rendering options, @see {@link toSvg}\n\t * @return {Promise} - A promise that is fulfilled with a PNG image data URL\n\t * */\n\tfunction toPng(node, options) {\n\t\treturn draw(node, options || {}).then(function (canvas) {\n\t\t\treturn canvas.toDataURL();\n\t\t});\n\t}\n\n\t/**\n\t * @param {Node} node - The DOM Node object to render\n\t * @param {Object} options - Rendering options, @see {@link toSvg}\n\t * @return {Promise} - A promise that is fulfilled with a JPEG image data URL\n\t * */\n\tfunction toJpeg(node, options) {\n\t\toptions = options || {};\n\t\treturn draw(node, options).then(function (canvas) {\n\t\t\treturn canvas.toDataURL('image/jpeg', options.quality || 1.0);\n\t\t});\n\t}\n\n\t/**\n\t * @param {Node} node - The DOM Node object to render\n\t * @param {Object} options - Rendering options, @see {@link toSvg}\n\t * @return {Promise} - A promise that is fulfilled with a PNG image blob\n\t * */\n\tfunction toBlob(node, options) {\n\t\treturn draw(node, options || {}).then(util.canvasToBlob);\n\t}\n\n\tfunction copyOptions(options) {\n\t\t// Copy options to impl options for use in impl\n\t\tif (typeof options.imagePlaceholder === 'undefined') {\n\t\t\tdomtoimage.impl.options.imagePlaceholder =\n\t\t\t\tdefaultOptions.imagePlaceholder;\n\t\t} else {\n\t\t\tdomtoimage.impl.options.imagePlaceholder = options.imagePlaceholder;\n\t\t}\n\n\t\tif (typeof options.cacheBust === 'undefined') {\n\t\t\tdomtoimage.impl.options.cacheBust = defaultOptions.cacheBust;\n\t\t} else {\n\t\t\tdomtoimage.impl.options.cacheBust = options.cacheBust;\n\t\t}\n\t}\n\n\tfunction draw(domNode, options) {\n\t\treturn toSvg(domNode, options)\n\t\t\t.then(util.makeImage)\n\t\t\t.then(util.delay(100))\n\t\t\t.then(function (image) {\n\t\t\t\tvar canvas = newCanvas(domNode);\n\t\t\t\tcanvas.getContext('2d').drawImage(image, 0, 0);\n\t\t\t\treturn canvas;\n\t\t\t});\n\n\t\tfunction newCanvas(domNode) {\n\t\t\tvar canvas = document.createElement('canvas');\n\t\t\tcanvas.width = options.width || util.width(domNode);\n\t\t\tcanvas.height = options.height || util.height(domNode);\n\n\t\t\tif (options.bgcolor) {\n\t\t\t\tvar ctx = canvas.getContext('2d');\n\t\t\t\tctx.fillStyle = options.bgcolor;\n\t\t\t\tctx.fillRect(0, 0, canvas.width, canvas.height);\n\t\t\t}\n\n\t\t\treturn canvas;\n\t\t}\n\t}\n\n\tfunction cloneNode(node, filter, root) {\n\t\tif (!root && filter && !filter(node)) return Promise.resolve();\n\n\t\treturn Promise.resolve(node)\n\t\t\t.then(makeNodeCopy)\n\t\t\t.then(function (clone) {\n\t\t\t\treturn cloneChildren(node, clone, filter);\n\t\t\t})\n\t\t\t.then(function (clone) {\n\t\t\t\treturn processClone(node, clone);\n\t\t\t});\n\n\t\tfunction makeNodeCopy(node) {\n\t\t\tif (node instanceof HTMLCanvasElement)\n\t\t\t\treturn util.makeImage(node.toDataURL());\n\t\t\treturn node.cloneNode(false);\n\t\t}\n\n\t\tfunction cloneChildren(original, clone, filter) {\n\t\t\tvar children = original.childNodes;\n\t\t\tif (children.length === 0) return Promise.resolve(clone);\n\n\t\t\treturn cloneChildrenInOrder(\n\t\t\t\tclone,\n\t\t\t\tutil.asArray(children),\n\t\t\t\tfilter\n\t\t\t).then(function () {\n\t\t\t\treturn clone;\n\t\t\t});\n\n\t\t\tfunction cloneChildrenInOrder(parent, children, filter) {\n\t\t\t\tvar done = Promise.resolve();\n\t\t\t\tchildren.forEach(function (child) {\n\t\t\t\t\tdone = done\n\t\t\t\t\t\t.then(function () {\n\t\t\t\t\t\t\treturn cloneNode(child, filter);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(function (childClone) {\n\t\t\t\t\t\t\tif (childClone) parent.appendChild(childClone);\n\t\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\treturn done;\n\t\t\t}\n\t\t}\n\n\t\tfunction processClone(original, clone) {\n\t\t\tif (!(clone instanceof Element)) return clone;\n\n\t\t\treturn Promise.resolve()\n\t\t\t\t.then(cloneStyle)\n\t\t\t\t.then(clonePseudoElements)\n\t\t\t\t.then(copyUserInput)\n\t\t\t\t.then(fixSvg)\n\t\t\t\t.then(function () {\n\t\t\t\t\treturn clone;\n\t\t\t\t});\n\n\t\t\tfunction cloneStyle() {\n\t\t\t\tcopyStyle(window.getComputedStyle(original), clone.style);\n\n\t\t\t\tfunction copyStyle(source, target) {\n\t\t\t\t\tif (source.cssText) target.cssText = source.cssText;\n\t\t\t\t\telse copyProperties(source, target);\n\n\t\t\t\t\tfunction copyProperties(source, target) {\n\t\t\t\t\t\tutil.asArray(source).forEach(function (name) {\n\t\t\t\t\t\t\ttarget.setProperty(\n\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\tsource.getPropertyValue(name),\n\t\t\t\t\t\t\t\tsource.getPropertyPriority(name)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction clonePseudoElements() {\n\t\t\t\t[':before', ':after'].forEach(function (element) {\n\t\t\t\t\tclonePseudoElement(element);\n\t\t\t\t});\n\n\t\t\t\tfunction clonePseudoElement(element) {\n\t\t\t\t\tvar style = window.getComputedStyle(original, element);\n\t\t\t\t\tvar content = style.getPropertyValue('content');\n\n\t\t\t\t\tif (content === '' || content === 'none') return;\n\n\t\t\t\t\tvar className = util.uid();\n\t\t\t\t\tclone.className = clone.className + ' ' + className;\n\t\t\t\t\tvar styleElement = document.createElement('style');\n\t\t\t\t\tstyleElement.appendChild(\n\t\t\t\t\t\tformatPseudoElementStyle(className, element, style)\n\t\t\t\t\t);\n\t\t\t\t\tclone.appendChild(styleElement);\n\n\t\t\t\t\tfunction formatPseudoElementStyle(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\telement,\n\t\t\t\t\t\tstyle\n\t\t\t\t\t) {\n\t\t\t\t\t\tvar selector = '.' + className + ':' + element;\n\t\t\t\t\t\tvar cssText = style.cssText\n\t\t\t\t\t\t\t? formatCssText(style)\n\t\t\t\t\t\t\t: formatCssProperties(style);\n\t\t\t\t\t\treturn document.createTextNode(\n\t\t\t\t\t\t\tselector + '{' + cssText + '}'\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tfunction formatCssText(style) {\n\t\t\t\t\t\t\tvar content = style.getPropertyValue('content');\n\t\t\t\t\t\t\treturn style.cssText + ' content: ' + content + ';';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfunction formatCssProperties(style) {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\tutil\n\t\t\t\t\t\t\t\t\t.asArray(style)\n\t\t\t\t\t\t\t\t\t.map(formatProperty)\n\t\t\t\t\t\t\t\t\t.join('; ') + ';'\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tfunction formatProperty(name) {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\tname +\n\t\t\t\t\t\t\t\t\t': ' +\n\t\t\t\t\t\t\t\t\tstyle.getPropertyValue(name) +\n\t\t\t\t\t\t\t\t\t(style.getPropertyPriority(name)\n\t\t\t\t\t\t\t\t\t\t? ' !important'\n\t\t\t\t\t\t\t\t\t\t: '')\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction copyUserInput() {\n\t\t\t\tif (original instanceof HTMLTextAreaElement)\n\t\t\t\t\tclone.innerHTML = original.value;\n\t\t\t\tif (original instanceof HTMLInputElement)\n\t\t\t\t\tclone.setAttribute('value', original.value);\n\t\t\t}\n\n\t\t\tfunction fixSvg() {\n\t\t\t\tif (!(clone instanceof SVGElement)) return;\n\t\t\t\tclone.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\n\t\t\t\tif (!(clone instanceof SVGRectElement)) return;\n\t\t\t\t['width', 'height'].forEach(function (attribute) {\n\t\t\t\t\tvar value = clone.getAttribute(attribute);\n\t\t\t\t\tif (!value) return;\n\n\t\t\t\t\tclone.style.setProperty(attribute, value);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction embedFonts(node) {\n\t\treturn fontFaces.resolveAll().then(function (cssText) {\n\t\t\tvar styleNode = document.createElement('style');\n\t\t\tnode.appendChild(styleNode);\n\t\t\tstyleNode.appendChild(document.createTextNode(cssText));\n\t\t\treturn node;\n\t\t});\n\t}\n\n\tfunction inlineImages(node) {\n\t\treturn images.inlineAll(node).then(function () {\n\t\t\treturn node;\n\t\t});\n\t}\n\n\tfunction makeSvgDataUri(node, width, height) {\n\t\treturn Promise.resolve(node)\n\t\t\t.then(function (node) {\n\t\t\t\tnode.setAttribute('xmlns', 'http://www.w3.org/1999/xhtml');\n\t\t\t\treturn new XMLSerializer().serializeToString(node);\n\t\t\t})\n\t\t\t.then(util.escapeXhtml)\n\t\t\t.then(function (xhtml) {\n\t\t\t\treturn (\n\t\t\t\t\t'<foreignObject x=\"0\" y=\"0\" width=\"100%\" height=\"100%\">' +\n\t\t\t\t\txhtml +\n\t\t\t\t\t'</foreignObject>'\n\t\t\t\t);\n\t\t\t})\n\t\t\t.then(function (foreignObject) {\n\t\t\t\treturn (\n\t\t\t\t\t'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"' +\n\t\t\t\t\twidth +\n\t\t\t\t\t'\" height=\"' +\n\t\t\t\t\theight +\n\t\t\t\t\t'\">' +\n\t\t\t\t\tforeignObject +\n\t\t\t\t\t'</svg>'\n\t\t\t\t);\n\t\t\t})\n\t\t\t.then(function (svg) {\n\t\t\t\treturn 'data:image/svg+xml;charset=utf-8,' + svg;\n\t\t\t});\n\t}\n\n\tfunction newUtil() {\n\t\treturn {\n\t\t\tescape: escape,\n\t\t\tparseExtension: parseExtension,\n\t\t\tmimeType: mimeType,\n\t\t\tdataAsUrl: dataAsUrl,\n\t\t\tisDataUrl: isDataUrl,\n\t\t\tcanvasToBlob: canvasToBlob,\n\t\t\tresolveUrl: resolveUrl,\n\t\t\tgetAndEncode: getAndEncode,\n\t\t\tuid: uid(),\n\t\t\tdelay: delay,\n\t\t\tasArray: asArray,\n\t\t\tescapeXhtml: escapeXhtml,\n\t\t\tmakeImage: makeImage,\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t};\n\n\t\tfunction mimes() {\n\t\t\t/*\n\t\t\t * Only WOFF and EOT mime types for fonts are 'real'\n\t\t\t * see http://www.iana.org/assignments/media-types/media-types.xhtml\n\t\t\t */\n\t\t\tvar WOFF = 'application/font-woff';\n\t\t\tvar JPEG = 'image/jpeg';\n\n\t\t\treturn {\n\t\t\t\twoff: WOFF,\n\t\t\t\twoff2: WOFF,\n\t\t\t\tttf: 'application/font-truetype',\n\t\t\t\teot: 'application/vnd.ms-fontobject',\n\t\t\t\tpng: 'image/png',\n\t\t\t\tjpg: JPEG,\n\t\t\t\tjpeg: JPEG,\n\t\t\t\tgif: 'image/gif',\n\t\t\t\ttiff: 'image/tiff',\n\t\t\t\tsvg: 'image/svg+xml',\n\t\t\t};\n\t\t}\n\n\t\tfunction parseExtension(url) {\n\t\t\tvar match = /\\.([^\\.\\/]*?)$/g.exec(url);\n\t\t\tif (match) return match[1];\n\t\t\telse return '';\n\t\t}\n\n\t\tfunction mimeType(url) {\n\t\t\tvar extension = parseExtension(url).toLowerCase();\n\t\t\treturn mimes()[extension] || '';\n\t\t}\n\n\t\tfunction isDataUrl(url) {\n\t\t\treturn url.search(/^(data:)/) !== -1;\n\t\t}\n\n\t\tfunction toBlob(canvas) {\n\t\t\treturn new Promise(function (resolve) {\n\t\t\t\tvar binaryString = window.atob(\n\t\t\t\t\tcanvas.toDataURL().split(',')[1]\n\t\t\t\t);\n\t\t\t\tvar length = binaryString.length;\n\t\t\t\tvar binaryArray = new Uint8Array(length);\n\n\t\t\t\tfor (var i = 0; i < length; i++)\n\t\t\t\t\tbinaryArray[i] = binaryString.charCodeAt(i);\n\n\t\t\t\tresolve(\n\t\t\t\t\tnew Blob([binaryArray], {\n\t\t\t\t\t\ttype: 'image/png',\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\tfunction canvasToBlob(canvas) {\n\t\t\tif (canvas.toBlob)\n\t\t\t\treturn new Promise(function (resolve) {\n\t\t\t\t\tcanvas.toBlob(resolve);\n\t\t\t\t});\n\n\t\t\treturn toBlob(canvas);\n\t\t}\n\n\t\tfunction resolveUrl(url, baseUrl) {\n\t\t\tvar doc = document.implementation.createHTMLDocument();\n\t\t\tvar base = doc.createElement('base');\n\t\t\tdoc.head.appendChild(base);\n\t\t\tvar a = doc.createElement('a');\n\t\t\tdoc.body.appendChild(a);\n\t\t\tbase.href = baseUrl;\n\t\t\ta.href = url;\n\t\t\treturn a.href;\n\t\t}\n\n\t\tfunction uid() {\n\t\t\tvar index = 0;\n\n\t\t\treturn function () {\n\t\t\t\treturn 'u' + fourRandomChars() + index++;\n\n\t\t\t\tfunction fourRandomChars() {\n\t\t\t\t\t/* see http://stackoverflow.com/a/6248722/2519373 */\n\t\t\t\t\treturn (\n\t\t\t\t\t\t'0000' +\n\t\t\t\t\t\t((Math.random() * Math.pow(36, 4)) << 0).toString(36)\n\t\t\t\t\t).slice(-4);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tfunction makeImage(uri) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar image = new Image();\n\t\t\t\timage.onload = function () {\n\t\t\t\t\tresolve(image);\n\t\t\t\t};\n\t\t\t\timage.onerror = reject;\n\t\t\t\timage.src = uri;\n\t\t\t});\n\t\t}\n\n\t\tfunction getAndEncode(url) {\n\t\t\tvar TIMEOUT = 30000;\n\t\t\tif (domtoimage.impl.options.cacheBust) {\n\t\t\t\t// Cache bypass so we dont have CORS issues with cached images\n\t\t\t\t// Source: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache\n\t\t\t\turl += (/\\?/.test(url) ? '&' : '?') + new Date().getTime();\n\t\t\t}\n\n\t\t\treturn new Promise(function (resolve) {\n\t\t\t\tvar request = new XMLHttpRequest();\n\n\t\t\t\trequest.onreadystatechange = done;\n\t\t\t\trequest.ontimeout = timeout;\n\t\t\t\trequest.responseType = 'blob';\n\t\t\t\trequest.timeout = TIMEOUT;\n\t\t\t\trequest.open('GET', url, true);\n\t\t\t\trequest.send();\n\n\t\t\t\tvar placeholder;\n\t\t\t\tif (domtoimage.impl.options.imagePlaceholder) {\n\t\t\t\t\tvar split = domtoimage.impl.options.imagePlaceholder.split(\n\t\t\t\t\t\t/,/\n\t\t\t\t\t);\n\t\t\t\t\tif (split && split[1]) {\n\t\t\t\t\t\tplaceholder = split[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfunction done() {\n\t\t\t\t\tif (request.readyState !== 4) return;\n\n\t\t\t\t\tif (request.status !== 200) {\n\t\t\t\t\t\tif (placeholder) {\n\t\t\t\t\t\t\tresolve(placeholder);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfail(\n\t\t\t\t\t\t\t\t'cannot fetch resource: ' +\n\t\t\t\t\t\t\t\t\turl +\n\t\t\t\t\t\t\t\t\t', status: ' +\n\t\t\t\t\t\t\t\t\trequest.status\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar encoder = new FileReader();\n\t\t\t\t\tencoder.onloadend = function () {\n\t\t\t\t\t\tvar content = encoder.result.split(/,/)[1];\n\t\t\t\t\t\tresolve(content);\n\t\t\t\t\t};\n\t\t\t\t\tencoder.readAsDataURL(request.response);\n\t\t\t\t}\n\n\t\t\t\tfunction timeout() {\n\t\t\t\t\tif (placeholder) {\n\t\t\t\t\t\tresolve(placeholder);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfail(\n\t\t\t\t\t\t\t'timeout of ' +\n\t\t\t\t\t\t\t\tTIMEOUT +\n\t\t\t\t\t\t\t\t'ms occured while fetching resource: ' +\n\t\t\t\t\t\t\t\turl\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfunction fail(message) {\n\t\t\t\t\tconsole.error(message);\n\t\t\t\t\tresolve('');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tfunction dataAsUrl(content, type) {\n\t\t\treturn 'data:' + type + ';base64,' + content;\n\t\t}\n\n\t\tfunction escape(string) {\n\t\t\treturn string.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\n\t\t}\n\n\t\tfunction delay(ms) {\n\t\t\treturn function (arg) {\n\t\t\t\treturn new Promise(function (resolve) {\n\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\tresolve(arg);\n\t\t\t\t\t}, ms);\n\t\t\t\t});\n\t\t\t};\n\t\t}\n\n\t\tfunction asArray(arrayLike) {\n\t\t\tvar array = [];\n\t\t\tvar length = arrayLike.length;\n\t\t\tfor (var i = 0; i < length; i++) array.push(arrayLike[i]);\n\t\t\treturn array;\n\t\t}\n\n\t\tfunction escapeXhtml(string) {\n\t\t\treturn string.replace(/#/g, '%23').replace(/\\n/g, '%0A');\n\t\t}\n\n\t\tfunction width(node) {\n\t\t\tvar leftBorder = px(node, 'border-left-width');\n\t\t\tvar rightBorder = px(node, 'border-right-width');\n\t\t\treturn node.scrollWidth + leftBorder + rightBorder;\n\t\t}\n\n\t\tfunction height(node) {\n\t\t\tvar topBorder = px(node, 'border-top-width');\n\t\t\tvar bottomBorder = px(node, 'border-bottom-width');\n\t\t\treturn node.scrollHeight + topBorder + bottomBorder;\n\t\t}\n\n\t\tfunction px(node, styleProperty) {\n\t\t\tvar value = window\n\t\t\t\t.getComputedStyle(node)\n\t\t\t\t.getPropertyValue(styleProperty);\n\t\t\treturn parseFloat(value.replace('px', ''));\n\t\t}\n\t}\n\n\tfunction newInliner() {\n\t\tvar URL_REGEX = /url\\(['\"]?([^'\"]+?)['\"]?\\)/g;\n\n\t\treturn {\n\t\t\tinlineAll: inlineAll,\n\t\t\tshouldProcess: shouldProcess,\n\t\t\timpl: {\n\t\t\t\treadUrls: readUrls,\n\t\t\t\tinline: inline,\n\t\t\t},\n\t\t};\n\n\t\tfunction shouldProcess(string) {\n\t\t\treturn string.search(URL_REGEX) !== -1;\n\t\t}\n\n\t\tfunction readUrls(string) {\n\t\t\tvar result = [];\n\t\t\tvar match;\n\t\t\twhile ((match = URL_REGEX.exec(string)) !== null) {\n\t\t\t\tresult.push(match[1]);\n\t\t\t}\n\t\t\treturn result.filter(function (url) {\n\t\t\t\treturn !util.isDataUrl(url);\n\t\t\t});\n\t\t}\n\n\t\tfunction inline(string, url, baseUrl, get) {\n\t\t\treturn Promise.resolve(url)\n\t\t\t\t.then(function (url) {\n\t\t\t\t\treturn baseUrl ? util.resolveUrl(url, baseUrl) : url;\n\t\t\t\t})\n\t\t\t\t.then(get || util.getAndEncode)\n\t\t\t\t.then(function (data) {\n\t\t\t\t\treturn util.dataAsUrl(data, util.mimeType(url));\n\t\t\t\t})\n\t\t\t\t.then(function (dataUrl) {\n\t\t\t\t\treturn string.replace(\n\t\t\t\t\t\turlAsRegex(url),\n\t\t\t\t\t\t'$1' + dataUrl + '$3'\n\t\t\t\t\t);\n\t\t\t\t});\n\n\t\t\tfunction urlAsRegex(url) {\n\t\t\t\treturn new RegExp(\n\t\t\t\t\t'(url\\\\([\\'\"]?)(' + util.escape(url) + ')([\\'\"]?\\\\))',\n\t\t\t\t\t'g'\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tfunction inlineAll(string, baseUrl, get) {\n\t\t\tif (nothingToInline()) return Promise.resolve(string);\n\n\t\t\treturn Promise.resolve(string)\n\t\t\t\t.then(readUrls)\n\t\t\t\t.then(function (urls) {\n\t\t\t\t\tvar done = Promise.resolve(string);\n\t\t\t\t\turls.forEach(function (url) {\n\t\t\t\t\t\tdone = done.then(function (string) {\n\t\t\t\t\t\t\treturn inline(string, url, baseUrl, get);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\treturn done;\n\t\t\t\t});\n\n\t\t\tfunction nothingToInline() {\n\t\t\t\treturn !shouldProcess(string);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction newFontFaces() {\n\t\treturn {\n\t\t\tresolveAll: resolveAll,\n\t\t\timpl: {\n\t\t\t\treadAll: readAll,\n\t\t\t},\n\t\t};\n\n\t\tfunction resolveAll() {\n\t\t\treturn readAll(document)\n\t\t\t\t.then(function (webFonts) {\n\t\t\t\t\treturn Promise.all(\n\t\t\t\t\t\twebFonts.map(function (webFont) {\n\t\t\t\t\t\t\treturn webFont.resolve();\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\t\t\t\t})\n\t\t\t\t.then(function (cssStrings) {\n\t\t\t\t\treturn cssStrings.join('\\n');\n\t\t\t\t});\n\t\t}\n\n\t\tfunction readAll() {\n\t\t\treturn Promise.resolve(util.asArray(document.styleSheets))\n\t\t\t\t.then(getCssRules)\n\t\t\t\t.then(selectWebFontRules)\n\t\t\t\t.then(function (rules) {\n\t\t\t\t\treturn rules.map(newWebFont);\n\t\t\t\t});\n\n\t\t\tfunction selectWebFontRules(cssRules) {\n\t\t\t\treturn cssRules\n\t\t\t\t\t.filter(function (rule) {\n\t\t\t\t\t\treturn rule.type === CSSRule.FONT_FACE_RULE;\n\t\t\t\t\t})\n\t\t\t\t\t.filter(function (rule) {\n\t\t\t\t\t\treturn inliner.shouldProcess(\n\t\t\t\t\t\t\trule.style.getPropertyValue('src')\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\tfunction getCssRules(styleSheets) {\n\t\t\t\tvar cssRules = [];\n\t\t\t\tstyleSheets.forEach(function (sheet) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tutil.asArray(sheet.cssRules || []).forEach(\n\t\t\t\t\t\t\tcssRules.push.bind(cssRules)\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t\t'Error while reading CSS rules from ' + sheet.href,\n\t\t\t\t\t\t\te.toString()\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn cssRules;\n\t\t\t}\n\n\t\t\tfunction newWebFont(webFontRule) {\n\t\t\t\treturn {\n\t\t\t\t\tresolve: function resolve() {\n\t\t\t\t\t\tvar baseUrl = (webFontRule.parentStyleSheet || {}).href;\n\t\t\t\t\t\treturn inliner.inlineAll(webFontRule.cssText, baseUrl);\n\t\t\t\t\t},\n\t\t\t\t\tsrc: function () {\n\t\t\t\t\t\treturn webFontRule.style.getPropertyValue('src');\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction newImages() {\n\t\treturn {\n\t\t\tinlineAll: inlineAll,\n\t\t\timpl: {\n\t\t\t\tnewImage: newImage,\n\t\t\t},\n\t\t};\n\n\t\tfunction newImage(element) {\n\t\t\treturn {\n\t\t\t\tinline: inline,\n\t\t\t};\n\n\t\t\tfunction inline(get) {\n\t\t\t\tif (util.isDataUrl(element.src)) return Promise.resolve();\n\n\t\t\t\treturn Promise.resolve(element.src)\n\t\t\t\t\t.then(get || util.getAndEncode)\n\t\t\t\t\t.then(function (data) {\n\t\t\t\t\t\treturn util.dataAsUrl(data, util.mimeType(element.src));\n\t\t\t\t\t})\n\t\t\t\t\t.then(function (dataUrl) {\n\t\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\t\telement.onload = resolve;\n\t\t\t\t\t\t\telement.onerror = reject;\n\t\t\t\t\t\t\telement.src = dataUrl;\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction inlineAll(node) {\n\t\t\tif (!(node instanceof Element)) return Promise.resolve(node);\n\n\t\t\treturn inlineBackground(node).then(function () {\n\t\t\t\tif (node instanceof HTMLImageElement)\n\t\t\t\t\treturn newImage(node).inline();\n\t\t\t\telse\n\t\t\t\t\treturn Promise.all(\n\t\t\t\t\t\tutil.asArray(node.childNodes).map(function (child) {\n\t\t\t\t\t\t\treturn inlineAll(child);\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\t\t\t});\n\n\t\t\tfunction inlineBackground(node) {\n\t\t\t\tvar background = node.style.getPropertyValue('background');\n\n\t\t\t\tif (!background) return Promise.resolve(node);\n\n\t\t\t\treturn inliner\n\t\t\t\t\t.inlineAll(background)\n\t\t\t\t\t.then(function (inlined) {\n\t\t\t\t\t\tnode.style.setProperty(\n\t\t\t\t\t\t\t'background',\n\t\t\t\t\t\t\tinlined,\n\t\t\t\t\t\t\tnode.style.getPropertyPriority('background')\n\t\t\t\t\t\t);\n\t\t\t\t\t})\n\t\t\t\t\t.then(function () {\n\t\t\t\t\t\treturn node;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n})(this);\n"]}
|
|
@@ -21,7 +21,7 @@ import { Tools } from '../../tools';
|
|
|
21
21
|
import { carbonPrefix } from '../../configuration-non-customizable';
|
|
22
22
|
// MISC
|
|
23
23
|
import ResizeObserver from 'resize-observer-polyfill';
|
|
24
|
-
import domToImage from 'dom-to-image';
|
|
24
|
+
import domToImage from './dom-to-image';
|
|
25
25
|
var CSS_VERIFIER_ELEMENT_CLASSNAME = 'DONT_STYLE_ME_css_styles_verifier';
|
|
26
26
|
var DOMUtils = /** @class */ (function (_super) {
|
|
27
27
|
__extends(DOMUtils, _super);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom-utils.js","sourceRoot":"","sources":["dom-utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Service } from '../service';\nimport { Events } from './../../interfaces';\n\n// D3 Imports\nimport { select, Selection } from 'd3-selection';\nimport { Tools } from '../../tools';\n\n// import the settings for the css prefix\nimport { carbonPrefix } from '../../configuration-non-customizable';\n\n// MISC\nimport ResizeObserver from 'resize-observer-polyfill';\n\nimport domToImage from 'dom-to-image';\n\nconst CSS_VERIFIER_ELEMENT_CLASSNAME = 'DONT_STYLE_ME_css_styles_verifier';\n\ninterface getSVGElementSizeOptions {\n\tuseAttrs?: boolean;\n\tuseClientDimensions?: boolean;\n\tuseBBox?: boolean;\n\tuseBoundingRect?: boolean;\n}\n\nexport class DOMUtils extends Service {\n\t// Initialized in init\n\tprivate chartID;\n\n\tconstructor(model: any, services: any) {\n\t\tsuper(model, services);\n\t}\n\n\tstatic getHTMLElementSize(element: HTMLElement) {\n\t\treturn {\n\t\t\twidth: element.clientWidth,\n\t\t\theight: element.clientHeight,\n\t\t};\n\t}\n\n\tstatic getSVGElementSize(\n\t\tsvgSelector: Selection<any, any, any, any>,\n\t\toptions: getSVGElementSizeOptions = {\n\t\t\tuseAttrs: false,\n\t\t\tuseClientDimensions: false,\n\t\t\tuseBBox: false,\n\t\t\tuseBoundingRect: false,\n\t\t}\n\t) {\n\t\tif (!svgSelector.attr) {\n\t\t\tsvgSelector = select(svgSelector as any);\n\t\t}\n\n\t\tconst finalDimensions = {\n\t\t\twidth: 0,\n\t\t\theight: 0,\n\t\t};\n\n\t\tconst validateAndSetDimensions = (dimensions) => {\n\t\t\tif (dimensions) {\n\t\t\t\tObject.keys(finalDimensions).forEach((dimensionKey) => {\n\t\t\t\t\tif (dimensions[dimensionKey]) {\n\t\t\t\t\t\tconst dimension = dimensions[dimensionKey];\n\t\t\t\t\t\tconst dimensionNumber = parseFloat(dimension);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tdimension &&\n\t\t\t\t\t\t\tdimensionNumber > finalDimensions[dimensionKey] &&\n\t\t\t\t\t\t\t('' + dimension).indexOf('%') === -1\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tfinalDimensions[dimensionKey] = dimensionNumber;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tconst attrDimensions = {\n\t\t\twidth: svgSelector.attr('width'),\n\t\t\theight: svgSelector.attr('height'),\n\t\t};\n\n\t\tlet bbox, bboxDimensions, boundingRect, boundingRectDimensions;\n\t\t// In many versions of Firefox\n\t\t// getBBox will cause an \"NSFailure\" error\n\t\ttry {\n\t\t\tbbox = svgSelector.node().getBBox();\n\t\t\tbboxDimensions = {\n\t\t\t\twidth: bbox.width,\n\t\t\t\theight: bbox.height,\n\t\t\t};\n\t\t} catch (e) {}\n\n\t\ttry {\n\t\t\tboundingRect = svgSelector.node().getBoundingClientRect();\n\t\t\tboundingRectDimensions = {\n\t\t\t\twidth: boundingRect.width,\n\t\t\t\theight: boundingRect.height,\n\t\t\t};\n\t\t} catch (e) {}\n\n\t\tconst clientDimensions = {\n\t\t\twidth: svgSelector.node().clientWidth,\n\t\t\theight: svgSelector.node().clientHeight,\n\t\t};\n\n\t\t// If both attribute values are numbers\n\t\t// And not percentages or NaN\n\t\tif (options) {\n\t\t\tif (options.useAttrs) {\n\t\t\t\tvalidateAndSetDimensions(attrDimensions);\n\n\t\t\t\tif (finalDimensions.width > 0 && finalDimensions.height > 0) {\n\t\t\t\t\treturn finalDimensions;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (options.useClientDimensions) {\n\t\t\t\tvalidateAndSetDimensions(clientDimensions);\n\n\t\t\t\tif (finalDimensions.width > 0 && finalDimensions.height > 0) {\n\t\t\t\t\treturn clientDimensions;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (options.useBBox) {\n\t\t\t\tvalidateAndSetDimensions(bboxDimensions);\n\n\t\t\t\tif (finalDimensions.width > 0 && finalDimensions.height > 0) {\n\t\t\t\t\treturn bboxDimensions;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (options.useBoundingRect) {\n\t\t\t\tvalidateAndSetDimensions(boundingRectDimensions);\n\n\t\t\t\tif (finalDimensions.width > 0 && finalDimensions.height > 0) {\n\t\t\t\t\treturn boundingRectDimensions;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\tconst nativeDimensions = {\n\t\t\t\twidth: Tools.getProperty(\n\t\t\t\t\tsvgSelector.node(),\n\t\t\t\t\t'width',\n\t\t\t\t\t'baseVal',\n\t\t\t\t\t'value'\n\t\t\t\t),\n\t\t\t\theight: Tools.getProperty(\n\t\t\t\t\tsvgSelector.node(),\n\t\t\t\t\t'height',\n\t\t\t\t\t'baseVal',\n\t\t\t\t\t'value'\n\t\t\t\t),\n\t\t\t};\n\n\t\t\tvalidateAndSetDimensions(nativeDimensions);\n\t\t} catch (e) {\n\t\t\tvalidateAndSetDimensions(clientDimensions);\n\t\t\tvalidateAndSetDimensions(bboxDimensions);\n\t\t\tvalidateAndSetDimensions(attrDimensions);\n\t\t}\n\n\t\treturn finalDimensions;\n\t}\n\n\tstatic appendOrSelect(parent, query) {\n\t\tconst selection = parent.select(`${query}`);\n\n\t\tif (selection.empty()) {\n\t\t\t// see if there is an id\n\t\t\tlet querySections = query.split('#');\n\t\t\tlet elementToAppend;\n\t\t\tlet id;\n\t\t\t// if there is an id\n\t\t\tif (querySections.length === 2) {\n\t\t\t\t// take out the element to append\n\t\t\t\telementToAppend = querySections[0];\n\t\t\t\t// split it by classes\n\t\t\t\tquerySections = querySections[1].split('.');\n\t\t\t\t// the first string is the id\n\t\t\t\tid = querySections[0];\n\t\t\t} else {\n\t\t\t\tquerySections = query.split('.');\n\t\t\t\telementToAppend = querySections[0];\n\t\t\t}\n\n\t\t\treturn parent\n\t\t\t\t.append(elementToAppend)\n\t\t\t\t.attr('id', id)\n\t\t\t\t.attr('class', querySections.slice(1).join(' '));\n\t\t}\n\n\t\treturn selection;\n\t}\n\n\tprotected mainContainer: HTMLElement;\n\tprotected width: string;\n\tprotected height: string;\n\n\tinit() {\n\t\t// Add width & height to the chart holder if necessary, and add a classname\n\t\tthis.styleHolderElement();\n\n\t\t// Initialize chart ID\n\t\tthis.initializeID();\n\n\t\tthis.addMainContainer();\n\t\tthis.verifyCSSStylesBeingApplied();\n\n\t\tif (this.model.getOptions().resizable) {\n\t\t\tthis.addResizeListener();\n\t\t}\n\n\t\tthis.addHolderListeners();\n\n\t\tthis.handleFullscreenChange();\n\t}\n\n\tgetChartID() {\n\t\treturn this.chartID;\n\t}\n\n\tgenerateElementIDString(originalID) {\n\t\treturn `chart-${this.chartID}-${originalID}`;\n\t}\n\n\tprivate initializeID() {\n\t\tthis.chartID = Math.floor(\n\t\t\t(1 + Math.random()) * 0x1000000000000\n\t\t).toString(16);\n\t}\n\n\taddMainContainer() {\n\t\tconst options = this.model.getOptions();\n\t\tconst chartsprefix = Tools.getProperty(options, 'style', 'prefix');\n\n\t\tconst mainContainer = select(this.getHolder())\n\t\t\t.append('div')\n\t\t\t.classed(`${carbonPrefix}--${chartsprefix}--chart-wrapper`, true)\n\t\t\t.attr('id', `chart-${this.getChartID()}`)\n\t\t\t.style('height', '100%')\n\t\t\t.style('width', '100%');\n\n\t\tmainContainer.append('g').attr('class', CSS_VERIFIER_ELEMENT_CLASSNAME);\n\n\t\tthis.mainContainer = mainContainer.node();\n\t}\n\n\tupdate() {\n\t\tthis.styleHolderElement();\n\t}\n\n\tstyleHolderElement() {\n\t\tconst holderElement = this.getHolder() as HTMLElement;\n\n\t\t// Add class to chart holder\n\t\tselect(this.getHolder()).classed(`${carbonPrefix}--chart-holder`, true);\n\n\t\t// In order for resize events to not clash with these updates\n\t\t// We'll check if the width & height values passed in options\n\t\t// Have changed, before setting them to the holder\n\t\tconst { width, height } = this.model.getOptions();\n\t\tif (width !== this.width) {\n\t\t\t// Apply formatted width attribute to chart\n\t\t\tholderElement.style.width = width;\n\n\t\t\tthis.width = width;\n\t\t}\n\n\t\tif (height !== this.height) {\n\t\t\t// Apply formatted width attribute to chart\n\t\t\tholderElement.style.height = height;\n\n\t\t\tthis.height = height;\n\t\t}\n\t}\n\n\tgetHolder() {\n\t\treturn this.model.get('holder');\n\t}\n\n\texportToJPG() {\n\t\tconst self = this;\n\n\t\tconst holder = this.getHolder();\n\t\tconst holderSelection = select(holder);\n\t\tholderSelection.classed('filled', true);\n\n\t\tdomToImage\n\t\t\t.toJpeg(this.getMainContainer(), {\n\t\t\t\tbgcolor:\n\t\t\t\t\ttypeof window !== 'undefined'\n\t\t\t\t\t\t? window\n\t\t\t\t\t\t\t\t.getComputedStyle(holder)\n\t\t\t\t\t\t\t\t.getPropertyValue('background-color')\n\t\t\t\t\t\t: undefined,\n\t\t\t\tquality: 1,\n\t\t\t\t// Remove the toolbar\n\t\t\t\tfilter: (node) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tnode.classList &&\n\t\t\t\t\t\tnode.classList.contains('cds--cc--toolbar')\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\t\t\t\t},\n\t\t\t})\n\t\t\t.then(function (dataUrl) {\n\t\t\t\tself.services.files.downloadImage(dataUrl, 'myChart.jpg');\n\t\t\t\tholderSelection.classed('filled', false);\n\t\t\t});\n\t}\n\n\texportToPNG() {\n\t\tconst self = this;\n\n\t\tconst holder = this.getHolder();\n\t\tconst holderSelection = select(holder);\n\t\tholderSelection.classed('filled', true);\n\n\t\tdomToImage\n\t\t\t.toPng(this.getMainContainer(), {\n\t\t\t\tbgcolor:\n\t\t\t\t\ttypeof window !== 'undefined'\n\t\t\t\t\t\t? window\n\t\t\t\t\t\t\t\t.getComputedStyle(holder)\n\t\t\t\t\t\t\t\t.getPropertyValue('background-color')\n\t\t\t\t\t\t: undefined,\n\t\t\t\tquality: 1,\n\t\t\t\t// Remove the toolbar\n\t\t\t\tfilter: (node) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tnode.classList &&\n\t\t\t\t\t\tnode.classList.contains('cds--cc--toolbar')\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\t\t\t\t},\n\t\t\t})\n\t\t\t.then(function (dataUrl) {\n\t\t\t\tself.services.files.downloadImage(dataUrl, 'myChart.png');\n\t\t\t\tholderSelection.classed('filled', false);\n\t\t\t})\n\t\t\t.catch(function (error) {\n\t\t\t\tconsole.error('oops, something went wrong!', error);\n\t\t\t});\n\t}\n\n\ttoggleFullscreen() {\n\t\tconst holder = this.getHolder();\n\t\tconst holderSelection = select(holder);\n\n\t\tconst isFullScreen = holderSelection.classed('fullscreen');\n\n\t\tif (\n\t\t\tisFullScreen &&\n\t\t\t(document.fullscreenElement ||\n\t\t\t\tdocument['webkitFullscreenElement'] ||\n\t\t\t\tdocument['mozFullScreenElement'] ||\n\t\t\t\tdocument['msFullscreenElement'])\n\t\t) {\n\t\t\t// Call the correct function depending on the browser\n\t\t\tif (document.exitFullscreen) {\n\t\t\t\tdocument.exitFullscreen();\n\t\t\t} else if (document['webkitExitFullscreen']) {\n\t\t\t\tdocument['webkitExitFullscreen']();\n\t\t\t} else if (document['mozCancelFullScreen']) {\n\t\t\t\tdocument['mozCancelFullScreen']();\n\t\t\t} else if (document['msExitFullscreen']) {\n\t\t\t\tdocument['msExitFullscreen']();\n\t\t\t}\n\t\t} else {\n\t\t\t// Call the correct function depending on the browser\n\t\t\tif (holder.requestFullscreen) {\n\t\t\t\tholder.requestFullscreen();\n\t\t\t} else if (holder.webkitRequestFullscreen) {\n\t\t\t\tholder.webkitRequestFullscreen();\n\t\t\t} else if (holder.mozRequestFullScreen) {\n\t\t\t\tholder.mozRequestFullScreen();\n\t\t\t} else if (holder.msRequestFullscreen) {\n\t\t\t\tholder.msRequestFullscreen();\n\t\t\t}\n\t\t}\n\t}\n\n\thandleFullscreenChange() {\n\t\tdocument.addEventListener('fullscreenchange', () => {\n\t\t\tconst holderSelection = select(this.getHolder());\n\t\t\tconst isFullScreen = holderSelection.classed('fullscreen');\n\n\t\t\t// Toggle the `fullscreen` classname\n\t\t\tholderSelection.classed('fullscreen', !isFullScreen);\n\t\t});\n\t}\n\n\tverifyCSSStylesBeingApplied() {\n\t\t// setTimeout is needed here since in `addSVGElement()` we're appending the\n\t\t// CSS verifier element, and need to allow some time for it to become available\n\t\t// in the DOM\n\t\tsetTimeout(() => {\n\t\t\tconst cssVerifierElement = select(this.mainContainer)\n\t\t\t\t.select(`g.${CSS_VERIFIER_ELEMENT_CLASSNAME}`)\n\t\t\t\t.node();\n\t\t\tconst computedStyles = getComputedStyle(cssVerifierElement as any);\n\t\t\tif (\n\t\t\t\tcomputedStyles.getPropertyValue('overflow') !== 'hidden' ||\n\t\t\t\tcomputedStyles.getPropertyValue('opacity') !== '0'\n\t\t\t) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t'Missing CSS styles for Carbon Charts. Please read the Carbon Charts getting started guide.'\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\n\tsetSVGMaxHeight() {\n\t\t// if there is a set height on the holder, leave the chart svg height at 100%\n\t\tif (!this.model.getOptions().height) {\n\t\t\tconst { height: chartHeight } = DOMUtils.getSVGElementSize(\n\t\t\t\tselect(this.mainContainer),\n\t\t\t\t{ useBBox: true }\n\t\t\t);\n\t\t\tconst chartSVGSelector = select(this.mainContainer).attr('class');\n\t\t\tconst children = select(this.mainContainer).selectAll(\n\t\t\t\t`.${chartSVGSelector} > svg`\n\t\t\t);\n\n\t\t\t// get the height of the children SVGs (spacers, titles, etc)\n\t\t\tlet childrenHeight = 0;\n\t\t\tchildren.nodes().forEach(function (childSVG) {\n\t\t\t\tchildrenHeight += Number(\n\t\t\t\t\tDOMUtils.getSVGElementSize(select(childSVG), {\n\t\t\t\t\t\tuseBBox: true,\n\t\t\t\t\t}).height\n\t\t\t\t);\n\t\t\t});\n\n\t\t\t// set the chart svg height to the children height\n\t\t\t// forcing the chart not to take up any more space than it requires\n\t\t\tchildrenHeight <= chartHeight\n\t\t\t\t? select(this.mainContainer).attr('height', childrenHeight)\n\t\t\t\t: select(this.mainContainer).attr('height', '100%');\n\t\t}\n\t}\n\n\tgetMainContainer() {\n\t\treturn this.mainContainer;\n\t}\n\n\taddHolderListeners() {\n\t\tconst holder = this.getHolder();\n\n\t\tif (!holder) {\n\t\t\treturn;\n\t\t}\n\n\t\tselect(holder)\n\t\t\t.on('mouseover', () => {\n\t\t\t\t// Dispatch event\n\t\t\t\tthis.services.events.dispatchEvent(Events.Chart.MOUSEOVER);\n\t\t\t})\n\t\t\t.on('mouseout', () => {\n\t\t\t\t// Dispatch event\n\t\t\t\tthis.services.events.dispatchEvent(Events.Chart.MOUSEOUT);\n\t\t\t});\n\t}\n\n\taddResizeListener() {\n\t\tconst holder = this.getHolder();\n\n\t\tif (!holder) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Grab current dimensions of the chart holder\n\t\tlet containerWidth = holder.clientWidth;\n\t\tlet containerHeight = holder.clientHeight;\n\n\t\t// The resize callback function\n\t\tconst resizeCallback = Tools.debounce((entries, observer) => {\n\t\t\tif (!holder) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tMath.abs(containerWidth - holder.clientWidth) > 1 ||\n\t\t\t\tMath.abs(containerHeight - holder.clientHeight) > 1\n\t\t\t) {\n\t\t\t\tcontainerWidth = holder.clientWidth;\n\t\t\t\tcontainerHeight = holder.clientHeight;\n\n\t\t\t\tthis.services.events.dispatchEvent(Events.Chart.RESIZE);\n\t\t\t}\n\t\t}, 12.5);\n\n\t\t// Observe the behaviour of resizing on the holder\n\t\tconst resizeObserver = new ResizeObserver(resizeCallback);\n\t\tresizeObserver.observe(holder);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"dom-utils.js","sourceRoot":"","sources":["dom-utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Service } from '../service';\nimport { Events } from './../../interfaces';\n\n// D3 Imports\nimport { select, Selection } from 'd3-selection';\nimport { Tools } from '../../tools';\n\n// import the settings for the css prefix\nimport { carbonPrefix } from '../../configuration-non-customizable';\n\n// MISC\nimport ResizeObserver from 'resize-observer-polyfill';\n\nimport domToImage from './dom-to-image';\n\nconst CSS_VERIFIER_ELEMENT_CLASSNAME = 'DONT_STYLE_ME_css_styles_verifier';\n\ninterface getSVGElementSizeOptions {\n\tuseAttrs?: boolean;\n\tuseClientDimensions?: boolean;\n\tuseBBox?: boolean;\n\tuseBoundingRect?: boolean;\n}\n\nexport class DOMUtils extends Service {\n\t// Initialized in init\n\tprivate chartID;\n\n\tconstructor(model: any, services: any) {\n\t\tsuper(model, services);\n\t}\n\n\tstatic getHTMLElementSize(element: HTMLElement) {\n\t\treturn {\n\t\t\twidth: element.clientWidth,\n\t\t\theight: element.clientHeight,\n\t\t};\n\t}\n\n\tstatic getSVGElementSize(\n\t\tsvgSelector: Selection<any, any, any, any>,\n\t\toptions: getSVGElementSizeOptions = {\n\t\t\tuseAttrs: false,\n\t\t\tuseClientDimensions: false,\n\t\t\tuseBBox: false,\n\t\t\tuseBoundingRect: false,\n\t\t}\n\t) {\n\t\tif (!svgSelector.attr) {\n\t\t\tsvgSelector = select(svgSelector as any);\n\t\t}\n\n\t\tconst finalDimensions = {\n\t\t\twidth: 0,\n\t\t\theight: 0,\n\t\t};\n\n\t\tconst validateAndSetDimensions = (dimensions) => {\n\t\t\tif (dimensions) {\n\t\t\t\tObject.keys(finalDimensions).forEach((dimensionKey) => {\n\t\t\t\t\tif (dimensions[dimensionKey]) {\n\t\t\t\t\t\tconst dimension = dimensions[dimensionKey];\n\t\t\t\t\t\tconst dimensionNumber = parseFloat(dimension);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tdimension &&\n\t\t\t\t\t\t\tdimensionNumber > finalDimensions[dimensionKey] &&\n\t\t\t\t\t\t\t('' + dimension).indexOf('%') === -1\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tfinalDimensions[dimensionKey] = dimensionNumber;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tconst attrDimensions = {\n\t\t\twidth: svgSelector.attr('width'),\n\t\t\theight: svgSelector.attr('height'),\n\t\t};\n\n\t\tlet bbox, bboxDimensions, boundingRect, boundingRectDimensions;\n\t\t// In many versions of Firefox\n\t\t// getBBox will cause an \"NSFailure\" error\n\t\ttry {\n\t\t\tbbox = svgSelector.node().getBBox();\n\t\t\tbboxDimensions = {\n\t\t\t\twidth: bbox.width,\n\t\t\t\theight: bbox.height,\n\t\t\t};\n\t\t} catch (e) {}\n\n\t\ttry {\n\t\t\tboundingRect = svgSelector.node().getBoundingClientRect();\n\t\t\tboundingRectDimensions = {\n\t\t\t\twidth: boundingRect.width,\n\t\t\t\theight: boundingRect.height,\n\t\t\t};\n\t\t} catch (e) {}\n\n\t\tconst clientDimensions = {\n\t\t\twidth: svgSelector.node().clientWidth,\n\t\t\theight: svgSelector.node().clientHeight,\n\t\t};\n\n\t\t// If both attribute values are numbers\n\t\t// And not percentages or NaN\n\t\tif (options) {\n\t\t\tif (options.useAttrs) {\n\t\t\t\tvalidateAndSetDimensions(attrDimensions);\n\n\t\t\t\tif (finalDimensions.width > 0 && finalDimensions.height > 0) {\n\t\t\t\t\treturn finalDimensions;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (options.useClientDimensions) {\n\t\t\t\tvalidateAndSetDimensions(clientDimensions);\n\n\t\t\t\tif (finalDimensions.width > 0 && finalDimensions.height > 0) {\n\t\t\t\t\treturn clientDimensions;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (options.useBBox) {\n\t\t\t\tvalidateAndSetDimensions(bboxDimensions);\n\n\t\t\t\tif (finalDimensions.width > 0 && finalDimensions.height > 0) {\n\t\t\t\t\treturn bboxDimensions;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (options.useBoundingRect) {\n\t\t\t\tvalidateAndSetDimensions(boundingRectDimensions);\n\n\t\t\t\tif (finalDimensions.width > 0 && finalDimensions.height > 0) {\n\t\t\t\t\treturn boundingRectDimensions;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\tconst nativeDimensions = {\n\t\t\t\twidth: Tools.getProperty(\n\t\t\t\t\tsvgSelector.node(),\n\t\t\t\t\t'width',\n\t\t\t\t\t'baseVal',\n\t\t\t\t\t'value'\n\t\t\t\t),\n\t\t\t\theight: Tools.getProperty(\n\t\t\t\t\tsvgSelector.node(),\n\t\t\t\t\t'height',\n\t\t\t\t\t'baseVal',\n\t\t\t\t\t'value'\n\t\t\t\t),\n\t\t\t};\n\n\t\t\tvalidateAndSetDimensions(nativeDimensions);\n\t\t} catch (e) {\n\t\t\tvalidateAndSetDimensions(clientDimensions);\n\t\t\tvalidateAndSetDimensions(bboxDimensions);\n\t\t\tvalidateAndSetDimensions(attrDimensions);\n\t\t}\n\n\t\treturn finalDimensions;\n\t}\n\n\tstatic appendOrSelect(parent, query) {\n\t\tconst selection = parent.select(`${query}`);\n\n\t\tif (selection.empty()) {\n\t\t\t// see if there is an id\n\t\t\tlet querySections = query.split('#');\n\t\t\tlet elementToAppend;\n\t\t\tlet id;\n\t\t\t// if there is an id\n\t\t\tif (querySections.length === 2) {\n\t\t\t\t// take out the element to append\n\t\t\t\telementToAppend = querySections[0];\n\t\t\t\t// split it by classes\n\t\t\t\tquerySections = querySections[1].split('.');\n\t\t\t\t// the first string is the id\n\t\t\t\tid = querySections[0];\n\t\t\t} else {\n\t\t\t\tquerySections = query.split('.');\n\t\t\t\telementToAppend = querySections[0];\n\t\t\t}\n\n\t\t\treturn parent\n\t\t\t\t.append(elementToAppend)\n\t\t\t\t.attr('id', id)\n\t\t\t\t.attr('class', querySections.slice(1).join(' '));\n\t\t}\n\n\t\treturn selection;\n\t}\n\n\tprotected mainContainer: HTMLElement;\n\tprotected width: string;\n\tprotected height: string;\n\n\tinit() {\n\t\t// Add width & height to the chart holder if necessary, and add a classname\n\t\tthis.styleHolderElement();\n\n\t\t// Initialize chart ID\n\t\tthis.initializeID();\n\n\t\tthis.addMainContainer();\n\t\tthis.verifyCSSStylesBeingApplied();\n\n\t\tif (this.model.getOptions().resizable) {\n\t\t\tthis.addResizeListener();\n\t\t}\n\n\t\tthis.addHolderListeners();\n\n\t\tthis.handleFullscreenChange();\n\t}\n\n\tgetChartID() {\n\t\treturn this.chartID;\n\t}\n\n\tgenerateElementIDString(originalID) {\n\t\treturn `chart-${this.chartID}-${originalID}`;\n\t}\n\n\tprivate initializeID() {\n\t\tthis.chartID = Math.floor(\n\t\t\t(1 + Math.random()) * 0x1000000000000\n\t\t).toString(16);\n\t}\n\n\taddMainContainer() {\n\t\tconst options = this.model.getOptions();\n\t\tconst chartsprefix = Tools.getProperty(options, 'style', 'prefix');\n\n\t\tconst mainContainer = select(this.getHolder())\n\t\t\t.append('div')\n\t\t\t.classed(`${carbonPrefix}--${chartsprefix}--chart-wrapper`, true)\n\t\t\t.attr('id', `chart-${this.getChartID()}`)\n\t\t\t.style('height', '100%')\n\t\t\t.style('width', '100%');\n\n\t\tmainContainer.append('g').attr('class', CSS_VERIFIER_ELEMENT_CLASSNAME);\n\n\t\tthis.mainContainer = mainContainer.node();\n\t}\n\n\tupdate() {\n\t\tthis.styleHolderElement();\n\t}\n\n\tstyleHolderElement() {\n\t\tconst holderElement = this.getHolder() as HTMLElement;\n\n\t\t// Add class to chart holder\n\t\tselect(this.getHolder()).classed(`${carbonPrefix}--chart-holder`, true);\n\n\t\t// In order for resize events to not clash with these updates\n\t\t// We'll check if the width & height values passed in options\n\t\t// Have changed, before setting them to the holder\n\t\tconst { width, height } = this.model.getOptions();\n\t\tif (width !== this.width) {\n\t\t\t// Apply formatted width attribute to chart\n\t\t\tholderElement.style.width = width;\n\n\t\t\tthis.width = width;\n\t\t}\n\n\t\tif (height !== this.height) {\n\t\t\t// Apply formatted width attribute to chart\n\t\t\tholderElement.style.height = height;\n\n\t\t\tthis.height = height;\n\t\t}\n\t}\n\n\tgetHolder() {\n\t\treturn this.model.get('holder');\n\t}\n\n\texportToJPG() {\n\t\tconst self = this;\n\n\t\tconst holder = this.getHolder();\n\t\tconst holderSelection = select(holder);\n\t\tholderSelection.classed('filled', true);\n\n\t\tdomToImage\n\t\t\t.toJpeg(this.getMainContainer(), {\n\t\t\t\tbgcolor:\n\t\t\t\t\ttypeof window !== 'undefined'\n\t\t\t\t\t\t? window\n\t\t\t\t\t\t\t\t.getComputedStyle(holder)\n\t\t\t\t\t\t\t\t.getPropertyValue('background-color')\n\t\t\t\t\t\t: undefined,\n\t\t\t\tquality: 1,\n\t\t\t\t// Remove the toolbar\n\t\t\t\tfilter: (node) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tnode.classList &&\n\t\t\t\t\t\tnode.classList.contains('cds--cc--toolbar')\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\t\t\t\t},\n\t\t\t})\n\t\t\t.then(function (dataUrl) {\n\t\t\t\tself.services.files.downloadImage(dataUrl, 'myChart.jpg');\n\t\t\t\tholderSelection.classed('filled', false);\n\t\t\t});\n\t}\n\n\texportToPNG() {\n\t\tconst self = this;\n\n\t\tconst holder = this.getHolder();\n\t\tconst holderSelection = select(holder);\n\t\tholderSelection.classed('filled', true);\n\n\t\tdomToImage\n\t\t\t.toPng(this.getMainContainer(), {\n\t\t\t\tbgcolor:\n\t\t\t\t\ttypeof window !== 'undefined'\n\t\t\t\t\t\t? window\n\t\t\t\t\t\t\t\t.getComputedStyle(holder)\n\t\t\t\t\t\t\t\t.getPropertyValue('background-color')\n\t\t\t\t\t\t: undefined,\n\t\t\t\tquality: 1,\n\t\t\t\t// Remove the toolbar\n\t\t\t\tfilter: (node) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tnode.classList &&\n\t\t\t\t\t\tnode.classList.contains('cds--cc--toolbar')\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\t\t\t\t},\n\t\t\t})\n\t\t\t.then(function (dataUrl) {\n\t\t\t\tself.services.files.downloadImage(dataUrl, 'myChart.png');\n\t\t\t\tholderSelection.classed('filled', false);\n\t\t\t})\n\t\t\t.catch(function (error) {\n\t\t\t\tconsole.error('oops, something went wrong!', error);\n\t\t\t});\n\t}\n\n\ttoggleFullscreen() {\n\t\tconst holder = this.getHolder();\n\t\tconst holderSelection = select(holder);\n\n\t\tconst isFullScreen = holderSelection.classed('fullscreen');\n\n\t\tif (\n\t\t\tisFullScreen &&\n\t\t\t(document.fullscreenElement ||\n\t\t\t\tdocument['webkitFullscreenElement'] ||\n\t\t\t\tdocument['mozFullScreenElement'] ||\n\t\t\t\tdocument['msFullscreenElement'])\n\t\t) {\n\t\t\t// Call the correct function depending on the browser\n\t\t\tif (document.exitFullscreen) {\n\t\t\t\tdocument.exitFullscreen();\n\t\t\t} else if (document['webkitExitFullscreen']) {\n\t\t\t\tdocument['webkitExitFullscreen']();\n\t\t\t} else if (document['mozCancelFullScreen']) {\n\t\t\t\tdocument['mozCancelFullScreen']();\n\t\t\t} else if (document['msExitFullscreen']) {\n\t\t\t\tdocument['msExitFullscreen']();\n\t\t\t}\n\t\t} else {\n\t\t\t// Call the correct function depending on the browser\n\t\t\tif (holder.requestFullscreen) {\n\t\t\t\tholder.requestFullscreen();\n\t\t\t} else if (holder.webkitRequestFullscreen) {\n\t\t\t\tholder.webkitRequestFullscreen();\n\t\t\t} else if (holder.mozRequestFullScreen) {\n\t\t\t\tholder.mozRequestFullScreen();\n\t\t\t} else if (holder.msRequestFullscreen) {\n\t\t\t\tholder.msRequestFullscreen();\n\t\t\t}\n\t\t}\n\t}\n\n\thandleFullscreenChange() {\n\t\tdocument.addEventListener('fullscreenchange', () => {\n\t\t\tconst holderSelection = select(this.getHolder());\n\t\t\tconst isFullScreen = holderSelection.classed('fullscreen');\n\n\t\t\t// Toggle the `fullscreen` classname\n\t\t\tholderSelection.classed('fullscreen', !isFullScreen);\n\t\t});\n\t}\n\n\tverifyCSSStylesBeingApplied() {\n\t\t// setTimeout is needed here since in `addSVGElement()` we're appending the\n\t\t// CSS verifier element, and need to allow some time for it to become available\n\t\t// in the DOM\n\t\tsetTimeout(() => {\n\t\t\tconst cssVerifierElement = select(this.mainContainer)\n\t\t\t\t.select(`g.${CSS_VERIFIER_ELEMENT_CLASSNAME}`)\n\t\t\t\t.node();\n\t\t\tconst computedStyles = getComputedStyle(cssVerifierElement as any);\n\t\t\tif (\n\t\t\t\tcomputedStyles.getPropertyValue('overflow') !== 'hidden' ||\n\t\t\t\tcomputedStyles.getPropertyValue('opacity') !== '0'\n\t\t\t) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t'Missing CSS styles for Carbon Charts. Please read the Carbon Charts getting started guide.'\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\n\tsetSVGMaxHeight() {\n\t\t// if there is a set height on the holder, leave the chart svg height at 100%\n\t\tif (!this.model.getOptions().height) {\n\t\t\tconst { height: chartHeight } = DOMUtils.getSVGElementSize(\n\t\t\t\tselect(this.mainContainer),\n\t\t\t\t{ useBBox: true }\n\t\t\t);\n\t\t\tconst chartSVGSelector = select(this.mainContainer).attr('class');\n\t\t\tconst children = select(this.mainContainer).selectAll(\n\t\t\t\t`.${chartSVGSelector} > svg`\n\t\t\t);\n\n\t\t\t// get the height of the children SVGs (spacers, titles, etc)\n\t\t\tlet childrenHeight = 0;\n\t\t\tchildren.nodes().forEach(function (childSVG) {\n\t\t\t\tchildrenHeight += Number(\n\t\t\t\t\tDOMUtils.getSVGElementSize(select(childSVG), {\n\t\t\t\t\t\tuseBBox: true,\n\t\t\t\t\t}).height\n\t\t\t\t);\n\t\t\t});\n\n\t\t\t// set the chart svg height to the children height\n\t\t\t// forcing the chart not to take up any more space than it requires\n\t\t\tchildrenHeight <= chartHeight\n\t\t\t\t? select(this.mainContainer).attr('height', childrenHeight)\n\t\t\t\t: select(this.mainContainer).attr('height', '100%');\n\t\t}\n\t}\n\n\tgetMainContainer() {\n\t\treturn this.mainContainer;\n\t}\n\n\taddHolderListeners() {\n\t\tconst holder = this.getHolder();\n\n\t\tif (!holder) {\n\t\t\treturn;\n\t\t}\n\n\t\tselect(holder)\n\t\t\t.on('mouseover', () => {\n\t\t\t\t// Dispatch event\n\t\t\t\tthis.services.events.dispatchEvent(Events.Chart.MOUSEOVER);\n\t\t\t})\n\t\t\t.on('mouseout', () => {\n\t\t\t\t// Dispatch event\n\t\t\t\tthis.services.events.dispatchEvent(Events.Chart.MOUSEOUT);\n\t\t\t});\n\t}\n\n\taddResizeListener() {\n\t\tconst holder = this.getHolder();\n\n\t\tif (!holder) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Grab current dimensions of the chart holder\n\t\tlet containerWidth = holder.clientWidth;\n\t\tlet containerHeight = holder.clientHeight;\n\n\t\t// The resize callback function\n\t\tconst resizeCallback = Tools.debounce((entries, observer) => {\n\t\t\tif (!holder) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tMath.abs(containerWidth - holder.clientWidth) > 1 ||\n\t\t\t\tMath.abs(containerHeight - holder.clientHeight) > 1\n\t\t\t) {\n\t\t\t\tcontainerWidth = holder.clientWidth;\n\t\t\t\tcontainerHeight = holder.clientHeight;\n\n\t\t\t\tthis.services.events.dispatchEvent(Events.Chart.RESIZE);\n\t\t\t}\n\t\t}, 12.5);\n\n\t\t// Observe the behaviour of resizing on the holder\n\t\tconst resizeObserver = new ResizeObserver(resizeCallback);\n\t\tresizeObserver.observe(holder);\n\t}\n}\n"]}
|
package/tsconfig.tsbuildinfo
CHANGED
|
@@ -185,8 +185,12 @@
|
|
|
185
185
|
"version": "6dc3970c1e09b6f0ea2389e69e2dc11906dd4a1b82f7c024504439932facbd3a",
|
|
186
186
|
"signature": "6dc3970c1e09b6f0ea2389e69e2dc11906dd4a1b82f7c024504439932facbd3a"
|
|
187
187
|
},
|
|
188
|
+
"../src/services/essentials/dom-to-image.js": {
|
|
189
|
+
"version": "3f631482ba4beb2f1d8bcc973bfc3563ff641b1b86d3eadd7ee4800d0b41fdf6",
|
|
190
|
+
"signature": "1d9a63e1a4536396484594c7290d407b4d9a5352593754b1a76979b6697f5af3"
|
|
191
|
+
},
|
|
188
192
|
"../src/services/essentials/dom-utils.ts": {
|
|
189
|
-
"version": "
|
|
193
|
+
"version": "a7f07d0f54a0a86f9eefa33a2b694fb8cabe14a41dbe7d1226f98269a5a318f9",
|
|
190
194
|
"signature": "7cfb6238b248b340dfc2ce88914f41f1af338e66379588012fab52cc7fdc2c6d"
|
|
191
195
|
},
|
|
192
196
|
"../src/services/essentials/events.ts": {
|
|
@@ -346,8 +350,8 @@
|
|
|
346
350
|
"signature": "29ce63f18ce5e420e92ca6e048decfeaa6bf7129bba60b9c339bfd547e37f10e"
|
|
347
351
|
},
|
|
348
352
|
"../src/components/graphs/bar-grouped.ts": {
|
|
349
|
-
"version": "
|
|
350
|
-
"signature": "
|
|
353
|
+
"version": "6049606657c757764790a83cdf0c40e151a4763643ad38b9a0365ffce9d991cc",
|
|
354
|
+
"signature": "af3a4d6066c68ab5d375eb434c2782a9cafe122625f4dddf7498686a2d81fb0c"
|
|
351
355
|
},
|
|
352
356
|
"../src/components/graphs/bar-stacked.ts": {
|
|
353
357
|
"version": "fe9be7fb36f30b2b2e8df90742f325ce251bcd7acedc255c16a95346f3beedee",
|
|
@@ -450,7 +454,7 @@
|
|
|
450
454
|
"signature": "625ce67f385f5d3a26fd17822e4bf0945c5302ee3d6e7d0507f8f24609a9a1b2"
|
|
451
455
|
},
|
|
452
456
|
"../src/components/axes/axis.ts": {
|
|
453
|
-
"version": "
|
|
457
|
+
"version": "0c725b3052edf7a0b1232376a54224bf267c25e866dee9089557a844d7b53356",
|
|
454
458
|
"signature": "2ac82266748bb842c4b093f55056eaeb12a9611ebcea88fdb4d59856897b1654"
|
|
455
459
|
},
|
|
456
460
|
"../src/components/axes/hover-axis.ts": {
|
|
@@ -896,6 +900,7 @@
|
|
|
896
900
|
"../node_modules/@types",
|
|
897
901
|
"../custom.d.ts"
|
|
898
902
|
],
|
|
903
|
+
"allowJs": true,
|
|
899
904
|
"configFilePath": "../src/tsconfig.json"
|
|
900
905
|
},
|
|
901
906
|
"referencedMap": {
|
|
@@ -1241,6 +1246,13 @@
|
|
|
1241
1246
|
"../node_modules/@types/node/util.d.ts",
|
|
1242
1247
|
"../node_modules/@types/node/ts3.2/util.d.ts"
|
|
1243
1248
|
],
|
|
1249
|
+
"../src/services/essentials/dom-to-image.js": [
|
|
1250
|
+
"../../../node_modules/date-fns/typings.d.ts",
|
|
1251
|
+
"../node_modules/@types/node/fs.d.ts",
|
|
1252
|
+
"../node_modules/@types/node/ts3.2/fs.d.ts",
|
|
1253
|
+
"../node_modules/@types/node/util.d.ts",
|
|
1254
|
+
"../node_modules/@types/node/ts3.2/util.d.ts"
|
|
1255
|
+
],
|
|
1244
1256
|
"../src/services/essentials/dom-utils.ts": [
|
|
1245
1257
|
"../src/services/service.ts",
|
|
1246
1258
|
"../src/interfaces/index.ts",
|
|
@@ -1248,6 +1260,7 @@
|
|
|
1248
1260
|
"../src/tools.ts",
|
|
1249
1261
|
"../src/configuration-non-customizable.ts",
|
|
1250
1262
|
"../../../node_modules/resize-observer-polyfill/src/index.d.ts",
|
|
1263
|
+
"../src/services/essentials/dom-to-image.js",
|
|
1251
1264
|
"../../../node_modules/date-fns/typings.d.ts",
|
|
1252
1265
|
"../node_modules/@types/node/fs.d.ts",
|
|
1253
1266
|
"../node_modules/@types/node/ts3.2/fs.d.ts",
|
|
@@ -4494,6 +4507,7 @@
|
|
|
4494
4507
|
"../src/model/model.ts",
|
|
4495
4508
|
"../src/services/service.ts",
|
|
4496
4509
|
"../../../node_modules/resize-observer-polyfill/src/index.d.ts",
|
|
4510
|
+
"../src/services/essentials/dom-to-image.js",
|
|
4497
4511
|
"../src/services/essentials/dom-utils.ts",
|
|
4498
4512
|
"../src/services/essentials/events.ts",
|
|
4499
4513
|
"../src/services/essentials/files.ts",
|