@deck.gl-community/layers 9.0.2 → 9.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -266,7 +266,7 @@ var PathOutlineLayer = class extends import_layers2.PathLayer {
266
266
  this.state.attributeManager.addInstanced({
267
267
  instanceZLevel: {
268
268
  size: 1,
269
- type: import_constants.GL.UNSIGNED_BYTE,
269
+ type: 5121,
270
270
  accessor: "getZLevel"
271
271
  }
272
272
  });
@@ -298,7 +298,7 @@ var PathOutlineLayer = class extends import_layers2.PathLayer {
298
298
  parameters: {
299
299
  depthTest: false,
300
300
  // Biggest value needs to go into buffer
301
- blendEquation: import_constants.GL.MAX
301
+ blendEquation: 32776
302
302
  },
303
303
  framebuffer: outlineFramebuffer
304
304
  });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["index.js", "tile-source-layer/tile-source-layer.js", "path-outline-layer/path-outline-layer.js", "path-outline-layer/outline.js", "path-marker-layer/path-marker-layer.js", "path-marker-layer/arrow-2d-geometry.js", "path-marker-layer/create-path-markers.js", "path-marker-layer/polyline.js"],
4
- "sourcesContent": ["// deck.gl-community\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nexport { TileSourceLayer } from './tile-source-layer/tile-source-layer';\nexport { PathOutlineLayer } from './path-outline-layer/path-outline-layer';\nexport { PathMarkerLayer } from './path-marker-layer/path-marker-layer';\n", "// deck.gl-community\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { CompositeLayer } from '@deck.gl/core';\nimport { TileLayer } from '@deck.gl/geo-layers';\nimport { BitmapLayer, GeoJsonLayer, PathLayer } from '@deck.gl/layers';\n/* global window */\nconst devicePixelRatio = (typeof window !== 'undefined' && window.devicePixelRatio) || 1;\n/**\n * A Deck.gl layer that renders a tile source\n * Autodiscovers type of content (vector tile, bitmap, ...)\n * Can render debug borders around tiles\n * TODO - Change debug border color based on zoom level\n */\nexport class TileSourceLayer extends CompositeLayer {\n static layerName = 'TileSourceLayer';\n static defaultProps = {\n ...TileLayer.defaultProps,\n showTileBorders: true\n };\n state = undefined;\n initializeState() {\n this.setState({\n tileSource: null\n });\n }\n updateState({ props, changeFlags }) {\n this.setState({\n tileSource: props.tileSource\n });\n }\n renderLayers() {\n const { tileSource, showTileBorders, metadata, onTilesLoad } = this.props;\n const minZoom = metadata?.minZoom || 0;\n const maxZoom = metadata?.maxZoom || 30;\n return [\n new TileLayer({\n // HACK: Trigger new layer via id prop to force clear tile cache\n id: String(tileSource.url),\n getTileData: tileSource.getTileData,\n // Assume the pmtiles file support HTTP/2, so we aren't limited by the browser to a certain number per domain.\n maxRequests: 20,\n pickable: true,\n onViewportLoad: onTilesLoad,\n autoHighlight: showTileBorders,\n highlightColor: [60, 60, 60, 40],\n minZoom,\n maxZoom,\n tileSize: 256,\n // TOOD - why is this needed?\n zoomOffset: devicePixelRatio === 1 ? -1 : 0,\n renderSubLayers: renderSubLayers,\n // Custom prop\n tileSource,\n showTileBorders\n })\n ];\n }\n}\nfunction renderSubLayers(props) {\n const { tileSource, showTileBorders, minZoom, maxZoom, tile: { index: { z: zoom }, bbox: { west, south, east, north } } } = props;\n const layers = [];\n const borderColor = zoom <= minZoom || zoom >= maxZoom ? [255, 0, 0, 255] : [0, 0, 255, 255];\n switch (tileSource.mimeType) {\n case 'application/vnd.mapbox-vector-tile':\n layers.push(new GeoJsonLayer({\n id: `${props.id}-geojson`,\n data: props.data,\n pickable: true,\n getFillColor: [0, 190, 80, 255],\n lineWidthScale: 500,\n lineWidthMinPixels: 0.5\n }));\n break;\n case 'image/png':\n case 'image/jpeg':\n case 'image/webp':\n case 'image/avif':\n layers.push(new BitmapLayer(props, {\n data: null,\n image: props.data,\n bounds: [west, south, east, north],\n pickable: true\n }));\n break;\n default:\n // eslint-disable-next-line no-console\n console.error('Unknown tile mimeType', tileSource?.mimeType);\n }\n // Debug tile borders\n if (showTileBorders) {\n layers.push(new PathLayer({\n id: `${props.id}-border`,\n data: [\n [\n [west, north],\n [west, south],\n [east, south],\n [east, north],\n [west, north]\n ]\n ],\n getPath: (d) => d,\n getColor: borderColor,\n widthMinPixels: 4\n }));\n }\n return layers;\n}\n", "// deck.gl-community\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { PathLayer } from '@deck.gl/layers';\nimport { GL } from '@luma.gl/constants';\nimport { outline } from './outline';\n/**\n * Unit literal to shader unit number conversion.\n */\nexport const UNIT = {\n common: 0,\n meters: 1,\n pixels: 2\n};\n// TODO - this should be built into assembleShaders\nfunction injectShaderCode({ source, code = '' }) {\n const INJECT_CODE = /}[^{}]*$/;\n return source.replace(INJECT_CODE, code.concat('\\n}\\n'));\n}\nconst VS_CODE = `\\\n outline_setUV(gl_Position);\n outline_setZLevel(instanceZLevel);\n`;\nconst FS_CODE = `\\\n fragColor = outline_filterColor(fragColor);\n`;\nconst defaultProps = {\n getZLevel: () => 0\n};\nexport class PathOutlineLayer extends PathLayer {\n static layerName = 'PathOutlineLayer';\n static defaultProps = defaultProps;\n state = undefined;\n // Override getShaders to inject the outline module\n getShaders() {\n const shaders = super.getShaders();\n return Object.assign({}, shaders, {\n modules: shaders.modules.concat([outline]),\n vs: injectShaderCode({ source: shaders.vs, code: VS_CODE }),\n fs: injectShaderCode({ source: shaders.fs, code: FS_CODE })\n });\n }\n // @ts-expect-error PathLayer is missing LayerContext arg\n initializeState(context) {\n super.initializeState();\n // Create an outline \"shadow\" map\n // TODO - we should create a single outlineMap for all layers\n this.setState({\n outlineFramebuffer: context.device.createFramebuffer({}),\n dummyTexture: context.device.createTexture({})\n });\n // Create an attribute manager\n // @ts-expect-error check whether this.getAttributeManager works here\n this.state.attributeManager.addInstanced({\n instanceZLevel: {\n size: 1,\n type: GL.UNSIGNED_BYTE,\n accessor: 'getZLevel'\n }\n });\n }\n // Override draw to add render module\n draw({ moduleParameters = {}, parameters, uniforms, context }) {\n // Need to calculate same uniforms as base layer\n const { jointRounded, capRounded, billboard, miterLimit, widthUnits, widthScale, widthMinPixels, widthMaxPixels } = this.props;\n uniforms = Object.assign({}, uniforms, {\n jointType: Number(jointRounded),\n capType: Number(capRounded),\n billboard,\n widthUnits: UNIT[widthUnits],\n widthScale,\n miterLimit,\n widthMinPixels,\n widthMaxPixels\n });\n // Render the outline shadowmap (based on segment z orders)\n const { outlineFramebuffer, dummyTexture } = this.state;\n // TODO(v9): resize, see 'sf' example.\n // outlineFramebuffer.resize();\n // TODO(v9) clear FBO\n // outlineFramebuffer.clear({ color: true, depth: true, stencil: true });\n this.state.model.updateModuleSettings({\n outlineEnabled: true,\n outlineRenderShadowmap: true,\n outlineShadowmap: dummyTexture\n });\n this.state.model.draw({\n uniforms: Object.assign({}, uniforms, {\n jointType: 0,\n widthScale: this.props.widthScale * 1.3\n }),\n parameters: {\n depthTest: false,\n // Biggest value needs to go into buffer\n blendEquation: GL.MAX\n },\n framebuffer: outlineFramebuffer\n });\n // Now use the outline shadowmap to render the lines (with outlines)\n this.state.model.updateModuleSettings({\n outlineEnabled: true,\n outlineRenderShadowmap: false,\n outlineShadowmap: outlineFramebuffer\n });\n this.state.model.draw({\n uniforms: Object.assign({}, uniforms, {\n jointType: Number(jointRounded),\n capType: Number(capRounded),\n widthScale: this.props.widthScale\n }),\n parameters: {\n depthTest: false\n }\n });\n }\n}\n", "// deck.gl-community\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/* eslint-disable camelcase */\nconst INITIAL_STATE = {\n outlineEnabled: false,\n outlineRenderShadowmap: false,\n outlineShadowmap: null\n};\nfunction getUniforms({ outlineEnabled, outlineRenderShadowmap, outlineShadowmap } = INITIAL_STATE) {\n const uniforms = {};\n if (outlineEnabled !== undefined) {\n // ? 1.0 : 0.0;\n uniforms.outline_uEnabled = outlineEnabled;\n }\n if (outlineRenderShadowmap !== undefined) {\n // ? 1.0 : 0.0;\n uniforms.outline_uRenderOutlines = outlineRenderShadowmap;\n }\n if (outlineShadowmap !== undefined) {\n uniforms.outline_uShadowmap = outlineShadowmap;\n }\n return uniforms;\n}\nconst vs = `\\\n#version 300 es\nin float instanceZLevel;\nout float outline_vzLevel;\nout vec4 outline_vPosition;\n\n// Set the z level for the outline shadowmap rendering\nvoid outline_setZLevel(float zLevel) {\n outline_vzLevel = zLevel;\n}\n\n// Store an adjusted position for texture2DProj\nvoid outline_setUV(vec4 position) {\n // mat4(\n // 0.5, 0.0, 0.0, 0.0,\n // 0.0, 0.5, 0.0, 0.0,\n // 0.0, 0.0, 0.5, 0.0,\n // 0.5, 0.5, 0.5, 1.0\n // ) * position;\n outline_vPosition = vec4(position.xyz * 0.5 + position.w * 0.5, position.w);\n}\n`;\nconst fs = `\\\nuniform bool outline_uEnabled;\nuniform bool outline_uRenderOutlines;\nuniform sampler2D outline_uShadowmap;\n\nin float outline_vzLevel;\n// in vec2 outline_vUV;\nin vec4 outline_vPosition;\n\nout vec4 fragColor;\n\nconst float OUTLINE_Z_LEVEL_ERROR = 0.01;\n\n// Return a darker color in shadowmap\nvec4 outline_filterShadowColor(vec4 color) {\n return vec4(outline_vzLevel / 255., outline_vzLevel / 255., outline_vzLevel / 255., 1.);\n}\n\n// Return a darker color if in shadowmap\nvec4 outline_filterDarkenColor(vec4 color) {\n if (outline_uEnabled) {\n float maxZLevel;\n if (outline_vPosition.q > 0.0) {\n maxZLevel = texture2DProj(outline_uShadowmap, outline_vPosition).r * 255.;\n } else {\n discard;\n }\n if (maxZLevel < outline_vzLevel + OUTLINE_Z_LEVEL_ERROR) {\n vec4(color.rgb * 0.5, color.a);\n } else {\n discard;\n }\n }\n return color;\n}\n\n// if enabled and rendering outlines - Render depth to shadowmap\n// if enabled and rendering colors - Return a darker color if in shadowmap\n// if disabled, just return color\nvec4 outline_filterColor(vec4 color) {\n if (outline_uEnabled) {\n return outline_uRenderOutlines ?\n outline_filterShadowColor(color) :\n outline_filterDarkenColor(color);\n }\n return color;\n}\n`;\nexport const outline = {\n name: 'outline',\n vs,\n fs,\n getUniforms\n};\n", "// deck.gl-community\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { CompositeLayer, COORDINATE_SYSTEM } from '@deck.gl/core';\nimport { ScatterplotLayer } from '@deck.gl/layers';\nimport { SimpleMeshLayer } from '@deck.gl/mesh-layers';\nimport { PathOutlineLayer } from '../path-outline-layer/path-outline-layer';\nimport { Arrow2DGeometry } from './arrow-2d-geometry';\nimport { createPathMarkers } from './create-path-markers';\nimport { getClosestPointOnPolyline } from './polyline';\nconst DISTANCE_FOR_MULTI_ARROWS = 0.1;\nconst ARROW_HEAD_SIZE = 0.2;\nconst ARROW_TAIL_WIDTH = 0.05;\n// const ARROW_CENTER_ADJUST = -0.8;\nconst DEFAULT_MARKER_LAYER = SimpleMeshLayer;\nconst DEFAULT_MARKER_LAYER_PROPS = {\n mesh: new Arrow2DGeometry({ headSize: ARROW_HEAD_SIZE, tailWidth: ARROW_TAIL_WIDTH })\n};\nconst defaultProps = Object.assign({}, PathOutlineLayer.defaultProps, {\n MarkerLayer: DEFAULT_MARKER_LAYER,\n markerLayerProps: DEFAULT_MARKER_LAYER_PROPS,\n sizeScale: 100,\n fp64: false,\n highlightIndex: -1,\n highlightPoint: null,\n getPath: (x) => x.path,\n getColor: (x) => x.color,\n getMarkerColor: (x) => [0, 0, 0, 255],\n getDirection: (x) => x.direction,\n getMarkerPercentages: (object, { lineLength }) => lineLength > DISTANCE_FOR_MULTI_ARROWS ? [0.25, 0.5, 0.75] : [0.5]\n});\nexport class PathMarkerLayer extends CompositeLayer {\n static layerName = 'PathMarkerLayer';\n static defaultProps = defaultProps;\n state = undefined;\n initializeState() {\n this.state = {\n markers: [],\n mesh: new Arrow2DGeometry({ headSize: ARROW_HEAD_SIZE, tailWidth: ARROW_TAIL_WIDTH }),\n closestPoint: null,\n closestPoints: []\n };\n }\n projectFlat(xyz, viewport, coordinateSystem, coordinateOrigin) {\n if (coordinateSystem === COORDINATE_SYSTEM.METER_OFFSETS) {\n const [dx, dy] = viewport.metersToLngLatDelta(xyz);\n const [x, y] = coordinateOrigin;\n return viewport.projectFlat([x + dx, dy + y]);\n }\n else if (coordinateSystem === COORDINATE_SYSTEM.LNGLAT_OFFSETS) {\n const [dx, dy] = xyz;\n const [x, y] = coordinateOrigin;\n return viewport.projectFlat([x + dx, dy + y]);\n }\n return viewport.projectFlat(xyz);\n }\n updateState({ props, oldProps, changeFlags }) {\n if (changeFlags.dataChanged || changeFlags.updateTriggersChanged) {\n const { data, getPath, getDirection, getMarkerColor, getMarkerPercentages, coordinateSystem, coordinateOrigin } = this.props;\n const { viewport } = this.context;\n const projectFlat = (o) => this.projectFlat(o, viewport, coordinateSystem, coordinateOrigin);\n this.state.markers = createPathMarkers({\n data,\n getPath,\n getDirection,\n getColor: getMarkerColor,\n getMarkerPercentages,\n projectFlat\n });\n this._recalculateClosestPoint();\n }\n if (changeFlags.propsChanged) {\n if (props.point !== oldProps.point) {\n this._recalculateClosestPoint();\n }\n }\n }\n _recalculateClosestPoint() {\n const { highlightPoint, highlightIndex } = this.props;\n if (highlightPoint && highlightIndex >= 0) {\n const object = this.props.data[highlightIndex];\n const points = this.props.getPath(object, null);\n const { point } = getClosestPointOnPolyline({ points, p: highlightPoint });\n this.state.closestPoints = [{ position: point }];\n }\n else {\n this.state.closestPoints = [];\n }\n }\n getPickingInfo({ info }) {\n return Object.assign(info, {\n // override object with picked feature\n object: (info.object && info.object.path) || info.object\n });\n }\n renderLayers() {\n return [\n new PathOutlineLayer(this.props, this.getSubLayerProps({\n id: 'paths',\n // Note: data has to be passed explicitly like this to avoid being empty\n data: this.props.data\n })),\n new this.props.MarkerLayer(this.getSubLayerProps(Object.assign({}, this.props.markerLayerProps, {\n id: 'markers',\n data: this.state.markers,\n getOrientation: (x) => [0, -x.angle, 0],\n getColor: (x) => x.color,\n sizeScale: this.props.sizeScale,\n fp64: this.props.fp64,\n pickable: false,\n parameters: {\n blend: false,\n depthTest: false\n }\n }))),\n this.state.closestPoints &&\n new ScatterplotLayer({\n id: `${this.props.id}-highlight`,\n data: this.state.closestPoints,\n fp64: this.props.fp64\n })\n ];\n }\n}\n", "// deck.gl-community\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { Geometry } from '@luma.gl/engine';\nexport class Arrow2DGeometry extends Geometry {\n constructor(opts = {}) {\n super(Object.assign({}, opts, {\n attributes: getArrowAttributes(opts),\n topology: 'triangle-list'\n }));\n }\n}\nfunction getArrowAttributes({ length = 1, headSize = 0.2, tailWidth = 0.05, tailStart = 0.05 }) {\n const texCoords = [\n // HEAD\n 0.5,\n 1.0,\n 0,\n 0.5 - headSize / 2,\n 1.0 - headSize,\n 0,\n 0.5 + headSize / 2,\n 1.0 - headSize,\n 0,\n 0.5 - tailWidth / 2,\n tailStart,\n 0,\n 0.5 + tailWidth / 2,\n 1.0 - headSize,\n 0,\n 0.5 + tailWidth / 2,\n tailStart,\n 0,\n 0.5 - tailWidth / 2,\n tailStart,\n 0,\n 0.5 - tailWidth / 2,\n 1.0 - headSize,\n 0,\n 0.5 + tailWidth / 2,\n 1.0 - headSize,\n 0\n ];\n const normals = [0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1];\n // Center and scale\n const positions = new Array(texCoords.length);\n for (let i = 0; i < texCoords.length / 3; i++) {\n const i3 = i * 3;\n positions[i3 + 0] = (texCoords[i3 + 0] - 0.5) * length;\n positions[i3 + 1] = (texCoords[i3 + 1] - 0.5) * length;\n positions[i3 + 2] = 0;\n }\n return {\n positions: { size: 3, value: new Float32Array(positions) },\n normals: { size: 3, value: new Float32Array(normals) },\n texCoords: { size: 2, value: new Float32Array(texCoords) }\n };\n}\n", "// deck.gl-community\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { Vector2 } from '@math.gl/core';\nfunction getLineLength(vPoints) {\n // calculate total length\n let lineLength = 0;\n for (let i = 0; i < vPoints.length - 1; i++) {\n lineLength += vPoints[i].distance(vPoints[i + 1]);\n }\n return lineLength;\n}\nconst DEFAULT_COLOR = [0, 0, 0, 255];\nconst DEFAULT_DIRECTION = { forward: true, backward: false };\nexport function createPathMarkers({ data, getPath = (x, context) => x.path, getDirection = (x) => x.direction, getColor = (x) => DEFAULT_COLOR, getMarkerPercentages = (x, info) => [0.5], projectFlat }) {\n const markers = [];\n for (const object of data) {\n const path = getPath(object, null);\n const direction = getDirection(object) || DEFAULT_DIRECTION;\n const color = getColor(object);\n const vPoints = path.map((p) => new Vector2(p));\n const vPointsReverse = vPoints.slice(0).reverse();\n // calculate total length\n const lineLength = getLineLength(vPoints);\n // Ask for where to put markers\n const percentages = getMarkerPercentages(object, { lineLength });\n // Create the markers\n for (const percentage of percentages) {\n if (direction.forward) {\n const marker = createMarkerAlongPath({\n path: vPoints,\n percentage,\n lineLength,\n color,\n object,\n projectFlat\n });\n markers.push(marker);\n }\n if (direction.backward) {\n const marker = createMarkerAlongPath({\n path: vPointsReverse,\n percentage,\n lineLength,\n color,\n object,\n projectFlat\n });\n markers.push(marker);\n }\n }\n }\n return markers;\n}\nfunction createMarkerAlongPath({ path, percentage, lineLength, color, object, projectFlat }) {\n const distanceAlong = lineLength * percentage;\n let currentDistance = 0;\n let previousDistance = 0;\n let i = 0;\n for (i = 0; i < path.length - 1; i++) {\n currentDistance += path[i].distance(path[i + 1]);\n if (currentDistance > distanceAlong) {\n break;\n }\n previousDistance = currentDistance;\n }\n // If reached the end of the loop without exiting early,\n // undo the final increment to avoid a null-pointer exception\n if (i === path.length - 1) {\n i -= 1;\n }\n const vDirection = path[i + 1].clone().subtract(path[i]).normalize();\n const along = distanceAlong - previousDistance;\n const vCenter = vDirection.clone().multiply(new Vector2(along, along)).add(path[i]);\n const vDirection2 = new Vector2(projectFlat(path[i + 1])).subtract(projectFlat(path[i]));\n const angle = (vDirection2.verticalAngle() * 180) / Math.PI;\n return { position: [vCenter.x, vCenter.y, 0], angle, color, object };\n}\n", "// deck.gl-community\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { Vector3, clamp } from '@math.gl/core';\n// Return the closest point on a line segment\nexport function getClosestPointOnLine({ p, p1, p2, clampToLine = true }) {\n const lineVector = new Vector3(p2).subtract(p1);\n const pointVector = new Vector3(p).subtract(p1);\n let dotProduct = lineVector.dot(pointVector);\n if (clampToLine) {\n dotProduct = clamp(dotProduct, 0, 1);\n }\n return lineVector.lerp(p1, p2, dotProduct);\n}\n// Return the closest point on a line segment\nexport function getClosestPointOnPolyline({ p, points }) {\n p = new Vector3(p);\n let pClosest = null;\n let distanceSquared = Infinity;\n let index = -1;\n for (let i = 0; i < points.length - 1; ++i) {\n const p1 = points[i];\n const p2 = points[i + 1];\n const pClosestOnLine = getClosestPointOnLine({ p, p1, p2 });\n const distanceToLineSquared = p.distanceSquared(pClosestOnLine);\n if (distanceToLineSquared < distanceSquared) {\n distanceSquared = distanceToLineSquared;\n pClosest = pClosestOnLine;\n index = i;\n }\n }\n return {\n point: pClosest,\n index,\n p1: points[index],\n p2: points[index + 1],\n distanceSquared,\n distance: Math.sqrt(distanceSquared)\n };\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACGA,kBAA+B;AAC/B,wBAA0B;AAC1B,oBAAqD;AAErD,IAAM,mBAAoB,OAAO,WAAW,eAAe,OAAO,oBAAqB;AAOhF,IAAM,kBAAN,cAA8B,2BAAe;AAAA,EAMhD,QAAQ;AAAA,EACR,kBAAkB;AACd,SAAK,SAAS;AAAA,MACV,YAAY;AAAA,IAChB,CAAC;AAAA,EACL;AAAA,EACA,YAAY,EAAE,OAAO,YAAY,GAAG;AAChC,SAAK,SAAS;AAAA,MACV,YAAY,MAAM;AAAA,IACtB,CAAC;AAAA,EACL;AAAA,EACA,eAAe;AACX,UAAM,EAAE,YAAY,iBAAiB,UAAU,YAAY,IAAI,KAAK;AACpE,UAAM,WAAU,qCAAU,YAAW;AACrC,UAAM,WAAU,qCAAU,YAAW;AACrC,WAAO;AAAA,MACH,IAAI,4BAAU;AAAA;AAAA,QAEV,IAAI,OAAO,WAAW,GAAG;AAAA,QACzB,aAAa,WAAW;AAAA;AAAA,QAExB,aAAa;AAAA,QACb,UAAU;AAAA,QACV,gBAAgB;AAAA,QAChB,eAAe;AAAA,QACf,gBAAgB,CAAC,IAAI,IAAI,IAAI,EAAE;AAAA,QAC/B;AAAA,QACA;AAAA,QACA,UAAU;AAAA;AAAA,QAEV,YAAY,qBAAqB,IAAI,KAAK;AAAA,QAC1C;AAAA;AAAA,QAEA;AAAA,QACA;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;AA3CI,cADS,iBACF,aAAY;AACnB,cAFS,iBAEF,gBAAe;AAAA,EAClB,GAAG,4BAAU;AAAA,EACb,iBAAiB;AACrB;AAwCJ,SAAS,gBAAgB,OAAO;AAC5B,QAAM,EAAE,YAAY,iBAAiB,SAAS,SAAS,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,GAAG,MAAM,EAAE,MAAM,OAAO,MAAM,MAAM,EAAE,EAAE,IAAI;AAC5H,QAAM,SAAS,CAAC;AAChB,QAAM,cAAc,QAAQ,WAAW,QAAQ,UAAU,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,KAAK,GAAG;AAC3F,UAAQ,WAAW,UAAU;AAAA,IACzB,KAAK;AACD,aAAO,KAAK,IAAI,2BAAa;AAAA,QACzB,IAAI,GAAG,MAAM;AAAA,QACb,MAAM,MAAM;AAAA,QACZ,UAAU;AAAA,QACV,cAAc,CAAC,GAAG,KAAK,IAAI,GAAG;AAAA,QAC9B,gBAAgB;AAAA,QAChB,oBAAoB;AAAA,MACxB,CAAC,CAAC;AACF;AAAA,IACJ,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,aAAO,KAAK,IAAI,0BAAY,OAAO;AAAA,QAC/B,MAAM;AAAA,QACN,OAAO,MAAM;AAAA,QACb,QAAQ,CAAC,MAAM,OAAO,MAAM,KAAK;AAAA,QACjC,UAAU;AAAA,MACd,CAAC,CAAC;AACF;AAAA,IACJ;AAEI,cAAQ,MAAM,yBAAyB,yCAAY,QAAQ;AAAA,EACnE;AAEA,MAAI,iBAAiB;AACjB,WAAO,KAAK,IAAI,wBAAU;AAAA,MACtB,IAAI,GAAG,MAAM;AAAA,MACb,MAAM;AAAA,QACF;AAAA,UACI,CAAC,MAAM,KAAK;AAAA,UACZ,CAAC,MAAM,KAAK;AAAA,UACZ,CAAC,MAAM,KAAK;AAAA,UACZ,CAAC,MAAM,KAAK;AAAA,UACZ,CAAC,MAAM,KAAK;AAAA,QAChB;AAAA,MACJ;AAAA,MACA,SAAS,CAAC,MAAM;AAAA,MAChB,UAAU;AAAA,MACV,gBAAgB;AAAA,IACpB,CAAC,CAAC;AAAA,EACN;AACA,SAAO;AACX;;;ACzGA,IAAAA,iBAA0B;AAC1B,uBAAmB;;;ACAnB,IAAM,gBAAgB;AAAA,EAClB,gBAAgB;AAAA,EAChB,wBAAwB;AAAA,EACxB,kBAAkB;AACtB;AACA,SAAS,YAAY,EAAE,gBAAgB,wBAAwB,iBAAiB,IAAI,eAAe;AAC/F,QAAM,WAAW,CAAC;AAClB,MAAI,mBAAmB,QAAW;AAE9B,aAAS,mBAAmB;AAAA,EAChC;AACA,MAAI,2BAA2B,QAAW;AAEtC,aAAS,0BAA0B;AAAA,EACvC;AACA,MAAI,qBAAqB,QAAW;AAChC,aAAS,qBAAqB;AAAA,EAClC;AACA,SAAO;AACX;AACA,IAAM,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBX,IAAM,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgDJ,IAAM,UAAU;AAAA,EACnB,MAAM;AAAA,EACN;AAAA,EACA;AAAA,EACA;AACJ;;;AD1FO,IAAM,OAAO;AAAA,EAChB,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AACZ;AAEA,SAAS,iBAAiB,EAAE,QAAQ,OAAO,GAAG,GAAG;AAC7C,QAAM,cAAc;AACpB,SAAO,OAAO,QAAQ,aAAa,KAAK,OAAO,OAAO,CAAC;AAC3D;AACA,IAAM,UAAU;AAAA;AAAA;AAIhB,IAAM,UAAU;AAAA;AAGhB,IAAM,eAAe;AAAA,EACjB,WAAW,MAAM;AACrB;AACO,IAAM,mBAAN,cAA+B,yBAAU;AAAA,EAG5C,QAAQ;AAAA;AAAA,EAER,aAAa;AACT,UAAM,UAAU,MAAM,WAAW;AACjC,WAAO,OAAO,OAAO,CAAC,GAAG,SAAS;AAAA,MAC9B,SAAS,QAAQ,QAAQ,OAAO,CAAC,OAAO,CAAC;AAAA,MACzC,IAAI,iBAAiB,EAAE,QAAQ,QAAQ,IAAI,MAAM,QAAQ,CAAC;AAAA,MAC1D,IAAI,iBAAiB,EAAE,QAAQ,QAAQ,IAAI,MAAM,QAAQ,CAAC;AAAA,IAC9D,CAAC;AAAA,EACL;AAAA;AAAA,EAEA,gBAAgB,SAAS;AACrB,UAAM,gBAAgB;AAGtB,SAAK,SAAS;AAAA,MACV,oBAAoB,QAAQ,OAAO,kBAAkB,CAAC,CAAC;AAAA,MACvD,cAAc,QAAQ,OAAO,cAAc,CAAC,CAAC;AAAA,IACjD,CAAC;AAGD,SAAK,MAAM,iBAAiB,aAAa;AAAA,MACrC,gBAAgB;AAAA,QACZ,MAAM;AAAA,QACN,MAAM,oBAAG;AAAA,QACT,UAAU;AAAA,MACd;AAAA,IACJ,CAAC;AAAA,EACL;AAAA;AAAA,EAEA,KAAK,EAAE,mBAAmB,CAAC,GAAG,YAAY,UAAU,QAAQ,GAAG;AAE3D,UAAM,EAAE,cAAc,YAAY,WAAW,YAAY,YAAY,YAAY,gBAAgB,eAAe,IAAI,KAAK;AACzH,eAAW,OAAO,OAAO,CAAC,GAAG,UAAU;AAAA,MACnC,WAAW,OAAO,YAAY;AAAA,MAC9B,SAAS,OAAO,UAAU;AAAA,MAC1B;AAAA,MACA,YAAY,KAAK,UAAU;AAAA,MAC3B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,CAAC;AAED,UAAM,EAAE,oBAAoB,aAAa,IAAI,KAAK;AAKlD,SAAK,MAAM,MAAM,qBAAqB;AAAA,MAClC,gBAAgB;AAAA,MAChB,wBAAwB;AAAA,MACxB,kBAAkB;AAAA,IACtB,CAAC;AACD,SAAK,MAAM,MAAM,KAAK;AAAA,MAClB,UAAU,OAAO,OAAO,CAAC,GAAG,UAAU;AAAA,QAClC,WAAW;AAAA,QACX,YAAY,KAAK,MAAM,aAAa;AAAA,MACxC,CAAC;AAAA,MACD,YAAY;AAAA,QACR,WAAW;AAAA;AAAA,QAEX,eAAe,oBAAG;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,IACjB,CAAC;AAED,SAAK,MAAM,MAAM,qBAAqB;AAAA,MAClC,gBAAgB;AAAA,MAChB,wBAAwB;AAAA,MACxB,kBAAkB;AAAA,IACtB,CAAC;AACD,SAAK,MAAM,MAAM,KAAK;AAAA,MAClB,UAAU,OAAO,OAAO,CAAC,GAAG,UAAU;AAAA,QAClC,WAAW,OAAO,YAAY;AAAA,QAC9B,SAAS,OAAO,UAAU;AAAA,QAC1B,YAAY,KAAK,MAAM;AAAA,MAC3B,CAAC;AAAA,MACD,YAAY;AAAA,QACR,WAAW;AAAA,MACf;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;AArFI,cADS,kBACF,aAAY;AACnB,cAFS,kBAEF,gBAAe;;;AE5B1B,IAAAC,eAAkD;AAClD,IAAAC,iBAAiC;AACjC,yBAAgC;;;ACFhC,oBAAyB;AAClB,IAAM,kBAAN,cAA8B,uBAAS;AAAA,EAC1C,YAAY,OAAO,CAAC,GAAG;AACnB,UAAM,OAAO,OAAO,CAAC,GAAG,MAAM;AAAA,MAC1B,YAAY,mBAAmB,IAAI;AAAA,MACnC,UAAU;AAAA,IACd,CAAC,CAAC;AAAA,EACN;AACJ;AACA,SAAS,mBAAmB,EAAE,SAAS,GAAG,WAAW,KAAK,YAAY,MAAM,YAAY,KAAK,GAAG;AAC5F,QAAM,YAAY;AAAA;AAAA,IAEd;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM,WAAW;AAAA,IACjB,IAAM;AAAA,IACN;AAAA,IACA,MAAM,WAAW;AAAA,IACjB,IAAM;AAAA,IACN;AAAA,IACA,MAAM,YAAY;AAAA,IAClB;AAAA,IACA;AAAA,IACA,MAAM,YAAY;AAAA,IAClB,IAAM;AAAA,IACN;AAAA,IACA,MAAM,YAAY;AAAA,IAClB;AAAA,IACA;AAAA,IACA,MAAM,YAAY;AAAA,IAClB;AAAA,IACA;AAAA,IACA,MAAM,YAAY;AAAA,IAClB,IAAM;AAAA,IACN;AAAA,IACA,MAAM,YAAY;AAAA,IAClB,IAAM;AAAA,IACN;AAAA,EACJ;AACA,QAAM,UAAU,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEhG,QAAM,YAAY,IAAI,MAAM,UAAU,MAAM;AAC5C,WAAS,IAAI,GAAG,IAAI,UAAU,SAAS,GAAG,KAAK;AAC3C,UAAM,KAAK,IAAI;AACf,cAAU,KAAK,CAAC,KAAK,UAAU,KAAK,CAAC,IAAI,OAAO;AAChD,cAAU,KAAK,CAAC,KAAK,UAAU,KAAK,CAAC,IAAI,OAAO;AAChD,cAAU,KAAK,CAAC,IAAI;AAAA,EACxB;AACA,SAAO;AAAA,IACH,WAAW,EAAE,MAAM,GAAG,OAAO,IAAI,aAAa,SAAS,EAAE;AAAA,IACzD,SAAS,EAAE,MAAM,GAAG,OAAO,IAAI,aAAa,OAAO,EAAE;AAAA,IACrD,WAAW,EAAE,MAAM,GAAG,OAAO,IAAI,aAAa,SAAS,EAAE;AAAA,EAC7D;AACJ;;;ACtDA,IAAAC,eAAwB;AACxB,SAAS,cAAc,SAAS;AAE5B,MAAI,aAAa;AACjB,WAAS,IAAI,GAAG,IAAI,QAAQ,SAAS,GAAG,KAAK;AACzC,kBAAc,QAAQ,CAAC,EAAE,SAAS,QAAQ,IAAI,CAAC,CAAC;AAAA,EACpD;AACA,SAAO;AACX;AACA,IAAM,gBAAgB,CAAC,GAAG,GAAG,GAAG,GAAG;AACnC,IAAM,oBAAoB,EAAE,SAAS,MAAM,UAAU,MAAM;AACpD,SAAS,kBAAkB,EAAE,MAAM,UAAU,CAAC,GAAG,YAAY,EAAE,MAAM,eAAe,CAAC,MAAM,EAAE,WAAW,WAAW,CAAC,MAAM,eAAe,uBAAuB,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,YAAY,GAAG;AACtM,QAAM,UAAU,CAAC;AACjB,aAAW,UAAU,MAAM;AACvB,UAAM,OAAO,QAAQ,QAAQ,IAAI;AACjC,UAAM,YAAY,aAAa,MAAM,KAAK;AAC1C,UAAM,QAAQ,SAAS,MAAM;AAC7B,UAAM,UAAU,KAAK,IAAI,CAAC,MAAM,IAAI,qBAAQ,CAAC,CAAC;AAC9C,UAAM,iBAAiB,QAAQ,MAAM,CAAC,EAAE,QAAQ;AAEhD,UAAM,aAAa,cAAc,OAAO;AAExC,UAAM,cAAc,qBAAqB,QAAQ,EAAE,WAAW,CAAC;AAE/D,eAAW,cAAc,aAAa;AAClC,UAAI,UAAU,SAAS;AACnB,cAAM,SAAS,sBAAsB;AAAA,UACjC,MAAM;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACJ,CAAC;AACD,gBAAQ,KAAK,MAAM;AAAA,MACvB;AACA,UAAI,UAAU,UAAU;AACpB,cAAM,SAAS,sBAAsB;AAAA,UACjC,MAAM;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACJ,CAAC;AACD,gBAAQ,KAAK,MAAM;AAAA,MACvB;AAAA,IACJ;AAAA,EACJ;AACA,SAAO;AACX;AACA,SAAS,sBAAsB,EAAE,MAAM,YAAY,YAAY,OAAO,QAAQ,YAAY,GAAG;AACzF,QAAM,gBAAgB,aAAa;AACnC,MAAI,kBAAkB;AACtB,MAAI,mBAAmB;AACvB,MAAI,IAAI;AACR,OAAK,IAAI,GAAG,IAAI,KAAK,SAAS,GAAG,KAAK;AAClC,uBAAmB,KAAK,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC;AAC/C,QAAI,kBAAkB,eAAe;AACjC;AAAA,IACJ;AACA,uBAAmB;AAAA,EACvB;AAGA,MAAI,MAAM,KAAK,SAAS,GAAG;AACvB,SAAK;AAAA,EACT;AACA,QAAM,aAAa,KAAK,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,KAAK,CAAC,CAAC,EAAE,UAAU;AACnE,QAAM,QAAQ,gBAAgB;AAC9B,QAAM,UAAU,WAAW,MAAM,EAAE,SAAS,IAAI,qBAAQ,OAAO,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,CAAC;AAClF,QAAM,cAAc,IAAI,qBAAQ,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC;AACvF,QAAM,QAAS,YAAY,cAAc,IAAI,MAAO,KAAK;AACzD,SAAO,EAAE,UAAU,CAAC,QAAQ,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,OAAO,OAAO;AACvE;;;AC1EA,IAAAC,eAA+B;AAExB,SAAS,sBAAsB,EAAE,GAAG,IAAI,IAAI,cAAc,KAAK,GAAG;AACrE,QAAM,aAAa,IAAI,qBAAQ,EAAE,EAAE,SAAS,EAAE;AAC9C,QAAM,cAAc,IAAI,qBAAQ,CAAC,EAAE,SAAS,EAAE;AAC9C,MAAI,aAAa,WAAW,IAAI,WAAW;AAC3C,MAAI,aAAa;AACb,qBAAa,oBAAM,YAAY,GAAG,CAAC;AAAA,EACvC;AACA,SAAO,WAAW,KAAK,IAAI,IAAI,UAAU;AAC7C;AAEO,SAAS,0BAA0B,EAAE,GAAG,OAAO,GAAG;AACrD,MAAI,IAAI,qBAAQ,CAAC;AACjB,MAAI,WAAW;AACf,MAAI,kBAAkB;AACtB,MAAI,QAAQ;AACZ,WAAS,IAAI,GAAG,IAAI,OAAO,SAAS,GAAG,EAAE,GAAG;AACxC,UAAM,KAAK,OAAO,CAAC;AACnB,UAAM,KAAK,OAAO,IAAI,CAAC;AACvB,UAAM,iBAAiB,sBAAsB,EAAE,GAAG,IAAI,GAAG,CAAC;AAC1D,UAAM,wBAAwB,EAAE,gBAAgB,cAAc;AAC9D,QAAI,wBAAwB,iBAAiB;AACzC,wBAAkB;AAClB,iBAAW;AACX,cAAQ;AAAA,IACZ;AAAA,EACJ;AACA,SAAO;AAAA,IACH,OAAO;AAAA,IACP;AAAA,IACA,IAAI,OAAO,KAAK;AAAA,IAChB,IAAI,OAAO,QAAQ,CAAC;AAAA,IACpB;AAAA,IACA,UAAU,KAAK,KAAK,eAAe;AAAA,EACvC;AACJ;;;AH7BA,IAAM,4BAA4B;AAClC,IAAM,kBAAkB;AACxB,IAAM,mBAAmB;AAEzB,IAAM,uBAAuB;AAC7B,IAAM,6BAA6B;AAAA,EAC/B,MAAM,IAAI,gBAAgB,EAAE,UAAU,iBAAiB,WAAW,iBAAiB,CAAC;AACxF;AACA,IAAMC,gBAAe,OAAO,OAAO,CAAC,GAAG,iBAAiB,cAAc;AAAA,EAClE,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,WAAW;AAAA,EACX,MAAM;AAAA,EACN,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,SAAS,CAAC,MAAM,EAAE;AAAA,EAClB,UAAU,CAAC,MAAM,EAAE;AAAA,EACnB,gBAAgB,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG;AAAA,EACpC,cAAc,CAAC,MAAM,EAAE;AAAA,EACvB,sBAAsB,CAAC,QAAQ,EAAE,WAAW,MAAM,aAAa,4BAA4B,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG;AACvH,CAAC;AACM,IAAM,kBAAN,cAA8B,4BAAe;AAAA,EAGhD,QAAQ;AAAA,EACR,kBAAkB;AACd,SAAK,QAAQ;AAAA,MACT,SAAS,CAAC;AAAA,MACV,MAAM,IAAI,gBAAgB,EAAE,UAAU,iBAAiB,WAAW,iBAAiB,CAAC;AAAA,MACpF,cAAc;AAAA,MACd,eAAe,CAAC;AAAA,IACpB;AAAA,EACJ;AAAA,EACA,YAAY,KAAK,UAAU,kBAAkB,kBAAkB;AAC3D,QAAI,qBAAqB,+BAAkB,eAAe;AACtD,YAAM,CAAC,IAAI,EAAE,IAAI,SAAS,oBAAoB,GAAG;AACjD,YAAM,CAAC,GAAG,CAAC,IAAI;AACf,aAAO,SAAS,YAAY,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;AAAA,IAChD,WACS,qBAAqB,+BAAkB,gBAAgB;AAC5D,YAAM,CAAC,IAAI,EAAE,IAAI;AACjB,YAAM,CAAC,GAAG,CAAC,IAAI;AACf,aAAO,SAAS,YAAY,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;AAAA,IAChD;AACA,WAAO,SAAS,YAAY,GAAG;AAAA,EACnC;AAAA,EACA,YAAY,EAAE,OAAO,UAAU,YAAY,GAAG;AAC1C,QAAI,YAAY,eAAe,YAAY,uBAAuB;AAC9D,YAAM,EAAE,MAAM,SAAS,cAAc,gBAAgB,sBAAsB,kBAAkB,iBAAiB,IAAI,KAAK;AACvH,YAAM,EAAE,SAAS,IAAI,KAAK;AAC1B,YAAM,cAAc,CAAC,MAAM,KAAK,YAAY,GAAG,UAAU,kBAAkB,gBAAgB;AAC3F,WAAK,MAAM,UAAU,kBAAkB;AAAA,QACnC;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU;AAAA,QACV;AAAA,QACA;AAAA,MACJ,CAAC;AACD,WAAK,yBAAyB;AAAA,IAClC;AACA,QAAI,YAAY,cAAc;AAC1B,UAAI,MAAM,UAAU,SAAS,OAAO;AAChC,aAAK,yBAAyB;AAAA,MAClC;AAAA,IACJ;AAAA,EACJ;AAAA,EACA,2BAA2B;AACvB,UAAM,EAAE,gBAAgB,eAAe,IAAI,KAAK;AAChD,QAAI,kBAAkB,kBAAkB,GAAG;AACvC,YAAM,SAAS,KAAK,MAAM,KAAK,cAAc;AAC7C,YAAM,SAAS,KAAK,MAAM,QAAQ,QAAQ,IAAI;AAC9C,YAAM,EAAE,MAAM,IAAI,0BAA0B,EAAE,QAAQ,GAAG,eAAe,CAAC;AACzE,WAAK,MAAM,gBAAgB,CAAC,EAAE,UAAU,MAAM,CAAC;AAAA,IACnD,OACK;AACD,WAAK,MAAM,gBAAgB,CAAC;AAAA,IAChC;AAAA,EACJ;AAAA,EACA,eAAe,EAAE,KAAK,GAAG;AACrB,WAAO,OAAO,OAAO,MAAM;AAAA;AAAA,MAEvB,QAAS,KAAK,UAAU,KAAK,OAAO,QAAS,KAAK;AAAA,IACtD,CAAC;AAAA,EACL;AAAA,EACA,eAAe;AACX,WAAO;AAAA,MACH,IAAI,iBAAiB,KAAK,OAAO,KAAK,iBAAiB;AAAA,QACnD,IAAI;AAAA;AAAA,QAEJ,MAAM,KAAK,MAAM;AAAA,MACrB,CAAC,CAAC;AAAA,MACF,IAAI,KAAK,MAAM,YAAY,KAAK,iBAAiB,OAAO,OAAO,CAAC,GAAG,KAAK,MAAM,kBAAkB;AAAA,QAC5F,IAAI;AAAA,QACJ,MAAM,KAAK,MAAM;AAAA,QACjB,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;AAAA,QACtC,UAAU,CAAC,MAAM,EAAE;AAAA,QACnB,WAAW,KAAK,MAAM;AAAA,QACtB,MAAM,KAAK,MAAM;AAAA,QACjB,UAAU;AAAA,QACV,YAAY;AAAA,UACR,OAAO;AAAA,UACP,WAAW;AAAA,QACf;AAAA,MACJ,CAAC,CAAC,CAAC;AAAA,MACH,KAAK,MAAM,iBACP,IAAI,gCAAiB;AAAA,QACjB,IAAI,GAAG,KAAK,MAAM;AAAA,QAClB,MAAM,KAAK,MAAM;AAAA,QACjB,MAAM,KAAK,MAAM;AAAA,MACrB,CAAC;AAAA,IACT;AAAA,EACJ;AACJ;AA3FI,cADS,iBACF,aAAY;AACnB,cAFS,iBAEF,gBAAeA;",
4
+ "sourcesContent": ["// deck.gl-community\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nexport { TileSourceLayer } from \"./tile-source-layer/tile-source-layer.js\";\nexport { PathOutlineLayer } from \"./path-outline-layer/path-outline-layer.js\";\nexport { PathMarkerLayer } from \"./path-marker-layer/path-marker-layer.js\";\n", "// deck.gl-community\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { CompositeLayer } from '@deck.gl/core';\nimport { TileLayer } from '@deck.gl/geo-layers';\nimport { BitmapLayer, GeoJsonLayer, PathLayer } from '@deck.gl/layers';\n/* global window */\nconst devicePixelRatio = (typeof window !== 'undefined' && window.devicePixelRatio) || 1;\n/**\n * A Deck.gl layer that renders a tile source\n * Autodiscovers type of content (vector tile, bitmap, ...)\n * Can render debug borders around tiles\n * TODO - Change debug border color based on zoom level\n */\nexport class TileSourceLayer extends CompositeLayer {\n static layerName = 'TileSourceLayer';\n static defaultProps = {\n ...TileLayer.defaultProps,\n showTileBorders: true\n };\n state = undefined;\n initializeState() {\n this.setState({\n tileSource: null\n });\n }\n updateState({ props, changeFlags }) {\n this.setState({\n tileSource: props.tileSource\n });\n }\n renderLayers() {\n const { tileSource, showTileBorders, metadata, onTilesLoad } = this.props;\n const minZoom = metadata?.minZoom || 0;\n const maxZoom = metadata?.maxZoom || 30;\n return [\n new TileLayer({\n // HACK: Trigger new layer via id prop to force clear tile cache\n id: String(tileSource.url),\n getTileData: tileSource.getTileData,\n // Assume the pmtiles file support HTTP/2, so we aren't limited by the browser to a certain number per domain.\n maxRequests: 20,\n pickable: true,\n onViewportLoad: onTilesLoad,\n autoHighlight: showTileBorders,\n highlightColor: [60, 60, 60, 40],\n minZoom,\n maxZoom,\n tileSize: 256,\n // TOOD - why is this needed?\n zoomOffset: devicePixelRatio === 1 ? -1 : 0,\n renderSubLayers: renderSubLayers,\n // Custom prop\n tileSource,\n showTileBorders\n })\n ];\n }\n}\nfunction renderSubLayers(props) {\n const { tileSource, showTileBorders, minZoom, maxZoom, tile: { index: { z: zoom }, bbox: { west, south, east, north } } } = props;\n const layers = [];\n const borderColor = zoom <= minZoom || zoom >= maxZoom ? [255, 0, 0, 255] : [0, 0, 255, 255];\n switch (tileSource.mimeType) {\n case 'application/vnd.mapbox-vector-tile':\n layers.push(new GeoJsonLayer({\n id: `${props.id}-geojson`,\n data: props.data,\n pickable: true,\n getFillColor: [0, 190, 80, 255],\n lineWidthScale: 500,\n lineWidthMinPixels: 0.5\n }));\n break;\n case 'image/png':\n case 'image/jpeg':\n case 'image/webp':\n case 'image/avif':\n layers.push(new BitmapLayer(props, {\n data: null,\n image: props.data,\n bounds: [west, south, east, north],\n pickable: true\n }));\n break;\n default:\n // eslint-disable-next-line no-console\n console.error('Unknown tile mimeType', tileSource?.mimeType);\n }\n // Debug tile borders\n if (showTileBorders) {\n layers.push(new PathLayer({\n id: `${props.id}-border`,\n data: [\n [\n [west, north],\n [west, south],\n [east, south],\n [east, north],\n [west, north]\n ]\n ],\n getPath: (d) => d,\n getColor: borderColor,\n widthMinPixels: 4\n }));\n }\n return layers;\n}\n", "// deck.gl-community\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { PathLayer } from '@deck.gl/layers';\nimport { GL } from '@luma.gl/constants';\nimport { outline } from \"./outline.js\";\n/**\n * Unit literal to shader unit number conversion.\n */\nexport const UNIT = {\n common: 0,\n meters: 1,\n pixels: 2\n};\n// TODO - this should be built into assembleShaders\nfunction injectShaderCode({ source, code = '' }) {\n const INJECT_CODE = /}[^{}]*$/;\n return source.replace(INJECT_CODE, code.concat('\\n}\\n'));\n}\nconst VS_CODE = `\\\n outline_setUV(gl_Position);\n outline_setZLevel(instanceZLevel);\n`;\nconst FS_CODE = `\\\n fragColor = outline_filterColor(fragColor);\n`;\nconst defaultProps = {\n getZLevel: () => 0\n};\nexport class PathOutlineLayer extends PathLayer {\n static layerName = 'PathOutlineLayer';\n static defaultProps = defaultProps;\n state = undefined;\n // Override getShaders to inject the outline module\n getShaders() {\n const shaders = super.getShaders();\n return Object.assign({}, shaders, {\n modules: shaders.modules.concat([outline]),\n vs: injectShaderCode({ source: shaders.vs, code: VS_CODE }),\n fs: injectShaderCode({ source: shaders.fs, code: FS_CODE })\n });\n }\n // @ts-expect-error PathLayer is missing LayerContext arg\n initializeState(context) {\n super.initializeState();\n // Create an outline \"shadow\" map\n // TODO - we should create a single outlineMap for all layers\n this.setState({\n outlineFramebuffer: context.device.createFramebuffer({}),\n dummyTexture: context.device.createTexture({})\n });\n // Create an attribute manager\n // @ts-expect-error check whether this.getAttributeManager works here\n this.state.attributeManager.addInstanced({\n instanceZLevel: {\n size: 1,\n type: 5121,\n accessor: 'getZLevel'\n }\n });\n }\n // Override draw to add render module\n draw({ moduleParameters = {}, parameters, uniforms, context }) {\n // Need to calculate same uniforms as base layer\n const { jointRounded, capRounded, billboard, miterLimit, widthUnits, widthScale, widthMinPixels, widthMaxPixels } = this.props;\n uniforms = Object.assign({}, uniforms, {\n jointType: Number(jointRounded),\n capType: Number(capRounded),\n billboard,\n widthUnits: UNIT[widthUnits],\n widthScale,\n miterLimit,\n widthMinPixels,\n widthMaxPixels\n });\n // Render the outline shadowmap (based on segment z orders)\n const { outlineFramebuffer, dummyTexture } = this.state;\n // TODO(v9): resize, see 'sf' example.\n // outlineFramebuffer.resize();\n // TODO(v9) clear FBO\n // outlineFramebuffer.clear({ color: true, depth: true, stencil: true });\n this.state.model.updateModuleSettings({\n outlineEnabled: true,\n outlineRenderShadowmap: true,\n outlineShadowmap: dummyTexture\n });\n this.state.model.draw({\n uniforms: Object.assign({}, uniforms, {\n jointType: 0,\n widthScale: this.props.widthScale * 1.3\n }),\n parameters: {\n depthTest: false,\n // Biggest value needs to go into buffer\n blendEquation: 32776\n },\n framebuffer: outlineFramebuffer\n });\n // Now use the outline shadowmap to render the lines (with outlines)\n this.state.model.updateModuleSettings({\n outlineEnabled: true,\n outlineRenderShadowmap: false,\n outlineShadowmap: outlineFramebuffer\n });\n this.state.model.draw({\n uniforms: Object.assign({}, uniforms, {\n jointType: Number(jointRounded),\n capType: Number(capRounded),\n widthScale: this.props.widthScale\n }),\n parameters: {\n depthTest: false\n }\n });\n }\n}\n", "// deck.gl-community\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/* eslint-disable camelcase */\nconst INITIAL_STATE = {\n outlineEnabled: false,\n outlineRenderShadowmap: false,\n outlineShadowmap: null\n};\nfunction getUniforms({ outlineEnabled, outlineRenderShadowmap, outlineShadowmap } = INITIAL_STATE) {\n const uniforms = {};\n if (outlineEnabled !== undefined) {\n // ? 1.0 : 0.0;\n uniforms.outline_uEnabled = outlineEnabled;\n }\n if (outlineRenderShadowmap !== undefined) {\n // ? 1.0 : 0.0;\n uniforms.outline_uRenderOutlines = outlineRenderShadowmap;\n }\n if (outlineShadowmap !== undefined) {\n uniforms.outline_uShadowmap = outlineShadowmap;\n }\n return uniforms;\n}\nconst vs = `\\\n#version 300 es\nin float instanceZLevel;\nout float outline_vzLevel;\nout vec4 outline_vPosition;\n\n// Set the z level for the outline shadowmap rendering\nvoid outline_setZLevel(float zLevel) {\n outline_vzLevel = zLevel;\n}\n\n// Store an adjusted position for texture2DProj\nvoid outline_setUV(vec4 position) {\n // mat4(\n // 0.5, 0.0, 0.0, 0.0,\n // 0.0, 0.5, 0.0, 0.0,\n // 0.0, 0.0, 0.5, 0.0,\n // 0.5, 0.5, 0.5, 1.0\n // ) * position;\n outline_vPosition = vec4(position.xyz * 0.5 + position.w * 0.5, position.w);\n}\n`;\nconst fs = `\\\nuniform bool outline_uEnabled;\nuniform bool outline_uRenderOutlines;\nuniform sampler2D outline_uShadowmap;\n\nin float outline_vzLevel;\n// in vec2 outline_vUV;\nin vec4 outline_vPosition;\n\nout vec4 fragColor;\n\nconst float OUTLINE_Z_LEVEL_ERROR = 0.01;\n\n// Return a darker color in shadowmap\nvec4 outline_filterShadowColor(vec4 color) {\n return vec4(outline_vzLevel / 255., outline_vzLevel / 255., outline_vzLevel / 255., 1.);\n}\n\n// Return a darker color if in shadowmap\nvec4 outline_filterDarkenColor(vec4 color) {\n if (outline_uEnabled) {\n float maxZLevel;\n if (outline_vPosition.q > 0.0) {\n maxZLevel = texture2DProj(outline_uShadowmap, outline_vPosition).r * 255.;\n } else {\n discard;\n }\n if (maxZLevel < outline_vzLevel + OUTLINE_Z_LEVEL_ERROR) {\n vec4(color.rgb * 0.5, color.a);\n } else {\n discard;\n }\n }\n return color;\n}\n\n// if enabled and rendering outlines - Render depth to shadowmap\n// if enabled and rendering colors - Return a darker color if in shadowmap\n// if disabled, just return color\nvec4 outline_filterColor(vec4 color) {\n if (outline_uEnabled) {\n return outline_uRenderOutlines ?\n outline_filterShadowColor(color) :\n outline_filterDarkenColor(color);\n }\n return color;\n}\n`;\nexport const outline = {\n name: 'outline',\n vs,\n fs,\n getUniforms\n};\n", "// deck.gl-community\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { CompositeLayer, COORDINATE_SYSTEM } from '@deck.gl/core';\nimport { ScatterplotLayer } from '@deck.gl/layers';\nimport { SimpleMeshLayer } from '@deck.gl/mesh-layers';\nimport { PathOutlineLayer } from \"../path-outline-layer/path-outline-layer.js\";\nimport { Arrow2DGeometry } from \"./arrow-2d-geometry.js\";\nimport { createPathMarkers } from \"./create-path-markers.js\";\nimport { getClosestPointOnPolyline } from \"./polyline.js\";\nconst DISTANCE_FOR_MULTI_ARROWS = 0.1;\nconst ARROW_HEAD_SIZE = 0.2;\nconst ARROW_TAIL_WIDTH = 0.05;\n// const ARROW_CENTER_ADJUST = -0.8;\nconst DEFAULT_MARKER_LAYER = SimpleMeshLayer;\nconst DEFAULT_MARKER_LAYER_PROPS = {\n mesh: new Arrow2DGeometry({ headSize: ARROW_HEAD_SIZE, tailWidth: ARROW_TAIL_WIDTH })\n};\nconst defaultProps = Object.assign({}, PathOutlineLayer.defaultProps, {\n MarkerLayer: DEFAULT_MARKER_LAYER,\n markerLayerProps: DEFAULT_MARKER_LAYER_PROPS,\n sizeScale: 100,\n fp64: false,\n highlightIndex: -1,\n highlightPoint: null,\n getPath: (x) => x.path,\n getColor: (x) => x.color,\n getMarkerColor: (x) => [0, 0, 0, 255],\n getDirection: (x) => x.direction,\n getMarkerPercentages: (object, { lineLength }) => lineLength > DISTANCE_FOR_MULTI_ARROWS ? [0.25, 0.5, 0.75] : [0.5]\n});\nexport class PathMarkerLayer extends CompositeLayer {\n static layerName = 'PathMarkerLayer';\n static defaultProps = defaultProps;\n state = undefined;\n initializeState() {\n this.state = {\n markers: [],\n mesh: new Arrow2DGeometry({ headSize: ARROW_HEAD_SIZE, tailWidth: ARROW_TAIL_WIDTH }),\n closestPoint: null,\n closestPoints: []\n };\n }\n projectFlat(xyz, viewport, coordinateSystem, coordinateOrigin) {\n if (coordinateSystem === COORDINATE_SYSTEM.METER_OFFSETS) {\n const [dx, dy] = viewport.metersToLngLatDelta(xyz);\n const [x, y] = coordinateOrigin;\n return viewport.projectFlat([x + dx, dy + y]);\n }\n else if (coordinateSystem === COORDINATE_SYSTEM.LNGLAT_OFFSETS) {\n const [dx, dy] = xyz;\n const [x, y] = coordinateOrigin;\n return viewport.projectFlat([x + dx, dy + y]);\n }\n return viewport.projectFlat(xyz);\n }\n updateState({ props, oldProps, changeFlags }) {\n if (changeFlags.dataChanged || changeFlags.updateTriggersChanged) {\n const { data, getPath, getDirection, getMarkerColor, getMarkerPercentages, coordinateSystem, coordinateOrigin } = this.props;\n const { viewport } = this.context;\n const projectFlat = (o) => this.projectFlat(o, viewport, coordinateSystem, coordinateOrigin);\n this.state.markers = createPathMarkers({\n data,\n getPath,\n getDirection,\n getColor: getMarkerColor,\n getMarkerPercentages,\n projectFlat\n });\n this._recalculateClosestPoint();\n }\n if (changeFlags.propsChanged) {\n if (props.point !== oldProps.point) {\n this._recalculateClosestPoint();\n }\n }\n }\n _recalculateClosestPoint() {\n const { highlightPoint, highlightIndex } = this.props;\n if (highlightPoint && highlightIndex >= 0) {\n const object = this.props.data[highlightIndex];\n const points = this.props.getPath(object, null);\n const { point } = getClosestPointOnPolyline({ points, p: highlightPoint });\n this.state.closestPoints = [{ position: point }];\n }\n else {\n this.state.closestPoints = [];\n }\n }\n getPickingInfo({ info }) {\n return Object.assign(info, {\n // override object with picked feature\n object: (info.object && info.object.path) || info.object\n });\n }\n renderLayers() {\n return [\n new PathOutlineLayer(this.props, this.getSubLayerProps({\n id: 'paths',\n // Note: data has to be passed explicitly like this to avoid being empty\n data: this.props.data\n })),\n new this.props.MarkerLayer(this.getSubLayerProps(Object.assign({}, this.props.markerLayerProps, {\n id: 'markers',\n data: this.state.markers,\n getOrientation: (x) => [0, -x.angle, 0],\n getColor: (x) => x.color,\n sizeScale: this.props.sizeScale,\n fp64: this.props.fp64,\n pickable: false,\n parameters: {\n blend: false,\n depthTest: false\n }\n }))),\n this.state.closestPoints &&\n new ScatterplotLayer({\n id: `${this.props.id}-highlight`,\n data: this.state.closestPoints,\n fp64: this.props.fp64\n })\n ];\n }\n}\n", "// deck.gl-community\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { Geometry } from '@luma.gl/engine';\nexport class Arrow2DGeometry extends Geometry {\n constructor(opts = {}) {\n super(Object.assign({}, opts, {\n attributes: getArrowAttributes(opts),\n topology: 'triangle-list'\n }));\n }\n}\nfunction getArrowAttributes({ length = 1, headSize = 0.2, tailWidth = 0.05, tailStart = 0.05 }) {\n const texCoords = [\n // HEAD\n 0.5,\n 1.0,\n 0,\n 0.5 - headSize / 2,\n 1.0 - headSize,\n 0,\n 0.5 + headSize / 2,\n 1.0 - headSize,\n 0,\n 0.5 - tailWidth / 2,\n tailStart,\n 0,\n 0.5 + tailWidth / 2,\n 1.0 - headSize,\n 0,\n 0.5 + tailWidth / 2,\n tailStart,\n 0,\n 0.5 - tailWidth / 2,\n tailStart,\n 0,\n 0.5 - tailWidth / 2,\n 1.0 - headSize,\n 0,\n 0.5 + tailWidth / 2,\n 1.0 - headSize,\n 0\n ];\n const normals = [0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1];\n // Center and scale\n const positions = new Array(texCoords.length);\n for (let i = 0; i < texCoords.length / 3; i++) {\n const i3 = i * 3;\n positions[i3 + 0] = (texCoords[i3 + 0] - 0.5) * length;\n positions[i3 + 1] = (texCoords[i3 + 1] - 0.5) * length;\n positions[i3 + 2] = 0;\n }\n return {\n positions: { size: 3, value: new Float32Array(positions) },\n normals: { size: 3, value: new Float32Array(normals) },\n texCoords: { size: 2, value: new Float32Array(texCoords) }\n };\n}\n", "// deck.gl-community\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { Vector2 } from '@math.gl/core';\nfunction getLineLength(vPoints) {\n // calculate total length\n let lineLength = 0;\n for (let i = 0; i < vPoints.length - 1; i++) {\n lineLength += vPoints[i].distance(vPoints[i + 1]);\n }\n return lineLength;\n}\nconst DEFAULT_COLOR = [0, 0, 0, 255];\nconst DEFAULT_DIRECTION = { forward: true, backward: false };\nexport function createPathMarkers({ data, getPath = (x, context) => x.path, getDirection = (x) => x.direction, getColor = (x) => DEFAULT_COLOR, getMarkerPercentages = (x, info) => [0.5], projectFlat }) {\n const markers = [];\n for (const object of data) {\n const path = getPath(object, null);\n const direction = getDirection(object) || DEFAULT_DIRECTION;\n const color = getColor(object);\n const vPoints = path.map((p) => new Vector2(p));\n const vPointsReverse = vPoints.slice(0).reverse();\n // calculate total length\n const lineLength = getLineLength(vPoints);\n // Ask for where to put markers\n const percentages = getMarkerPercentages(object, { lineLength });\n // Create the markers\n for (const percentage of percentages) {\n if (direction.forward) {\n const marker = createMarkerAlongPath({\n path: vPoints,\n percentage,\n lineLength,\n color,\n object,\n projectFlat\n });\n markers.push(marker);\n }\n if (direction.backward) {\n const marker = createMarkerAlongPath({\n path: vPointsReverse,\n percentage,\n lineLength,\n color,\n object,\n projectFlat\n });\n markers.push(marker);\n }\n }\n }\n return markers;\n}\nfunction createMarkerAlongPath({ path, percentage, lineLength, color, object, projectFlat }) {\n const distanceAlong = lineLength * percentage;\n let currentDistance = 0;\n let previousDistance = 0;\n let i = 0;\n for (i = 0; i < path.length - 1; i++) {\n currentDistance += path[i].distance(path[i + 1]);\n if (currentDistance > distanceAlong) {\n break;\n }\n previousDistance = currentDistance;\n }\n // If reached the end of the loop without exiting early,\n // undo the final increment to avoid a null-pointer exception\n if (i === path.length - 1) {\n i -= 1;\n }\n const vDirection = path[i + 1].clone().subtract(path[i]).normalize();\n const along = distanceAlong - previousDistance;\n const vCenter = vDirection.clone().multiply(new Vector2(along, along)).add(path[i]);\n const vDirection2 = new Vector2(projectFlat(path[i + 1])).subtract(projectFlat(path[i]));\n const angle = (vDirection2.verticalAngle() * 180) / Math.PI;\n return { position: [vCenter.x, vCenter.y, 0], angle, color, object };\n}\n", "// deck.gl-community\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { Vector3, clamp } from '@math.gl/core';\n// Return the closest point on a line segment\nexport function getClosestPointOnLine({ p, p1, p2, clampToLine = true }) {\n const lineVector = new Vector3(p2).subtract(p1);\n const pointVector = new Vector3(p).subtract(p1);\n let dotProduct = lineVector.dot(pointVector);\n if (clampToLine) {\n dotProduct = clamp(dotProduct, 0, 1);\n }\n return lineVector.lerp(p1, p2, dotProduct);\n}\n// Return the closest point on a line segment\nexport function getClosestPointOnPolyline({ p, points }) {\n p = new Vector3(p);\n let pClosest = null;\n let distanceSquared = Infinity;\n let index = -1;\n for (let i = 0; i < points.length - 1; ++i) {\n const p1 = points[i];\n const p2 = points[i + 1];\n const pClosestOnLine = getClosestPointOnLine({ p, p1, p2 });\n const distanceToLineSquared = p.distanceSquared(pClosestOnLine);\n if (distanceToLineSquared < distanceSquared) {\n distanceSquared = distanceToLineSquared;\n pClosest = pClosestOnLine;\n index = i;\n }\n }\n return {\n point: pClosest,\n index,\n p1: points[index],\n p2: points[index + 1],\n distanceSquared,\n distance: Math.sqrt(distanceSquared)\n };\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACGA,kBAA+B;AAC/B,wBAA0B;AAC1B,oBAAqD;AAErD,IAAM,mBAAoB,OAAO,WAAW,eAAe,OAAO,oBAAqB;AAOhF,IAAM,kBAAN,cAA8B,2BAAe;AAAA,EAMhD,QAAQ;AAAA,EACR,kBAAkB;AACd,SAAK,SAAS;AAAA,MACV,YAAY;AAAA,IAChB,CAAC;AAAA,EACL;AAAA,EACA,YAAY,EAAE,OAAO,YAAY,GAAG;AAChC,SAAK,SAAS;AAAA,MACV,YAAY,MAAM;AAAA,IACtB,CAAC;AAAA,EACL;AAAA,EACA,eAAe;AACX,UAAM,EAAE,YAAY,iBAAiB,UAAU,YAAY,IAAI,KAAK;AACpE,UAAM,WAAU,qCAAU,YAAW;AACrC,UAAM,WAAU,qCAAU,YAAW;AACrC,WAAO;AAAA,MACH,IAAI,4BAAU;AAAA;AAAA,QAEV,IAAI,OAAO,WAAW,GAAG;AAAA,QACzB,aAAa,WAAW;AAAA;AAAA,QAExB,aAAa;AAAA,QACb,UAAU;AAAA,QACV,gBAAgB;AAAA,QAChB,eAAe;AAAA,QACf,gBAAgB,CAAC,IAAI,IAAI,IAAI,EAAE;AAAA,QAC/B;AAAA,QACA;AAAA,QACA,UAAU;AAAA;AAAA,QAEV,YAAY,qBAAqB,IAAI,KAAK;AAAA,QAC1C;AAAA;AAAA,QAEA;AAAA,QACA;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;AA3CI,cADS,iBACF,aAAY;AACnB,cAFS,iBAEF,gBAAe;AAAA,EAClB,GAAG,4BAAU;AAAA,EACb,iBAAiB;AACrB;AAwCJ,SAAS,gBAAgB,OAAO;AAC5B,QAAM,EAAE,YAAY,iBAAiB,SAAS,SAAS,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,GAAG,MAAM,EAAE,MAAM,OAAO,MAAM,MAAM,EAAE,EAAE,IAAI;AAC5H,QAAM,SAAS,CAAC;AAChB,QAAM,cAAc,QAAQ,WAAW,QAAQ,UAAU,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,KAAK,GAAG;AAC3F,UAAQ,WAAW,UAAU;AAAA,IACzB,KAAK;AACD,aAAO,KAAK,IAAI,2BAAa;AAAA,QACzB,IAAI,GAAG,MAAM;AAAA,QACb,MAAM,MAAM;AAAA,QACZ,UAAU;AAAA,QACV,cAAc,CAAC,GAAG,KAAK,IAAI,GAAG;AAAA,QAC9B,gBAAgB;AAAA,QAChB,oBAAoB;AAAA,MACxB,CAAC,CAAC;AACF;AAAA,IACJ,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,aAAO,KAAK,IAAI,0BAAY,OAAO;AAAA,QAC/B,MAAM;AAAA,QACN,OAAO,MAAM;AAAA,QACb,QAAQ,CAAC,MAAM,OAAO,MAAM,KAAK;AAAA,QACjC,UAAU;AAAA,MACd,CAAC,CAAC;AACF;AAAA,IACJ;AAEI,cAAQ,MAAM,yBAAyB,yCAAY,QAAQ;AAAA,EACnE;AAEA,MAAI,iBAAiB;AACjB,WAAO,KAAK,IAAI,wBAAU;AAAA,MACtB,IAAI,GAAG,MAAM;AAAA,MACb,MAAM;AAAA,QACF;AAAA,UACI,CAAC,MAAM,KAAK;AAAA,UACZ,CAAC,MAAM,KAAK;AAAA,UACZ,CAAC,MAAM,KAAK;AAAA,UACZ,CAAC,MAAM,KAAK;AAAA,UACZ,CAAC,MAAM,KAAK;AAAA,QAChB;AAAA,MACJ;AAAA,MACA,SAAS,CAAC,MAAM;AAAA,MAChB,UAAU;AAAA,MACV,gBAAgB;AAAA,IACpB,CAAC,CAAC;AAAA,EACN;AACA,SAAO;AACX;;;ACzGA,IAAAA,iBAA0B;AAC1B,uBAAmB;;;ACAnB,IAAM,gBAAgB;AAAA,EAClB,gBAAgB;AAAA,EAChB,wBAAwB;AAAA,EACxB,kBAAkB;AACtB;AACA,SAAS,YAAY,EAAE,gBAAgB,wBAAwB,iBAAiB,IAAI,eAAe;AAC/F,QAAM,WAAW,CAAC;AAClB,MAAI,mBAAmB,QAAW;AAE9B,aAAS,mBAAmB;AAAA,EAChC;AACA,MAAI,2BAA2B,QAAW;AAEtC,aAAS,0BAA0B;AAAA,EACvC;AACA,MAAI,qBAAqB,QAAW;AAChC,aAAS,qBAAqB;AAAA,EAClC;AACA,SAAO;AACX;AACA,IAAM,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBX,IAAM,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgDJ,IAAM,UAAU;AAAA,EACnB,MAAM;AAAA,EACN;AAAA,EACA;AAAA,EACA;AACJ;;;AD1FO,IAAM,OAAO;AAAA,EAChB,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AACZ;AAEA,SAAS,iBAAiB,EAAE,QAAQ,OAAO,GAAG,GAAG;AAC7C,QAAM,cAAc;AACpB,SAAO,OAAO,QAAQ,aAAa,KAAK,OAAO,OAAO,CAAC;AAC3D;AACA,IAAM,UAAU;AAAA;AAAA;AAIhB,IAAM,UAAU;AAAA;AAGhB,IAAM,eAAe;AAAA,EACjB,WAAW,MAAM;AACrB;AACO,IAAM,mBAAN,cAA+B,yBAAU;AAAA,EAG5C,QAAQ;AAAA;AAAA,EAER,aAAa;AACT,UAAM,UAAU,MAAM,WAAW;AACjC,WAAO,OAAO,OAAO,CAAC,GAAG,SAAS;AAAA,MAC9B,SAAS,QAAQ,QAAQ,OAAO,CAAC,OAAO,CAAC;AAAA,MACzC,IAAI,iBAAiB,EAAE,QAAQ,QAAQ,IAAI,MAAM,QAAQ,CAAC;AAAA,MAC1D,IAAI,iBAAiB,EAAE,QAAQ,QAAQ,IAAI,MAAM,QAAQ,CAAC;AAAA,IAC9D,CAAC;AAAA,EACL;AAAA;AAAA,EAEA,gBAAgB,SAAS;AACrB,UAAM,gBAAgB;AAGtB,SAAK,SAAS;AAAA,MACV,oBAAoB,QAAQ,OAAO,kBAAkB,CAAC,CAAC;AAAA,MACvD,cAAc,QAAQ,OAAO,cAAc,CAAC,CAAC;AAAA,IACjD,CAAC;AAGD,SAAK,MAAM,iBAAiB,aAAa;AAAA,MACrC,gBAAgB;AAAA,QACZ,MAAM;AAAA,QACN,MAAM;AAAA,QACN,UAAU;AAAA,MACd;AAAA,IACJ,CAAC;AAAA,EACL;AAAA;AAAA,EAEA,KAAK,EAAE,mBAAmB,CAAC,GAAG,YAAY,UAAU,QAAQ,GAAG;AAE3D,UAAM,EAAE,cAAc,YAAY,WAAW,YAAY,YAAY,YAAY,gBAAgB,eAAe,IAAI,KAAK;AACzH,eAAW,OAAO,OAAO,CAAC,GAAG,UAAU;AAAA,MACnC,WAAW,OAAO,YAAY;AAAA,MAC9B,SAAS,OAAO,UAAU;AAAA,MAC1B;AAAA,MACA,YAAY,KAAK,UAAU;AAAA,MAC3B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,CAAC;AAED,UAAM,EAAE,oBAAoB,aAAa,IAAI,KAAK;AAKlD,SAAK,MAAM,MAAM,qBAAqB;AAAA,MAClC,gBAAgB;AAAA,MAChB,wBAAwB;AAAA,MACxB,kBAAkB;AAAA,IACtB,CAAC;AACD,SAAK,MAAM,MAAM,KAAK;AAAA,MAClB,UAAU,OAAO,OAAO,CAAC,GAAG,UAAU;AAAA,QAClC,WAAW;AAAA,QACX,YAAY,KAAK,MAAM,aAAa;AAAA,MACxC,CAAC;AAAA,MACD,YAAY;AAAA,QACR,WAAW;AAAA;AAAA,QAEX,eAAe;AAAA,MACnB;AAAA,MACA,aAAa;AAAA,IACjB,CAAC;AAED,SAAK,MAAM,MAAM,qBAAqB;AAAA,MAClC,gBAAgB;AAAA,MAChB,wBAAwB;AAAA,MACxB,kBAAkB;AAAA,IACtB,CAAC;AACD,SAAK,MAAM,MAAM,KAAK;AAAA,MAClB,UAAU,OAAO,OAAO,CAAC,GAAG,UAAU;AAAA,QAClC,WAAW,OAAO,YAAY;AAAA,QAC9B,SAAS,OAAO,UAAU;AAAA,QAC1B,YAAY,KAAK,MAAM;AAAA,MAC3B,CAAC;AAAA,MACD,YAAY;AAAA,QACR,WAAW;AAAA,MACf;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;AArFI,cADS,kBACF,aAAY;AACnB,cAFS,kBAEF,gBAAe;;;AE5B1B,IAAAC,eAAkD;AAClD,IAAAC,iBAAiC;AACjC,yBAAgC;;;ACFhC,oBAAyB;AAClB,IAAM,kBAAN,cAA8B,uBAAS;AAAA,EAC1C,YAAY,OAAO,CAAC,GAAG;AACnB,UAAM,OAAO,OAAO,CAAC,GAAG,MAAM;AAAA,MAC1B,YAAY,mBAAmB,IAAI;AAAA,MACnC,UAAU;AAAA,IACd,CAAC,CAAC;AAAA,EACN;AACJ;AACA,SAAS,mBAAmB,EAAE,SAAS,GAAG,WAAW,KAAK,YAAY,MAAM,YAAY,KAAK,GAAG;AAC5F,QAAM,YAAY;AAAA;AAAA,IAEd;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM,WAAW;AAAA,IACjB,IAAM;AAAA,IACN;AAAA,IACA,MAAM,WAAW;AAAA,IACjB,IAAM;AAAA,IACN;AAAA,IACA,MAAM,YAAY;AAAA,IAClB;AAAA,IACA;AAAA,IACA,MAAM,YAAY;AAAA,IAClB,IAAM;AAAA,IACN;AAAA,IACA,MAAM,YAAY;AAAA,IAClB;AAAA,IACA;AAAA,IACA,MAAM,YAAY;AAAA,IAClB;AAAA,IACA;AAAA,IACA,MAAM,YAAY;AAAA,IAClB,IAAM;AAAA,IACN;AAAA,IACA,MAAM,YAAY;AAAA,IAClB,IAAM;AAAA,IACN;AAAA,EACJ;AACA,QAAM,UAAU,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEhG,QAAM,YAAY,IAAI,MAAM,UAAU,MAAM;AAC5C,WAAS,IAAI,GAAG,IAAI,UAAU,SAAS,GAAG,KAAK;AAC3C,UAAM,KAAK,IAAI;AACf,cAAU,KAAK,CAAC,KAAK,UAAU,KAAK,CAAC,IAAI,OAAO;AAChD,cAAU,KAAK,CAAC,KAAK,UAAU,KAAK,CAAC,IAAI,OAAO;AAChD,cAAU,KAAK,CAAC,IAAI;AAAA,EACxB;AACA,SAAO;AAAA,IACH,WAAW,EAAE,MAAM,GAAG,OAAO,IAAI,aAAa,SAAS,EAAE;AAAA,IACzD,SAAS,EAAE,MAAM,GAAG,OAAO,IAAI,aAAa,OAAO,EAAE;AAAA,IACrD,WAAW,EAAE,MAAM,GAAG,OAAO,IAAI,aAAa,SAAS,EAAE;AAAA,EAC7D;AACJ;;;ACtDA,IAAAC,eAAwB;AACxB,SAAS,cAAc,SAAS;AAE5B,MAAI,aAAa;AACjB,WAAS,IAAI,GAAG,IAAI,QAAQ,SAAS,GAAG,KAAK;AACzC,kBAAc,QAAQ,CAAC,EAAE,SAAS,QAAQ,IAAI,CAAC,CAAC;AAAA,EACpD;AACA,SAAO;AACX;AACA,IAAM,gBAAgB,CAAC,GAAG,GAAG,GAAG,GAAG;AACnC,IAAM,oBAAoB,EAAE,SAAS,MAAM,UAAU,MAAM;AACpD,SAAS,kBAAkB,EAAE,MAAM,UAAU,CAAC,GAAG,YAAY,EAAE,MAAM,eAAe,CAAC,MAAM,EAAE,WAAW,WAAW,CAAC,MAAM,eAAe,uBAAuB,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,YAAY,GAAG;AACtM,QAAM,UAAU,CAAC;AACjB,aAAW,UAAU,MAAM;AACvB,UAAM,OAAO,QAAQ,QAAQ,IAAI;AACjC,UAAM,YAAY,aAAa,MAAM,KAAK;AAC1C,UAAM,QAAQ,SAAS,MAAM;AAC7B,UAAM,UAAU,KAAK,IAAI,CAAC,MAAM,IAAI,qBAAQ,CAAC,CAAC;AAC9C,UAAM,iBAAiB,QAAQ,MAAM,CAAC,EAAE,QAAQ;AAEhD,UAAM,aAAa,cAAc,OAAO;AAExC,UAAM,cAAc,qBAAqB,QAAQ,EAAE,WAAW,CAAC;AAE/D,eAAW,cAAc,aAAa;AAClC,UAAI,UAAU,SAAS;AACnB,cAAM,SAAS,sBAAsB;AAAA,UACjC,MAAM;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACJ,CAAC;AACD,gBAAQ,KAAK,MAAM;AAAA,MACvB;AACA,UAAI,UAAU,UAAU;AACpB,cAAM,SAAS,sBAAsB;AAAA,UACjC,MAAM;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACJ,CAAC;AACD,gBAAQ,KAAK,MAAM;AAAA,MACvB;AAAA,IACJ;AAAA,EACJ;AACA,SAAO;AACX;AACA,SAAS,sBAAsB,EAAE,MAAM,YAAY,YAAY,OAAO,QAAQ,YAAY,GAAG;AACzF,QAAM,gBAAgB,aAAa;AACnC,MAAI,kBAAkB;AACtB,MAAI,mBAAmB;AACvB,MAAI,IAAI;AACR,OAAK,IAAI,GAAG,IAAI,KAAK,SAAS,GAAG,KAAK;AAClC,uBAAmB,KAAK,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC;AAC/C,QAAI,kBAAkB,eAAe;AACjC;AAAA,IACJ;AACA,uBAAmB;AAAA,EACvB;AAGA,MAAI,MAAM,KAAK,SAAS,GAAG;AACvB,SAAK;AAAA,EACT;AACA,QAAM,aAAa,KAAK,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,KAAK,CAAC,CAAC,EAAE,UAAU;AACnE,QAAM,QAAQ,gBAAgB;AAC9B,QAAM,UAAU,WAAW,MAAM,EAAE,SAAS,IAAI,qBAAQ,OAAO,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,CAAC;AAClF,QAAM,cAAc,IAAI,qBAAQ,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC;AACvF,QAAM,QAAS,YAAY,cAAc,IAAI,MAAO,KAAK;AACzD,SAAO,EAAE,UAAU,CAAC,QAAQ,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,OAAO,OAAO;AACvE;;;AC1EA,IAAAC,eAA+B;AAExB,SAAS,sBAAsB,EAAE,GAAG,IAAI,IAAI,cAAc,KAAK,GAAG;AACrE,QAAM,aAAa,IAAI,qBAAQ,EAAE,EAAE,SAAS,EAAE;AAC9C,QAAM,cAAc,IAAI,qBAAQ,CAAC,EAAE,SAAS,EAAE;AAC9C,MAAI,aAAa,WAAW,IAAI,WAAW;AAC3C,MAAI,aAAa;AACb,qBAAa,oBAAM,YAAY,GAAG,CAAC;AAAA,EACvC;AACA,SAAO,WAAW,KAAK,IAAI,IAAI,UAAU;AAC7C;AAEO,SAAS,0BAA0B,EAAE,GAAG,OAAO,GAAG;AACrD,MAAI,IAAI,qBAAQ,CAAC;AACjB,MAAI,WAAW;AACf,MAAI,kBAAkB;AACtB,MAAI,QAAQ;AACZ,WAAS,IAAI,GAAG,IAAI,OAAO,SAAS,GAAG,EAAE,GAAG;AACxC,UAAM,KAAK,OAAO,CAAC;AACnB,UAAM,KAAK,OAAO,IAAI,CAAC;AACvB,UAAM,iBAAiB,sBAAsB,EAAE,GAAG,IAAI,GAAG,CAAC;AAC1D,UAAM,wBAAwB,EAAE,gBAAgB,cAAc;AAC9D,QAAI,wBAAwB,iBAAiB;AACzC,wBAAkB;AAClB,iBAAW;AACX,cAAQ;AAAA,IACZ;AAAA,EACJ;AACA,SAAO;AAAA,IACH,OAAO;AAAA,IACP;AAAA,IACA,IAAI,OAAO,KAAK;AAAA,IAChB,IAAI,OAAO,QAAQ,CAAC;AAAA,IACpB;AAAA,IACA,UAAU,KAAK,KAAK,eAAe;AAAA,EACvC;AACJ;;;AH7BA,IAAM,4BAA4B;AAClC,IAAM,kBAAkB;AACxB,IAAM,mBAAmB;AAEzB,IAAM,uBAAuB;AAC7B,IAAM,6BAA6B;AAAA,EAC/B,MAAM,IAAI,gBAAgB,EAAE,UAAU,iBAAiB,WAAW,iBAAiB,CAAC;AACxF;AACA,IAAMC,gBAAe,OAAO,OAAO,CAAC,GAAG,iBAAiB,cAAc;AAAA,EAClE,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,WAAW;AAAA,EACX,MAAM;AAAA,EACN,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,SAAS,CAAC,MAAM,EAAE;AAAA,EAClB,UAAU,CAAC,MAAM,EAAE;AAAA,EACnB,gBAAgB,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG;AAAA,EACpC,cAAc,CAAC,MAAM,EAAE;AAAA,EACvB,sBAAsB,CAAC,QAAQ,EAAE,WAAW,MAAM,aAAa,4BAA4B,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG;AACvH,CAAC;AACM,IAAM,kBAAN,cAA8B,4BAAe;AAAA,EAGhD,QAAQ;AAAA,EACR,kBAAkB;AACd,SAAK,QAAQ;AAAA,MACT,SAAS,CAAC;AAAA,MACV,MAAM,IAAI,gBAAgB,EAAE,UAAU,iBAAiB,WAAW,iBAAiB,CAAC;AAAA,MACpF,cAAc;AAAA,MACd,eAAe,CAAC;AAAA,IACpB;AAAA,EACJ;AAAA,EACA,YAAY,KAAK,UAAU,kBAAkB,kBAAkB;AAC3D,QAAI,qBAAqB,+BAAkB,eAAe;AACtD,YAAM,CAAC,IAAI,EAAE,IAAI,SAAS,oBAAoB,GAAG;AACjD,YAAM,CAAC,GAAG,CAAC,IAAI;AACf,aAAO,SAAS,YAAY,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;AAAA,IAChD,WACS,qBAAqB,+BAAkB,gBAAgB;AAC5D,YAAM,CAAC,IAAI,EAAE,IAAI;AACjB,YAAM,CAAC,GAAG,CAAC,IAAI;AACf,aAAO,SAAS,YAAY,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;AAAA,IAChD;AACA,WAAO,SAAS,YAAY,GAAG;AAAA,EACnC;AAAA,EACA,YAAY,EAAE,OAAO,UAAU,YAAY,GAAG;AAC1C,QAAI,YAAY,eAAe,YAAY,uBAAuB;AAC9D,YAAM,EAAE,MAAM,SAAS,cAAc,gBAAgB,sBAAsB,kBAAkB,iBAAiB,IAAI,KAAK;AACvH,YAAM,EAAE,SAAS,IAAI,KAAK;AAC1B,YAAM,cAAc,CAAC,MAAM,KAAK,YAAY,GAAG,UAAU,kBAAkB,gBAAgB;AAC3F,WAAK,MAAM,UAAU,kBAAkB;AAAA,QACnC;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU;AAAA,QACV;AAAA,QACA;AAAA,MACJ,CAAC;AACD,WAAK,yBAAyB;AAAA,IAClC;AACA,QAAI,YAAY,cAAc;AAC1B,UAAI,MAAM,UAAU,SAAS,OAAO;AAChC,aAAK,yBAAyB;AAAA,MAClC;AAAA,IACJ;AAAA,EACJ;AAAA,EACA,2BAA2B;AACvB,UAAM,EAAE,gBAAgB,eAAe,IAAI,KAAK;AAChD,QAAI,kBAAkB,kBAAkB,GAAG;AACvC,YAAM,SAAS,KAAK,MAAM,KAAK,cAAc;AAC7C,YAAM,SAAS,KAAK,MAAM,QAAQ,QAAQ,IAAI;AAC9C,YAAM,EAAE,MAAM,IAAI,0BAA0B,EAAE,QAAQ,GAAG,eAAe,CAAC;AACzE,WAAK,MAAM,gBAAgB,CAAC,EAAE,UAAU,MAAM,CAAC;AAAA,IACnD,OACK;AACD,WAAK,MAAM,gBAAgB,CAAC;AAAA,IAChC;AAAA,EACJ;AAAA,EACA,eAAe,EAAE,KAAK,GAAG;AACrB,WAAO,OAAO,OAAO,MAAM;AAAA;AAAA,MAEvB,QAAS,KAAK,UAAU,KAAK,OAAO,QAAS,KAAK;AAAA,IACtD,CAAC;AAAA,EACL;AAAA,EACA,eAAe;AACX,WAAO;AAAA,MACH,IAAI,iBAAiB,KAAK,OAAO,KAAK,iBAAiB;AAAA,QACnD,IAAI;AAAA;AAAA,QAEJ,MAAM,KAAK,MAAM;AAAA,MACrB,CAAC,CAAC;AAAA,MACF,IAAI,KAAK,MAAM,YAAY,KAAK,iBAAiB,OAAO,OAAO,CAAC,GAAG,KAAK,MAAM,kBAAkB;AAAA,QAC5F,IAAI;AAAA,QACJ,MAAM,KAAK,MAAM;AAAA,QACjB,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;AAAA,QACtC,UAAU,CAAC,MAAM,EAAE;AAAA,QACnB,WAAW,KAAK,MAAM;AAAA,QACtB,MAAM,KAAK,MAAM;AAAA,QACjB,UAAU;AAAA,QACV,YAAY;AAAA,UACR,OAAO;AAAA,UACP,WAAW;AAAA,QACf;AAAA,MACJ,CAAC,CAAC,CAAC;AAAA,MACH,KAAK,MAAM,iBACP,IAAI,gCAAiB;AAAA,QACjB,IAAI,GAAG,KAAK,MAAM;AAAA,QAClB,MAAM,KAAK,MAAM;AAAA,QACjB,MAAM,KAAK,MAAM;AAAA,MACrB,CAAC;AAAA,IACT;AAAA,EACJ;AACJ;AA3FI,cADS,iBACF,aAAY;AACnB,cAFS,iBAEF,gBAAeA;",
6
6
  "names": ["import_layers", "import_core", "import_layers", "import_core", "import_core", "defaultProps"]
7
7
  }
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- export type { TileSourceLayerProps } from './tile-source-layer/tile-source-layer';
2
- export { TileSourceLayer } from './tile-source-layer/tile-source-layer';
3
- export type { PathOutlineLayerProps } from './path-outline-layer/path-outline-layer';
4
- export { PathOutlineLayer } from './path-outline-layer/path-outline-layer';
5
- export type { PathMarkerLayerProps } from './path-marker-layer/path-marker-layer';
6
- export { PathMarkerLayer } from './path-marker-layer/path-marker-layer';
1
+ export type { TileSourceLayerProps } from "./tile-source-layer/tile-source-layer.js";
2
+ export { TileSourceLayer } from "./tile-source-layer/tile-source-layer.js";
3
+ export type { PathOutlineLayerProps } from "./path-outline-layer/path-outline-layer.js";
4
+ export { PathOutlineLayer } from "./path-outline-layer/path-outline-layer.js";
5
+ export type { PathMarkerLayerProps } from "./path-marker-layer/path-marker-layer.js";
6
+ export { PathMarkerLayer } from "./path-marker-layer/path-marker-layer.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,YAAY,EAAC,oBAAoB,EAAC,iDAA8C;AAChF,OAAO,EAAC,eAAe,EAAC,iDAA8C;AAEtE,YAAY,EAAC,qBAAqB,EAAC,mDAAgD;AACnF,OAAO,EAAC,gBAAgB,EAAC,mDAAgD;AAEzE,YAAY,EAAC,oBAAoB,EAAC,iDAA8C;AAChF,OAAO,EAAC,eAAe,EAAC,iDAA8C"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // deck.gl-community
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- export { TileSourceLayer } from './tile-source-layer/tile-source-layer';
5
- export { PathOutlineLayer } from './path-outline-layer/path-outline-layer';
6
- export { PathMarkerLayer } from './path-marker-layer/path-marker-layer';
4
+ export { TileSourceLayer } from "./tile-source-layer/tile-source-layer.js";
5
+ export { PathOutlineLayer } from "./path-outline-layer/path-outline-layer.js";
6
+ export { PathMarkerLayer } from "./path-marker-layer/path-marker-layer.js";
@@ -2,3 +2,4 @@ import { Geometry } from '@luma.gl/engine';
2
2
  export declare class Arrow2DGeometry extends Geometry {
3
3
  constructor(opts?: {});
4
4
  }
5
+ //# sourceMappingURL=arrow-2d-geometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrow-2d-geometry.d.ts","sourceRoot":"","sources":["../../src/path-marker-layer/arrow-2d-geometry.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAEzC,qBAAa,eAAgB,SAAQ,QAAQ;gBAC/B,IAAI,KAAK;CAQtB"}
@@ -16,3 +16,4 @@ export declare function createPathMarkers({ data, getPath, getDirection, getColo
16
16
  getMarkerPercentages?: (x: any, info: any) => number[];
17
17
  projectFlat: any;
18
18
  }): PathMarker[];
19
+ //# sourceMappingURL=create-path-markers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-path-markers.d.ts","sourceRoot":"","sources":["../../src/path-marker-layer/create-path-markers.ts"],"names":[],"mappings":"AAMA,+CAA+C;AAC/C,MAAM,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEnE,8DAA8D;AAC9D,MAAM,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAErD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAcD,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,OAAgC,EAChC,YAAiC,EACjC,QAA+B,EAC/B,oBAAyC,EACzC,WAAW,EACZ;;;;;;;CAAA,GAAG,UAAU,EAAE,CA8Cf"}
@@ -1,6 +1,6 @@
1
1
  import { CompositeLayer, DefaultProps } from '@deck.gl/core';
2
- import { PathOutlineLayerProps } from '../path-outline-layer/path-outline-layer';
3
- import { Arrow2DGeometry } from './arrow-2d-geometry';
2
+ import { PathOutlineLayerProps } from "../path-outline-layer/path-outline-layer.js";
3
+ import { Arrow2DGeometry } from "./arrow-2d-geometry.js";
4
4
  import { Vector3 } from '@math.gl/core';
5
5
  export type PathMarkerLayerProps<DataT> = PathOutlineLayerProps<DataT> & {
6
6
  getDirection?: (x: any) => any;
@@ -38,3 +38,4 @@ export declare class PathMarkerLayer<DataT = any, ExtraPropsT = Record<string, u
38
38
  }): any;
