umap/umap/static/umap/vendors/tokml/tokml.es.mjs.map
2024-08-02 09:54:54 -04:00

1 line
No EOL
45 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"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 doesnt 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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"}