mirror of
https://github.com/umap-project/umap.git
synced 2025-05-01 20:42:24 +02:00
1 line
No EOL
45 KiB
Text
1 line
No EOL
45 KiB
Text
{"version":3,"file":"tokml.es.mjs","sources":["../node_modules/unist-builder/index.js","../node_modules/xastscript/lib/index.js","../node_modules/xast-util-to-xml/lib/all.js","../node_modules/stringify-entities/lib/core.js","../node_modules/stringify-entities/lib/util/format-basic.js","../node_modules/stringify-entities/lib/index.js","../node_modules/xast-util-to-xml/lib/util-escape.js","../node_modules/xast-util-to-xml/lib/name.js","../node_modules/ccount/index.js","../node_modules/xast-util-to-xml/lib/value.js","../node_modules/xast-util-to-xml/lib/element.js","../node_modules/xast-util-to-xml/lib/text.js","../node_modules/xast-util-to-xml/lib/comment.js","../node_modules/xast-util-to-xml/lib/doctype.js","../node_modules/xast-util-to-xml/lib/instruction.js","../node_modules/xast-util-to-xml/lib/cdata.js","../node_modules/xast-util-to-xml/lib/raw.js","../node_modules/xast-util-to-xml/lib/one.js","../node_modules/xast-util-to-xml/lib/index.js","../lib/index.ts"],"sourcesContent":["/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist').Literal} Literal\n * @typedef {Object.<string, unknown>} Props\n * @typedef {Array.<Node>|string} ChildrenOrValue\n *\n * @typedef {(<T extends string, P extends Record<string, unknown>, C extends Node[]>(type: T, props: P, children: C) => {type: T, children: C} & P)} BuildParentWithProps\n * @typedef {(<T extends string, P extends Record<string, unknown>>(type: T, props: P, value: string) => {type: T, value: string} & P)} BuildLiteralWithProps\n * @typedef {(<T extends string, P extends Record<string, unknown>>(type: T, props: P) => {type: T} & P)} BuildVoidWithProps\n * @typedef {(<T extends string, C extends Node[]>(type: T, children: C) => {type: T, children: C})} BuildParent\n * @typedef {(<T extends string>(type: T, value: string) => {type: T, value: string})} BuildLiteral\n * @typedef {(<T extends string>(type: T) => {type: T})} BuildVoid\n */\n\nexport var u = /**\n * @type {BuildVoid & BuildVoidWithProps & BuildLiteral & BuildLiteralWithProps & BuildParent & BuildParentWithProps}\n */ (\n /**\n * @param {string} type Type of node\n * @param {Props|ChildrenOrValue} [props] Additional properties for node (or `children` or `value`)\n * @param {ChildrenOrValue} [value] `children` or `value` of node\n * @returns {Node}\n */\n function (type, props, value) {\n /** @type {Node} */\n var node = {type: String(type)}\n\n if (\n (value === undefined || value === null) &&\n (typeof props === 'string' || Array.isArray(props))\n ) {\n value = props\n } else {\n Object.assign(node, props)\n }\n\n if (Array.isArray(value)) {\n node.children = value\n } else if (value !== undefined && value !== null) {\n node.value = String(value)\n }\n\n return node\n }\n)\n","/**\n * @typedef {import('xast').Root} Root\n * @typedef {import('xast').Element} Element\n * @typedef {Root['children'][number]} Child\n * @typedef {Child|Root} Node\n * @typedef {Root|Element} XResult\n * @typedef {string|number|boolean|null|undefined} XValue\n * @typedef {{[attribute: string]: XValue}} XAttributes Attributes to support JS primitive types\n *\n * @typedef {string|number|null|undefined} XPrimitiveChild\n * @typedef {Array.<Node|XPrimitiveChild>} XArrayChild\n * @typedef {Node|XPrimitiveChild|XArrayChild} XChild\n * @typedef {import('./jsx-classic').Element} x.JSX.Element\n * @typedef {import('./jsx-classic').IntrinsicAttributes} x.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic').IntrinsicElements} x.JSX.IntrinsicElements\n * @typedef {import('./jsx-classic').ElementChildrenAttribute} x.JSX.ElementChildrenAttribute\n */\n\n/**\n * Create XML trees in xast.\n *\n * @param name Qualified name. Case sensitive and can contain a namespace prefix (such as `rdf:RDF`). Pass `null|undefined` to build a root.\n * @param attributes Map of attributes. Nullish (null or undefined) or NaN values are ignored, other values (strings, booleans) are cast to strings.\n * @param children (Lists of) child nodes. When strings are encountered, they are mapped to Text nodes.\n */\nexport const x =\n /**\n * @type {{\n * (): Root\n * (name: null|undefined, ...children: XChild[]): Root\n * (name: string, attributes: XAttributes, ...children: XChild[]): Element\n * (name: string, ...children: XChild[]): Element\n * }}\n */\n (\n /**\n * Hyperscript compatible DSL for creating virtual xast trees.\n *\n * @param {string|null} [name]\n * @param {XAttributes|XChild} [attributes]\n * @param {XChild[]} children\n * @returns {XResult}\n */\n function (name, attributes, ...children) {\n var index = -1\n /** @type {XResult} */\n var node\n /** @type {string} */\n var key\n\n if (name === undefined || name === null) {\n node = {type: 'root', children: []}\n // @ts-ignore Root builder doesn’t accept attributes.\n children.unshift(attributes)\n } else if (typeof name === 'string') {\n node = {type: 'element', name, attributes: {}, children: []}\n\n if (isAttributes(attributes)) {\n for (key in attributes) {\n // Ignore nullish and NaN values.\n if (\n attributes[key] !== undefined &&\n attributes[key] !== null &&\n (typeof attributes[key] !== 'number' ||\n !Number.isNaN(attributes[key]))\n ) {\n // @ts-ignore Pretty sure we just set it.\n node.attributes[key] = String(attributes[key])\n }\n }\n } else {\n children.unshift(attributes)\n }\n } else {\n throw new TypeError('Expected element name, got `' + name + '`')\n }\n\n // Handle children.\n while (++index < children.length) {\n addChild(node.children, children[index])\n }\n\n return node\n }\n )\n\n/**\n * @param {Array.<Child>} nodes\n * @param {XChild} value\n */\nfunction addChild(nodes, value) {\n var index = -1\n\n if (value === undefined || value === null) {\n // Empty.\n } else if (typeof value === 'string' || typeof value === 'number') {\n nodes.push({type: 'text', value: String(value)})\n } else if (Array.isArray(value)) {\n while (++index < value.length) {\n addChild(nodes, value[index])\n }\n } else if (typeof value === 'object' && 'type' in value) {\n if (value.type === 'root') {\n addChild(nodes, value.children)\n } else {\n nodes.push(value)\n }\n } else {\n throw new TypeError('Expected node, nodes, string, got `' + value + '`')\n }\n}\n\n/**\n * @param {XAttributes|XChild} value\n * @returns {value is XAttributes}\n */\nfunction isAttributes(value) {\n if (\n value === null ||\n value === undefined ||\n typeof value !== 'object' ||\n Array.isArray(value)\n ) {\n return false\n }\n\n return true\n}\n","/**\n * @typedef {import('./index.js').Parent} Parent\n * @typedef {import('./index.js').Context} Context\n * @typedef {import('./index.js').Child} Child\n */\n\nimport {one} from './one.js'\n\n/**\n * Serialize all children of `parent`.\n *\n * @param {Parent} parent\n * @param {Context} ctx\n * @returns {string}\n *\n */\nexport function all(parent, ctx) {\n /** @type {Array.<Child>} */\n var children = (parent && parent.children) || []\n var index = -1\n /** @type {Array.<string>} */\n var results = []\n\n while (++index < children.length) {\n results[index] = one(children[index], ctx)\n }\n\n return results.join('')\n}\n","/**\n * @typedef {Object} CoreOptions\n * @property {string[]} [subset=[]]\n * Whether to only escape the given subset of characters.\n * @property {boolean} [escapeOnly=false]\n * Whether to only escape possibly dangerous characters.\n * Those characters are `\"`, `&`, `'`, `<`, `>`, and `` ` ``.\n *\n * @typedef {Object} FormatOptions\n * @property {(code: number, next: number, options: CoreWithFormatOptions) => string} format\n * Format strategy.\n *\n * @typedef {CoreOptions & FormatOptions & import('./util/format-smart.js').FormatSmartOptions} CoreWithFormatOptions\n */\n\n/**\n * Encode certain characters in `value`.\n *\n * @param {string} value\n * @param {CoreWithFormatOptions} options\n * @returns {string}\n */\nexport function core(value, options) {\n value = value.replace(\n options.subset ? charactersToExpression(options.subset) : /[\"&'<>`]/g,\n basic\n )\n\n if (options.subset || options.escapeOnly) {\n return value\n }\n\n return (\n value\n // Surrogate pairs.\n .replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g, surrogate)\n // BMP control characters (C0 except for LF, CR, SP; DEL; and some more\n // non-ASCII ones).\n .replace(\n // eslint-disable-next-line no-control-regex, unicorn/no-hex-escape\n /[\\x01-\\t\\v\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g,\n basic\n )\n )\n\n /**\n * @param {string} pair\n * @param {number} index\n * @param {string} all\n */\n function surrogate(pair, index, all) {\n return options.format(\n (pair.charCodeAt(0) - 0xd800) * 0x400 +\n pair.charCodeAt(1) -\n 0xdc00 +\n 0x10000,\n all.charCodeAt(index + 2),\n options\n )\n }\n\n /**\n * @param {string} character\n * @param {number} index\n * @param {string} all\n */\n function basic(character, index, all) {\n return options.format(\n character.charCodeAt(0),\n all.charCodeAt(index + 1),\n options\n )\n }\n}\n\n/**\n * @param {string[]} subset\n * @returns {RegExp}\n */\nfunction charactersToExpression(subset) {\n /** @type {string[]} */\n const groups = []\n let index = -1\n\n while (++index < subset.length) {\n groups.push(subset[index].replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&'))\n }\n\n return new RegExp('(?:' + groups.join('|') + ')', 'g')\n}\n","/**\n * The smallest way to encode a character.\n *\n * @param {number} code\n * @returns {string}\n */\nexport function formatBasic(code) {\n return '&#x' + code.toString(16).toUpperCase() + ';'\n}\n","/**\n * @typedef {import('./core.js').CoreOptions & import('./util/format-smart.js').FormatSmartOptions} Options\n * @typedef {import('./core.js').CoreOptions} LightOptions\n */\n\nimport {core} from './core.js'\nimport {formatSmart} from './util/format-smart.js'\nimport {formatBasic} from './util/format-basic.js'\n\n/**\n * Encode special characters in `value`.\n *\n * @param {string} value\n * Value to encode.\n * @param {Options} [options]\n * Configuration.\n * @returns {string}\n * Encoded value.\n */\nexport function stringifyEntities(value, options) {\n return core(value, Object.assign({format: formatSmart}, options))\n}\n\n/**\n * Encode special characters in `value` as hexadecimals.\n *\n * @param {string} value\n * Value to encode.\n * @param {LightOptions} [options]\n * Configuration.\n * @returns {string}\n * Encoded value.\n */\nexport function stringifyEntitiesLight(value, options) {\n return core(value, Object.assign({format: formatBasic}, options))\n}\n","import {stringifyEntitiesLight} from 'stringify-entities'\n\nvar noncharacter = /[\\u0000-\\u0008\\u000B\\u000C\\u000E-\\u001F]/g\n\n/**\n * Escape a string.\n *\n * @param {string} value\n * @param {Array.<string>} subset\n * @param {RegExp} [unsafe]\n * @returns {string}\n */\nexport function escape(value, subset, unsafe) {\n var result = clean(value)\n\n return unsafe ? result.replace(unsafe, encode) : encode(result)\n\n /**\n * @param {string} $0\n * @returns {string}\n */\n function encode($0) {\n return stringifyEntitiesLight($0, {subset})\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction clean(value) {\n return String(value || '').replace(noncharacter, '')\n}\n","import {escape} from './util-escape.js'\n\nvar subset = ['\\t', '\\n', ' ', '\"', '&', \"'\", '/', '<', '=', '>']\n\n/**\n * Serialize a node name.\n *\n * @param {string} value\n * @returns {string}\n */\nexport function name(value) {\n return escape(value, subset)\n}\n","/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n * Value to search in.\n * @param {string} character\n * Character (or substring) to look for.\n * @return {number}\n * Number of times `character` occurred in `value`.\n */\nexport function ccount(value, character) {\n const source = String(value)\n\n if (typeof character !== 'string') {\n throw new TypeError('Expected character')\n }\n\n let count = 0\n let index = source.indexOf(character)\n\n while (index !== -1) {\n count++\n index = source.indexOf(character, index + character.length)\n }\n\n return count\n}\n","/**\n * @typedef {import('./index.js').Context} Context\n */\n\nimport {ccount} from 'ccount'\nimport {escape} from './util-escape.js'\n\n/**\n * Serialize an attribute value.\n *\n * @param {string} value\n * @param {Context} ctx\n * @returns {string}\n */\nexport function value(value, ctx) {\n var primary = ctx.quote\n var secondary = ctx.alternative\n var result = String(value)\n var quote =\n secondary && ccount(result, primary) > ccount(result, secondary)\n ? secondary\n : primary\n\n return quote + escape(result, ['<', '&', quote]) + quote\n}\n","/**\n * @typedef {import('./index.js').Handle} Handle\n * @typedef {import('./index.js').Element} Element\n * @typedef {import('./index.js').Attributes} Attributes\n */\n\nimport {all} from './all.js'\nimport {name} from './name.js'\nimport {value} from './value.js'\n\nvar own = {}.hasOwnProperty\n\n/**\n * Serialize an element.\n *\n * @type {Handle}\n * @param {Element} node\n */\nexport function element(node, ctx) {\n var nodeName = name(node.name)\n var content = all(node, ctx)\n /** @type {Attributes} */\n var attributes = node.attributes || {}\n var close = content ? false : ctx.close\n /** @type {Array.<string>} */\n var attrs = []\n /** @type {string} */\n var key\n /** @type {Attributes[keyof Attributes]} */\n var result\n\n for (key in attributes) {\n if (own.call(attributes, key)) {\n result = attributes[key]\n\n if (result !== null && result !== undefined) {\n attrs.push(name(key) + '=' + value(result, ctx))\n }\n }\n }\n\n return (\n '<' +\n nodeName +\n (attrs.length === 0 ? '' : ' ' + attrs.join(' ')) +\n (close ? (ctx.tight ? '' : ' ') + '/' : '') +\n '>' +\n content +\n (close ? '' : '</' + nodeName + '>')\n )\n}\n","/**\n * @typedef {import('./index.js').Handle} Handle\n * @typedef {import('./index.js').Text} Text\n */\n\nimport {escape} from './util-escape.js'\n\nvar subset = ['&', '<']\n\n/**\n * Serialize a text.\n *\n * @type {Handle}\n * @param {Text} node\n */\nexport function text(node) {\n return escape(node.value, subset)\n}\n","/**\n * @typedef {import('./index.js').Handle} Handle\n * @typedef {import('./index.js').Comment} Comment\n */\n\nimport {escape} from './util-escape.js'\n\n/**\n * Serialize a comment.\n *\n * @type {Handle}\n * @param {Comment} node\n */\nexport function comment(node) {\n return '<!--' + escape(node.value, ['-']) + '-->'\n}\n","/**\n * @typedef {import('./index.js').Handle} Handle\n * @typedef {import('./index.js').Doctype} Doctype\n */\n\nimport {name} from './name.js'\nimport {value} from './value.js'\n\n/**\n * Serialize a doctype.\n *\n * @type {Handle}\n * @param {Doctype} node\n */\nexport function doctype(node, ctx) {\n var nodeName = name(node.name)\n var pub = node.public\n var sys = node.system\n var result = '<!DOCTYPE'\n\n if (nodeName !== '') {\n result += ' ' + nodeName\n }\n\n if (pub !== null && pub !== undefined && pub !== '') {\n result += ' PUBLIC ' + value(pub, ctx)\n } else if (sys !== null && sys !== undefined && sys !== '') {\n result += ' SYSTEM'\n }\n\n if (sys !== null && sys !== undefined && sys !== '') {\n result += ' ' + value(sys, ctx)\n }\n\n return result + '>'\n}\n","/**\n * @typedef {import('./index.js').Handle} Handle\n * @typedef {import('./index.js').Instruction} Instruction\n */\n\nimport {escape} from './util-escape.js'\nimport {name} from './name.js'\n\nvar unsafe = /\\?>/g\nvar subset = ['>']\n\n/**\n * Serialize an instruction.\n *\n * @type {Handle}\n * @param {Instruction} node\n */\nexport function instruction(node) {\n var nodeName = name(node.name) || 'x'\n var result = escape(node.value, subset, unsafe)\n return '<?' + nodeName + (result ? ' ' + result : '') + '?>'\n}\n","/**\n * @typedef {import('./index.js').Handle} Handle\n * @typedef {import('./index.js').Cdata} Cdata\n */\n\nimport {escape} from './util-escape.js'\n\nvar unsafe = /]]>/g\nvar subset = ['>']\n\n/**\n * Serialize a CDATA section.\n *\n * @type {Handle}\n * @param {Cdata} node\n */\nexport function cdata(node) {\n return '<![CDATA[' + escape(node.value, subset, unsafe) + ']]>'\n}\n","/**\n * @typedef {import('./index.js').Handle} Handle\n * @typedef {import('./index.js').Raw} Raw\n */\n\nimport {text} from './text.js'\n\n/**\n * Serialize a (non-standard) raw.\n *\n * @type {Handle}\n * @param {Raw} node\n */\nexport function raw(node, ctx) {\n // @ts-ignore Looks like a text.\n return ctx.dangerous ? node.value : text(node)\n}\n","/**\n * @typedef {import('./index.js').Handle} Handle\n */\n\nimport {all} from './all.js'\nimport {element} from './element.js'\nimport {text} from './text.js'\nimport {comment} from './comment.js'\nimport {doctype} from './doctype.js'\nimport {instruction} from './instruction.js'\nimport {cdata} from './cdata.js'\nimport {raw} from './raw.js'\n\nvar own = {}.hasOwnProperty\n\nvar handlers = {\n root: all,\n element,\n text,\n comment,\n doctype,\n instruction,\n cdata,\n raw\n}\n\n/**\n * Serialize a node.\n *\n * @type {Handle}\n */\nexport function one(node, ctx) {\n var type = node && node.type\n\n if (!type) {\n throw new Error('Expected node, not `' + node + '`')\n }\n\n if (!own.call(handlers, type)) {\n throw new Error('Cannot compile unknown node `' + type + '`')\n }\n\n // @ts-ignore Hush, it works.\n return handlers[type](node, ctx)\n}\n","/**\n * @typedef {import('xast').Root} Root\n * @typedef {import('xast').Element} Element\n * @typedef {import('xast').Cdata} Cdata\n * @typedef {import('xast').Comment} Comment\n * @typedef {import('xast').Doctype} Doctype\n * @typedef {import('xast').Instruction} Instruction\n * @typedef {import('xast').Text} Text\n * @typedef {import('xast').Literal & {type: 'raw'}} Raw\n * @typedef {Root|Element} Parent\n * @typedef {import('xast').Attributes} Attributes\n * @typedef {Root['children'][number]} Child\n * @typedef {Child|Root} Node\n *\n * @typedef {'\"'|\"'\"} Quote\n *\n * @typedef Options\n * @property {Quote} [quote='\"'] Preferred quote to use\n * @property {boolean} [quoteSmart=false] Use the other quote if that results in\n * less bytes\n * @property {boolean} [closeEmptyElements=false] Close elements without any\n * content with slash (/) on the opening tag instead of an end tag:\n * `<circle />` instead of `<circle></circle>`.\n * See `tightClose` to control whether a space is used before the slash.\n * @property {boolean} [tightClose=false] Do not use an extra space when closing\n * self-closing elements: `<circle/>` instead of `<circle />`.\n * @property {boolean} [allowDangerousXml=false] Allow `raw` nodes and insert\n * them as raw XML. When falsey, encodes `raw` nodes.\n * Only set this if you completely trust the content!\n *\n * @typedef Context\n * @property {Quote} quote\n * @property {Quote} alternative\n * @property {boolean} close\n * @property {boolean} tight\n * @property {boolean} dangerous\n *\n * @callback Handle\n * @param {Node} node\n * @param {Context} context\n * @returns {string}\n */\n\nimport {one} from './one.js'\n\n/**\n * Serialize the given xast tree (or list of nodes).\n *\n * @param {Node|Array.<Node>} node\n * @param {Options} [options]\n * @returns {string}\n */\nexport function toXml(node, options = {}) {\n var quote = options.quote || '\"'\n /** @type {Quote} */\n var alternative = quote === '\"' ? \"'\" : '\"'\n var smart = options.quoteSmart\n /** @type {Node} */\n // @ts-ignore Assume no `root` in `node`.\n var value = Array.isArray(node) ? {type: 'root', children: node} : node\n\n if (quote !== '\"' && quote !== \"'\") {\n throw new Error('Invalid quote `' + quote + '`, expected `\\'` or `\"`')\n }\n\n return one(value, {\n dangerous: options.allowDangerousXml,\n close: options.closeEmptyElements,\n tight: options.tightClose,\n quote,\n alternative: smart ? alternative : null\n })\n}\n","import { u } from 'unist-builder';\nimport { x } from 'xastscript';\nimport type { Element } from 'xast';\nimport type { Root, Folder } from '@tmcw/togeojson';\nimport type { Feature, FeatureCollection, Geometry, Position } from 'geojson';\nimport { toXml } from 'xast-util-to-xml';\n\ntype F = Feature<Geometry | null>;\n\nconst BR = u('text', '\\n');\nconst TAB = u('text', ' ');\n\ntype Literal = typeof BR;\n\n/**\n * Convert nested folder structure to KML. This expects\n * input that follows the same patterns as [toGeoJSON](https://github.com/placemark/togeojson)'s\n * kmlWithFolders method: a tree of folders and features,\n * starting with a root element.\n */\nexport function foldersToKML(root: Root): string {\n return toXml(\n u('root', [\n x(\n 'kml',\n { xmlns: 'http://www.opengis.net/kml/2.2' },\n x(\n 'Document',\n root.children.flatMap((child) => convertChild(child))\n )\n ),\n ])\n );\n}\n\n/**\n * Convert a GeoJSON FeatureCollection to a string of\n * KML data.\n */\nexport function toKML(\n featureCollection: FeatureCollection<Geometry | null>\n): string {\n return toXml(\n u('root', [\n x(\n 'kml',\n { xmlns: 'http://www.opengis.net/kml/2.2' },\n x(\n 'Document',\n featureCollection.features.flatMap((feature) =>\n convertFeature(feature)\n )\n )\n ),\n ])\n );\n}\n\nfunction convertChild(child: F | Folder) {\n switch (child.type) {\n case 'Feature':\n return convertFeature(child);\n case 'folder':\n return convertFolder(child);\n }\n}\n\nfunction convertFolder(folder: Folder): Array<Literal | Element> {\n const id = ['string', 'number'].includes(typeof folder.meta.id)\n ? {\n id: String(folder.meta.id),\n }\n : {};\n return [\n BR,\n x('Folder', id, [\n BR,\n ...folderMeta(folder.meta),\n BR,\n TAB,\n ...folder.children.flatMap((child) => convertChild(child)),\n ]),\n ];\n}\n\nconst META_PROPERTIES = [\n 'address',\n 'description',\n 'name',\n 'open',\n 'visibility',\n 'phoneNumber',\n] as const;\n\nfunction folderMeta(meta: Folder['meta']): Element[] {\n return META_PROPERTIES.filter((p) => meta[p] !== undefined).map((p) => {\n return x(p, [u('text', String(meta[p]))]);\n });\n}\n\nfunction convertFeature(feature: F) {\n const { id } = feature;\n const idMember = ['string', 'number'].includes(typeof id)\n ? {\n id: id,\n }\n : {};\n return [\n BR,\n x('Placemark', idMember, [\n BR,\n ...propertiesToTags(feature.properties),\n BR,\n TAB,\n ...(feature.geometry ? [convertGeometry(feature.geometry)] : []),\n ]),\n ];\n}\n\nfunction join(position: Position): string {\n return `${position[0]},${position[1]}`;\n}\n\nfunction coord1(coordinates: Position): Element {\n return x('coordinates', [u('text', join(coordinates))]);\n}\n\nfunction coord2(coordinates: Position[]): Element {\n return x('coordinates', [u('text', coordinates.map(join).join('\\n'))]);\n}\n\nfunction toString(value: any): string {\n switch (typeof value) {\n case 'string': {\n return value;\n }\n case 'boolean':\n case 'number': {\n return String(value);\n }\n case 'object': {\n try {\n return JSON.stringify(value);\n } catch (e) {\n return '';\n }\n }\n }\n return '';\n}\n\nfunction maybeCData(value: any) {\n if (\n value &&\n typeof value === 'object' &&\n '@type' in value &&\n value['@type'] === 'html' &&\n 'value' in value &&\n typeof value.value === 'string'\n ) {\n return u('cdata', value.value);\n }\n\n return toString(value);\n}\n\nfunction propertiesToTags(properties: Feature['properties']): Element[] {\n if (!properties) return [];\n const { name, description, visibility, ...otherProperties } = properties;\n\n return [\n name && x('name', [u('text', toString(name))]),\n description && x('description', [u('text', maybeCData(description))]),\n visibility !== undefined &&\n x('visibility', [u('text', visibility ? '1' : '0')]),\n x(\n 'ExtendedData',\n Object.entries(otherProperties).flatMap(([name, value]) => [\n BR,\n TAB,\n x('Data', { name: name }, [\n x('value', [\n u(\n 'text',\n typeof value === 'string' ? value : JSON.stringify(value)\n ),\n ]),\n ]),\n ])\n ),\n ].filter(Boolean);\n}\n\nconst linearRing = (ring: Position[]): Element =>\n x('LinearRing', [coord2(ring)]);\n\nfunction convertMultiPoint(geometry: GeoJSON.MultiPoint): Element {\n return x(\n 'MultiGeometry',\n geometry.coordinates.flatMap((coordinates) => [\n BR,\n convertGeometry({\n type: 'Point',\n coordinates,\n }),\n ])\n );\n}\nfunction convertMultiLineString(geometry: GeoJSON.MultiLineString): Element {\n return x(\n 'MultiGeometry',\n geometry.coordinates.flatMap((coordinates) => [\n BR,\n convertGeometry({\n type: 'LineString',\n coordinates,\n }),\n ])\n );\n}\n\nfunction convertMultiPolygon(geometry: GeoJSON.MultiPolygon): Element {\n return x(\n 'MultiGeometry',\n geometry.coordinates.flatMap((coordinates) => [\n BR,\n convertGeometry({\n type: 'Polygon',\n coordinates,\n }),\n ])\n );\n}\n\nfunction convertPolygon(geometry: GeoJSON.Polygon): Element {\n const [outerBoundary, ...innerRings] = geometry.coordinates;\n return x('Polygon', [\n BR,\n x('outerBoundaryIs', [BR, TAB, linearRing(outerBoundary)]),\n ...innerRings.flatMap((innerRing) => [\n BR,\n x('innerBoundaryIs', [BR, TAB, linearRing(innerRing)]),\n ]),\n ]);\n}\n\nfunction convertGeometry(geometry: Geometry): Element {\n switch (geometry.type) {\n case 'Point':\n return x('Point', [coord1(geometry.coordinates)]);\n case 'MultiPoint':\n return convertMultiPoint(geometry);\n case 'LineString':\n return x('LineString', [coord2(geometry.coordinates)]);\n case 'MultiLineString':\n return convertMultiLineString(geometry);\n case 'Polygon':\n return convertPolygon(geometry);\n case 'MultiPolygon':\n return convertMultiPolygon(geometry);\n case 'GeometryCollection':\n return x(\n 'MultiGeometry',\n geometry.geometries.flatMap((geometry) => [\n BR,\n convertGeometry(geometry),\n ])\n );\n }\n}\n"],"names":["subset","own","unsafe"],"mappings":"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"} |