39
39
  renderLayers(): any[];
40
40
  }
41
+ //# sourceMappingURL=path-marker-layer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-marker-layer.d.ts","sourceRoot":"","sources":["../../src/path-marker-layer/path-marker-layer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,cAAc,EAAqB,YAAY,EAAC,MAAM,eAAe,CAAC;AAG9E,OAAO,EAAmB,qBAAqB,EAAC,oDAAiD;AACjG,OAAO,EAAC,eAAe,EAAC,+BAA4B;AAIpD,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAStC,MAAM,MAAM,oBAAoB,CAAC,KAAK,IAAI,qBAAqB,CAAC,KAAK,CAAC,GAAG;IACvE,YAAY,CAAC,EAAE,CAAC,CAAC,KAAA,KAAK,GAAG,CAAC;IAC1B,cAAc,CAAC,EAAE,CAAC,CAAC,KAAA,KAAK,MAAM,EAAE,CAAC;IACjC,oBAAoB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,MAAM,EAAE,CAAC;IACvD,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,GAAG,CAAC;CACnB,CAAC;AA4BF,qBAAa,eAAe,CAC1B,KAAK,GAAG,GAAG,EACX,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACrC,SAAQ,cAAc,CAAC,WAAW,GAAG,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3E,MAAM,CAAC,SAAS,SAAqB;IACrC,MAAM,CAAC,YAAY,0CAAgB;IAEnC,KAAK,EAAE;QACL,YAAY,EAAE,OAAO,GAAG,IAAI,CAAC;QAC7B,aAAa,CAAC,EAAE;YAAC,QAAQ,EAAE,OAAO,CAAA;SAAC,EAAE,CAAC;QACtC,OAAO,EAAE,GAAG,EAAE,CAAC;QACf,IAAI,EAAE,eAAe,CAAC;KACvB,CAAc;IAEf,eAAe;IASf,WAAW,CAAC,GAAG,KAAA,EAAE,QAAQ,KAAA,EAAE,gBAAgB,KAAA,EAAE,gBAAgB,KAAA;IAc7D,WAAW,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAC;;;;KAAA;IA+B1C,wBAAwB;IAYxB,cAAc,CAAC,EAAC,IAAI,EAAC;;KAAA;IAOrB,YAAY;CAmCb"}
@@ -4,10 +4,10 @@
4
4
  import { CompositeLayer, COORDINATE_SYSTEM } from '@deck.gl/core';
