react-spatial 1.0.32 → 1.0.33-beta.4
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/components/CanvasSaveButton/CanvasSaveButton.js +6 -3
- package/components/CanvasSaveButton/CanvasSaveButton.js.map +1 -1
- package/components/LayerTree/LayerTree.js +65 -15
- package/components/LayerTree/LayerTree.js.map +1 -1
- package/components/LayerTree/LayerTree.test.js +6 -0
- package/components/LayerTree/LayerTree.test.js.map +1 -1
- package/package.json +3 -7
|
@@ -378,9 +378,12 @@ var CanvasSaveButton = /*@__PURE__*/(function (PureComponent) {
|
|
|
378
378
|
var destCanvas;
|
|
379
379
|
var destContext;
|
|
380
380
|
|
|
381
|
-
canvases
|
|
381
|
+
// canvases is an HTMLCollection, we don't try to transform to array because some compilers like cra doesn't translate it right.
|
|
382
|
+
for (var i = 0; i < canvases.length; i += 1) {
|
|
383
|
+
var canvas = canvases[i];
|
|
382
384
|
if (!canvas.width || !canvas.height) {
|
|
383
|
-
|
|
385
|
+
// eslint-disable-next-line no-continue
|
|
386
|
+
continue;
|
|
384
387
|
}
|
|
385
388
|
var clip = this$1.calculatePixelsToExport(mapToExport) || {
|
|
386
389
|
x: 0,
|
|
@@ -408,7 +411,7 @@ var CanvasSaveButton = /*@__PURE__*/(function (PureComponent) {
|
|
|
408
411
|
destCanvas.width,
|
|
409
412
|
destCanvas.height
|
|
410
413
|
);
|
|
411
|
-
}
|
|
414
|
+
}
|
|
412
415
|
|
|
413
416
|
// Custom info
|
|
414
417
|
var logoPromise = Promise.resolve();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CanvasSaveButton.js","sources":["../../../src/components/CanvasSaveButton/CanvasSaveButton.js"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport OLMap from 'ol/Map';\nimport { getTopLeft, getBottomRight } from 'ol/extent';\nimport NorthArrowSimple from '../../images/northArrow.url.svg';\nimport NorthArrowCircle from '../../images/northArrowCircle.url.svg';\n\nconst propTypes = {\n /**\n * Automatically download the image saved.\n */\n autoDownload: PropTypes.bool,\n\n /**\n * Children content of the button.\n */\n children: PropTypes.node,\n\n /**\n * Output format of the image.\n */\n format: PropTypes.oneOf(['image/jpeg', 'image/png']),\n\n /** An [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html). */\n map: PropTypes.instanceOf(OLMap),\n\n /**\n * Extent for the export. If no extent is given, the whole map is exported.\n */\n extent: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * Array of 4 [ol/Coordinate](https://openlayers.org/en/latest/apidoc/module-ol_coordinate.html#~Coordinate).\n * If no coordinates and no extent are given, the whole map is exported.\n * This property must be used to export rotated map.\n * If you don't need to export rotated map the extent property can be used as well.\n * If extent is specified, coordinates property is ignored.\n */\n coordinates: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n\n /**\n * Scale the map for better quality. Possible values: 1, 2 or 3.\n * WARNING: The tiled layer with a WMTS or XYZ source must provides an url\n * for each scale in the config file.\n */\n scale: PropTypes.number,\n\n /**\n * Function called before the dowload process begins.\n */\n onSaveStart: PropTypes.func,\n\n /**\n * Function called after the dowload process ends.\n *\n * @param {object} error Error message the process fails.\n */\n onSaveEnd: PropTypes.func,\n\n /**\n * Extra data, such as copyright, north arrow configuration.\n * All extra data is optional.\n *\n * Example 1:\n *\n {\n copyright: {\n text: 'Example copyright', // Copyright text or function\n font: '10px Arial', // Font, default is '12px Arial'\n fillStyle: 'blue', // Fill style, default is 'black'\n },\n northArrow, // True if the north arrow\n // should be placed with default configuration\n // (default image, rotation=0, circled=False)\n }\n * Example 2:\n *\n {\n northArrow: {\n src: NorthArrowCustom,\n width: 60, // Width in px, default is 80\n height: 100, // Height in px, default is 80\n rotation: 25, // Absolute rotation in degrees as number or function\n\n }\n }\n * Example 3:\n *\n {\n copyright: {\n text: () => { // Copyright as function\n return this.copyright;\n },\n },\n northArrow: {\n rotation: () => { // Rotation as function\n return NorthArrow.radToDeg(this.map.getView().getRotation());\n },\n circled, // Display circle around the north arrow (Does not work for custom src)\n },\n }\n */\n extraData: PropTypes.object,\n};\n\nconst defaultProps = {\n autoDownload: true,\n children: null,\n map: null,\n format: 'image/png',\n extent: null,\n extraData: null,\n coordinates: null,\n scale: 1,\n onSaveStart: (map) => {\n return Promise.resolve(map);\n },\n onSaveEnd: () => {},\n};\n\n/**\n * The CanvasSaveButton component creates a button to save\n * an [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html)\n * canvas as an image.\n */\nclass CanvasSaveButton extends PureComponent {\n constructor(props) {\n super(props);\n const { format } = this.props;\n this.fileExt = format === 'image/jpeg' ? 'jpg' : 'png';\n this.padding = 5;\n }\n\n onClick(evt) {\n const { map, onSaveStart, onSaveEnd, autoDownload } = this.props;\n if (window.navigator.msSaveBlob) {\n // ie only\n evt.preventDefault();\n evt.stopPropagation();\n }\n onSaveStart(map).then((mapToExport) => {\n return this.createCanvasImage(mapToExport || map)\n .then((canvas) => {\n if (autoDownload) {\n this.downloadCanvasImage(canvas).then((blob) => {\n onSaveEnd(mapToExport, canvas, blob);\n });\n } else {\n onSaveEnd(mapToExport, canvas);\n }\n })\n .catch((err) => {\n if (err) {\n // eslint-disable-next-line no-console\n console.error(err);\n }\n onSaveEnd(mapToExport, err);\n });\n });\n }\n\n getDownloadImageName() {\n return (\n `${window.document.title.replace(/ /g, '_').toLowerCase()}` +\n `.${this.fileExt}`\n );\n }\n\n // Ensure the font size fita with the image width.\n decreaseFontSize(destContext, maxWidth, copyright, scale) {\n const minFontSize = 8;\n let sizeMatch;\n let fontSize;\n do {\n sizeMatch = destContext.font.match(/[0-9]+(?:\\.[0-9]+)?(px)/i);\n fontSize = parseInt(sizeMatch[0].replace(sizeMatch[1], ''), 10);\n\n // eslint-disable-next-line no-param-reassign\n destContext.font = destContext.font.replace(fontSize, fontSize - 1);\n\n if (fontSize - 1 === minFontSize) {\n this.multilineCopyright = true;\n }\n } while (\n fontSize - 1 > minFontSize &&\n destContext.measureText(copyright).width * scale > maxWidth\n );\n return destContext.font;\n }\n\n // If minimal fontsize is reached, divide copyright in two lines.\n splitCopyrightLine(destContext, destCanvas, maxWidth, copyright, scale) {\n let newCopyright = copyright;\n const wordNumber = copyright.split(' ').length;\n\n for (let i = 0; i < wordNumber; i += 1) {\n newCopyright = newCopyright.substring(0, newCopyright.lastIndexOf(' '));\n // Stop removing word when fits within one line.\n if (destContext.measureText(newCopyright).width * scale < maxWidth) {\n break;\n }\n }\n\n // Draw fist line (line break isn't supported for fillText).\n destContext.fillText(\n newCopyright,\n this.padding,\n destCanvas.height / scale - 3 * this.padding,\n );\n\n // Draw second line.\n destContext.fillText(\n copyright.replace(newCopyright, ''),\n this.padding,\n destCanvas.height / scale - this.padding,\n );\n }\n\n drawCopyright(destContext, destCanvas, maxWidth) {\n const { extraData, scale } = this.props;\n const { text, font, fillStyle } = extraData.copyright;\n const copyright = typeof text === 'function' ? text() : text;\n this.multilineCopyright = false;\n\n destContext.save();\n destContext.scale(scale, scale);\n // eslint-disable-next-line no-param-reassign\n destContext.font = font || '12px Arial';\n // eslint-disable-next-line no-param-reassign\n destContext.fillStyle = fillStyle || 'black';\n\n this.decreaseFontSize(destContext, maxWidth, copyright, scale);\n\n if (this.multilineCopyright) {\n this.splitCopyrightLine(\n destContext,\n destCanvas,\n maxWidth,\n copyright,\n scale,\n );\n } else {\n destContext.fillText(\n copyright,\n this.padding,\n destCanvas.height / scale - this.padding,\n );\n }\n destContext.restore();\n }\n\n drawElement(data, destCanvas, previousItemSize = [0, 0]) {\n const destContext = destCanvas.getContext('2d');\n const { scale } = this.props;\n const { src, width, height, rotation } = data;\n\n return new Promise((resolve) => {\n const img = new Image();\n img.crossOrigin = 'Anonymous';\n img.src = src;\n img.onload = () => {\n destContext.save();\n const elementWidth = (width || 80) * scale;\n const elementHeight = (height || 80) * scale;\n destContext.translate(\n destCanvas.width - 2 * this.padding - elementWidth / 2,\n destCanvas.height -\n 2 * this.padding -\n elementHeight / 2 -\n previousItemSize[1],\n );\n\n if (rotation) {\n const angle = typeof rotation === 'function' ? rotation() : rotation;\n destContext.rotate(angle * (Math.PI / 180));\n }\n\n destContext.drawImage(\n img,\n -elementWidth / 2,\n -elementHeight / 2,\n elementWidth,\n elementHeight,\n );\n destContext.restore();\n\n // Return the pixels width of the arrow and the margin right,\n // that must not be occupied by the copyright.\n resolve([\n elementWidth + 2 * this.padding,\n elementHeight + 2 * this.padding,\n ]);\n };\n\n img.onerror = () => {\n resolve();\n };\n });\n }\n\n calculatePixelsToExport(mapToExport) {\n const { extent, coordinates } = this.props;\n let firstCoordinate;\n let oppositeCoordinate;\n\n if (extent) {\n firstCoordinate = getTopLeft(extent);\n oppositeCoordinate = getBottomRight(extent);\n } else if (coordinates) {\n // In case of coordinates coming from DragBox interaction:\n // firstCoordinate is the first coordinate drawn by the user.\n // oppositeCoordinate is the coordinate of the point dragged by the user.\n [firstCoordinate, , oppositeCoordinate] = coordinates;\n }\n\n if (firstCoordinate && oppositeCoordinate) {\n const firstPixel = mapToExport.getPixelFromCoordinate(firstCoordinate);\n const oppositePixel =\n mapToExport.getPixelFromCoordinate(oppositeCoordinate);\n const pixelTopLeft = [\n firstPixel[0] <= oppositePixel[0] ? firstPixel[0] : oppositePixel[0],\n firstPixel[1] <= oppositePixel[1] ? firstPixel[1] : oppositePixel[1],\n ];\n const pixelBottomRight = [\n firstPixel[0] > oppositePixel[0] ? firstPixel[0] : oppositePixel[0],\n firstPixel[1] > oppositePixel[1] ? firstPixel[1] : oppositePixel[1],\n ];\n\n return {\n x: pixelTopLeft[0],\n y: pixelTopLeft[1],\n w: pixelBottomRight[0] - pixelTopLeft[0],\n h: pixelBottomRight[1] - pixelTopLeft[1],\n };\n }\n return null;\n }\n\n createCanvasImage(mapToExport) {\n const { extraData } = this.props;\n\n return new Promise((resolve) => {\n mapToExport.once('rendercomplete', () => {\n // Find all layer canvases and add it to dest canvas.\n const canvases = mapToExport\n .getTargetElement()\n .getElementsByTagName('canvas');\n\n // Create the canvas to export with the good size.\n let destCanvas;\n let destContext;\n\n canvases.forEach((canvas) => {\n if (!canvas.width || !canvas.height) {\n return;\n }\n const clip = this.calculatePixelsToExport(mapToExport) || {\n x: 0,\n y: 0,\n w: canvas.width,\n h: canvas.height,\n };\n\n if (!destCanvas) {\n destCanvas = document.createElement('canvas');\n destCanvas.width = clip.w;\n destCanvas.height = clip.h;\n destContext = destCanvas.getContext('2d');\n }\n\n // Draw canvas to the canvas to export.\n destContext.drawImage(\n canvas,\n clip.x,\n clip.y,\n clip.w,\n clip.h,\n 0,\n 0,\n destCanvas.width,\n destCanvas.height,\n );\n });\n\n // Custom info\n let logoPromise = Promise.resolve();\n if (destContext && extraData && extraData.logo) {\n logoPromise = this.drawElement(extraData.logo, destCanvas);\n }\n\n logoPromise.then((customItemSize = [0, 0]) => {\n // North arrow\n let arrowPromise = Promise.resolve();\n if (destContext && extraData && extraData.northArrow) {\n arrowPromise = this.drawElement(\n {\n src: extraData.northArrow.circled\n ? NorthArrowCircle\n : NorthArrowSimple,\n ...extraData.northArrow,\n },\n destCanvas,\n customItemSize,\n );\n }\n\n // Copyright\n arrowPromise.then((arrowWidth) => {\n const widestElement = Math.max(customItemSize[0], arrowWidth);\n if (\n destContext &&\n extraData &&\n extraData.copyright &&\n extraData.copyright.text\n ) {\n const maxWidth = widestElement\n ? destContext.canvas.width - widestElement\n : destContext.canvas.width;\n this.drawCopyright(destContext, destCanvas, maxWidth);\n }\n resolve(destCanvas);\n });\n });\n });\n mapToExport.renderSync();\n });\n }\n\n downloadCanvasImage(canvas) {\n // Use blob for large images\n const promise = new Promise((resolve) => {\n const { format } = this.props;\n if (/msie (9|10)/gi.test(window.navigator.userAgent.toLowerCase())) {\n // ie 9 and 10\n const url = canvas.toDataURL(format);\n const w = window.open('about:blank', '');\n w.document.write(`<img src=\"${url}\" alt=\"from canvas\"/>`);\n resolve(url);\n }\n if (window.navigator.msSaveBlob) {\n // ie 11 and higher\n let image;\n try {\n image = canvas.msToBlob();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.log(e);\n }\n const blob = new Blob([image], {\n type: format,\n });\n resolve(blob);\n window.navigator.msSaveBlob(blob, this.getDownloadImageName());\n } else {\n canvas.toBlob((blob) => {\n const link = document.createElement('a');\n link.download = this.getDownloadImageName();\n link.href = URL.createObjectURL(blob);\n // append child to document for firefox to be able to download.\n document.body.appendChild(link);\n link.click();\n resolve(blob);\n }, format);\n }\n });\n return promise;\n }\n\n render() {\n const { children, ...other } = this.props;\n\n delete other.onSaveStart;\n delete other.onSaveEnd;\n delete other.extraData;\n delete other.extent;\n delete other.format;\n delete other.map;\n delete other.coordinates;\n delete other.autoDownload;\n delete other.scale;\n\n return (\n <div\n role=\"button\"\n className=\"rs-canvas-save-button\"\n tabIndex={0}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...other}\n onClick={(e) => {\n return this.onClick(e);\n }}\n onKeyPress={(e) => {\n return e.which === 13 && this.onClick(e);\n }}\n >\n {children}\n </div>\n );\n }\n}\n\nCanvasSaveButton.propTypes = propTypes;\nCanvasSaveButton.defaultProps = defaultProps;\n\nexport default CanvasSaveButton;\n"],"names":["const","super","this","let"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CanvasSaveButton.js","sources":["../../../src/components/CanvasSaveButton/CanvasSaveButton.js"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport OLMap from 'ol/Map';\nimport { getTopLeft, getBottomRight } from 'ol/extent';\nimport NorthArrowSimple from '../../images/northArrow.url.svg';\nimport NorthArrowCircle from '../../images/northArrowCircle.url.svg';\n\nconst propTypes = {\n /**\n * Automatically download the image saved.\n */\n autoDownload: PropTypes.bool,\n\n /**\n * Children content of the button.\n */\n children: PropTypes.node,\n\n /**\n * Output format of the image.\n */\n format: PropTypes.oneOf(['image/jpeg', 'image/png']),\n\n /** An [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html). */\n map: PropTypes.instanceOf(OLMap),\n\n /**\n * Extent for the export. If no extent is given, the whole map is exported.\n */\n extent: PropTypes.arrayOf(PropTypes.number),\n\n /**\n * Array of 4 [ol/Coordinate](https://openlayers.org/en/latest/apidoc/module-ol_coordinate.html#~Coordinate).\n * If no coordinates and no extent are given, the whole map is exported.\n * This property must be used to export rotated map.\n * If you don't need to export rotated map the extent property can be used as well.\n * If extent is specified, coordinates property is ignored.\n */\n coordinates: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n\n /**\n * Scale the map for better quality. Possible values: 1, 2 or 3.\n * WARNING: The tiled layer with a WMTS or XYZ source must provides an url\n * for each scale in the config file.\n */\n scale: PropTypes.number,\n\n /**\n * Function called before the dowload process begins.\n */\n onSaveStart: PropTypes.func,\n\n /**\n * Function called after the dowload process ends.\n *\n * @param {object} error Error message the process fails.\n */\n onSaveEnd: PropTypes.func,\n\n /**\n * Extra data, such as copyright, north arrow configuration.\n * All extra data is optional.\n *\n * Example 1:\n *\n {\n copyright: {\n text: 'Example copyright', // Copyright text or function\n font: '10px Arial', // Font, default is '12px Arial'\n fillStyle: 'blue', // Fill style, default is 'black'\n },\n northArrow, // True if the north arrow\n // should be placed with default configuration\n // (default image, rotation=0, circled=False)\n }\n * Example 2:\n *\n {\n northArrow: {\n src: NorthArrowCustom,\n width: 60, // Width in px, default is 80\n height: 100, // Height in px, default is 80\n rotation: 25, // Absolute rotation in degrees as number or function\n\n }\n }\n * Example 3:\n *\n {\n copyright: {\n text: () => { // Copyright as function\n return this.copyright;\n },\n },\n northArrow: {\n rotation: () => { // Rotation as function\n return NorthArrow.radToDeg(this.map.getView().getRotation());\n },\n circled, // Display circle around the north arrow (Does not work for custom src)\n },\n }\n */\n extraData: PropTypes.object,\n};\n\nconst defaultProps = {\n autoDownload: true,\n children: null,\n map: null,\n format: 'image/png',\n extent: null,\n extraData: null,\n coordinates: null,\n scale: 1,\n onSaveStart: (map) => {\n return Promise.resolve(map);\n },\n onSaveEnd: () => {},\n};\n\n/**\n * The CanvasSaveButton component creates a button to save\n * an [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html)\n * canvas as an image.\n */\nclass CanvasSaveButton extends PureComponent {\n constructor(props) {\n super(props);\n const { format } = this.props;\n this.fileExt = format === 'image/jpeg' ? 'jpg' : 'png';\n this.padding = 5;\n }\n\n onClick(evt) {\n const { map, onSaveStart, onSaveEnd, autoDownload } = this.props;\n if (window.navigator.msSaveBlob) {\n // ie only\n evt.preventDefault();\n evt.stopPropagation();\n }\n onSaveStart(map).then((mapToExport) => {\n return this.createCanvasImage(mapToExport || map)\n .then((canvas) => {\n if (autoDownload) {\n this.downloadCanvasImage(canvas).then((blob) => {\n onSaveEnd(mapToExport, canvas, blob);\n });\n } else {\n onSaveEnd(mapToExport, canvas);\n }\n })\n .catch((err) => {\n if (err) {\n // eslint-disable-next-line no-console\n console.error(err);\n }\n onSaveEnd(mapToExport, err);\n });\n });\n }\n\n getDownloadImageName() {\n return (\n `${window.document.title.replace(/ /g, '_').toLowerCase()}` +\n `.${this.fileExt}`\n );\n }\n\n // Ensure the font size fita with the image width.\n decreaseFontSize(destContext, maxWidth, copyright, scale) {\n const minFontSize = 8;\n let sizeMatch;\n let fontSize;\n do {\n sizeMatch = destContext.font.match(/[0-9]+(?:\\.[0-9]+)?(px)/i);\n fontSize = parseInt(sizeMatch[0].replace(sizeMatch[1], ''), 10);\n\n // eslint-disable-next-line no-param-reassign\n destContext.font = destContext.font.replace(fontSize, fontSize - 1);\n\n if (fontSize - 1 === minFontSize) {\n this.multilineCopyright = true;\n }\n } while (\n fontSize - 1 > minFontSize &&\n destContext.measureText(copyright).width * scale > maxWidth\n );\n return destContext.font;\n }\n\n // If minimal fontsize is reached, divide copyright in two lines.\n splitCopyrightLine(destContext, destCanvas, maxWidth, copyright, scale) {\n let newCopyright = copyright;\n const wordNumber = copyright.split(' ').length;\n\n for (let i = 0; i < wordNumber; i += 1) {\n newCopyright = newCopyright.substring(0, newCopyright.lastIndexOf(' '));\n // Stop removing word when fits within one line.\n if (destContext.measureText(newCopyright).width * scale < maxWidth) {\n break;\n }\n }\n\n // Draw fist line (line break isn't supported for fillText).\n destContext.fillText(\n newCopyright,\n this.padding,\n destCanvas.height / scale - 3 * this.padding,\n );\n\n // Draw second line.\n destContext.fillText(\n copyright.replace(newCopyright, ''),\n this.padding,\n destCanvas.height / scale - this.padding,\n );\n }\n\n drawCopyright(destContext, destCanvas, maxWidth) {\n const { extraData, scale } = this.props;\n const { text, font, fillStyle } = extraData.copyright;\n const copyright = typeof text === 'function' ? text() : text;\n this.multilineCopyright = false;\n\n destContext.save();\n destContext.scale(scale, scale);\n // eslint-disable-next-line no-param-reassign\n destContext.font = font || '12px Arial';\n // eslint-disable-next-line no-param-reassign\n destContext.fillStyle = fillStyle || 'black';\n\n this.decreaseFontSize(destContext, maxWidth, copyright, scale);\n\n if (this.multilineCopyright) {\n this.splitCopyrightLine(\n destContext,\n destCanvas,\n maxWidth,\n copyright,\n scale,\n );\n } else {\n destContext.fillText(\n copyright,\n this.padding,\n destCanvas.height / scale - this.padding,\n );\n }\n destContext.restore();\n }\n\n drawElement(data, destCanvas, previousItemSize = [0, 0]) {\n const destContext = destCanvas.getContext('2d');\n const { scale } = this.props;\n const { src, width, height, rotation } = data;\n\n return new Promise((resolve) => {\n const img = new Image();\n img.crossOrigin = 'Anonymous';\n img.src = src;\n img.onload = () => {\n destContext.save();\n const elementWidth = (width || 80) * scale;\n const elementHeight = (height || 80) * scale;\n destContext.translate(\n destCanvas.width - 2 * this.padding - elementWidth / 2,\n destCanvas.height -\n 2 * this.padding -\n elementHeight / 2 -\n previousItemSize[1],\n );\n\n if (rotation) {\n const angle = typeof rotation === 'function' ? rotation() : rotation;\n destContext.rotate(angle * (Math.PI / 180));\n }\n\n destContext.drawImage(\n img,\n -elementWidth / 2,\n -elementHeight / 2,\n elementWidth,\n elementHeight,\n );\n destContext.restore();\n\n // Return the pixels width of the arrow and the margin right,\n // that must not be occupied by the copyright.\n resolve([\n elementWidth + 2 * this.padding,\n elementHeight + 2 * this.padding,\n ]);\n };\n\n img.onerror = () => {\n resolve();\n };\n });\n }\n\n calculatePixelsToExport(mapToExport) {\n const { extent, coordinates } = this.props;\n let firstCoordinate;\n let oppositeCoordinate;\n\n if (extent) {\n firstCoordinate = getTopLeft(extent);\n oppositeCoordinate = getBottomRight(extent);\n } else if (coordinates) {\n // In case of coordinates coming from DragBox interaction:\n // firstCoordinate is the first coordinate drawn by the user.\n // oppositeCoordinate is the coordinate of the point dragged by the user.\n [firstCoordinate, , oppositeCoordinate] = coordinates;\n }\n\n if (firstCoordinate && oppositeCoordinate) {\n const firstPixel = mapToExport.getPixelFromCoordinate(firstCoordinate);\n const oppositePixel =\n mapToExport.getPixelFromCoordinate(oppositeCoordinate);\n const pixelTopLeft = [\n firstPixel[0] <= oppositePixel[0] ? firstPixel[0] : oppositePixel[0],\n firstPixel[1] <= oppositePixel[1] ? firstPixel[1] : oppositePixel[1],\n ];\n const pixelBottomRight = [\n firstPixel[0] > oppositePixel[0] ? firstPixel[0] : oppositePixel[0],\n firstPixel[1] > oppositePixel[1] ? firstPixel[1] : oppositePixel[1],\n ];\n\n return {\n x: pixelTopLeft[0],\n y: pixelTopLeft[1],\n w: pixelBottomRight[0] - pixelTopLeft[0],\n h: pixelBottomRight[1] - pixelTopLeft[1],\n };\n }\n return null;\n }\n\n createCanvasImage(mapToExport) {\n const { extraData } = this.props;\n\n return new Promise((resolve) => {\n mapToExport.once('rendercomplete', () => {\n // Find all layer canvases and add it to dest canvas.\n const canvases = mapToExport\n .getTargetElement()\n .getElementsByTagName('canvas');\n\n // Create the canvas to export with the good size.\n let destCanvas;\n let destContext;\n\n // canvases is an HTMLCollection, we don't try to transform to array because some compilers like cra doesn't translate it right.\n for (let i = 0; i < canvases.length; i += 1) {\n const canvas = canvases[i];\n if (!canvas.width || !canvas.height) {\n // eslint-disable-next-line no-continue\n continue;\n }\n const clip = this.calculatePixelsToExport(mapToExport) || {\n x: 0,\n y: 0,\n w: canvas.width,\n h: canvas.height,\n };\n\n if (!destCanvas) {\n destCanvas = document.createElement('canvas');\n destCanvas.width = clip.w;\n destCanvas.height = clip.h;\n destContext = destCanvas.getContext('2d');\n }\n\n // Draw canvas to the canvas to export.\n destContext.drawImage(\n canvas,\n clip.x,\n clip.y,\n clip.w,\n clip.h,\n 0,\n 0,\n destCanvas.width,\n destCanvas.height,\n );\n }\n\n // Custom info\n let logoPromise = Promise.resolve();\n if (destContext && extraData && extraData.logo) {\n logoPromise = this.drawElement(extraData.logo, destCanvas);\n }\n\n logoPromise.then((customItemSize = [0, 0]) => {\n // North arrow\n let arrowPromise = Promise.resolve();\n if (destContext && extraData && extraData.northArrow) {\n arrowPromise = this.drawElement(\n {\n src: extraData.northArrow.circled\n ? NorthArrowCircle\n : NorthArrowSimple,\n ...extraData.northArrow,\n },\n destCanvas,\n customItemSize,\n );\n }\n\n // Copyright\n arrowPromise.then((arrowWidth) => {\n const widestElement = Math.max(customItemSize[0], arrowWidth);\n if (\n destContext &&\n extraData &&\n extraData.copyright &&\n extraData.copyright.text\n ) {\n const maxWidth = widestElement\n ? destContext.canvas.width - widestElement\n : destContext.canvas.width;\n this.drawCopyright(destContext, destCanvas, maxWidth);\n }\n resolve(destCanvas);\n });\n });\n });\n mapToExport.renderSync();\n });\n }\n\n downloadCanvasImage(canvas) {\n // Use blob for large images\n const promise = new Promise((resolve) => {\n const { format } = this.props;\n if (/msie (9|10)/gi.test(window.navigator.userAgent.toLowerCase())) {\n // ie 9 and 10\n const url = canvas.toDataURL(format);\n const w = window.open('about:blank', '');\n w.document.write(`<img src=\"${url}\" alt=\"from canvas\"/>`);\n resolve(url);\n }\n if (window.navigator.msSaveBlob) {\n // ie 11 and higher\n let image;\n try {\n image = canvas.msToBlob();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.log(e);\n }\n const blob = new Blob([image], {\n type: format,\n });\n resolve(blob);\n window.navigator.msSaveBlob(blob, this.getDownloadImageName());\n } else {\n canvas.toBlob((blob) => {\n const link = document.createElement('a');\n link.download = this.getDownloadImageName();\n link.href = URL.createObjectURL(blob);\n // append child to document for firefox to be able to download.\n document.body.appendChild(link);\n link.click();\n resolve(blob);\n }, format);\n }\n });\n return promise;\n }\n\n render() {\n const { children, ...other } = this.props;\n\n delete other.onSaveStart;\n delete other.onSaveEnd;\n delete other.extraData;\n delete other.extent;\n delete other.format;\n delete other.map;\n delete other.coordinates;\n delete other.autoDownload;\n delete other.scale;\n\n return (\n <div\n role=\"button\"\n className=\"rs-canvas-save-button\"\n tabIndex={0}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...other}\n onClick={(e) => {\n return this.onClick(e);\n }}\n onKeyPress={(e) => {\n return e.which === 13 && this.onClick(e);\n }}\n >\n {children}\n </div>\n );\n }\n}\n\nCanvasSaveButton.propTypes = propTypes;\nCanvasSaveButton.defaultProps = defaultProps;\n\nexport default CanvasSaveButton;\n"],"names":["const","super","this","let"],"mappings":";AAAA,OAAO,KAAK,IAAI,aAAa,QAAQ,OAAO,CAAC;AAC7C,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,MAAM,QAAQ,CAAC;AAC3B,SAAS,UAAU,EAAE,cAAc,QAAQ,WAAW,CAAC;AACvD,OAAO,gBAAgB,MAAM,iCAAiC,CAAC;AAC/D,OAAO,gBAAgB,MAAM,uCAAuC,CAAC;AACrE;AACAA,GAAK,CAAC,SAAS,GAAG;AAClB;AACA;AACA;AACA,EAAE,YAAY,EAAE,SAAS,CAAC,IAAI;AAC9B;AACA;AACA;AACA;AACA,EAAE,QAAQ,EAAE,SAAS,CAAC,IAAI;AAC1B;AACA;AACA;AACA;AACA,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AACtD;AACA;AACA,EAAE,GAAG,EAAE,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC;AAClC;AACA;AACA;AACA;AACA,EAAE,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM;AACzB;AACA;AACA;AACA;AACA,EAAE,WAAW,EAAE,SAAS,CAAC,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,EAAE,SAAS,CAAC,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM;AAC7B,CAAC,CAAC;AACF;AACAA,GAAK,CAAC,YAAY,GAAG;AACrB,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,GAAG,EAAE,IAAI;AACX,EAAE,MAAM,EAAE,WAAW;AACrB,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,SAAS,EAAE,IAAI;AACjB,EAAE,WAAW,EAAE,IAAI;AACnB,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,WAAW,WAAE,CAAC,GAAG,EAAK;AACxB,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAChC,GAAG;AACH,EAAE,SAAS,WAAE,GAAM,EAAE;AACrB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,IAAM,gBAAgB,GAAsB;EAC1C,yBAAW,CAAC,KAAK,EAAE;AACrB,IAAIC,kBAAK,OAAC,KAAK,CAAC,CAAC;AACjB,WAAoB,GAAG,IAAI,CAAC;IAAhB,wBAAsB;AAClC,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,KAAK,YAAY,GAAG,KAAK,GAAG,KAAK,CAAC;AAC3D,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACrB;;;;4DAAG;AACH;AACA,6BAAE,2BAAO,CAAC,GAAG,EAAE;;AAAC;AAChB,WAAuD,GAAG,IAAI,CAAC;IAAnD;IAAK;IAAa;IAAW,oCAA4B;AACrE,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE;AACrC;AACA,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC;AAC3B,MAAM,GAAG,CAAC,eAAe,EAAE,CAAC;AAC5B,KAAK;AACL,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,UAAC,CAAC,WAAW,EAAK;AAC3C,MAAM,OAAOC,MAAI,CAAC,iBAAiB,CAAC,WAAW,IAAI,GAAG,CAAC;AACvD,SAAS,IAAI,UAAC,CAAC,MAAM,EAAK;AAC1B,UAAU,IAAI,YAAY,EAAE;AAC5B,YAAYA,MAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,UAAC,CAAC,IAAI,EAAK;AAC5D,cAAc,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACnD,aAAa,CAAC,CAAC;AACf,WAAW,MAAM;AACjB,YAAY,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC3C,WAAW;AACX,SAAS,CAAC;AACV,SAAS,KAAK,UAAC,CAAC,GAAG,EAAK;AACxB,UAAU,IAAI,GAAG,EAAE;AACnB;AACA,YAAY,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC/B,WAAW;AACX,UAAU,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AACtC,SAAS,CAAC,CAAC;AACX,KAAK,CAAC,CAAC;AACP,IAAG;AACH;AACA,6BAAE,qDAAoB,GAAG;AACzB,IAAI,OAAO;AACX,MAAM,MAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,WAAW,GAAI;AACjE,MAAM,OAAI,IAAI,CAAC,QAAS;AACxB,KAAK,CAAC;AACN,IAAG;AACH;AACA;AACA,6BAAE,6CAAgB,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE;AAC5D,IAAIF,GAAK,CAAC,WAAW,GAAG,CAAC,CAAC;AAC1B,IAAIG,GAAG,CAAC,SAAS,CAAC;AAClB,IAAIA,GAAG,CAAC,QAAQ,CAAC;AACjB,IAAI,GAAG;AACP,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;AACrE,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACtE;AACA;AACA,MAAM,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;AAC1E;AACA,MAAM,IAAI,QAAQ,GAAG,CAAC,KAAK,WAAW,EAAE;AACxC,QAAQ,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AACvC,OAAO;AACP,KAAK;AACL,MAAM,QAAQ,GAAG,CAAC,GAAG,WAAW;AAChC,MAAM,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,QAAQ;AACjE,MAAM;AACN,IAAI,OAAO,WAAW,CAAC,IAAI,CAAC;AAC5B,IAAG;AACH;AACA;AACA,6BAAE,iDAAkB,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE;AAC1E,IAAIA,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC;AACjC,IAAIH,GAAK,CAAC,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AACnD;AACA,IAAI,KAAKG,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE;AAC5C,MAAM,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9E;AACA,MAAM,IAAI,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,QAAQ,EAAE;AAC1E,QAAQ,MAAM;AACd,OAAO;AACP,KAAK;AACL;AACA;AACA,IAAI,WAAW,CAAC,QAAQ;AACxB,MAAM,YAAY;AAClB,MAAM,IAAI,CAAC,OAAO;AAClB,MAAM,UAAU,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,OAAQ;AACnD,KAAK,CAAC;AACN;AACA;AACA,IAAI,WAAW,CAAC,QAAQ;AACxB,MAAM,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;AACzC,MAAM,IAAI,CAAC,OAAO;AAClB,MAAM,UAAU,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC,OAAQ;AAC/C,KAAK,CAAC;AACN,IAAG;AACH;AACA,6BAAE,uCAAa,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE;AACnD,WAA8B,GAAG,IAAI,CAAC;IAA1B;IAAW,sBAAqB;AAC5C,aAAmC,GAAG,SAAS,CAAC;IAApC;IAAM;IAAM,gCAAkC;AAC1D,IAAIH,GAAK,CAAC,SAAS,GAAG,OAAO,IAAI,KAAK,UAAU,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;AACjE,IAAI,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AACpC;AACA,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;AACvB,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACpC;AACA,IAAI,WAAW,CAAC,IAAI,GAAG,IAAI,IAAI,YAAY,CAAC;AAC5C;AACA,IAAI,WAAW,CAAC,SAAS,GAAG,SAAS,IAAI,OAAO,CAAC;AACjD;AACA,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACnE;AACA,IAAI,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACjC,MAAM,IAAI,CAAC,kBAAkB;AAC7B,QAAQ,WAAW;AACnB,QAAQ,UAAU;AAClB,QAAQ,QAAQ;AAChB,QAAQ,SAAS;AACjB,QAAQ,KAAM;AACd,OAAO,CAAC;AACR,KAAK,MAAM;AACX,MAAM,WAAW,CAAC,QAAQ;AAC1B,QAAQ,SAAS;AACjB,QAAQ,IAAI,CAAC,OAAO;AACpB,QAAQ,UAAU,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC,OAAQ;AACjD,OAAO,CAAC;AACR,KAAK;AACL,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;AAC1B,IAAG;AACH;AACA,6BAAE,mCAAW,CAAC,IAAI,EAAE,UAAU,EAAE,gBAAyB,EAAE;;uDAAX,GAAG,CAAC,CAAC,EAAE,CAAC;AAAI;AAC5D,IAAIA,GAAK,CAAC,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACpD,WAAmB,GAAG,IAAI,CAAC;IAAf,sBAAqB;AACjC,IAAY;IAAK;IAAO;IAAQ,6BAAkB;AAClD;AACA,IAAI,OAAO,IAAI,OAAO,UAAC,CAAC,OAAO,EAAK;AACpC,MAAMA,GAAK,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;AAC9B,MAAM,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;AACpC,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;AACpB,MAAM,GAAG,CAAC,MAAM,YAAG,GAAM;AACzB,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;AAC3B,QAAQA,GAAK,CAAC,YAAY,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;AACnD,QAAQA,GAAK,CAAC,aAAa,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;AACrD,QAAQ,WAAW,CAAC,SAAS;AAC7B,UAAU,UAAU,CAAC,KAAK,GAAG,CAAC,GAAGE,MAAI,CAAC,OAAO,GAAG,YAAY,GAAG,CAAC;AAChE,UAAU,UAAU,CAAC,MAAM;AAC3B,YAAY,CAAC,GAAGA,MAAI,CAAC,OAAO;AAC5B,YAAY,aAAa,GAAG,CAAC;AAC7B,YAAY,gBAAgB,CAAC,CAAC,CAAE;AAChC,SAAS,CAAC;AACV;AACA,QAAQ,IAAI,QAAQ,EAAE;AACtB,UAAUF,GAAK,CAAC,KAAK,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC;AAC/E,UAAU,WAAW,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;AACtD,SAAS;AACT;AACA,QAAQ,WAAW,CAAC,SAAS;AAC7B,UAAU,GAAG;AACb,UAAU,CAAC,YAAY,GAAG,CAAC;AAC3B,UAAU,CAAC,aAAa,GAAG,CAAC;AAC5B,UAAU,YAAY;AACtB,UAAU,aAAc;AACxB,SAAS,CAAC;AACV,QAAQ,WAAW,CAAC,OAAO,EAAE,CAAC;AAC9B;AACA;AACA;AACA,QAAQ,OAAO,CAAC;AAChB,UAAU,YAAY,GAAG,CAAC,GAAGE,MAAI,CAAC,OAAO;AACzC,UAAU,aAAa,GAAG,CAAC,GAAGA,MAAI,CAAC,OAAO,CAClC,CAAC,CAAC,CAAC;AACX,OAAO,CAAC;AACR;AACA,MAAM,GAAG,CAAC,OAAO,YAAG,GAAM;AAC1B,QAAQ,OAAO,EAAE,CAAC;AAClB,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,IAAG;AACH;AACA,6BAAE,2DAAuB,CAAC,WAAW,EAAE;;AAAC;AACxC,WAAiC,GAAG,IAAI,CAAC;IAA7B;IAAQ,kCAA2B;AAC/C,IAAIC,GAAG,CAAC,eAAe,CAAC;AACxB,IAAIA,GAAG,CAAC,kBAAkB,CAAC;AAC3B;AACA,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAC3C,MAAM,kBAAkB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AAClD,KAAK,MAAM,IAAI,WAAW,EAAE;AAC5B;AACA;AACA;AACA,aAA6C,GAAG,aAAzC,6BAAmB,+BAAiC,CAAC;AAC5D,KAAK;AACL;AACA,IAAI,IAAI,eAAe,IAAI,kBAAkB,EAAE;AAC/C,MAAMH,GAAK,CAAC,UAAU,GAAG,WAAW,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;AAC7E,MAAMA,GAAK,CAAC,aAAa;AACzB,QAAQ,WAAW,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;AAC/D,MAAMA,GAAK,CAAC,YAAY,GAAG;AAC3B,QAAQ,UAAU,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;AAC5E,QAAQ,UAAU,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CACtE,CAAC,CAAC;AACR,MAAMA,GAAK,CAAC,gBAAgB,GAAG;AAC/B,QAAQ,UAAU,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;AAC3E,QAAQ,UAAU,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CACrE,CAAC,CAAC;AACR;AACA,MAAM,OAAO;AACb,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;AAC1B,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;AAC1B,QAAQ,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;AAChD,QAAQ,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;AAChD,OAAO,CAAC;AACR,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,IAAG;AACH;AACA,6BAAE,+CAAiB,CAAC,WAAW,EAAE;;AAAC;AAClC,WAAuB,GAAG,IAAI,CAAC;IAAnB,8BAAyB;AACrC;AACA,IAAI,OAAO,IAAI,OAAO,UAAC,CAAC,OAAO,EAAK;AACpC,MAAM,WAAW,CAAC,IAAI,CAAC,gBAAgB,WAAE,GAAM;AAC/C;AACA,QAAQA,GAAK,CAAC,QAAQ,GAAG,WAAW;AACpC,WAAW,gBAAgB,EAAE;AAC7B,WAAW,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AAC1C;AACA;AACA,QAAQG,GAAG,CAAC,UAAU,CAAC;AACvB,QAAQA,GAAG,CAAC,WAAW,CAAC;AACxB;AACA;AACA,QAAQ,KAAKA,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AACrD,UAAUH,GAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrC,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAC/C;AACA,YAAY,SAAS;AACrB,WAAW;AACX,UAAUA,GAAK,CAAC,IAAI,GAAGE,MAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,IAAI;AACpE,YAAY,CAAC,EAAE,CAAC;AAChB,YAAY,CAAC,EAAE,CAAC;AAChB,YAAY,CAAC,EAAE,MAAM,CAAC,KAAK;AAC3B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM;AAC5B,WAAW,CAAC;AACZ;AACA,UAAU,IAAI,CAAC,UAAU,EAAE;AAC3B,YAAY,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC1D,YAAY,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;AACtC,YAAY,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;AACvC,YAAY,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACtD,WAAW;AACX;AACA;AACA,UAAU,WAAW,CAAC,SAAS;AAC/B,YAAY,MAAM;AAClB,YAAY,IAAI,CAAC,CAAC;AAClB,YAAY,IAAI,CAAC,CAAC;AAClB,YAAY,IAAI,CAAC,CAAC;AAClB,YAAY,IAAI,CAAC,CAAC;AAClB,YAAY,CAAC;AACb,YAAY,CAAC;AACb,YAAY,UAAU,CAAC,KAAK;AAC5B,YAAY,UAAU,CAAC,MAAO;AAC9B,WAAW,CAAC;AACZ,SAAS;AACT;AACA;AACA,QAAQC,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AAC5C,QAAQ,IAAI,WAAW,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE;AACxD,UAAU,WAAW,GAAGD,MAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AACrE,SAAS;AACT;AACA,QAAQ,WAAW,CAAC,IAAI,UAAC,CAAC,cAAuB,EAAK;yDAAd,GAAG,CAAC,CAAC,EAAE,CAAC;AAAO;AACvD;AACA,UAAUC,GAAG,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AAC/C,UAAU,IAAI,WAAW,IAAI,SAAS,IAAI,SAAS,CAAC,UAAU,EAAE;AAChE,YAAY,YAAY,GAAGD,MAAI,CAAC,WAAW;AAC3C,cAAc,mBACE,GAAG,EAAE,SAAS,CAAC,UAAU,CAAC,OAAO;AACjD,oBAAoB,gBAAgB;AACpC,oBAAoB,iBAAgB;AACpC,gBAAmB,SAAS,CAAC,UAAU,CACxB;AACf,cAAc,UAAU;AACxB,cAAc,cAAe;AAC7B,aAAa,CAAC;AACd,WAAW;AACX;AACA;AACA,UAAU,YAAY,CAAC,IAAI,UAAC,CAAC,UAAU,EAAK;AAC5C,YAAYF,GAAK,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAC1E,YAAY;AACZ,cAAc,WAAW;AACzB,cAAc,SAAS;AACvB,cAAc,SAAS,CAAC,SAAS;AACjC,cAAc,SAAS,CAAC,SAAS,CAAC,IAAI;AACtC,cAAc;AACd,cAAcA,GAAK,CAAC,QAAQ,GAAG,aAAa;AAC5C,kBAAkB,WAAW,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa;AAC1D,kBAAkB,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;AAC3C,cAAcE,MAAI,CAAC,aAAa,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AACpE,aAAa;AACb,YAAY,OAAO,CAAC,UAAU,CAAC,CAAC;AAChC,WAAW,CAAC,CAAC;AACb,SAAS,CAAC,CAAC;AACX,OAAO,CAAC,CAAC;AACT,MAAM,WAAW,CAAC,UAAU,EAAE,CAAC;AAC/B,KAAK,CAAC,CAAC;AACP,IAAG;AACH;AACA,6BAAE,mDAAmB,CAAC,MAAM,EAAE;;AAAC;AAC/B;AACA,IAAIF,GAAK,CAAC,OAAO,GAAG,IAAI,OAAO,UAAC,CAAC,OAAO,EAAK;AAC7C,aAAsB,GAAGE,MAAI,CAAC;MAAhB,wBAAsB;AACpC,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,EAAE;AAC1E;AACA,QAAQF,GAAK,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC7C,QAAQA,GAAK,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AACjD,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAa,GAAG,8BAAuB,CAAC,CAAC;AAClE,QAAQ,OAAO,CAAC,GAAG,CAAC,CAAC;AACrB,OAAO;AACP,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE;AACvC;AACA,QAAQG,GAAG,CAAC,KAAK,CAAC;AAClB,QAAQ,IAAI;AACZ,UAAU,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;AACpC,SAAS,CAAC,OAAO,CAAC,EAAE;AACpB;AACA,UAAU,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACzB,SAAS;AACT,QAAQH,GAAK,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE;AACvC,UAAU,IAAI,EAAE,MAAM;AACtB,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC;AACtB,QAAQ,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAEE,MAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;AACvE,OAAO,MAAM;AACb,QAAQ,MAAM,CAAC,MAAM,UAAC,CAAC,IAAI,EAAK;AAChC,UAAUF,GAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACnD,UAAU,IAAI,CAAC,QAAQ,GAAGE,MAAI,CAAC,oBAAoB,EAAE,CAAC;AACtD,UAAU,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAChD;AACA,UAAU,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC1C,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC;AACvB,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC;AACxB,SAAS,EAAE,MAAM,CAAC,CAAC;AACnB,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,OAAO,CAAC;AACnB,IAAG;AACH;AACA,6BAAE,yBAAM,GAAG;;AAAC;AACZ,WAAgC,GAAG,IAAI,CAAC;IAA5B;IAAU;IAAG,iBAAqB;AAC9C;AACA,IAAI,OAAO,KAAK,CAAC,WAAW,CAAC;AAC7B,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC;AAC3B,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC;AAC3B,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC;AACxB,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC;AACxB,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC;AACrB,IAAI,OAAO,KAAK,CAAC,WAAW,CAAC;AAC7B,IAAI,OAAO,KAAK,CAAC,YAAY,CAAC;AAC9B,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC;AACvB;AACA,IAAI,OAAO;AACX,MAAM,sBAAC,uBAAG;AACV,UAAQ,MAAK,QAAQ,EACb,WAAU,uBAAuB,EACjC,UAAU,GAAE,EAER,KAAM,IACV,kBAAS,CAAC,CAAC,EAAK;AACxB,UAAU,OAAOA,MAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjC,SAAU,EACF,qBAAY,CAAC,CAAC,EAAK;AAC3B,UAAU,OAAO,CAAC,CAAC,KAAK,KAAK,EAAE,IAAIA,MAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACnD,aACO;AACP,QAAS,QAAS;AAClB,MAAM,CAAM;AACZ,KAAK,CAAC;AACN;;;EAxX+B,gBAyX9B;AACD;AACA,gBAAgB,CAAC,SAAS,GAAG,SAAS,CAAC;AACvC,gBAAgB,CAAC,YAAY,GAAG,YAAY,CAAC;AAC7C;AACA,eAAe,gBAAgB,CAAC;"}
|
|
@@ -89,6 +89,13 @@ var propTypes = {
|
|
|
89
89
|
subLayerHide: PropTypes.string,
|
|
90
90
|
}),
|
|
91
91
|
|
|
92
|
+
/**
|
|
93
|
+
* Boolean determining whether items collapse sublayers when they change visibility to false
|
|
94
|
+
*/
|
|
95
|
+
collapseInvisibleLayers: PropTypes.oneOfType([
|
|
96
|
+
PropTypes.bool,
|
|
97
|
+
PropTypes.func ]),
|
|
98
|
+
|
|
92
99
|
/**
|
|
93
100
|
* Translation function.
|
|
94
101
|
* @param {function} Translation function returning the translated string.
|
|
@@ -119,6 +126,7 @@ var defaultProps = {
|
|
|
119
126
|
t: function (s) {
|
|
120
127
|
return s;
|
|
121
128
|
},
|
|
129
|
+
collapseInvisibleLayers: false,
|
|
122
130
|
};
|
|
123
131
|
|
|
124
132
|
/**
|
|
@@ -133,7 +141,7 @@ var LayerTree = /*@__PURE__*/(function (Component) {
|
|
|
133
141
|
var ref = this.props;
|
|
134
142
|
var layerService = ref.layerService;
|
|
135
143
|
var isItemHidden = ref.isItemHidden;
|
|
136
|
-
var
|
|
144
|
+
var initialExpandedLayers =
|
|
137
145
|
layerService && layerService.getLayers()
|
|
138
146
|
? this.getExpandedLayers(
|
|
139
147
|
layerService.getLayers().filter(function (l) {
|
|
@@ -149,10 +157,11 @@ var LayerTree = /*@__PURE__*/(function (Component) {
|
|
|
149
157
|
|
|
150
158
|
this.state = {
|
|
151
159
|
layers: layerService ? layerService.getLayers() : [],
|
|
152
|
-
|
|
160
|
+
expandedLayers: initialExpandedLayers,
|
|
153
161
|
};
|
|
154
162
|
this.updateLayers = this.updateLayers.bind(this);
|
|
155
163
|
this.olKeys = [];
|
|
164
|
+
this.expandedAccumulator = [];
|
|
156
165
|
}
|
|
157
166
|
|
|
158
167
|
if ( Component ) LayerTree.__proto__ = Component;
|
|
@@ -190,15 +199,15 @@ var LayerTree = /*@__PURE__*/(function (Component) {
|
|
|
190
199
|
|
|
191
200
|
LayerTree.prototype.onToggle = function onToggle (layer) {
|
|
192
201
|
var ref = this.state;
|
|
193
|
-
var
|
|
194
|
-
var pos =
|
|
202
|
+
var expandedLayers = ref.expandedLayers;
|
|
203
|
+
var pos = expandedLayers.indexOf(layer);
|
|
195
204
|
if (pos > -1) {
|
|
196
|
-
|
|
205
|
+
expandedLayers.splice(pos, 1);
|
|
197
206
|
} else {
|
|
198
|
-
|
|
207
|
+
expandedLayers.push.apply(expandedLayers, this.getExpandedLayers([layer]));
|
|
199
208
|
}
|
|
200
209
|
|
|
201
|
-
this.setState({
|
|
210
|
+
this.setState({ expandedLayers: expandedLayers });
|
|
202
211
|
};
|
|
203
212
|
|
|
204
213
|
/**
|
|
@@ -236,11 +245,52 @@ var LayerTree = /*@__PURE__*/(function (Component) {
|
|
|
236
245
|
LayerTree.prototype.updateLayers = function updateLayers () {
|
|
237
246
|
var ref = this.props;
|
|
238
247
|
var layerService = ref.layerService;
|
|
248
|
+
var layers = layerService.getLayers();
|
|
249
|
+
this.updateTree(layers);
|
|
239
250
|
this.setState({
|
|
240
|
-
layers:
|
|
251
|
+
layers: layers,
|
|
241
252
|
});
|
|
242
253
|
};
|
|
243
254
|
|
|
255
|
+
LayerTree.prototype.expandLayer = function expandLayer (layer) {
|
|
256
|
+
var this$1 = this;
|
|
257
|
+
|
|
258
|
+
var ref = this.props;
|
|
259
|
+
var isItemHidden = ref.isItemHidden;
|
|
260
|
+
if (layer.visible && !isItemHidden(layer)) {
|
|
261
|
+
var children = layer.children.filter(function (c) {
|
|
262
|
+
return !isItemHidden(c) && !c.get('isAlwaysExpanded');
|
|
263
|
+
});
|
|
264
|
+
if (children.length) {
|
|
265
|
+
children.forEach(function (c) {
|
|
266
|
+
return this$1.expandLayer(c);
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
this.expandedAccumulator = ( this.expandedAccumulator ).concat( [layer]);
|
|
270
|
+
}
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
LayerTree.prototype.updateTree = function updateTree (layers) {
|
|
274
|
+
var this$1 = this;
|
|
275
|
+
|
|
276
|
+
var ref = this.props;
|
|
277
|
+
var collapseInvisibleLayers = ref.collapseInvisibleLayers;
|
|
278
|
+
if (
|
|
279
|
+
typeof collapseInvisibleLayers === 'function'
|
|
280
|
+
? collapseInvisibleLayers(layers)
|
|
281
|
+
: collapseInvisibleLayers
|
|
282
|
+
) {
|
|
283
|
+
layers.forEach(function (l) {
|
|
284
|
+
this$1.expandLayer(l);
|
|
285
|
+
});
|
|
286
|
+
this.setState({
|
|
287
|
+
expandedLayers: this.expandedAccumulator,
|
|
288
|
+
});
|
|
289
|
+
|
|
290
|
+
this.expandedAccumulator = [];
|
|
291
|
+
}
|
|
292
|
+
};
|
|
293
|
+
|
|
244
294
|
LayerTree.prototype.renderInput = function renderInput (layer) {
|
|
245
295
|
var this$1 = this;
|
|
246
296
|
|
|
@@ -280,7 +330,7 @@ var LayerTree = /*@__PURE__*/(function (Component) {
|
|
|
280
330
|
var ref = this.props;
|
|
281
331
|
var isItemHidden = ref.isItemHidden;
|
|
282
332
|
var ref$1 = this.state;
|
|
283
|
-
var
|
|
333
|
+
var expandedLayers = ref$1.expandedLayers;
|
|
284
334
|
|
|
285
335
|
if (
|
|
286
336
|
!layer.children.filter(function (c) {
|
|
@@ -293,7 +343,7 @@ var LayerTree = /*@__PURE__*/(function (Component) {
|
|
|
293
343
|
|
|
294
344
|
return (
|
|
295
345
|
React.createElement( 'div', {
|
|
296
|
-
className: ("rs-layer-tree-arrow rs-layer-tree-arrow-" + (!
|
|
346
|
+
className: ("rs-layer-tree-arrow rs-layer-tree-arrow-" + (!expandedLayers.includes(layer) ? 'collapsed' : 'expanded')) })
|
|
297
347
|
);
|
|
298
348
|
};
|
|
299
349
|
|
|
@@ -307,7 +357,7 @@ var LayerTree = /*@__PURE__*/(function (Component) {
|
|
|
307
357
|
var titles = ref.titles;
|
|
308
358
|
var isItemHidden = ref.isItemHidden;
|
|
309
359
|
var ref$1 = this.state;
|
|
310
|
-
var
|
|
360
|
+
var expandedLayers = ref$1.expandedLayers;
|
|
311
361
|
var onInputClick = function () {
|
|
312
362
|
this$1.onInputClick(
|
|
313
363
|
layer,
|
|
@@ -316,12 +366,12 @@ var LayerTree = /*@__PURE__*/(function (Component) {
|
|
|
316
366
|
}).length && !layer.get('isAlwaysExpanded')
|
|
317
367
|
);
|
|
318
368
|
};
|
|
319
|
-
var title = (t(layer.name)) + " " + (!
|
|
369
|
+
var title = (t(layer.name)) + " " + (!expandedLayers.includes(layer)
|
|
320
370
|
? titles.subLayerShow
|
|
321
371
|
: titles.subLayerHide);
|
|
322
372
|
return (
|
|
323
373
|
React.createElement( 'div', {
|
|
324
|
-
role: "button", tabIndex: 0, className: "rs-layer-tree-toggle", title: title, 'aria-expanded':
|
|
374
|
+
role: "button", tabIndex: 0, className: "rs-layer-tree-toggle", title: title, 'aria-expanded': expandedLayers.includes(layer), 'aria-label': title, onClick: onInputClick, onKeyPress: onInputClick },
|
|
325
375
|
React.createElement( 'div', null, t(layer.name) ),
|
|
326
376
|
this.renderArrow(layer)
|
|
327
377
|
)
|
|
@@ -350,9 +400,9 @@ var LayerTree = /*@__PURE__*/(function (Component) {
|
|
|
350
400
|
var padding = ref$1.padding;
|
|
351
401
|
var getParentClassName = ref$1.getParentClassName;
|
|
352
402
|
var ref$2 = this.state;
|
|
353
|
-
var
|
|
403
|
+
var expandedLayers = ref$2.expandedLayers;
|
|
354
404
|
|
|
355
|
-
var children =
|
|
405
|
+
var children = expandedLayers.includes(layer)
|
|
356
406
|
? [].concat( layer.children.filter(function (c) {
|
|
357
407
|
return !isItemHidden(c);
|
|
358
408
|
}) )
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayerTree.js","sources":["../../../src/components/LayerTree/LayerTree.js"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n /**\n * Layers provider.\n */\n layerService: PropTypes.object,\n\n /**\n * CSS class to apply on the container.\n */\n className: PropTypes.string,\n\n /**\n * Padding left to apply on each level.\n */\n padding: PropTypes.number,\n\n /**\n * Determine if the item is hidden in the tree or not.\n *\n * @param {object} item The item to hide or not.\n *\n * @return {bool} true if the item is not displayed in the tree\n */\n isItemHidden: PropTypes.func,\n\n /**\n * Determine the className used by the div containing the parent and its children.\n */\n getParentClassName: PropTypes.func,\n\n /**\n * Custom function to render an item in the tree.\n *\n * @param {object} item The item to render.\n *\n * @return {node} A jsx node.\n */\n renderItem: PropTypes.func,\n\n /**\n * Custom function to render only the content of an item in the tree.\n *\n * @param {object} item The item to render.\n *\n * @return {node} A jsx node.\n */\n renderItemContent: PropTypes.func,\n\n /**\n * Custom function to render custom content before the list of children of an item.\n *\n * @param {object} item The item to render.\n *\n * @return {node} A jsx node.\n */\n renderBeforeItem: PropTypes.func,\n\n /**\n * Custom function to render custom content after the list of children of an item.\n *\n * @param {object} item The item to render.\n *\n * @return {node} A jsx node.\n */\n renderAfterItem: PropTypes.func,\n\n /**\n * Object holding title for the layer tree's buttons.\n */\n titles: PropTypes.shape({\n /**\n * aria-label on checkbox to show layer.\n */\n layerShow: PropTypes.string,\n /**\n * aria-label on checkbox to hide layer.\n */\n layerHide: PropTypes.string,\n /**\n * title on button to show sublayers.\n */\n subLayerShow: PropTypes.string,\n /**\n * title on button to show sublayers.\n */\n subLayerHide: PropTypes.string,\n }),\n\n /**\n * Translation function.\n * @param {function} Translation function returning the translated string.\n */\n t: PropTypes.func,\n};\n\nconst defaultProps = {\n layerService: undefined,\n className: 'rs-layer-tree',\n padding: 30,\n isItemHidden: () => {\n return false;\n },\n getParentClassName: () => {\n return undefined;\n },\n renderItem: null,\n renderItemContent: null,\n renderBeforeItem: null,\n renderAfterItem: null,\n titles: {\n layerShow: 'Show layer',\n layerHide: 'Hide layer',\n subLayerShow: 'Show sublayer',\n subLayerHide: 'Hide sublayer',\n },\n t: (s) => {\n return s;\n },\n};\n\n/**\n * The LayerTree component renders an interface for toggling\n * [mobility-toolbox-js layers](https://mobility-toolbox-js.geops.io/api/identifiers%20html#ol-layers)\n * and their corresponding child layers.\n */\n\nclass LayerTree extends Component {\n constructor(props) {\n super(props);\n const { layerService, isItemHidden } = this.props;\n const initialExpandedLayerNames =\n layerService && layerService.getLayers()\n ? this.getExpandedLayers(\n layerService.getLayers().filter((l) => {\n return (\n !isItemHidden(l) &&\n l.getVisibleChildren().filter((c) => {\n return !isItemHidden(c);\n }).length\n );\n }),\n )\n : [];\n\n this.state = {\n layers: layerService ? layerService.getLayers() : [],\n expandedLayerNames: initialExpandedLayerNames,\n };\n this.updateLayers = this.updateLayers.bind(this);\n this.olKeys = [];\n }\n\n componentDidMount() {\n this.updateLayerService();\n }\n\n componentDidUpdate(prevProps) {\n const { layerService } = this.props;\n\n if (layerService !== prevProps.layerService) {\n this.updateLayerService();\n }\n }\n\n componentWillUnmount() {\n const { layerService } = this.props;\n layerService.un('change:visible', this.updateLayers);\n }\n\n onInputClick(layer, toggle = false) {\n if (toggle) {\n this.onToggle(layer);\n } else {\n layer.setVisible(!layer.visible);\n }\n }\n\n onToggle(layer) {\n const { expandedLayerNames } = this.state;\n const pos = expandedLayerNames.indexOf(layer);\n if (pos > -1) {\n expandedLayerNames.splice(pos, 1);\n } else {\n expandedLayerNames.push(...this.getExpandedLayers([layer]));\n }\n\n this.setState({ expandedLayerNames });\n }\n\n /**\n * Get the always expanded ancestors (isAlwaysExpanded=true) of the given layers\n * together with the (given) initially expanded layers\n *\n * @param {Layer} layers Initially expanded layers\n * @return {Array.<Layer>} Initially expanded layers and all its always expanded ancestors\n */\n getExpandedLayers(layers) {\n const { isItemHidden } = this.props;\n const children = layers.flatMap((l) => {\n return l.children.filter((c) => {\n return !isItemHidden(c) && c.get('isAlwaysExpanded');\n });\n });\n\n if (!children.length) {\n return layers;\n }\n return [...layers, this.getExpandedLayers(children)].flat();\n }\n\n updateLayerService() {\n const { layerService } = this.props;\n if (layerService) {\n layerService.un('change:visible', this.updateLayers);\n this.updateLayers();\n layerService.on('change:visible', this.updateLayers);\n }\n }\n\n updateLayers() {\n const { layerService } = this.props;\n this.setState({\n layers: layerService.getLayers(),\n });\n }\n\n renderInput(layer) {\n const { titles, isItemHidden } = this.props;\n let tabIndex = 0;\n\n if (\n !layer.children.filter((c) => {\n return !isItemHidden(c);\n }).length\n ) {\n // We forbid focus on keypress event for first level layers and layers without children.\n tabIndex = -1;\n }\n\n const inputType = layer.get('radioGroup') ? 'radio' : 'checkbox';\n return (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control,jsx-a11y/no-noninteractive-element-interactions\n <label\n className={`rs-layer-tree-input rs-layer-tree-input-${inputType} rs-${inputType}`}\n tabIndex={tabIndex}\n title={layer.visible ? titles.layerHide : titles.layerShow}\n aria-label={layer.visible ? titles.layerHide : titles.layerShow}\n onKeyPress={(e) => {\n if (e.which === 13) {\n this.onInputClick(layer);\n }\n }}\n >\n <input\n type={inputType}\n tabIndex={-1}\n checked={layer.visible}\n readOnly\n onClick={() => {\n return this.onInputClick(layer);\n }}\n />\n <span />\n </label>\n );\n }\n\n renderArrow(layer) {\n const { isItemHidden } = this.props;\n const { expandedLayerNames } = this.state;\n\n if (\n !layer.children.filter((c) => {\n return !isItemHidden(c);\n }).length ||\n layer.get('isAlwaysExpanded')\n ) {\n return null;\n }\n\n return (\n <div\n className={`rs-layer-tree-arrow rs-layer-tree-arrow-${\n !expandedLayerNames.includes(layer) ? 'collapsed' : 'expanded'\n }`}\n />\n );\n }\n\n // Render a button which expands/collapse the layer if there is children\n // or simulate a click on the input otherwise.\n renderToggleButton(layer) {\n const { t, titles, isItemHidden } = this.props;\n const { expandedLayerNames } = this.state;\n const onInputClick = () => {\n this.onInputClick(\n layer,\n layer.children.filter((c) => {\n return !isItemHidden(c);\n }).length && !layer.get('isAlwaysExpanded'),\n );\n };\n const title = `${t(layer.name)} ${\n !expandedLayerNames.includes(layer)\n ? titles.subLayerShow\n : titles.subLayerHide\n }`;\n return (\n <div\n role=\"button\"\n tabIndex={0}\n className=\"rs-layer-tree-toggle\"\n title={title}\n aria-expanded={expandedLayerNames.includes(layer)}\n aria-label={title}\n onClick={onInputClick}\n onKeyPress={onInputClick}\n >\n <div>{t(layer.name)}</div>\n {this.renderArrow(layer)}\n </div>\n );\n }\n\n renderItemContent(layer) {\n return (\n <>\n {this.renderInput(layer)}\n {this.renderToggleButton(layer)}\n </>\n );\n }\n\n renderItem(layer, level) {\n const { isItemHidden } = this.props;\n const {\n renderItem,\n renderItemContent,\n renderBeforeItem,\n renderAfterItem,\n padding,\n getParentClassName,\n } = this.props;\n const { expandedLayerNames } = this.state;\n\n const children = expandedLayerNames.includes(layer)\n ? [\n ...layer.children.filter((c) => {\n return !isItemHidden(c);\n }),\n ]\n : [];\n\n if (renderItem) {\n return renderItem(layer, this.onInputClick, this.onToggle);\n }\n\n return (\n <div className={getParentClassName()} key={layer.key}>\n <div\n className={`rs-layer-tree-item ${layer.visible ? 'rs-visible' : ''}`}\n style={{\n paddingLeft: `${padding * level}px`,\n }}\n >\n {renderItemContent\n ? renderItemContent(layer, this)\n : this.renderItemContent(layer)}\n </div>\n {renderBeforeItem && renderBeforeItem(layer, level, this)}\n {[...children].reverse().map((child) => {\n return this.renderItem(child, level + 1);\n })}\n {renderAfterItem && renderAfterItem(layer, level, this)}\n </div>\n );\n }\n\n renderTree() {\n const { isItemHidden } = this.props;\n const { layers } = this.state;\n\n if (!layers) {\n return null;\n }\n\n return (\n <>\n {layers\n .filter((l) => {\n return !isItemHidden(l);\n })\n .reverse()\n .map((l) => {\n return this.renderItem(l, 0);\n })}\n </>\n );\n }\n\n render() {\n const { className } = this.props;\n return <div className={className}>{this.renderTree()}</div>;\n }\n}\n\nLayerTree.propTypes = propTypes;\nLayerTree.defaultProps = defaultProps;\n\nexport default LayerTree;\n"],"names":["const","super","let","this"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LayerTree.js","sources":["../../../src/components/LayerTree/LayerTree.js"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nconst propTypes = {\n /**\n * Layers provider.\n */\n layerService: PropTypes.object,\n\n /**\n * CSS class to apply on the container.\n */\n className: PropTypes.string,\n\n /**\n * Padding left to apply on each level.\n */\n padding: PropTypes.number,\n\n /**\n * Determine if the item is hidden in the tree or not.\n *\n * @param {object} item The item to hide or not.\n *\n * @return {bool} true if the item is not displayed in the tree\n */\n isItemHidden: PropTypes.func,\n\n /**\n * Determine the className used by the div containing the parent and its children.\n */\n getParentClassName: PropTypes.func,\n\n /**\n * Custom function to render an item in the tree.\n *\n * @param {object} item The item to render.\n *\n * @return {node} A jsx node.\n */\n renderItem: PropTypes.func,\n\n /**\n * Custom function to render only the content of an item in the tree.\n *\n * @param {object} item The item to render.\n *\n * @return {node} A jsx node.\n */\n renderItemContent: PropTypes.func,\n\n /**\n * Custom function to render custom content before the list of children of an item.\n *\n * @param {object} item The item to render.\n *\n * @return {node} A jsx node.\n */\n renderBeforeItem: PropTypes.func,\n\n /**\n * Custom function to render custom content after the list of children of an item.\n *\n * @param {object} item The item to render.\n *\n * @return {node} A jsx node.\n */\n renderAfterItem: PropTypes.func,\n\n /**\n * Object holding title for the layer tree's buttons.\n */\n titles: PropTypes.shape({\n /**\n * aria-label on checkbox to show layer.\n */\n layerShow: PropTypes.string,\n /**\n * aria-label on checkbox to hide layer.\n */\n layerHide: PropTypes.string,\n /**\n * title on button to show sublayers.\n */\n subLayerShow: PropTypes.string,\n /**\n * title on button to show sublayers.\n */\n subLayerHide: PropTypes.string,\n }),\n\n /**\n * Boolean determining whether items collapse sublayers when they change visibility to false\n */\n collapseInvisibleLayers: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.func,\n ]),\n\n /**\n * Translation function.\n * @param {function} Translation function returning the translated string.\n */\n t: PropTypes.func,\n};\n\nconst defaultProps = {\n layerService: undefined,\n className: 'rs-layer-tree',\n padding: 30,\n isItemHidden: () => {\n return false;\n },\n getParentClassName: () => {\n return undefined;\n },\n renderItem: null,\n renderItemContent: null,\n renderBeforeItem: null,\n renderAfterItem: null,\n titles: {\n layerShow: 'Show layer',\n layerHide: 'Hide layer',\n subLayerShow: 'Show sublayer',\n subLayerHide: 'Hide sublayer',\n },\n t: (s) => {\n return s;\n },\n collapseInvisibleLayers: false,\n};\n\n/**\n * The LayerTree component renders an interface for toggling\n * [mobility-toolbox-js layers](https://mobility-toolbox-js.geops.io/api/identifiers%20html#ol-layers)\n * and their corresponding child layers.\n */\n\nclass LayerTree extends Component {\n constructor(props) {\n super(props);\n const { layerService, isItemHidden } = this.props;\n const initialExpandedLayers =\n layerService && layerService.getLayers()\n ? this.getExpandedLayers(\n layerService.getLayers().filter((l) => {\n return (\n !isItemHidden(l) &&\n l.getVisibleChildren().filter((c) => {\n return !isItemHidden(c);\n }).length\n );\n }),\n )\n : [];\n\n this.state = {\n layers: layerService ? layerService.getLayers() : [],\n expandedLayers: initialExpandedLayers,\n };\n this.updateLayers = this.updateLayers.bind(this);\n this.olKeys = [];\n this.expandedAccumulator = [];\n }\n\n componentDidMount() {\n this.updateLayerService();\n }\n\n componentDidUpdate(prevProps) {\n const { layerService } = this.props;\n\n if (layerService !== prevProps.layerService) {\n this.updateLayerService();\n }\n }\n\n componentWillUnmount() {\n const { layerService } = this.props;\n layerService.un('change:visible', this.updateLayers);\n }\n\n onInputClick(layer, toggle = false) {\n if (toggle) {\n this.onToggle(layer);\n } else {\n layer.setVisible(!layer.visible);\n }\n }\n\n onToggle(layer) {\n const { expandedLayers } = this.state;\n const pos = expandedLayers.indexOf(layer);\n if (pos > -1) {\n expandedLayers.splice(pos, 1);\n } else {\n expandedLayers.push(...this.getExpandedLayers([layer]));\n }\n\n this.setState({ expandedLayers });\n }\n\n /**\n * Get the always expanded ancestors (isAlwaysExpanded=true) of the given layers\n * together with the (given) initially expanded layers\n *\n * @param {Layer} layers Initially expanded layers\n * @return {Array.<Layer>} Initially expanded layers and all its always expanded ancestors\n */\n getExpandedLayers(layers) {\n const { isItemHidden } = this.props;\n const children = layers.flatMap((l) => {\n return l.children.filter((c) => {\n return !isItemHidden(c) && c.get('isAlwaysExpanded');\n });\n });\n\n if (!children.length) {\n return layers;\n }\n return [...layers, this.getExpandedLayers(children)].flat();\n }\n\n updateLayerService() {\n const { layerService } = this.props;\n if (layerService) {\n layerService.un('change:visible', this.updateLayers);\n this.updateLayers();\n layerService.on('change:visible', this.updateLayers);\n }\n }\n\n updateLayers() {\n const { layerService } = this.props;\n const layers = layerService.getLayers();\n this.updateTree(layers);\n this.setState({\n layers,\n });\n }\n\n expandLayer(layer) {\n const { isItemHidden } = this.props;\n if (layer.visible && !isItemHidden(layer)) {\n const children = layer.children.filter((c) => {\n return !isItemHidden(c) && !c.get('isAlwaysExpanded');\n });\n if (children.length) {\n children.forEach((c) => {\n return this.expandLayer(c);\n });\n }\n this.expandedAccumulator = [...this.expandedAccumulator, layer];\n }\n }\n\n updateTree(layers) {\n const { collapseInvisibleLayers } = this.props;\n if (\n typeof collapseInvisibleLayers === 'function'\n ? collapseInvisibleLayers(layers)\n : collapseInvisibleLayers\n ) {\n layers.forEach((l) => {\n this.expandLayer(l);\n });\n this.setState({\n expandedLayers: this.expandedAccumulator,\n });\n\n this.expandedAccumulator = [];\n }\n }\n\n renderInput(layer) {\n const { titles, isItemHidden } = this.props;\n let tabIndex = 0;\n\n if (\n !layer.children.filter((c) => {\n return !isItemHidden(c);\n }).length\n ) {\n // We forbid focus on keypress event for first level layers and layers without children.\n tabIndex = -1;\n }\n\n const inputType = layer.get('radioGroup') ? 'radio' : 'checkbox';\n return (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control,jsx-a11y/no-noninteractive-element-interactions\n <label\n className={`rs-layer-tree-input rs-layer-tree-input-${inputType} rs-${inputType}`}\n tabIndex={tabIndex}\n title={layer.visible ? titles.layerHide : titles.layerShow}\n aria-label={layer.visible ? titles.layerHide : titles.layerShow}\n onKeyPress={(e) => {\n if (e.which === 13) {\n this.onInputClick(layer);\n }\n }}\n >\n <input\n type={inputType}\n tabIndex={-1}\n checked={layer.visible}\n readOnly\n onClick={() => {\n return this.onInputClick(layer);\n }}\n />\n <span />\n </label>\n );\n }\n\n renderArrow(layer) {\n const { isItemHidden } = this.props;\n const { expandedLayers } = this.state;\n\n if (\n !layer.children.filter((c) => {\n return !isItemHidden(c);\n }).length ||\n layer.get('isAlwaysExpanded')\n ) {\n return null;\n }\n\n return (\n <div\n className={`rs-layer-tree-arrow rs-layer-tree-arrow-${\n !expandedLayers.includes(layer) ? 'collapsed' : 'expanded'\n }`}\n />\n );\n }\n\n // Render a button which expands/collapse the layer if there is children\n // or simulate a click on the input otherwise.\n renderToggleButton(layer) {\n const { t, titles, isItemHidden } = this.props;\n const { expandedLayers } = this.state;\n const onInputClick = () => {\n this.onInputClick(\n layer,\n layer.children.filter((c) => {\n return !isItemHidden(c);\n }).length && !layer.get('isAlwaysExpanded'),\n );\n };\n const title = `${t(layer.name)} ${\n !expandedLayers.includes(layer)\n ? titles.subLayerShow\n : titles.subLayerHide\n }`;\n return (\n <div\n role=\"button\"\n tabIndex={0}\n className=\"rs-layer-tree-toggle\"\n title={title}\n aria-expanded={expandedLayers.includes(layer)}\n aria-label={title}\n onClick={onInputClick}\n onKeyPress={onInputClick}\n >\n <div>{t(layer.name)}</div>\n {this.renderArrow(layer)}\n </div>\n );\n }\n\n renderItemContent(layer) {\n return (\n <>\n {this.renderInput(layer)}\n {this.renderToggleButton(layer)}\n </>\n );\n }\n\n renderItem(layer, level) {\n const { isItemHidden } = this.props;\n const {\n renderItem,\n renderItemContent,\n renderBeforeItem,\n renderAfterItem,\n padding,\n getParentClassName,\n } = this.props;\n const { expandedLayers } = this.state;\n\n const children = expandedLayers.includes(layer)\n ? [\n ...layer.children.filter((c) => {\n return !isItemHidden(c);\n }),\n ]\n : [];\n\n if (renderItem) {\n return renderItem(layer, this.onInputClick, this.onToggle);\n }\n\n return (\n <div className={getParentClassName()} key={layer.key}>\n <div\n className={`rs-layer-tree-item ${layer.visible ? 'rs-visible' : ''}`}\n style={{\n paddingLeft: `${padding * level}px`,\n }}\n >\n {renderItemContent\n ? renderItemContent(layer, this)\n : this.renderItemContent(layer)}\n </div>\n {renderBeforeItem && renderBeforeItem(layer, level, this)}\n {[...children].reverse().map((child) => {\n return this.renderItem(child, level + 1);\n })}\n {renderAfterItem && renderAfterItem(layer, level, this)}\n </div>\n );\n }\n\n renderTree() {\n const { isItemHidden } = this.props;\n const { layers } = this.state;\n\n if (!layers) {\n return null;\n }\n\n return (\n <>\n {layers\n .filter((l) => {\n return !isItemHidden(l);\n })\n .reverse()\n .map((l) => {\n return this.renderItem(l, 0);\n })}\n </>\n );\n }\n\n render() {\n const { className } = this.props;\n return <div className={className}>{this.renderTree()}</div>;\n }\n}\n\nLayerTree.propTypes = propTypes;\nLayerTree.defaultProps = defaultProps;\n\nexport default LayerTree;\n"],"names":["const","super","this","let"],"mappings":"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"}
|
|
@@ -133,6 +133,12 @@ describe('LayerTree', function () {
|
|
|
133
133
|
});
|
|
134
134
|
});
|
|
135
135
|
|
|
136
|
+
test('when collapseInvisibleLayers is true.', function () {
|
|
137
|
+
renderLayerTree(layers, {
|
|
138
|
+
collapseInvisibleLayers: true,
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
|
|
136
142
|
test('when items are always expanded', function () {
|
|
137
143
|
var newLayers = [
|
|
138
144
|
new Layer({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayerTree.test.js","sources":["../../../src/components/LayerTree/LayerTree.test.js"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\nimport { configure, mount } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport 'jest-canvas-mock';\nimport renderer from 'react-test-renderer';\nimport { Layer } from 'mobility-toolbox-js/ol';\nimport LayerTree from './LayerTree';\nimport LayerService from '../../LayerService';\n\nconfigure({ adapter: new Adapter() });\n\nconst mountLayerTree = (layers) => {\n const layerService = new LayerService(layers);\n return mount(<LayerTree layerService={layerService} />);\n};\n\nconst renderLayerTree = (layers, props) => {\n const layerService = new LayerService(layers);\n const component = renderer.create(\n <LayerTree layerService={layerService} {...(props || {})} />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n};\n\nconst classItem = '.rs-layer-tree-item';\nconst toggleItem = '.rs-layer-tree-toggle';\n\ndescribe('LayerTree', () => {\n let layers;\n\n beforeEach(() => {\n layers = [\n new Layer({\n name: 'root',\n }),\n new Layer({\n name: '1',\n children: [\n new Layer({\n name: '1-1',\n properties: {\n radioGroup: 'radio',\n },\n }),\n new Layer({\n name: '1-2',\n properties: {\n radioGroup: 'radio',\n },\n visible: false,\n children: [\n new Layer({\n name: '1-2-1',\n visible: false,\n }),\n new Layer({\n name: '1-2-2',\n visible: false,\n }),\n new Layer({\n name: '2',\n visible: false,\n }),\n ],\n }),\n ],\n }),\n ];\n });\n describe('matches snapshots', () => {\n test('using default properties.', () => {\n renderLayerTree(layers);\n });\n\n test('when no layers.', () => {\n const layerService = new LayerService();\n const component = renderer.create(\n <LayerTree layerService={layerService} />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('when renderItem is used.', () => {\n renderLayerTree(layers, {\n renderItem: (item) => {\n const { name } = item;\n return <div key={name}>{name}</div>;\n },\n });\n });\n\n test('when classNames are used.', () => {\n renderLayerTree(layers, { className: 'foo' });\n });\n\n test('when an item is hidden.', () => {\n renderLayerTree(layers, {\n isItemHidden: (item) => {\n return !!item.children.length;\n },\n });\n });\n\n test('when an item is hidden (different layer tree levels)', () => {\n renderLayerTree(layers, {\n isItemHidden: (item) => {\n return item.isBaseLayer || item.get('hideInLegend');\n },\n });\n });\n\n test('when an item use renderBeforeItem.', () => {\n renderLayerTree(layers, {\n renderBeforeItem: (layer, level) => {\n const { name } = layer;\n return (\n <div>\n Render name before item: {name}, level: {level}\n </div>\n );\n },\n });\n });\n\n test('when an item use renderAfterItem.', () => {\n renderLayerTree(layers, {\n renderAfterItem: (layer, level) => {\n const { name } = layer;\n return (\n <div>\n Render name after item: {name}, level: {level}\n </div>\n );\n },\n });\n });\n\n test('when items are always expanded', () => {\n const newLayers = [\n new Layer({\n name: 'Expanded layer 1 (because of level 1)',\n visible: true,\n children: [\n new Layer({\n name: 'Expanded layer 1.1 (because of isAlwaysExpanded=true)',\n visible: true,\n properties: {\n isAlwaysExpanded: true,\n },\n children: [\n new Layer({\n name: 'Expanded layer 1.1.1 (because of isAlwaysExpanded=true)',\n visible: true,\n properties: {\n isAlwaysExpanded: true,\n },\n children: [\n new Layer({\n name: 'Visible layer 1.1.1.1 (as parent is expanded)',\n visible: true,\n }),\n ],\n }),\n new Layer({\n name: 'Hidden layer 1.1.1 (because of hidden=true)',\n visible: true,\n properties: {\n hideInLegend: true,\n },\n children: [\n new Layer({\n name: 'Invisible layer 1.1.1.1 (as parent is hidden)',\n visible: true,\n }),\n ],\n }),\n ],\n }),\n new Layer({\n name: 'Expanded layer 1.2 (because of isAlwaysExpanded=true)',\n visible: true,\n properties: {\n isAlwaysExpanded: true,\n },\n children: [\n new Layer({\n name: 'Visible layer 1.2.1 (as parent is expanded)',\n visible: true,\n children: [\n new Layer({\n name: 'Invisible layer 1.2.1.1 (as parent isAlwaysExpanded=false)',\n visible: true,\n }),\n ],\n }),\n ],\n }),\n ],\n }),\n new Layer({\n name: 'Expanded layer 2 (because of level 1)',\n visible: true,\n children: [\n new Layer({\n name: 'Visible layer 2.1 (as parent is expanded)',\n visible: true,\n children: [\n new Layer({\n name: 'Invisible layer 2.1.1 (as parent isAlwaysExpanded=false)',\n visible: true,\n properties: {\n isAlwaysExpanded: true,\n },\n children: [\n new Layer({\n name: 'Invisible layer 2.1.1.1 (as parent is not visible)',\n visible: true,\n }),\n ],\n }),\n ],\n }),\n new Layer({\n name: 'Visible layer 2.2 (as parent is expanded)',\n visible: true,\n children: [\n new Layer({\n name: 'Invisible layer 2.2.1 (as parent isAlwaysExpanded=false)',\n visible: true,\n children: [\n new Layer({\n name: 'Invisible layer 2.2.1.1 (as parent is not visible)',\n visible: true,\n }),\n ],\n }),\n ],\n }),\n ],\n }),\n ];\n\n renderLayerTree(newLayers, {\n isItemHidden: (item) => {\n return item.get('hideInLegend');\n },\n });\n });\n });\n\n describe('triggers onInputClick', () => {\n let wrapper;\n let spy;\n let spy2;\n const newLayers = [\n new Layer({\n name: 'foo',\n }),\n ];\n const expectCalled = () => {\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledTimes(0);\n expect(spy.mock.calls[0][0].name).toBe('foo');\n };\n\n beforeEach(() => {\n spy = jest.spyOn(LayerTree.prototype, 'onInputClick');\n spy2 = jest.spyOn(LayerTree.prototype, 'onToggle');\n wrapper = mountLayerTree(newLayers);\n });\n\n afterEach(() => {\n spy.mockRestore();\n spy2.mockRestore();\n });\n\n test('when we press enter with keyboard on the label element.', () => {\n wrapper.find('label').at(0).simulate('keypress', { which: 13 });\n expectCalled();\n });\n\n test('when we click on input.', () => {\n wrapper.find('input').at(0).simulate('click');\n expectCalled();\n });\n\n test('when we click on toggle button (label+arrow) of an item without children.', () => {\n wrapper.find(classItem).first().childAt(1).simulate('click');\n expectCalled();\n });\n });\n\n describe('triggers onToggle', () => {\n let wrapper;\n let spy;\n const newLayers = [\n new Layer({\n name: '1',\n children: [\n new Layer({\n name: '1-1',\n }),\n new Layer({\n name: '1-1-1',\n }),\n ],\n }),\n ];\n\n const expectCalled = () => {\n expect(spy).toHaveBeenCalledTimes(1);\n };\n\n beforeEach(() => {\n spy = jest.spyOn(LayerTree.prototype, 'onToggle');\n wrapper = mountLayerTree(newLayers);\n });\n\n test('when we click on toggle button (label+arrow) of an item with children', () => {\n wrapper.find(toggleItem).first().simulate('click');\n expectCalled();\n });\n });\n});\n"],"names":["const","let"],"mappings":"AAAA;AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,SAAS,SAAS,EAAE,KAAK,QAAQ,QAAQ,CAAC;AAC1C,OAAO,OAAO,MAAM,yBAAyB,CAAC;AAC9C,OAAO,kBAAkB,CAAC;AAC1B,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,SAAS,KAAK,QAAQ,wBAAwB,CAAC;AAC/C,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C;AACA,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;AACtC;AACAA,GAAK,CAAC,cAAc,YAAG,CAAC,MAAM,EAAK;AACnC,EAAEA,GAAK,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;AAChD,EAAE,OAAO,KAAK,CAAC,qBAAC,YAAS,CAAC,cAAc,cAAa,CAAG,CAAC,CAAC;AAC1D,CAAC,CAAC;AACF;AACAA,GAAK,CAAC,eAAe,YAAG,CAAC,MAAM,EAAE,KAAK,EAAK;AAC3C,EAAEA,GAAK,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;AAChD,EAAEA,GAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM;AACnC,IAAI,qBAAC,4BAAS,GAAC,cAAc,cAAa,EAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAI;AACjE,GAAG,CAAC;AACJ,EAAEA,GAAK,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;AAClC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;AACjC,CAAC,CAAC;AACF;AACAA,GAAK,CAAC,SAAS,GAAG,qBAAqB,CAAC;AACxCA,GAAK,CAAC,UAAU,GAAG,uBAAuB,CAAC;AAC3C;AACA,QAAQ,CAAC,WAAW,WAAE,GAAM;AAC5B,EAAEC,GAAG,CAAC,MAAM,CAAC;AACb;AACA,EAAE,UAAU,UAAC,GAAM;AACnB,IAAI,MAAM,GAAG;AACb,MAAM,IAAI,KAAK,CAAC;AAChB,QAAQ,IAAI,EAAE,MAAM;AACpB,OAAO,CAAC;AACR,MAAM,IAAI,KAAK,CAAC;AAChB,QAAQ,IAAI,EAAE,GAAG;AACjB,QAAQ,QAAQ,EAAE;AAClB,UAAU,IAAI,KAAK,CAAC;AACpB,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,UAAU,EAAE;AACxB,cAAc,UAAU,EAAE,OAAO;AACjC,aAAa;AACb,WAAW,CAAC;AACZ,UAAU,IAAI,KAAK,CAAC;AACpB,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,UAAU,EAAE;AACxB,cAAc,UAAU,EAAE,OAAO;AACjC,aAAa;AACb,YAAY,OAAO,EAAE,KAAK;AAC1B,YAAY,QAAQ,EAAE;AACtB,cAAc,IAAI,KAAK,CAAC;AACxB,gBAAgB,IAAI,EAAE,OAAO;AAC7B,gBAAgB,OAAO,EAAE,KAAK;AAC9B,eAAe,CAAC;AAChB,cAAc,IAAI,KAAK,CAAC;AACxB,gBAAgB,IAAI,EAAE,OAAO;AAC7B,gBAAgB,OAAO,EAAE,KAAK;AAC9B,eAAe,CAAC;AAChB,cAAc,IAAI,KAAK,CAAC;AACxB,gBAAgB,IAAI,EAAE,GAAG;AACzB,gBAAgB,OAAO,EAAE,KAAK;AAC9B,eAAe,CAAC,CACJ,CAAC;AACb,WAAW,CAAC,CACJ,CAAC;AACT,OAAO,CAAC,CACJ,CAAC,CAAC;AACN,GAAG,CAAC,CAAC;AACL,EAAE,QAAQ,CAAC,mBAAmB,WAAE,GAAM;AACtC,IAAI,IAAI,CAAC,2BAA2B,WAAE,GAAM;AAC5C,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;AAC9B,KAAK,CAAC,CAAC;AACP;AACA,IAAI,IAAI,CAAC,iBAAiB,WAAE,GAAM;AAClC,MAAMD,GAAK,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAC9C,MAAMA,GAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM;AACvC,QAAQ,qBAAC,YAAS,CAAC,cAAc,cAAa,CAAI;AAClD,OAAO,CAAC;AACR,MAAMA,GAAK,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;AACtC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;AACrC,KAAK,CAAC,CAAC;AACP;AACA,IAAI,IAAI,CAAC,0BAA0B,WAAE,GAAM;AAC3C,MAAM,eAAe,CAAC,MAAM,EAAE;AAC9B,QAAQ,UAAU,WAAE,CAAC,IAAI,EAAK;AAC9B,UAAkB,qBAAc;AAChC,UAAU,OAAO,sBAAC,OAAG,CAAC,KAAK,QAAO,IAAK,CAAM,CAAC;AAC9C,SAAS;AACT,OAAO,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP;AACA,IAAI,IAAI,CAAC,2BAA2B,WAAE,GAAM;AAC5C,MAAM,eAAe,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACpD,KAAK,CAAC,CAAC;AACP;AACA,IAAI,IAAI,CAAC,yBAAyB,WAAE,GAAM;AAC1C,MAAM,eAAe,CAAC,MAAM,EAAE;AAC9B,QAAQ,YAAY,WAAE,CAAC,IAAI,EAAK;AAChC,UAAU,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AACxC,SAAS;AACT,OAAO,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP;AACA,IAAI,IAAI,CAAC,sDAAsD,WAAE,GAAM;AACvE,MAAM,eAAe,CAAC,MAAM,EAAE;AAC9B,QAAQ,YAAY,WAAE,CAAC,IAAI,EAAK;AAChC,UAAU,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC9D,SAAS;AACT,OAAO,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP;AACA,IAAI,IAAI,CAAC,oCAAoC,WAAE,GAAM;AACrD,MAAM,eAAe,CAAC,MAAM,EAAE;AAC9B,QAAQ,gBAAgB,WAAE,CAAC,KAAK,EAAE,KAAK,EAAK;AAC5C,UAAkB,sBAAe;AACjC,UAAU,OAAO;AACjB,YAAY,sBAAC,YAAI,6BACuB,MAAK,aAAU,KAAM;AAC7D,YAAY,CAAM;AAClB,WAAW,CAAC;AACZ,SAAS;AACT,OAAO,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP;AACA,IAAI,IAAI,CAAC,mCAAmC,WAAE,GAAM;AACpD,MAAM,eAAe,CAAC,MAAM,EAAE;AAC9B,QAAQ,eAAe,WAAE,CAAC,KAAK,EAAE,KAAK,EAAK;AAC3C,UAAkB,sBAAe;AACjC,UAAU,OAAO;AACjB,YAAY,sBAAC,YAAI,4BACsB,MAAK,aAAU,KAAM;AAC5D,YAAY,CAAM;AAClB,WAAW,CAAC;AACZ,SAAS;AACT,OAAO,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP;AACA,IAAI,IAAI,CAAC,gCAAgC,WAAE,GAAM;AACjD,MAAMA,GAAK,CAAC,SAAS,GAAG;AACxB,QAAQ,IAAI,KAAK,CAAC;AAClB,UAAU,IAAI,EAAE,uCAAuC;AACvD,UAAU,OAAO,EAAE,IAAI;AACvB,UAAU,QAAQ,EAAE;AACpB,YAAY,IAAI,KAAK,CAAC;AACtB,cAAc,IAAI,EAAE,uDAAuD;AAC3E,cAAc,OAAO,EAAE,IAAI;AAC3B,cAAc,UAAU,EAAE;AAC1B,gBAAgB,gBAAgB,EAAE,IAAI;AACtC,eAAe;AACf,cAAc,QAAQ,EAAE;AACxB,gBAAgB,IAAI,KAAK,CAAC;AAC1B,kBAAkB,IAAI,EAAE,yDAAyD;AACjF,kBAAkB,OAAO,EAAE,IAAI;AAC/B,kBAAkB,UAAU,EAAE;AAC9B,oBAAoB,gBAAgB,EAAE,IAAI;AAC1C,mBAAmB;AACnB,kBAAkB,QAAQ,EAAE;AAC5B,oBAAoB,IAAI,KAAK,CAAC;AAC9B,sBAAsB,IAAI,EAAE,+CAA+C;AAC3E,sBAAsB,OAAO,EAAE,IAAI;AACnC,qBAAqB,CAAC,CACJ,CAAC;AACnB,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,KAAK,CAAC;AAC1B,kBAAkB,IAAI,EAAE,6CAA6C;AACrE,kBAAkB,OAAO,EAAE,IAAI;AAC/B,kBAAkB,UAAU,EAAE;AAC9B,oBAAoB,YAAY,EAAE,IAAI;AACtC,mBAAmB;AACnB,kBAAkB,QAAQ,EAAE;AAC5B,oBAAoB,IAAI,KAAK,CAAC;AAC9B,sBAAsB,IAAI,EAAE,+CAA+C;AAC3E,sBAAsB,OAAO,EAAE,IAAI;AACnC,qBAAqB,CAAC,CACJ,CAAC;AACnB,iBAAiB,CAAC,CACJ,CAAC;AACf,aAAa,CAAC;AACd,YAAY,IAAI,KAAK,CAAC;AACtB,cAAc,IAAI,EAAE,uDAAuD;AAC3E,cAAc,OAAO,EAAE,IAAI;AAC3B,cAAc,UAAU,EAAE;AAC1B,gBAAgB,gBAAgB,EAAE,IAAI;AACtC,eAAe;AACf,cAAc,QAAQ,EAAE;AACxB,gBAAgB,IAAI,KAAK,CAAC;AAC1B,kBAAkB,IAAI,EAAE,6CAA6C;AACrE,kBAAkB,OAAO,EAAE,IAAI;AAC/B,kBAAkB,QAAQ,EAAE;AAC5B,oBAAoB,IAAI,KAAK,CAAC;AAC9B,sBAAsB,IAAI,EAAE,4DAA4D;AACxF,sBAAsB,OAAO,EAAE,IAAI;AACnC,qBAAqB,CAAC,CACJ,CAAC;AACnB,iBAAiB,CAAC,CACJ,CAAC;AACf,aAAa,CAAC,CACJ,CAAC;AACX,SAAS,CAAC;AACV,QAAQ,IAAI,KAAK,CAAC;AAClB,UAAU,IAAI,EAAE,uCAAuC;AACvD,UAAU,OAAO,EAAE,IAAI;AACvB,UAAU,QAAQ,EAAE;AACpB,YAAY,IAAI,KAAK,CAAC;AACtB,cAAc,IAAI,EAAE,2CAA2C;AAC/D,cAAc,OAAO,EAAE,IAAI;AAC3B,cAAc,QAAQ,EAAE;AACxB,gBAAgB,IAAI,KAAK,CAAC;AAC1B,kBAAkB,IAAI,EAAE,0DAA0D;AAClF,kBAAkB,OAAO,EAAE,IAAI;AAC/B,kBAAkB,UAAU,EAAE;AAC9B,oBAAoB,gBAAgB,EAAE,IAAI;AAC1C,mBAAmB;AACnB,kBAAkB,QAAQ,EAAE;AAC5B,oBAAoB,IAAI,KAAK,CAAC;AAC9B,sBAAsB,IAAI,EAAE,oDAAoD;AAChF,sBAAsB,OAAO,EAAE,IAAI;AACnC,qBAAqB,CAAC,CACJ,CAAC;AACnB,iBAAiB,CAAC,CACJ,CAAC;AACf,aAAa,CAAC;AACd,YAAY,IAAI,KAAK,CAAC;AACtB,cAAc,IAAI,EAAE,2CAA2C;AAC/D,cAAc,OAAO,EAAE,IAAI;AAC3B,cAAc,QAAQ,EAAE;AACxB,gBAAgB,IAAI,KAAK,CAAC;AAC1B,kBAAkB,IAAI,EAAE,0DAA0D;AAClF,kBAAkB,OAAO,EAAE,IAAI;AAC/B,kBAAkB,QAAQ,EAAE;AAC5B,oBAAoB,IAAI,KAAK,CAAC;AAC9B,sBAAsB,IAAI,EAAE,oDAAoD;AAChF,sBAAsB,OAAO,EAAE,IAAI;AACnC,qBAAqB,CAAC,CACJ,CAAC;AACnB,iBAAiB,CAAC,CACJ,CAAC;AACf,aAAa,CAAC,CACJ,CAAC;AACX,SAAS,CAAC,CACJ,CAAC,CAAC;AACR;AACA,MAAM,eAAe,CAAC,SAAS,EAAE;AACjC,QAAQ,YAAY,WAAE,CAAC,IAAI,EAAK;AAChC,UAAU,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC1C,SAAS;AACT,OAAO,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP,GAAG,CAAC,CAAC;AACL;AACA,EAAE,QAAQ,CAAC,uBAAuB,WAAE,GAAM;AAC1C,IAAIC,GAAG,CAAC,OAAO,CAAC;AAChB,IAAIA,GAAG,CAAC,GAAG,CAAC;AACZ,IAAIA,GAAG,CAAC,IAAI,CAAC;AACb,IAAID,GAAK,CAAC,SAAS,GAAG;AACtB,MAAM,IAAI,KAAK,CAAC;AAChB,QAAQ,IAAI,EAAE,KAAK;AACnB,OAAO,CAAC,CACJ,CAAC,CAAC;AACN,IAAIA,GAAK,CAAC,YAAY,YAAG,GAAM;AAC/B,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC3C,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC5C,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpD,KAAK,CAAC;AACN;AACA,IAAI,UAAU,UAAC,GAAM;AACrB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AACzD,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;AAC1C,KAAK,CAAC,CAAC;AACP;AACA,IAAI,SAAS,UAAC,GAAM;AACpB,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;AACxB,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;AACzB,KAAK,CAAC,CAAC;AACP;AACA,IAAI,IAAI,CAAC,yDAAyD,WAAE,GAAM;AAC1E,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;AACtE,MAAM,YAAY,EAAE,CAAC;AACrB,KAAK,CAAC,CAAC;AACP;AACA,IAAI,IAAI,CAAC,yBAAyB,WAAE,GAAM;AAC1C,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACpD,MAAM,YAAY,EAAE,CAAC;AACrB,KAAK,CAAC,CAAC;AACP;AACA,IAAI,IAAI,CAAC,2EAA2E,WAAE,GAAM;AAC5F,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACnE,MAAM,YAAY,EAAE,CAAC;AACrB,KAAK,CAAC,CAAC;AACP,GAAG,CAAC,CAAC;AACL;AACA,EAAE,QAAQ,CAAC,mBAAmB,WAAE,GAAM;AACtC,IAAIC,GAAG,CAAC,OAAO,CAAC;AAChB,IAAIA,GAAG,CAAC,GAAG,CAAC;AACZ,IAAID,GAAK,CAAC,SAAS,GAAG;AACtB,MAAM,IAAI,KAAK,CAAC;AAChB,QAAQ,IAAI,EAAE,GAAG;AACjB,QAAQ,QAAQ,EAAE;AAClB,UAAU,IAAI,KAAK,CAAC;AACpB,YAAY,IAAI,EAAE,KAAK;AACvB,WAAW,CAAC;AACZ,UAAU,IAAI,KAAK,CAAC;AACpB,YAAY,IAAI,EAAE,OAAO;AACzB,WAAW,CAAC,CACJ,CAAC;AACT,OAAO,CAAC,CACJ,CAAC,CAAC;AACN;AACA,IAAIA,GAAK,CAAC,YAAY,YAAG,GAAM;AAC/B,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC3C,KAAK,CAAC;AACN;AACA,IAAI,UAAU,UAAC,GAAM;AACrB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AACxD,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;AAC1C,KAAK,CAAC,CAAC;AACP;AACA,IAAI,IAAI,CAAC,uEAAuE,WAAE,GAAM;AACxF,MAAM,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACzD,MAAM,YAAY,EAAE,CAAC;AACrB,KAAK,CAAC,CAAC;AACP,GAAG,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;"}
|
|
1
|
+
{"version":3,"file":"LayerTree.test.js","sources":["../../../src/components/LayerTree/LayerTree.test.js"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\nimport { configure, mount } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport 'jest-canvas-mock';\nimport renderer from 'react-test-renderer';\nimport { Layer } from 'mobility-toolbox-js/ol';\nimport LayerTree from './LayerTree';\nimport LayerService from '../../LayerService';\n\nconfigure({ adapter: new Adapter() });\n\nconst mountLayerTree = (layers) => {\n const layerService = new LayerService(layers);\n return mount(<LayerTree layerService={layerService} />);\n};\n\nconst renderLayerTree = (layers, props) => {\n const layerService = new LayerService(layers);\n const component = renderer.create(\n <LayerTree layerService={layerService} {...(props || {})} />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n};\n\nconst classItem = '.rs-layer-tree-item';\nconst toggleItem = '.rs-layer-tree-toggle';\n\ndescribe('LayerTree', () => {\n let layers;\n\n beforeEach(() => {\n layers = [\n new Layer({\n name: 'root',\n }),\n new Layer({\n name: '1',\n children: [\n new Layer({\n name: '1-1',\n properties: {\n radioGroup: 'radio',\n },\n }),\n new Layer({\n name: '1-2',\n properties: {\n radioGroup: 'radio',\n },\n visible: false,\n children: [\n new Layer({\n name: '1-2-1',\n visible: false,\n }),\n new Layer({\n name: '1-2-2',\n visible: false,\n }),\n new Layer({\n name: '2',\n visible: false,\n }),\n ],\n }),\n ],\n }),\n ];\n });\n describe('matches snapshots', () => {\n test('using default properties.', () => {\n renderLayerTree(layers);\n });\n\n test('when no layers.', () => {\n const layerService = new LayerService();\n const component = renderer.create(\n <LayerTree layerService={layerService} />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('when renderItem is used.', () => {\n renderLayerTree(layers, {\n renderItem: (item) => {\n const { name } = item;\n return <div key={name}>{name}</div>;\n },\n });\n });\n\n test('when classNames are used.', () => {\n renderLayerTree(layers, { className: 'foo' });\n });\n\n test('when an item is hidden.', () => {\n renderLayerTree(layers, {\n isItemHidden: (item) => {\n return !!item.children.length;\n },\n });\n });\n\n test('when an item is hidden (different layer tree levels)', () => {\n renderLayerTree(layers, {\n isItemHidden: (item) => {\n return item.isBaseLayer || item.get('hideInLegend');\n },\n });\n });\n\n test('when an item use renderBeforeItem.', () => {\n renderLayerTree(layers, {\n renderBeforeItem: (layer, level) => {\n const { name } = layer;\n return (\n <div>\n Render name before item: {name}, level: {level}\n </div>\n );\n },\n });\n });\n\n test('when an item use renderAfterItem.', () => {\n renderLayerTree(layers, {\n renderAfterItem: (layer, level) => {\n const { name } = layer;\n return (\n <div>\n Render name after item: {name}, level: {level}\n </div>\n );\n },\n });\n });\n\n test('when collapseInvisibleLayers is true.', () => {\n renderLayerTree(layers, {\n collapseInvisibleLayers: true,\n });\n });\n\n test('when items are always expanded', () => {\n const newLayers = [\n new Layer({\n name: 'Expanded layer 1 (because of level 1)',\n visible: true,\n children: [\n new Layer({\n name: 'Expanded layer 1.1 (because of isAlwaysExpanded=true)',\n visible: true,\n properties: {\n isAlwaysExpanded: true,\n },\n children: [\n new Layer({\n name: 'Expanded layer 1.1.1 (because of isAlwaysExpanded=true)',\n visible: true,\n properties: {\n isAlwaysExpanded: true,\n },\n children: [\n new Layer({\n name: 'Visible layer 1.1.1.1 (as parent is expanded)',\n visible: true,\n }),\n ],\n }),\n new Layer({\n name: 'Hidden layer 1.1.1 (because of hidden=true)',\n visible: true,\n properties: {\n hideInLegend: true,\n },\n children: [\n new Layer({\n name: 'Invisible layer 1.1.1.1 (as parent is hidden)',\n visible: true,\n }),\n ],\n }),\n ],\n }),\n new Layer({\n name: 'Expanded layer 1.2 (because of isAlwaysExpanded=true)',\n visible: true,\n properties: {\n isAlwaysExpanded: true,\n },\n children: [\n new Layer({\n name: 'Visible layer 1.2.1 (as parent is expanded)',\n visible: true,\n children: [\n new Layer({\n name: 'Invisible layer 1.2.1.1 (as parent isAlwaysExpanded=false)',\n visible: true,\n }),\n ],\n }),\n ],\n }),\n ],\n }),\n new Layer({\n name: 'Expanded layer 2 (because of level 1)',\n visible: true,\n children: [\n new Layer({\n name: 'Visible layer 2.1 (as parent is expanded)',\n visible: true,\n children: [\n new Layer({\n name: 'Invisible layer 2.1.1 (as parent isAlwaysExpanded=false)',\n visible: true,\n properties: {\n isAlwaysExpanded: true,\n },\n children: [\n new Layer({\n name: 'Invisible layer 2.1.1.1 (as parent is not visible)',\n visible: true,\n }),\n ],\n }),\n ],\n }),\n new Layer({\n name: 'Visible layer 2.2 (as parent is expanded)',\n visible: true,\n children: [\n new Layer({\n name: 'Invisible layer 2.2.1 (as parent isAlwaysExpanded=false)',\n visible: true,\n children: [\n new Layer({\n name: 'Invisible layer 2.2.1.1 (as parent is not visible)',\n visible: true,\n }),\n ],\n }),\n ],\n }),\n ],\n }),\n ];\n\n renderLayerTree(newLayers, {\n isItemHidden: (item) => {\n return item.get('hideInLegend');\n },\n });\n });\n });\n\n describe('triggers onInputClick', () => {\n let wrapper;\n let spy;\n let spy2;\n const newLayers = [\n new Layer({\n name: 'foo',\n }),\n ];\n const expectCalled = () => {\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy2).toHaveBeenCalledTimes(0);\n expect(spy.mock.calls[0][0].name).toBe('foo');\n };\n\n beforeEach(() => {\n spy = jest.spyOn(LayerTree.prototype, 'onInputClick');\n spy2 = jest.spyOn(LayerTree.prototype, 'onToggle');\n wrapper = mountLayerTree(newLayers);\n });\n\n afterEach(() => {\n spy.mockRestore();\n spy2.mockRestore();\n });\n\n test('when we press enter with keyboard on the label element.', () => {\n wrapper.find('label').at(0).simulate('keypress', { which: 13 });\n expectCalled();\n });\n\n test('when we click on input.', () => {\n wrapper.find('input').at(0).simulate('click');\n expectCalled();\n });\n\n test('when we click on toggle button (label+arrow) of an item without children.', () => {\n wrapper.find(classItem).first().childAt(1).simulate('click');\n expectCalled();\n });\n });\n\n describe('triggers onToggle', () => {\n let wrapper;\n let spy;\n const newLayers = [\n new Layer({\n name: '1',\n children: [\n new Layer({\n name: '1-1',\n }),\n new Layer({\n name: '1-1-1',\n }),\n ],\n }),\n ];\n\n const expectCalled = () => {\n expect(spy).toHaveBeenCalledTimes(1);\n };\n\n beforeEach(() => {\n spy = jest.spyOn(LayerTree.prototype, 'onToggle');\n wrapper = mountLayerTree(newLayers);\n });\n\n test('when we click on toggle button (label+arrow) of an item with children', () => {\n wrapper.find(toggleItem).first().simulate('click');\n expectCalled();\n });\n });\n});\n"],"names":["const","let"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-spatial",
|
|
3
3
|
"description": "Components to build React map apps.",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.33-beta.4",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@geops/geops-ui": "0.1.11",
|
|
@@ -189,17 +189,13 @@
|
|
|
189
189
|
"(src|__mocks__)/**/*.js": [
|
|
190
190
|
"eslint --fix",
|
|
191
191
|
"prettier --write",
|
|
192
|
-
"git add",
|
|
193
|
-
"yarn lint",
|
|
194
192
|
"yarn test --bail --findRelatedTests"
|
|
195
193
|
],
|
|
196
194
|
"package.json": [
|
|
197
|
-
"fixpack --sortToTop name --sortToTop description --sortToTop version --sortToTop license --sortToTop author --sortToTop main --sortToTop files --sortToTop proxy --sortToTop dependencies --sortToTop peerDependencies --sortToTop devDependencies --sortToTop scripts"
|
|
198
|
-
"git add"
|
|
195
|
+
"fixpack --sortToTop name --sortToTop description --sortToTop version --sortToTop license --sortToTop author --sortToTop main --sortToTop files --sortToTop proxy --sortToTop dependencies --sortToTop peerDependencies --sortToTop devDependencies --sortToTop scripts"
|
|
199
196
|
],
|
|
200
197
|
"src/**/*.{css,scss}": [
|
|
201
|
-
"stylelint --fix"
|
|
202
|
-
"git add"
|
|
198
|
+
"stylelint --fix"
|
|
203
199
|
]
|
|
204
200
|
},
|
|
205
201
|
"prettier": {
|