5
5
  import { ScatterplotLayer } from '@deck.gl/layers';
6
6
  import { SimpleMeshLayer } from '@deck.gl/mesh-layers';
7
- import { PathOutlineLayer } from '../path-outline-layer/path-outline-layer';
8
- import { Arrow2DGeometry } from './arrow-2d-geometry';
9
- import { createPathMarkers } from './create-path-markers';
10
- import { getClosestPointOnPolyline } from './polyline';
7
+ import { PathOutlineLayer } from "../path-outline-layer/path-outline-layer.js";
8
+ import { Arrow2DGeometry } from "./arrow-2d-geometry.js";
9
+ import { createPathMarkers } from "./create-path-markers.js";
10
+ import { getClosestPointOnPolyline } from "./polyline.js";
11
11
  const DISTANCE_FOR_MULTI_ARROWS = 0.1;
12
12
  const ARROW_HEAD_SIZE = 0.2;
13
13
  const ARROW_TAIL_WIDTH = 0.05;
@@ -16,3 +16,4 @@ export declare function getClosestPointOnPolyline({ p, points }: {
16
16
  distanceSquared: number;
17
17
  distance: number;
18
18
  };
19
+ //# sourceMappingURL=polyline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polyline.d.ts","sourceRoot":"","sources":["../../src/path-marker-layer/polyline.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAQ,MAAM,eAAe,CAAC;AAG7C,wBAAgB,qBAAqB,CAAC,EAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,WAAkB,EAAC;;;;;CAAA,WASpE;AAGD,wBAAgB,yBAAyB,CAAC,EAAC,CAAC,EAAE,MAAM,EAAC;;;CAAA;;;;;;;EAwBpD"}
@@ -6,3 +6,4 @@ export declare const outline: {
6
6
  readonly getUniforms: typeof getUniforms;
7
7
  };
8
8
  export {};
9
+ //# sourceMappingURL=outline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../src/path-outline-layer/outline.ts"],"names":[],"mappings":"AAaA,iBAAS,WAAW,CAAC,EAAC,cAAc,EAAE,sBAAsB,EAAE,gBAAgB,EAAC,sBAAgB,uBAc9F;AA0ED,eAAO,MAAM,OAAO;;;;;CAKa,CAAC"}
@@ -32,3 +32,4 @@ export declare class PathOutlineLayer<DataT = any, ExtraPropsT = Record<string,
32
32
  context: any;
33
33
  }): void;
34
34
  }
35
+ //# sourceMappingURL=path-outline-layer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-outline-layer.d.ts","sourceRoot":"","sources":["../../src/path-outline-layer/path-outline-layer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,SAAS,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAC,YAAY,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAE9D,OAAO,EAAC,WAAW,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAGnD;;GAEG;AACH,eAAO,MAAM,IAAI;;;;CAIhB,CAAC;AAiBF,MAAM,MAAM,qBAAqB,CAAC,KAAK,IAAI,cAAc,CAAC,KAAK,CAAC,GAAG;IACjE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1E,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACjD,CAAC;AAMF,qBAAa,gBAAgB,CAAC,KAAK,GAAG,GAAG,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,SAAQ,SAAS,CACjG,KAAK,EACL,WAAW,GAAG,QAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CACrD;IACC,MAAM,CAAC,SAAS,SAAsB;IACtC,MAAM,CAAC,YAAY,2CAAgB;IAEnC,KAAK,EAAE;QACL,KAAK,CAAC,EAAE,GAAG,CAAC;QACZ,cAAc,EAAE,GAAG,CAAC;QACpB,kBAAkB,EAAE,WAAW,CAAC;QAChC,YAAY,EAAE,OAAO,CAAC;KACvB,CAAc;IAGf,UAAU;IAUV,eAAe,CAAC,OAAO,EAAE,YAAY;IAsBrC,IAAI,CAAC,EAAC,gBAAqB,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAC;;;;;KAAA;CAmE5D"}
@@ -3,7 +3,7 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { PathLayer } from '@deck.gl/layers';
5
5
  import { GL } from '@luma.gl/constants';
6
- import { outline } from './outline';
6
+ import { outline } from "./outline.js";
7
7
  /**
8
8
  * Unit literal to shader unit number conversion.
9
9
  */
@@ -54,7 +54,7 @@ export class PathOutlineLayer extends PathLayer {
54
54
  this.state.attributeManager.addInstanced({
55
55
  instanceZLevel: {
56
56
  size: 1,
57
- type: GL.UNSIGNED_BYTE,
57
+ type: 5121,
58
58
  accessor: 'getZLevel'
59
59
  }
60
60
  });
@@ -92,7 +92,7 @@ export class PathOutlineLayer extends PathLayer {
92
92
  parameters: {
93
93
  depthTest: false,
94
94
  // Biggest value needs to go into buffer
95
- blendEquation: GL.MAX
95
+ blendEquation: 32776
96
96
  },
97
97
  framebuffer: outlineFramebuffer
98
98
  });
@@ -41,3 +41,4 @@ export declare class TileSourceLayer extends CompositeLayer<TileSourceLayerProps
41
41
  showTileBorders: any;
42
42
  }>[];
43
43
  }
44
+ //# sourceMappingURL=tile-source-layer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tile-source-layer.d.ts","sourceRoot":"","sources":["../../src/tile-source-layer/tile-source-layer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,cAAc,EAAQ,MAAM,eAAe,CAAC;AACpD,OAAO,EAAC,SAAS,EAAE,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAE9D,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AAKzD,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAClD,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,eAAgB,SAAQ,cAAc,CAAC,oBAAoB,CAAC;IACvE,MAAM,CAAC,SAAS,SAAqB;IACrC,MAAM,CAAC,YAAY;;MAGjB;IAEF,KAAK,EAAE;QACL,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;KACpC,CAAc;IAEf,eAAe;IAMf,WAAW,CAAC,EAAC,KAAK,EAAE,WAAW,EAAC;;;KAAA;IAMhC,YAAY;;;;;;;;;;;;yBAsB8B,GAAG;;;;CAQ9C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deck.gl-community/layers",
3
- "version": "9.0.2",
3
+ "version": "9.0.3",
4
4
  "description": "Addon layers for deck.gl",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -46,5 +46,5 @@
46
46
  "@luma.gl/engine": "^9.0.11",
47
47
  "@math.gl/core": "^4.0.0"
48
48
  },
49
- "gitHead": "646f8328d27d67d596f05c9154072051ec5cf4f0"
49
+ "gitHead": "8955b0da47771f3524b65360243ee246abeb3660"
50
50
  }