@d3plus/data 3.0.11 → 3.0.13
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/es/src/addToQueue.js +3 -3
- package/es/src/isData.js +1 -1
- package/es/src/load.js +23 -28
- package/package.json +3 -3
- package/umd/d3plus-data.full.js +211 -422
- package/umd/d3plus-data.full.js.map +1 -1
- package/umd/d3plus-data.full.min.js +25 -44
- package/umd/d3plus-data.js +28 -34
- package/umd/d3plus-data.js.map +1 -1
- package/umd/d3plus-data.min.js +14 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d3plus-data.full.js","sources":["../src/isData.js","../../../node_modules/d3-collection/src/map.js","../../../node_modules/d3-collection/src/nest.js","../../../node_modules/d3-collection/src/set.js","../../../node_modules/d3-request/node_modules/d3-dispatch/src/dispatch.js","../../../node_modules/d3-request/src/request.js","../../../node_modules/d3-request/src/type.js","../../../node_modules/d3-request/src/json.js","../../../node_modules/d3-request/src/text.js","../../../node_modules/d3-dsv/src/dsv.js","../../../node_modules/d3-dsv/src/csv.js","../../../node_modules/d3-dsv/src/tsv.js","../../../node_modules/d3-request/src/dsv.js","../../../node_modules/d3-request/src/csv.js","../../../node_modules/d3-request/src/tsv.js","../../dom/es/src/isObject.js","../src/fold.js","../src/concat.js","../src/load.js","../src/addToQueue.js","../../../node_modules/d3-array/src/merge.js","../../../node_modules/d3-array/src/sum.js","../src/unique.js","../src/merge.js","../src/nest.js"],"sourcesContent":["/**\n @function isData\n @desc Returns true/false whether the argument provided to the function should be loaded using an internal XHR request. Valid data can either be a string URL or an Object with \"url\" and \"headers\" keys.\n @param {*} dataItem The value to be tested\n*/\nexport default dataItem =>\n typeof dataItem === \"string\" ||\n typeof dataItem === \"object\" && dataItem.url && dataItem.headers;\n","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\nexport default map;\n","import map from \"./map\";\n\nexport default function() {\n var keys = [],\n sortKeys = [],\n sortValues,\n rollup,\n nest;\n\n function apply(array, depth, createResult, setResult) {\n if (depth >= keys.length) {\n if (sortValues != null) array.sort(sortValues);\n return rollup != null ? rollup(array) : array;\n }\n\n var i = -1,\n n = array.length,\n key = keys[depth++],\n keyValue,\n value,\n valuesByKey = map(),\n values,\n result = createResult();\n\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(value = array[i]) + \"\")) {\n values.push(value);\n } else {\n valuesByKey.set(keyValue, [value]);\n }\n }\n\n valuesByKey.each(function(values, key) {\n setResult(result, key, apply(values, depth, createResult, setResult));\n });\n\n return result;\n }\n\n function entries(map, depth) {\n if (++depth > keys.length) return map;\n var array, sortKey = sortKeys[depth - 1];\n if (rollup != null && depth >= keys.length) array = map.entries();\n else array = [], map.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });\n return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;\n }\n\n return nest = {\n object: function(array) { return apply(array, 0, createObject, setObject); },\n map: function(array) { return apply(array, 0, createMap, setMap); },\n entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },\n key: function(d) { keys.push(d); return nest; },\n sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },\n sortValues: function(order) { sortValues = order; return nest; },\n rollup: function(f) { rollup = f; return nest; }\n };\n}\n\nfunction createObject() {\n return {};\n}\n\nfunction setObject(object, key, value) {\n object[key] = value;\n}\n\nfunction createMap() {\n return map();\n}\n\nfunction setMap(map, key, value) {\n map.set(key, value);\n}\n","import {default as map, prefix} from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\nexport default set;\n","var noop = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","import {map} from \"d3-collection\";\nimport {dispatch} from \"d3-dispatch\";\n\nexport default function(url, callback) {\n var request,\n event = dispatch(\"beforesend\", \"progress\", \"load\", \"error\"),\n mimeType,\n headers = map(),\n xhr = new XMLHttpRequest,\n user = null,\n password = null,\n response,\n responseType,\n timeout = 0;\n\n // If IE does not support CORS, use XDomainRequest.\n if (typeof XDomainRequest !== \"undefined\"\n && !(\"withCredentials\" in xhr)\n && /^(http(s)?:)?\\/\\//.test(url)) xhr = new XDomainRequest;\n\n \"onload\" in xhr\n ? xhr.onload = xhr.onerror = xhr.ontimeout = respond\n : xhr.onreadystatechange = function(o) { xhr.readyState > 3 && respond(o); };\n\n function respond(o) {\n var status = xhr.status, result;\n if (!status && hasResponse(xhr)\n || status >= 200 && status < 300\n || status === 304) {\n if (response) {\n try {\n result = response.call(request, xhr);\n } catch (e) {\n event.call(\"error\", request, e);\n return;\n }\n } else {\n result = xhr;\n }\n event.call(\"load\", request, result);\n } else {\n event.call(\"error\", request, o);\n }\n }\n\n xhr.onprogress = function(e) {\n event.call(\"progress\", request, e);\n };\n\n request = {\n header: function(name, value) {\n name = (name + \"\").toLowerCase();\n if (arguments.length < 2) return headers.get(name);\n if (value == null) headers.remove(name);\n else headers.set(name, value + \"\");\n return request;\n },\n\n // If mimeType is non-null and no Accept header is set, a default is used.\n mimeType: function(value) {\n if (!arguments.length) return mimeType;\n mimeType = value == null ? null : value + \"\";\n return request;\n },\n\n // Specifies what type the response value should take;\n // for instance, arraybuffer, blob, document, or text.\n responseType: function(value) {\n if (!arguments.length) return responseType;\n responseType = value;\n return request;\n },\n\n timeout: function(value) {\n if (!arguments.length) return timeout;\n timeout = +value;\n return request;\n },\n\n user: function(value) {\n return arguments.length < 1 ? user : (user = value == null ? null : value + \"\", request);\n },\n\n password: function(value) {\n return arguments.length < 1 ? password : (password = value == null ? null : value + \"\", request);\n },\n\n // Specify how to convert the response content to a specific type;\n // changes the callback value on \"load\" events.\n response: function(value) {\n response = value;\n return request;\n },\n\n // Alias for send(\"GET\", …).\n get: function(data, callback) {\n return request.send(\"GET\", data, callback);\n },\n\n // Alias for send(\"POST\", …).\n post: function(data, callback) {\n return request.send(\"POST\", data, callback);\n },\n\n // If callback is non-null, it will be used for error and load events.\n send: function(method, data, callback) {\n xhr.open(method, url, true, user, password);\n if (mimeType != null && !headers.has(\"accept\")) headers.set(\"accept\", mimeType + \",*/*\");\n if (xhr.setRequestHeader) headers.each(function(value, name) { xhr.setRequestHeader(name, value); });\n if (mimeType != null && xhr.overrideMimeType) xhr.overrideMimeType(mimeType);\n if (responseType != null) xhr.responseType = responseType;\n if (timeout > 0) xhr.timeout = timeout;\n if (callback == null && typeof data === \"function\") callback = data, data = null;\n if (callback != null && callback.length === 1) callback = fixCallback(callback);\n if (callback != null) request.on(\"error\", callback).on(\"load\", function(xhr) { callback(null, xhr); });\n event.call(\"beforesend\", request, xhr);\n xhr.send(data == null ? null : data);\n return request;\n },\n\n abort: function() {\n xhr.abort();\n return request;\n },\n\n on: function() {\n var value = event.on.apply(event, arguments);\n return value === event ? request : value;\n }\n };\n\n if (callback != null) {\n if (typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n return request.get(callback);\n }\n\n return request;\n}\n\nfunction fixCallback(callback) {\n return function(error, xhr) {\n callback(error == null ? xhr : null);\n };\n}\n\nfunction hasResponse(xhr) {\n var type = xhr.responseType;\n return type && type !== \"text\"\n ? xhr.response // null on error\n : xhr.responseText; // \"\" on error\n}\n","import request from \"./request\";\n\nexport default function(defaultMimeType, response) {\n return function(url, callback) {\n var r = request(url).mimeType(defaultMimeType).response(response);\n if (callback != null) {\n if (typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n return r.get(callback);\n }\n return r;\n };\n}\n","import type from \"./type\";\n\nexport default type(\"application/json\", function(xhr) {\n return JSON.parse(xhr.responseText);\n});\n","import type from \"./type\";\n\nexport default type(\"text/plain\", function(xhr) {\n return xhr.responseText;\n});\n","var EOL = {},\n EOF = {},\n QUOTE = 34,\n NEWLINE = 10,\n RETURN = 13;\n\nfunction objectConverter(columns) {\n return new Function(\"d\", \"return {\" + columns.map(function(name, i) {\n return JSON.stringify(name) + \": d[\" + i + \"] || \\\"\\\"\";\n }).join(\",\") + \"}\");\n}\n\nfunction customConverter(columns, f) {\n var object = objectConverter(columns);\n return function(row, i) {\n return f(object(row), i, columns);\n };\n}\n\n// Compute unique columns in order of discovery.\nfunction inferColumns(rows) {\n var columnSet = Object.create(null),\n columns = [];\n\n rows.forEach(function(row) {\n for (var column in row) {\n if (!(column in columnSet)) {\n columns.push(columnSet[column] = column);\n }\n }\n });\n\n return columns;\n}\n\nfunction pad(value, width) {\n var s = value + \"\", length = s.length;\n return length < width ? new Array(width - length + 1).join(0) + s : s;\n}\n\nfunction formatYear(year) {\n return year < 0 ? \"-\" + pad(-year, 6)\n : year > 9999 ? \"+\" + pad(year, 6)\n : pad(year, 4);\n}\n\nfunction formatDate(date) {\n var hours = date.getUTCHours(),\n minutes = date.getUTCMinutes(),\n seconds = date.getUTCSeconds(),\n milliseconds = date.getUTCMilliseconds();\n return isNaN(date) ? \"Invalid Date\"\n : formatYear(date.getUTCFullYear(), 4) + \"-\" + pad(date.getUTCMonth() + 1, 2) + \"-\" + pad(date.getUTCDate(), 2)\n + (milliseconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \".\" + pad(milliseconds, 3) + \"Z\"\n : seconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \"Z\"\n : minutes || hours ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \"Z\"\n : \"\");\n}\n\nexport default function(delimiter) {\n var reFormat = new RegExp(\"[\\\"\" + delimiter + \"\\n\\r]\"),\n DELIMITER = delimiter.charCodeAt(0);\n\n function parse(text, f) {\n var convert, columns, rows = parseRows(text, function(row, i) {\n if (convert) return convert(row, i - 1);\n columns = row, convert = f ? customConverter(row, f) : objectConverter(row);\n });\n rows.columns = columns || [];\n return rows;\n }\n\n function parseRows(text, f) {\n var rows = [], // output rows\n N = text.length,\n I = 0, // current character index\n n = 0, // current line number\n t, // current token\n eof = N <= 0, // current token followed by EOF?\n eol = false; // current token followed by EOL?\n\n // Strip the trailing newline.\n if (text.charCodeAt(N - 1) === NEWLINE) --N;\n if (text.charCodeAt(N - 1) === RETURN) --N;\n\n function token() {\n if (eof) return EOF;\n if (eol) return eol = false, EOL;\n\n // Unescape quotes.\n var i, j = I, c;\n if (text.charCodeAt(j) === QUOTE) {\n while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);\n if ((i = I) >= N) eof = true;\n else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n return text.slice(j + 1, i - 1).replace(/\"\"/g, \"\\\"\");\n }\n\n // Find next delimiter or newline.\n while (I < N) {\n if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n else if (c !== DELIMITER) continue;\n return text.slice(j, i);\n }\n\n // Return last token before EOF.\n return eof = true, text.slice(j, N);\n }\n\n while ((t = token()) !== EOF) {\n var row = [];\n while (t !== EOL && t !== EOF) row.push(t), t = token();\n if (f && (row = f(row, n++)) == null) continue;\n rows.push(row);\n }\n\n return rows;\n }\n\n function preformatBody(rows, columns) {\n return rows.map(function(row) {\n return columns.map(function(column) {\n return formatValue(row[column]);\n }).join(delimiter);\n });\n }\n\n function format(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join(\"\\n\");\n }\n\n function formatBody(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return preformatBody(rows, columns).join(\"\\n\");\n }\n\n function formatRows(rows) {\n return rows.map(formatRow).join(\"\\n\");\n }\n\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n\n function formatValue(value) {\n return value == null ? \"\"\n : value instanceof Date ? formatDate(value)\n : reFormat.test(value += \"\") ? \"\\\"\" + value.replace(/\"/g, \"\\\"\\\"\") + \"\\\"\"\n : value;\n }\n\n return {\n parse: parse,\n parseRows: parseRows,\n format: format,\n formatBody: formatBody,\n formatRows: formatRows,\n formatRow: formatRow,\n formatValue: formatValue\n };\n}\n","import dsv from \"./dsv.js\";\n\nvar csv = dsv(\",\");\n\nexport var csvParse = csv.parse;\nexport var csvParseRows = csv.parseRows;\nexport var csvFormat = csv.format;\nexport var csvFormatBody = csv.formatBody;\nexport var csvFormatRows = csv.formatRows;\nexport var csvFormatRow = csv.formatRow;\nexport var csvFormatValue = csv.formatValue;\n","import dsv from \"./dsv.js\";\n\nvar tsv = dsv(\"\\t\");\n\nexport var tsvParse = tsv.parse;\nexport var tsvParseRows = tsv.parseRows;\nexport var tsvFormat = tsv.format;\nexport var tsvFormatBody = tsv.formatBody;\nexport var tsvFormatRows = tsv.formatRows;\nexport var tsvFormatRow = tsv.formatRow;\nexport var tsvFormatValue = tsv.formatValue;\n","import request from \"./request\";\n\nexport default function(defaultMimeType, parse) {\n return function(url, row, callback) {\n if (arguments.length < 3) callback = row, row = null;\n var r = request(url).mimeType(defaultMimeType);\n r.row = function(_) { return arguments.length ? r.response(responseOf(parse, row = _)) : row; };\n r.row(row);\n return callback ? r.get(callback) : r;\n };\n}\n\nfunction responseOf(parse, row) {\n return function(request) {\n return parse(request.responseText, row);\n };\n}\n","import {csvParse} from \"d3-dsv\";\nimport dsv from \"./dsv\";\n\nexport default dsv(\"text/csv\", csvParse);\n","import {tsvParse} from \"d3-dsv\";\nimport dsv from \"./dsv\";\n\nexport default dsv(\"text/tab-separated-values\", tsvParse);\n","/**\n @function isObject\n @desc Detects if a variable is a javascript Object.\n @param {*} item\n*/ function _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n}\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nexport default function(item) {\n return item && (typeof item === \"undefined\" ? \"undefined\" : _type_of(item)) === \"object\" && (typeof window === \"undefined\" || item !== window && item !== window.document && !_instanceof(item, Element)) && !Array.isArray(item) ? true : false;\n}\n","/**\n @function dataFold\n @desc Given a JSON object where the data values and headers have been split into separate key lookups, this function will combine the data values with the headers and returns one large array of objects.\n @param {Object} json A JSON data Object with `data` and `headers` keys.\n @param {String} [data = \"data\"] The key used for the flat data array inside of the JSON object.\n @param {String} [headers = \"headers\"] The key used for the flat headers array inside of the JSON object.\n*/\nexport default (json, data = \"data\", headers = \"headers\") =>\n json[data].map(data =>\n json[headers].reduce((obj, header, i) =>\n (obj[header] = data[i], obj), {}));\n","/**\n @function dataConcat\n @desc Reduce and concat all the elements included in arrayOfArrays if they are arrays. If it is a JSON object try to concat the array under given key data. If the key doesn't exists in object item, a warning message is lauched to the console. You need to implement DataFormat callback to concat the arrays manually.\n @param {Array} arrayOfArray Array of elements\n @param {String} [data = \"data\"] The key used for the flat data array if exists inside of the JSON object.\n*/\nexport default (arrayOfArrays, data = \"data\") =>\n arrayOfArrays.reduce((acc, item) => {\n let dataArray = [];\n if (Array.isArray(item)) {\n dataArray = item;\n }\n else {\n if (item[data]) {\n dataArray = item[data];\n }\n // else {\n // console.warn(`d3plus-viz: Please implement a \"dataFormat\" callback to concat the arrays manually (consider using the d3plus.dataConcat method in your callback). Currently unable to concatenate (using key: \"${data}\") the following response:`, item);\n // }\n }\n return acc.concat(dataArray);\n }, []);\n\n","import {csv, json, text, tsv} from \"d3-request\";\nimport {isObject} from \"@d3plus/dom\";\n\nimport fold from \"./fold.js\";\nimport concat from \"./concat.js\";\nimport isData from \"./isData.js\";\n\n/**\n @function dataLoad\n @desc Loads data from a filepath or URL, converts it to a valid JSON object, and returns it to a callback function.\n @param {Array|String} path The path to the file or url to be loaded. Also support array of paths strings. If an Array of objects is passed, the xhr request logic is skipped.\n @param {Function} [formatter] An optional formatter function that is run on the loaded data.\n @param {String} [key] The key in the `this` context to save the resulting data to.\n @param {Function} [callback] A function that is called when the final data is loaded. It is passed 2 variables, any error present and the data loaded.\n*/\nexport default function(path, formatter, key, callback) {\n\n let parser;\n\n const getParser = path => {\n const ext = path.slice(path.length - 4);\n switch (ext) {\n case \".csv\":\n return csv;\n case \".tsv\":\n return tsv;\n case \".txt\":\n return text;\n default:\n return json;\n }\n };\n\n const validateData = (err, parser, data) => {\n if (parser !== json && !err && data && data instanceof Array) {\n data.forEach(d => {\n for (const k in d) {\n if (!isNaN(d[k])) d[k] = parseFloat(d[k]);\n else if (d[k].toLowerCase() === \"false\") d[k] = false;\n else if (d[k].toLowerCase() === \"true\") d[k] = true;\n else if (d[k].toLowerCase() === \"null\") d[k] = null;\n else if (d[k].toLowerCase() === \"undefined\") d[k] = undefined;\n }\n });\n }\n return data;\n };\n\n const loadedLength = loadedArray => loadedArray.reduce((prev, current) => current ? prev + 1 : prev, 0);\n\n const getPathIndex = (url, array) => array.indexOf(url);\n\n // If path param is a not an Array then convert path to a 1 element Array to re-use logic\n if (!(path instanceof Array)) path = [path];\n\n const needToLoad = path.find(isData);\n\n let loaded = new Array(path.length);\n const toLoad = [];\n\n // If there is a string I'm assuming is a Array to merge, urls or data\n if (needToLoad) {\n path.forEach((dataItem, ix) => {\n if (isData(dataItem)) toLoad.push(dataItem);\n else loaded[ix] = dataItem;\n });\n }\n // Data array itself\n else {\n loaded[0] = path;\n }\n\n // Load all urls an combine them with data arrays\n const alreadyLoaded = loadedLength(loaded);\n toLoad.forEach(dataItem => {\n let headers = {}, url = dataItem;\n if (typeof dataItem === \"object\") {\n url = dataItem.url;\n headers = dataItem.headers;\n }\n parser = getParser(url);\n const request = parser(url);\n for (const key in headers) {\n if ({}.hasOwnProperty.call(headers, key)) {\n request.header(key, headers[key]);\n }\n }\n request.get((err, data) => {\n data = err ? [] : data;\n if (data && !(data instanceof Array) && data.data && data.headers) data = fold(data);\n data = validateData(err, parser, data);\n loaded[getPathIndex(url, path)] = data;\n if (loadedLength(loaded) - alreadyLoaded === toLoad.length) { // All urls loaded\n\n // Format data\n data = loadedLength(loaded) === 1 ? loaded[0] : loaded;\n if (this._cache) this._lrucache.set(`${key}_${url}`, data);\n\n if (formatter) {\n const formatterResponse = formatter(loadedLength(loaded) === 1 ? loaded[0] : loaded);\n if (key === \"data\" && isObject(formatterResponse)) {\n data = formatterResponse.data || [];\n delete formatterResponse.data;\n this.config(formatterResponse);\n }\n else data = formatterResponse || [];\n }\n else if (key === \"data\") {\n data = concat(loaded, \"data\");\n }\n\n if (key && `_${key}` in this) this[`_${key}`] = data;\n if (callback) callback(err, data);\n }\n });\n });\n\n // If there is no data to Load response is immediately\n if (toLoad.length === 0) {\n loaded = loaded.map(data => {\n if (data && !(data instanceof Array) && data.data && data.headers) data = fold(data);\n return data;\n });\n\n // Format data\n let data = loadedLength(loaded) === 1 ? loaded[0] : loaded;\n if (formatter) {\n const formatterResponse = formatter(loadedLength(loaded) === 1 ? loaded[0] : loaded);\n if (key === \"data\" && isObject(formatterResponse)) {\n data = formatterResponse.data || [];\n delete formatterResponse.data;\n this.config(formatterResponse);\n }\n else data = formatterResponse || [];\n }\n else if (key === \"data\") {\n data = concat(loaded, \"data\");\n }\n\n if (key && `_${key}` in this) this[`_${key}`] = data;\n if (callback) callback(null, data);\n }\n\n}\n","import isData from \"./isData.js\";\nimport load from \"./load.js\";\n\n/**\n @function isData\n @desc Adds the provided value to the internal queue to be loaded, if necessary. This is used internally in new d3plus visualizations that fold in additional data sources, like the nodes and links of Network or the topojson of Geomap.\n @param {Array|String|Object} data The data to be loaded\n @param {Function} [data] An optional data formatter/callback\n @param {String} data The internal Viz method to be modified\n*/\nexport default function(_, f, key) {\n if (!(_ instanceof Array)) _ = [_];\n const needToLoad = _.find(isData);\n if (needToLoad) {\n const prev = this._queue.find(q => q[3] === key);\n const d = [load.bind(this), _, f, key];\n if (prev) this._queue[this._queue.indexOf(prev)] = d;\n else this._queue.push(d);\n }\n else {\n this[`_${key}`] = _;\n }\n}\n","function* flatten(arrays) {\n for (const array of arrays) {\n yield* array;\n }\n}\n\nexport default function merge(arrays) {\n return Array.from(flatten(arrays));\n}\n","export default function sum(values, valueof) {\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n sum += value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n sum += value;\n }\n }\n }\n return sum;\n}\n","/**\n @function unique\n @desc ES5 implementation to reduce an Array of values to unique instances.\n @param {Array} arr The Array of objects to be filtered.\n @param {Function} [accessor] An optional accessor function used to extract data points from an Array of Objects.\n @example <caption>this</caption>\nunique([\"apple\", \"banana\", \"apple\"]);\n @example <caption>returns this</caption>\n[\"apple\", \"banana\"]\n*/\nexport default function(arr, accessor = d => d) {\n\n const values = arr\n .map(accessor)\n .map(d => d instanceof Date ? +d : d);\n\n return arr.filter((obj, i) => {\n const d = accessor(obj);\n return values.indexOf(d instanceof Date ? +d : d) === i;\n });\n\n}\n","import {merge, sum} from \"d3-array\";\nimport unique from \"./unique.js\";\n\n/**\n @function merge\n @desc Combines an Array of Objects together and returns a new Object.\n @param {Array} objects The Array of objects to be merged together.\n @param {Object} aggs An object containing specific aggregation methods (functions) for each key type. By default, numbers are summed and strings are returned as an array of unique values.\n @example <caption>this</caption>\nmerge([\n {id: \"foo\", group: \"A\", value: 10, links: [1, 2]},\n {id: \"bar\", group: \"A\", value: 20, links: [1, 3]}\n]);\n @example <caption>returns this</caption>\n{id: [\"bar\", \"foo\"], group: \"A\", value: 30, links: [1, 2, 3]}\n*/\nfunction objectMerge(objects, aggs = {}) {\n\n const availableKeys = unique(merge(objects.map(o => Object.keys(o)))),\n newObject = {};\n\n availableKeys.forEach(k => {\n let value;\n if (aggs[k]) value = aggs[k](objects, o => o[k]);\n else {\n const values = objects.map(o => o[k]);\n const types = values.map(v => v || v === false ? v.constructor : v).filter(v => v !== void 0);\n if (!types.length) value = undefined;\n else if (types.indexOf(Array) >= 0) {\n value = merge(values.map(v => v instanceof Array ? v : [v]));\n value = unique(value);\n if (value.length === 1) value = value[0];\n }\n else if (types.indexOf(String) >= 0) {\n value = unique(values);\n if (value.length === 1) value = value[0];\n }\n else if (types.indexOf(Number) >= 0) value = sum(values);\n else if (types.indexOf(Object) >= 0) {\n value = unique(values.filter(v => v));\n if (value.length === 1) value = value[0];\n else value = objectMerge(value);\n\n }\n else {\n value = unique(values.filter(v => v !== void 0));\n if (value.length === 1) value = value[0];\n }\n }\n newObject[k] = value;\n });\n\n return newObject;\n\n}\n\nexport default objectMerge;\n","import {nest} from \"d3-collection\";\n\n/**\n @function nest\n @summary Extends the base behavior of d3.nest to allow for multiple depth levels.\n @param {Array} *data* The data array to be nested.\n @param {Array} *keys* An array of key accessors that signify each nest level.\n @private\n*/\nexport default function(data, keys) {\n\n if (!(keys instanceof Array)) keys = [keys];\n\n const dataNest = nest();\n for (let i = 0; i < keys.length; i++) dataNest.key(keys[i]);\n const nestedData = dataNest.entries(data);\n\n return bubble(nestedData);\n\n}\n\n/**\n Bubbles up values that do not nest to the furthest key.\n @param {Array} *values* The \"values\" of a nest object.\n @private\n*/\nfunction bubble(values) {\n\n return values.map(d => {\n\n if (d.key && d.values) {\n if (d.values[0].key === \"undefined\") return d.values[0].values[0];\n else d.values = bubble(d.values);\n }\n\n return d;\n\n });\n\n}\n"],"names":["dataItem","url","headers","prefix","Map","prototype","map","constructor","has","key","get","set","value","remove","property","clear","keys","push","slice","values","entries","size","empty","each","f","object","Array","isArray","i","n","length","o","sortKeys","sortValues","rollup","nest","apply","array","depth","createResult","setResult","sort","keyValue","valuesByKey","result","sortKey","v","k","a","b","createObject","setObject","createMap","setMap","d","order","Set","proto","add","noop","dispatch","arguments","_","t","test","Error","Dispatch","parseTypenames","typenames","types","trim","split","name","indexOf","hasOwnProperty","type","on","typename","callback","T","copy","call","that","args","c","concat","request","event","mimeType","xhr","XMLHttpRequest","user","password","response","responseType","timeout","XDomainRequest","onload","onerror","ontimeout","respond","onreadystatechange","readyState","status","hasResponse","e","onprogress","header","toLowerCase","data","send","post","method","open","setRequestHeader","overrideMimeType","fixCallback","abort","error","responseText","defaultMimeType","r","JSON","parse","EOL","EOF","QUOTE","NEWLINE","RETURN","objectConverter","columns","Function","stringify","join","customConverter","row","inferColumns","rows","columnSet","Object","create","forEach","column","pad","width","s","formatYear","year","formatDate","date","hours","getUTCHours","minutes","getUTCMinutes","seconds","getUTCSeconds","milliseconds","getUTCMilliseconds","isNaN","getUTCFullYear","getUTCMonth","getUTCDate","delimiter","reFormat","RegExp","DELIMITER","charCodeAt","text","convert","parseRows","N","I","eof","eol","token","j","replace","preformatBody","formatValue","format","formatBody","formatRows","formatRow","Date","csv","dsv","csvParse","tsv","tsvParse","responseOf","_instanceof","left","right","Symbol","hasInstance","_type_of","obj","item","window","document","Element","json","reduce","arrayOfArrays","acc","dataArray","path","formatter","parser","getParser","ext","validateData","err","parseFloat","undefined","loadedLength","loadedArray","prev","current","getPathIndex","needToLoad","find","isData","loaded","toLoad","ix","alreadyLoaded","fold","_cache","_lrucache","formatterResponse","isObject","config","_queue","q","load","bind","flatten","arrays","merge","from","sum","valueof","arr","accessor","filter","objectMerge","objects","aggs","availableKeys","unique","newObject","String","Number","dataNest","nestedData","bubble"],"mappings":"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","x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,20,21]}
|
|
1
|
+
{"version":3,"file":"d3plus-data.full.js","sources":["../src/isData.js","../../../node_modules/d3-dsv/src/dsv.js","../../../node_modules/d3-dsv/src/csv.js","../../../node_modules/d3-dsv/src/tsv.js","../../../node_modules/d3-fetch/src/text.js","../../../node_modules/d3-fetch/src/dsv.js","../../../node_modules/d3-fetch/src/json.js","../../dom/es/src/isObject.js","../src/fold.js","../src/concat.js","../src/load.js","../src/addToQueue.js","../../../node_modules/d3-array/src/merge.js","../../../node_modules/d3-array/src/sum.js","../src/unique.js","../src/merge.js","../../../node_modules/d3-collection/src/map.js","../../../node_modules/d3-collection/src/nest.js","../../../node_modules/d3-collection/src/set.js","../src/nest.js"],"sourcesContent":["/**\n @function isData\n @desc Returns true/false whether the argument provided to the function should be loaded using an internal XHR request. Valid data can either be a string URL or an Object with \"url\" and \"headers\" keys.\n @param {*} dataItem The value to be tested\n*/\nexport default dataItem =>\n typeof dataItem === \"string\" ||\n (typeof dataItem === \"object\" && dataItem.url);\n","var EOL = {},\n EOF = {},\n QUOTE = 34,\n NEWLINE = 10,\n RETURN = 13;\n\nfunction objectConverter(columns) {\n return new Function(\"d\", \"return {\" + columns.map(function(name, i) {\n return JSON.stringify(name) + \": d[\" + i + \"] || \\\"\\\"\";\n }).join(\",\") + \"}\");\n}\n\nfunction customConverter(columns, f) {\n var object = objectConverter(columns);\n return function(row, i) {\n return f(object(row), i, columns);\n };\n}\n\n// Compute unique columns in order of discovery.\nfunction inferColumns(rows) {\n var columnSet = Object.create(null),\n columns = [];\n\n rows.forEach(function(row) {\n for (var column in row) {\n if (!(column in columnSet)) {\n columns.push(columnSet[column] = column);\n }\n }\n });\n\n return columns;\n}\n\nfunction pad(value, width) {\n var s = value + \"\", length = s.length;\n return length < width ? new Array(width - length + 1).join(0) + s : s;\n}\n\nfunction formatYear(year) {\n return year < 0 ? \"-\" + pad(-year, 6)\n : year > 9999 ? \"+\" + pad(year, 6)\n : pad(year, 4);\n}\n\nfunction formatDate(date) {\n var hours = date.getUTCHours(),\n minutes = date.getUTCMinutes(),\n seconds = date.getUTCSeconds(),\n milliseconds = date.getUTCMilliseconds();\n return isNaN(date) ? \"Invalid Date\"\n : formatYear(date.getUTCFullYear(), 4) + \"-\" + pad(date.getUTCMonth() + 1, 2) + \"-\" + pad(date.getUTCDate(), 2)\n + (milliseconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \".\" + pad(milliseconds, 3) + \"Z\"\n : seconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \"Z\"\n : minutes || hours ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \"Z\"\n : \"\");\n}\n\nexport default function(delimiter) {\n var reFormat = new RegExp(\"[\\\"\" + delimiter + \"\\n\\r]\"),\n DELIMITER = delimiter.charCodeAt(0);\n\n function parse(text, f) {\n var convert, columns, rows = parseRows(text, function(row, i) {\n if (convert) return convert(row, i - 1);\n columns = row, convert = f ? customConverter(row, f) : objectConverter(row);\n });\n rows.columns = columns || [];\n return rows;\n }\n\n function parseRows(text, f) {\n var rows = [], // output rows\n N = text.length,\n I = 0, // current character index\n n = 0, // current line number\n t, // current token\n eof = N <= 0, // current token followed by EOF?\n eol = false; // current token followed by EOL?\n\n // Strip the trailing newline.\n if (text.charCodeAt(N - 1) === NEWLINE) --N;\n if (text.charCodeAt(N - 1) === RETURN) --N;\n\n function token() {\n if (eof) return EOF;\n if (eol) return eol = false, EOL;\n\n // Unescape quotes.\n var i, j = I, c;\n if (text.charCodeAt(j) === QUOTE) {\n while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);\n if ((i = I) >= N) eof = true;\n else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n return text.slice(j + 1, i - 1).replace(/\"\"/g, \"\\\"\");\n }\n\n // Find next delimiter or newline.\n while (I < N) {\n if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n else if (c !== DELIMITER) continue;\n return text.slice(j, i);\n }\n\n // Return last token before EOF.\n return eof = true, text.slice(j, N);\n }\n\n while ((t = token()) !== EOF) {\n var row = [];\n while (t !== EOL && t !== EOF) row.push(t), t = token();\n if (f && (row = f(row, n++)) == null) continue;\n rows.push(row);\n }\n\n return rows;\n }\n\n function preformatBody(rows, columns) {\n return rows.map(function(row) {\n return columns.map(function(column) {\n return formatValue(row[column]);\n }).join(delimiter);\n });\n }\n\n function format(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join(\"\\n\");\n }\n\n function formatBody(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return preformatBody(rows, columns).join(\"\\n\");\n }\n\n function formatRows(rows) {\n return rows.map(formatRow).join(\"\\n\");\n }\n\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n\n function formatValue(value) {\n return value == null ? \"\"\n : value instanceof Date ? formatDate(value)\n : reFormat.test(value += \"\") ? \"\\\"\" + value.replace(/\"/g, \"\\\"\\\"\") + \"\\\"\"\n : value;\n }\n\n return {\n parse: parse,\n parseRows: parseRows,\n format: format,\n formatBody: formatBody,\n formatRows: formatRows,\n formatRow: formatRow,\n formatValue: formatValue\n };\n}\n","import dsv from \"./dsv.js\";\n\nvar csv = dsv(\",\");\n\nexport var csvParse = csv.parse;\nexport var csvParseRows = csv.parseRows;\nexport var csvFormat = csv.format;\nexport var csvFormatBody = csv.formatBody;\nexport var csvFormatRows = csv.formatRows;\nexport var csvFormatRow = csv.formatRow;\nexport var csvFormatValue = csv.formatValue;\n","import dsv from \"./dsv.js\";\n\nvar tsv = dsv(\"\\t\");\n\nexport var tsvParse = tsv.parse;\nexport var tsvParseRows = tsv.parseRows;\nexport var tsvFormat = tsv.format;\nexport var tsvFormatBody = tsv.formatBody;\nexport var tsvFormatRows = tsv.formatRows;\nexport var tsvFormatRow = tsv.formatRow;\nexport var tsvFormatValue = tsv.formatValue;\n","function responseText(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.text();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseText);\n}\n","import {csvParse, dsvFormat, tsvParse} from \"d3-dsv\";\nimport text from \"./text.js\";\n\nfunction dsvParse(parse) {\n return function(input, init, row) {\n if (arguments.length === 2 && typeof init === \"function\") row = init, init = undefined;\n return text(input, init).then(function(response) {\n return parse(response, row);\n });\n };\n}\n\nexport default function dsv(delimiter, input, init, row) {\n if (arguments.length === 3 && typeof init === \"function\") row = init, init = undefined;\n var format = dsvFormat(delimiter);\n return text(input, init).then(function(response) {\n return format.parse(response, row);\n });\n}\n\nexport var csv = dsvParse(csvParse);\nexport var tsv = dsvParse(tsvParse);\n","function responseJson(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n if (response.status === 204 || response.status === 205) return;\n return response.json();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseJson);\n}\n","/**\n @function isObject\n @desc Detects if a variable is a javascript Object.\n @param {*} item\n*/ function _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n}\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nexport default function(item) {\n return item && (typeof item === \"undefined\" ? \"undefined\" : _type_of(item)) === \"object\" && (typeof window === \"undefined\" || item !== window && item !== window.document && !_instanceof(item, Element)) && !Array.isArray(item) ? true : false;\n}\n","/**\n @function dataFold\n @desc Given a JSON object where the data values and headers have been split into separate key lookups, this function will combine the data values with the headers and returns one large array of objects.\n @param {Object} json A JSON data Object with `data` and `headers` keys.\n @param {String} [data = \"data\"] The key used for the flat data array inside of the JSON object.\n @param {String} [headers = \"headers\"] The key used for the flat headers array inside of the JSON object.\n*/\nexport default (json, data = \"data\", headers = \"headers\") =>\n json[data].map(data =>\n json[headers].reduce((obj, header, i) =>\n (obj[header] = data[i], obj), {}));\n","/**\n @function dataConcat\n @desc Reduce and concat all the elements included in arrayOfArrays if they are arrays. If it is a JSON object try to concat the array under given key data. If the key doesn't exists in object item, a warning message is lauched to the console. You need to implement DataFormat callback to concat the arrays manually.\n @param {Array} arrayOfArray Array of elements\n @param {String} [data = \"data\"] The key used for the flat data array if exists inside of the JSON object.\n*/\nexport default (arrayOfArrays, data = \"data\") =>\n arrayOfArrays.reduce((acc, item) => {\n let dataArray = [];\n if (Array.isArray(item)) {\n dataArray = item;\n }\n else {\n if (item[data]) {\n dataArray = item[data];\n }\n // else {\n // console.warn(`d3plus-viz: Please implement a \"dataFormat\" callback to concat the arrays manually (consider using the d3plus.dataConcat method in your callback). Currently unable to concatenate (using key: \"${data}\") the following response:`, item);\n // }\n }\n return acc.concat(dataArray);\n }, []);\n\n","import {csv, json, text, tsv} from \"d3-fetch\";\nimport {isObject} from \"@d3plus/dom\";\n\nimport fold from \"./fold.js\";\nimport concat from \"./concat.js\";\nimport isData from \"./isData.js\";\n\n/**\n @function dataLoad\n @desc Loads data from a filepath or URL, converts it to a valid JSON object, and returns it to a callback function.\n @param {Array|String} path The path to the file or url to be loaded. Also support array of paths strings. If an Array of objects is passed, the xhr request logic is skipped.\n @param {Function} [formatter] An optional formatter function that is run on the loaded data.\n @param {String} [key] The key in the `this` context to save the resulting data to.\n @param {Function} [callback] A function that is called when the final data is loaded. It is passed 2 variables, any error present and the data loaded.\n*/\nexport default function (path, formatter, key, callback) {\n const fetchData = (path, init = {}) => {\n const ext = path.slice(path.length - 4);\n switch (ext) {\n case \".csv\":\n return csv(path, init);\n case \".tsv\":\n return tsv(path, init);\n case \".txt\":\n return text(path, init);\n default:\n return json(path, init);\n }\n };\n\n const validateData = data => {\n if (data && data instanceof Array) {\n data.forEach(d => {\n for (const k in d) {\n if (!isNaN(d[k])) d[k] = parseFloat(d[k]);\n else if (d[k].toLowerCase() === \"false\") d[k] = false;\n else if (d[k].toLowerCase() === \"true\") d[k] = true;\n else if (d[k].toLowerCase() === \"null\") d[k] = null;\n else if (d[k].toLowerCase() === \"undefined\") d[k] = undefined;\n }\n });\n }\n return data;\n };\n\n const loadedLength = loadedArray =>\n loadedArray.reduce((prev, current) => (current ? prev + 1 : prev), 0);\n\n // If path param is a not an Array then convert path to a 1 element Array to re-use logic\n if (!(path instanceof Array)) path = [path];\n\n const needToLoad = path.find(isData);\n\n let loaded = new Array(path.length);\n const toLoad = [];\n\n // If there is a string I'm assuming is a Array to merge, urls or data\n if (needToLoad) {\n path.forEach((dataItem, ix) => {\n if (isData(dataItem)) toLoad.push(dataItem);\n else loaded[ix] = dataItem;\n });\n }\n // Data array itself\n else {\n loaded[0] = path;\n }\n\n // Load all urls an combine them with data arrays\n const alreadyLoaded = loadedLength(loaded);\n toLoad.forEach(dataItem => {\n let url = dataItem,\n init = {};\n if (typeof dataItem === \"object\" && dataItem.url) {\n url = dataItem.url;\n init = dataItem;\n }\n fetchData(url, init)\n .then(data => {\n if (!(data instanceof Array) && data.data && data.headers)\n data = fold(data);\n data = validateData(data);\n loaded[\n path.findIndex(d => JSON.stringify(d) == JSON.stringify(dataItem))\n ] = data;\n // All urls loaded\n if (loadedLength(loaded) - alreadyLoaded === toLoad.length) {\n // Format data\n data = loadedLength(loaded) === 1 ? loaded[0] : loaded;\n if (this._cache) this._lrucache.set(`${key}_${url}`, data);\n\n if (formatter) {\n const formatterResponse = formatter(\n loadedLength(loaded) === 1 ? loaded[0] : loaded\n );\n if (key === \"data\" && isObject(formatterResponse)) {\n data = formatterResponse.data || [];\n delete formatterResponse.data;\n this.config(formatterResponse);\n } else data = formatterResponse || [];\n } else if (key === \"data\") {\n data = concat(loaded, \"data\");\n }\n\n if (key && `_${key}` in this) this[`_${key}`] = data;\n if (callback) callback(undefined, data);\n }\n })\n .catch(err => {\n console.log(err);\n if (callback) callback(err, undefined);\n });\n });\n\n // If there is no data to Load response is immediately\n if (toLoad.length === 0) {\n loaded = loaded.map(data => {\n if (data && !(data instanceof Array) && data.data && data.headers)\n data = fold(data);\n return data;\n });\n\n // Format data\n let data = loadedLength(loaded) === 1 ? loaded[0] : loaded;\n if (formatter) {\n const formatterResponse = formatter(\n loadedLength(loaded) === 1 ? loaded[0] : loaded\n );\n if (key === \"data\" && isObject(formatterResponse)) {\n data = formatterResponse.data || [];\n delete formatterResponse.data;\n this.config(formatterResponse);\n } else data = formatterResponse || [];\n } else if (key === \"data\") {\n data = concat(loaded, \"data\");\n }\n\n if (key && `_${key}` in this) this[`_${key}`] = data;\n if (callback) callback(null, data);\n }\n}\n","import isData from \"./isData.js\";\nimport load from \"./load.js\";\n\n/**\n @function isData\n @desc Adds the provided value to the internal queue to be loaded, if necessary. This is used internally in new d3plus visualizations that fold in additional data sources, like the nodes and links of Network or the topojson of Geomap.\n @param {Array|String|Object} data The data to be loaded\n @param {Function} [data] An optional data formatter/callback\n @param {String} data The internal Viz method to be modified\n*/\nexport default function (_, f, key) {\n const paths = _ instanceof Array ? _ : [_];\n const needToLoad = paths.find(isData);\n if (needToLoad) {\n const prev = this._queue.find(q => q[3] === key);\n const d = [load.bind(this), paths, f, key];\n if (prev) this._queue[this._queue.indexOf(prev)] = d;\n else this._queue.push(d);\n } else {\n this[`_${key}`] = _;\n }\n}\n","function* flatten(arrays) {\n for (const array of arrays) {\n yield* array;\n }\n}\n\nexport default function merge(arrays) {\n return Array.from(flatten(arrays));\n}\n","export default function sum(values, valueof) {\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n sum += value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n sum += value;\n }\n }\n }\n return sum;\n}\n","/**\n @function unique\n @desc ES5 implementation to reduce an Array of values to unique instances.\n @param {Array} arr The Array of objects to be filtered.\n @param {Function} [accessor] An optional accessor function used to extract data points from an Array of Objects.\n @example <caption>this</caption>\nunique([\"apple\", \"banana\", \"apple\"]);\n @example <caption>returns this</caption>\n[\"apple\", \"banana\"]\n*/\nexport default function(arr, accessor = d => d) {\n\n const values = arr\n .map(accessor)\n .map(d => d instanceof Date ? +d : d);\n\n return arr.filter((obj, i) => {\n const d = accessor(obj);\n return values.indexOf(d instanceof Date ? +d : d) === i;\n });\n\n}\n","import {merge, sum} from \"d3-array\";\nimport unique from \"./unique.js\";\n\n/**\n @function merge\n @desc Combines an Array of Objects together and returns a new Object.\n @param {Array} objects The Array of objects to be merged together.\n @param {Object} aggs An object containing specific aggregation methods (functions) for each key type. By default, numbers are summed and strings are returned as an array of unique values.\n @example <caption>this</caption>\nmerge([\n {id: \"foo\", group: \"A\", value: 10, links: [1, 2]},\n {id: \"bar\", group: \"A\", value: 20, links: [1, 3]}\n]);\n @example <caption>returns this</caption>\n{id: [\"bar\", \"foo\"], group: \"A\", value: 30, links: [1, 2, 3]}\n*/\nfunction objectMerge(objects, aggs = {}) {\n\n const availableKeys = unique(merge(objects.map(o => Object.keys(o)))),\n newObject = {};\n\n availableKeys.forEach(k => {\n let value;\n if (aggs[k]) value = aggs[k](objects, o => o[k]);\n else {\n const values = objects.map(o => o[k]);\n const types = values.map(v => v || v === false ? v.constructor : v).filter(v => v !== void 0);\n if (!types.length) value = undefined;\n else if (types.indexOf(Array) >= 0) {\n value = merge(values.map(v => v instanceof Array ? v : [v]));\n value = unique(value);\n if (value.length === 1) value = value[0];\n }\n else if (types.indexOf(String) >= 0) {\n value = unique(values);\n if (value.length === 1) value = value[0];\n }\n else if (types.indexOf(Number) >= 0) value = sum(values);\n else if (types.indexOf(Object) >= 0) {\n value = unique(values.filter(v => v));\n if (value.length === 1) value = value[0];\n else value = objectMerge(value);\n\n }\n else {\n value = unique(values.filter(v => v !== void 0));\n if (value.length === 1) value = value[0];\n }\n }\n newObject[k] = value;\n });\n\n return newObject;\n\n}\n\nexport default objectMerge;\n","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\nexport default map;\n","import map from \"./map\";\n\nexport default function() {\n var keys = [],\n sortKeys = [],\n sortValues,\n rollup,\n nest;\n\n function apply(array, depth, createResult, setResult) {\n if (depth >= keys.length) {\n if (sortValues != null) array.sort(sortValues);\n return rollup != null ? rollup(array) : array;\n }\n\n var i = -1,\n n = array.length,\n key = keys[depth++],\n keyValue,\n value,\n valuesByKey = map(),\n values,\n result = createResult();\n\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(value = array[i]) + \"\")) {\n values.push(value);\n } else {\n valuesByKey.set(keyValue, [value]);\n }\n }\n\n valuesByKey.each(function(values, key) {\n setResult(result, key, apply(values, depth, createResult, setResult));\n });\n\n return result;\n }\n\n function entries(map, depth) {\n if (++depth > keys.length) return map;\n var array, sortKey = sortKeys[depth - 1];\n if (rollup != null && depth >= keys.length) array = map.entries();\n else array = [], map.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });\n return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;\n }\n\n return nest = {\n object: function(array) { return apply(array, 0, createObject, setObject); },\n map: function(array) { return apply(array, 0, createMap, setMap); },\n entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },\n key: function(d) { keys.push(d); return nest; },\n sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },\n sortValues: function(order) { sortValues = order; return nest; },\n rollup: function(f) { rollup = f; return nest; }\n };\n}\n\nfunction createObject() {\n return {};\n}\n\nfunction setObject(object, key, value) {\n object[key] = value;\n}\n\nfunction createMap() {\n return map();\n}\n\nfunction setMap(map, key, value) {\n map.set(key, value);\n}\n","import {default as map, prefix} from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\nexport default set;\n","import {nest} from \"d3-collection\";\n\n/**\n @function nest\n @summary Extends the base behavior of d3.nest to allow for multiple depth levels.\n @param {Array} *data* The data array to be nested.\n @param {Array} *keys* An array of key accessors that signify each nest level.\n @private\n*/\nexport default function(data, keys) {\n\n if (!(keys instanceof Array)) keys = [keys];\n\n const dataNest = nest();\n for (let i = 0; i < keys.length; i++) dataNest.key(keys[i]);\n const nestedData = dataNest.entries(data);\n\n return bubble(nestedData);\n\n}\n\n/**\n Bubbles up values that do not nest to the furthest key.\n @param {Array} *values* The \"values\" of a nest object.\n @private\n*/\nfunction bubble(values) {\n\n return values.map(d => {\n\n if (d.key && d.values) {\n if (d.values[0].key === \"undefined\") return d.values[0].values[0];\n else d.values = bubble(d.values);\n }\n\n return d;\n\n });\n\n}\n"],"names":["dataItem","url","EOL","EOF","QUOTE","NEWLINE","RETURN","objectConverter","columns","Function","map","name","i","JSON","stringify","join","customConverter","f","object","row","inferColumns","rows","columnSet","Object","create","forEach","column","push","pad","value","width","s","length","Array","formatYear","year","formatDate","date","hours","getUTCHours","minutes","getUTCMinutes","seconds","getUTCSeconds","milliseconds","getUTCMilliseconds","isNaN","getUTCFullYear","getUTCMonth","getUTCDate","delimiter","reFormat","RegExp","DELIMITER","charCodeAt","parse","text","convert","parseRows","N","I","n","t","eof","eol","token","j","c","slice","replace","preformatBody","formatValue","format","concat","formatBody","formatRows","formatRow","Date","test","csv","dsv","csvParse","tsv","tsvParse","responseText","response","ok","Error","status","statusText","input","init","fetch","then","dsvParse","arguments","undefined","responseJson","json","_instanceof","left","right","Symbol","hasInstance","_type_of","obj","constructor","item","window","document","Element","isArray","data","headers","reduce","header","arrayOfArrays","acc","dataArray","path","formatter","key","callback","fetchData","ext","validateData","d","k","parseFloat","toLowerCase","loadedLength","loadedArray","prev","current","needToLoad","find","isData","loaded","toLoad","ix","alreadyLoaded","fold","findIndex","_cache","_lrucache","set","formatterResponse","isObject","config","catch","err","console","log","_","paths","_queue","q","load","bind","indexOf","flatten","arrays","array","merge","from","sum","values","valueof","arr","accessor","filter","objectMerge","objects","aggs","availableKeys","unique","o","keys","newObject","types","v","String","Number","prefix","Map","prototype","has","get","remove","property","clear","entries","size","empty","each","sortKeys","sortValues","rollup","nest","apply","depth","createResult","setResult","sort","keyValue","valuesByKey","result","sortKey","a","b","createObject","setObject","createMap","setMap","order","Set","proto","add","dataNest","nestedData","bubble"],"mappings":"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","x_google_ignoreList":[1,2,3,4,5,6,12,13,16,17,18]}
|
|
@@ -1,60 +1,37 @@
|
|
|
1
1
|
/*
|
|
2
|
-
@d3plus/data v3.0.
|
|
2
|
+
@d3plus/data v3.0.13
|
|
3
3
|
JavaScript data loading, manipulation, and analysis functions.
|
|
4
4
|
Copyright (c) 2025 D3plus - https://d3plus.org
|
|
5
5
|
@license MIT
|
|
6
6
|
*/
|
|
7
|
-
(
|
|
7
|
+
(t=>{"function"==typeof define&&define.amd?define(t):t()})(function(){if("undefined"!=typeof window){try{if("undefined"==typeof SVGElement||Boolean(SVGElement.prototype.innerHTML))return}catch(t){return}function r(t){switch(t.nodeType){case 1:var e=t,n="";return n+="<"+e.tagName,e.hasAttributes()&&[].forEach.call(e.attributes,function(t){n+=" "+t.name+'="'+t.value+'"'}),n+=">",e.hasChildNodes()&&[].forEach.call(e.childNodes,function(t){n+=r(t)}),n+="</"+e.tagName+">";case 3:return t.textContent.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");case 8:return"\x3c!--"+t.nodeValue+"--\x3e"}}Object.defineProperty(SVGElement.prototype,"innerHTML",{get:function(){var e="";return[].forEach.call(this.childNodes,function(t){e+=r(t)}),e},set:function(t){for(;this.firstChild;)this.removeChild(this.firstChild);try{var e=new DOMParser,n=(e.async=!1,"<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>"+t+"</svg>"),r=e.parseFromString(n,"text/xml").documentElement;[].forEach.call(r.childNodes,function(t){this.appendChild(this.ownerDocument.importNode(t,!0))}.bind(this))}catch(t){throw new Error("Error parsing markup string")}}}),Object.defineProperty(SVGElement.prototype,"innerSVG",{get:function(){return this.innerHTML},set:function(t){this.innerHTML=t}})}}),((t,e)=>{"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define("@d3plus/data",["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).d3plus={})})(this,function(t){
|
|
8
8
|
/**
|
|
9
9
|
@function isData
|
|
10
10
|
@desc Returns true/false whether the argument provided to the function should be loaded using an internal XHR request. Valid data can either be a string URL or an Object with "url" and "headers" keys.
|
|
11
11
|
@param {*} dataItem The value to be tested
|
|
12
|
-
*/var
|
|
13
|
-
// Copy constructor.
|
|
14
|
-
if(e instanceof a)e.each(function(e,n){t.set(n,e)});else if(Array.isArray(e)){var r,o=-1,i=e.length;if(null==n)for(;++o<i;)t.set(o,e[o]);else for(;++o<i;)t.set(n(r=e[o],o,e),r)}else if(e)for(var u in e)t.set(u,e[u]);return t}function r(){var h,p,n,d=[],u=[];function y(e,t,r,o){if(t>=d.length)return null!=h&&e.sort(h),null!=p?p(e):e;for(var n,i,u,a=-1,s=e.length,l=d[t++],f=v(),c=r();++a<s;)(u=f.get(n=l(i=e[a])+""))?u.push(i):f.set(n,[i]);return f.each(function(e,n){o(c,n,y(e,t,r,o))}),c}return n={object:function(e){return y(e,0,i,s)},map:function(e){return y(e,0,l,f)},entries:function(e){return function t(e,r){var o,i;return++r>d.length?e:(i=u[r-1],null!=p&&r>=d.length?o=e.entries():(o=[],e.each(function(e,n){o.push({key:n,values:t(e,r)})})),null!=i?o.sort(function(e,n){return i(e.key,n.key)}):o)}(y(e,0,l,f),0)},key:function(e){return d.push(e),n},sortKeys:function(e){return u[d.length-1]=e,n},sortValues:function(e){return h=e,n},rollup:function(e){return p=e,n}}}function i(){return{}}function s(e,n,t){e[n]=t}function l(){return v()}function f(e,n,t){e.set(n,t)}function n(){}a.prototype=v.prototype={constructor:a,has:function(e){return t+e in this},get:function(e){return this[t+e]},set:function(e,n){return this[t+e]=n,this},remove:function(e){e=t+e;return e in this&&delete this[e]},clear:function(){for(var e in this)e[0]===t&&delete this[e]},keys:function(){var e,n=[];for(e in this)e[0]===t&&n.push(e.slice(1));return n},values:function(){var e,n=[];for(e in this)e[0]===t&&n.push(this[e]);return n},entries:function(){var e,n=[];for(e in this)e[0]===t&&n.push({key:e.slice(1),value:this[e]});return n},size:function(){var e,n=0;for(e in this)e[0]===t&&++n;return n},empty:function(){for(var e in this)if(e[0]===t)return!1;return!0},each:function(e){for(var n in this)n[0]===t&&e(this[n],n.slice(1),this)}};var u=v.prototype,c=(n.prototype={constructor:n,has:u.has,add:function(e){return this[t+(e+="")]=e,this},remove:u.remove,clear:u.clear,values:u.keys,size:u.size,empty:u.empty,each:u.each},{value:function(){}});function y(){for(var e,n=0,t=arguments.length,r={};n<t;++n){if(!(e=arguments[n]+"")||e in r||/[\s.]/.test(e))throw new Error("illegal type: "+e);r[e]=[]}return new h(r)}function h(e){this._=e}function p(e,n,t){for(var r=0,o=e.length;r<o;++r)if(e[r].name===n){e[r]=c,e=e.slice(0,r).concat(e.slice(r+1));break}return null!=t&&e.push({name:n,value:t}),e}function d(o){var i,u,a,s,l=y("beforesend","progress","load","error"),f=v(),c=new XMLHttpRequest,h=null,p=null,d=0;
|
|
15
|
-
// If IE does not support CORS, use XDomainRequest.
|
|
16
|
-
function n(e){var n,t,r,o=c.status;if(!o&&((r=(t=c).responseType)&&"text"!==r?t.response:t.responseText)||200<=o&&o<300||304===o){if(a)try{n=a.call(i,c)}catch(e){return void l.call("error",i,e)}else n=c;l.call("load",i,n)}else l.call("error",i,e)}return"onload"in(c="undefined"==typeof XDomainRequest||"withCredentials"in c||!/^(http(s)?:)?\/\//.test(o)?c:new XDomainRequest)?c.onload=c.onerror=c.ontimeout=n:c.onreadystatechange=function(e){3<c.readyState&&n(e)},c.onprogress=function(e){l.call("progress",i,e)},i={header:function(e,n){return e=(e+"").toLowerCase(),arguments.length<2?f.get(e):(null==n?f.remove(e):f.set(e,n+""),i)},
|
|
17
|
-
// If mimeType is non-null and no Accept header is set, a default is used.
|
|
18
|
-
mimeType:function(e){return arguments.length?(u=null==e?null:e+"",i):u},
|
|
19
|
-
// Specifies what type the response value should take;
|
|
20
|
-
// for instance, arraybuffer, blob, document, or text.
|
|
21
|
-
responseType:function(e){return arguments.length?(s=e,i):s},timeout:function(e){return arguments.length?(d=+e,i):d},user:function(e){return arguments.length<1?h:(h=null==e?null:e+"",i)},password:function(e){return arguments.length<1?p:(p=null==e?null:e+"",i)},
|
|
22
|
-
// Specify how to convert the response content to a specific type;
|
|
23
|
-
// changes the callback value on "load" events.
|
|
24
|
-
response:function(e){return a=e,i},
|
|
25
|
-
// Alias for send("GET", …).
|
|
26
|
-
get:function(e,n){return i.send("GET",e,n)},
|
|
27
|
-
// Alias for send("POST", …).
|
|
28
|
-
post:function(e,n){return i.send("POST",e,n)},
|
|
29
|
-
// If callback is non-null, it will be used for error and load events.
|
|
30
|
-
send:function(e,n,t){var r;return c.open(e,o,!0,h,p),null==u||f.has("accept")||f.set("accept",u+",*/*"),c.setRequestHeader&&f.each(function(e,n){c.setRequestHeader(n,e)}),null!=u&&c.overrideMimeType&&c.overrideMimeType(u),null!=s&&(c.responseType=s),0<d&&(c.timeout=d),null==t&&"function"==typeof n&&(t=n,n=null),null!=t&&1===t.length&&(r=t,t=function(e,n){r(null==e?n:null)}),null!=t&&i.on("error",t).on("load",function(e){t(null,e)}),l.call("beforesend",i,c),c.send(null==n?null:n),i},abort:function(){return c.abort(),i},on:function(){var e=l.on.apply(l,arguments);return e===l?i:e}}}function m(t,r){return function(e,n){e=d(e).mimeType(t).response(r);if(null==n)return e;if("function"!=typeof n)throw new Error("invalid callback: "+n);return e.get(n)}}h.prototype=y.prototype={constructor:h,on:function(e,n){var t,r,o=this._,i=(r=o,(e+"").trim().split(/^|\s+/).map(function(e){var n="",t=e.indexOf(".");if(0<=t&&(n=e.slice(t+1),e=e.slice(0,t)),e&&!r.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:n}})),u=-1,a=i.length;
|
|
31
|
-
// If no callback was specified, return the callback of the given type and name.
|
|
32
|
-
if(!(arguments.length<2)){
|
|
33
|
-
// If a type was specified, set the callback for the given type and name.
|
|
34
|
-
// Otherwise, if a null callback was specified, remove callbacks of the given name.
|
|
35
|
-
if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++u<a;)if(t=(e=i[u]).type)o[t]=p(o[t],e.name,n);else if(null==n)for(t in o)o[t]=p(o[t],e.name,null);return this}for(;++u<a;)if(t=(t=(e=i[u]).type)&&((e,n)=>{for(var t,r=0,o=e.length;r<o;++r)if((t=e[r]).name===n)return t.value})(o[t],e.name))return t},copy:function(){var e,n={},t=this._;for(e in t)n[e]=t[e].slice();return new h(n)},call:function(e,n){if(0<(t=arguments.length-2))for(var t,r,o=new Array(t),i=0;i<t;++i)o[i]=arguments[i+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=0,t=(r=this._[e]).length;i<t;++i)r[i].value.apply(n,o)},apply:function(e,n,t){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],o=0,i=r.length;o<i;++o)r[o].value.apply(n,t)}};var g=m("application/json",function(e){return JSON.parse(e.responseText)}),w=m("text/plain",function(e){return e.responseText}),T={},b={};function A(e){return new Function("d","return {"+e.map(function(e,n){return JSON.stringify(e)+": d["+n+'] || ""'}).join(",")+"}")}
|
|
12
|
+
*/var h=t=>"string"==typeof t||"object"==typeof t&&t.url,d={},p={};function f(t){return new Function("d","return {"+t.map(function(t,e){return JSON.stringify(t)+": d["+e+'] || ""'}).join(",")+"}")}
|
|
36
13
|
// Compute unique columns in order of discovery.
|
|
37
|
-
function
|
|
14
|
+
function a(t){var n=Object.create(null),r=[];return t.forEach(function(t){for(var e in t)e in n||r.push(n[e]=e)}),r}function u(t,e){var t=t+"",n=t.length;return n<e?new Array(e-n+1).join(0)+t:t}function s(t){var e,n=t.getUTCHours(),r=t.getUTCMinutes(),i=t.getUTCSeconds(),o=t.getUTCMilliseconds();return isNaN(t)?"Invalid Date":((e=t.getUTCFullYear())<0?"-"+u(-e,6):9999<e?"+"+u(e,6):u(e,4))+"-"+u(t.getUTCMonth()+1,2)+"-"+u(t.getUTCDate(),2)+(o?"T"+u(n,2)+":"+u(r,2)+":"+u(i,2)+"."+u(o,3)+"Z":i?"T"+u(n,2)+":"+u(r,2)+":"+u(i,2)+"Z":r||n?"T"+u(n,2)+":"+u(r,2)+"Z":"")}function e(r){var e=new RegExp('["'+r+"\n\r]"),l=r.charCodeAt(0);function n(r,t){var e,n=[],i=r.length,o=0,u=0,a=i<=0,f=!1;// current token followed by EOL?
|
|
38
15
|
// Strip the trailing newline.
|
|
39
|
-
function
|
|
16
|
+
function s(){if(a)return p;if(f)return f=!1,d;
|
|
40
17
|
// Unescape quotes.
|
|
41
|
-
var e,n
|
|
18
|
+
var t,e,n=o;if(34===r.charCodeAt(n)){for(;o++<i&&34!==r.charCodeAt(o)||34===r.charCodeAt(++o););return(t=o)>=i?a=!0:10===(e=r.charCodeAt(o++))?f=!0:13===e&&(f=!0,10===r.charCodeAt(o))&&++o,r.slice(n+1,t-1).replace(/""/g,'"')}
|
|
42
19
|
// Find next delimiter or newline.
|
|
43
|
-
for(;i
|
|
20
|
+
for(;o<i;){if(10===(e=r.charCodeAt(t=o++)))f=!0;else if(13===e)f=!0,10===r.charCodeAt(o)&&++o;else if(e!==l)continue;return r.slice(n,t)}
|
|
44
21
|
// Return last token before EOF.
|
|
45
|
-
return a=!0,r.slice(
|
|
22
|
+
return a=!0,r.slice(n,i)}for(10===r.charCodeAt(i-1)&&--i,13===r.charCodeAt(i-1)&&--i;(e=s())!==p;){for(var c=[];e!==d&&e!==p;)c.push(e),e=s();t&&null==(c=t(c,u++))||n.push(c)}return n}function i(t,n){return t.map(function(e){return n.map(function(t){return u(e[t])}).join(r)})}function o(t){return t.map(u).join(r)}function u(t){return null==t?"":t instanceof Date?s(t):e.test(t+="")?'"'+t.replace(/"/g,'""')+'"':t}return{parse:function(t,o){var u,a;return(t=n(t,function(t,e){if(u)return u(t,e-1);var n,r,i;a=t,u=o?(r=o,i=f(n=t),function(t,e){return r(i(t),e,n)}):f(t)})).columns=a||[],t},parseRows:n,format:function(t,e){return[(e=null==e?a(t):e).map(u).join(r)].concat(i(t,e)).join("\n")},formatBody:function(t,e){return i(t,e=null==e?a(t):e).join("\n")},formatRows:function(t){return t.map(o).join("\n")},formatRow:o,formatValue:u}}var n=e(",").parse,r=e("\t").parse;function i(t){if(t.ok)return t.text();throw new Error(t.status+" "+t.statusText)}function y(t,e){return fetch(t,e).then(i)}function o(r){return function(t,e,n){return 2===arguments.length&&"function"==typeof e&&(n=e,e=void 0),y(t,e).then(function(t){return r(t,n)})}}var v=o(n),m=o(r);function g(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);if(204!==t.status&&205!==t.status)return t.json()}function w(t){return!(!t||"object"!=(void 0===t?"undefined":(n=t)&&"undefined"!=typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"undefined"!=typeof window&&(t===window||t===window.document||(n=t,null!=(e=Element)&&"undefined"!=typeof Symbol&&e[Symbol.hasInstance]?e[Symbol.hasInstance](n):n instanceof e))||Array.isArray(t));
|
|
46
23
|
/**
|
|
47
24
|
@function isObject
|
|
48
25
|
@desc Detects if a variable is a javascript Object.
|
|
49
26
|
@param {*} item
|
|
50
|
-
*/var n
|
|
27
|
+
*/var e,n}
|
|
51
28
|
/**
|
|
52
29
|
@function dataFold
|
|
53
30
|
@desc Given a JSON object where the data values and headers have been split into separate key lookups, this function will combine the data values with the headers and returns one large array of objects.
|
|
54
31
|
@param {Object} json A JSON data Object with `data` and `headers` keys.
|
|
55
32
|
@param {String} [data = "data"] The key used for the flat data array inside of the JSON object.
|
|
56
33
|
@param {String} [headers = "headers"] The key used for the flat headers array inside of the JSON object.
|
|
57
|
-
*/var
|
|
34
|
+
*/var A=(t,e="data",n="headers")=>t[e].map(r=>t[n].reduce((t,e,n)=>(t[e]=r[n],t),{})),C=(t,r="data")=>t.reduce((t,e)=>{let n=[];return Array.isArray(e)?n=e:e[r]&&(n=e[r]),t.concat(n)},[]);
|
|
58
35
|
/**
|
|
59
36
|
@function dataConcat
|
|
60
37
|
@desc Reduce and concat all the elements included in arrayOfArrays if they are arrays. If it is a JSON object try to concat the array under given key data. If the key doesn't exists in object item, a warning message is lauched to the console. You need to implement DataFormat callback to concat the arrays manually.
|
|
@@ -68,24 +45,26 @@ return a=!0,r.slice(t,o)}for(10===r.charCodeAt(o-1)&&--o,13===r.charCodeAt(o-1)&
|
|
|
68
45
|
@param {Function} [formatter] An optional formatter function that is run on the loaded data.
|
|
69
46
|
@param {String} [key] The key in the `this` context to save the resulting data to.
|
|
70
47
|
@param {Function} [callback] A function that is called when the final data is loaded. It is passed 2 variables, any error present and the data loaded.
|
|
71
|
-
*/function
|
|
48
|
+
*/function c(i,o,u,a){let e=(t,e={})=>{switch(t.slice(t.length-4)){case".csv":return v(t,e);case".tsv":return m(t,e);case".txt":return y(t,e);default:return fetch(t,e).then(g)}},f=t=>t.reduce((t,e)=>e?t+1:t,0);var n=(
|
|
72
49
|
// If path param is a not an Array then convert path to a 1 element Array to re-use logic
|
|
73
|
-
|
|
50
|
+
i=i instanceof Array?i:[i]).find(h);let s=new Array(i.length),c=[],l=(
|
|
74
51
|
// If there is a string I'm assuming is a Array to merge, urls or data
|
|
75
|
-
n?
|
|
52
|
+
n?i.forEach((t,e)=>{h(t)?c.push(t):s[e]=t}):s[0]=i,f(s));
|
|
76
53
|
// If there is no data to Load response is immediately
|
|
77
|
-
if(
|
|
54
|
+
if(c.forEach(n=>{let r=n,t={};"object"==typeof n&&n.url&&(r=n.url,t=n),e(r,t).then(t=>{var e;t instanceof Array||!t.data||!t.headers||(t=A(t)),(e=t)&&e instanceof Array&&e.forEach(t=>{for(var e in t)isNaN(t[e])?"false"===t[e].toLowerCase()?t[e]=!1:"true"===t[e].toLowerCase()?t[e]=!0:"null"===t[e].toLowerCase()?t[e]=null:"undefined"===t[e].toLowerCase()&&(t[e]=void 0):t[e]=parseFloat(t[e])}),t=e,s[i.findIndex(t=>JSON.stringify(t)==JSON.stringify(n))]=t,
|
|
55
|
+
// All urls loaded
|
|
56
|
+
f(s)-l===c.length&&(
|
|
78
57
|
// Format data
|
|
79
|
-
|
|
58
|
+
t=1===f(s)?s[0]:s,this._cache&&this._lrucache.set(u+"_"+r,t),o?(e=o(1===f(s)?s[0]:s),"data"===u&&w(e)?(t=e.data||[],delete e.data,this.config(e)):t=e||[]):"data"===u&&(t=C(s,"data")),u&&"_"+u in this&&(this["_"+u]=t),a)&&a(void 0,t)}).catch(t=>{console.log(t),a&&a(t,void 0)})}),0===c.length){s=s.map(t=>t=t&&!(t instanceof Array)&&t.data&&t.headers?A(t):t);
|
|
80
59
|
// Format data
|
|
81
|
-
let
|
|
60
|
+
let t=1===f(s)?s[0]:s;o?(n=o(1===f(s)?s[0]:s),"data"===u&&w(n)?(t=n.data||[],delete n.data,this.config(n)):t=n||[]):"data"===u&&(t=C(s,"data")),u&&"_"+u in this&&(this["_"+u]=t),a&&a(null,t)}}
|
|
82
61
|
/**
|
|
83
62
|
@function isData
|
|
84
63
|
@desc Adds the provided value to the internal queue to be loaded, if necessary. This is used internally in new d3plus visualizations that fold in additional data sources, like the nodes and links of Network or the topojson of Geomap.
|
|
85
64
|
@param {Array|String|Object} data The data to be loaded
|
|
86
65
|
@param {Function} [data] An optional data formatter/callback
|
|
87
66
|
@param {String} data The internal Viz method to be modified
|
|
88
|
-
*/function
|
|
67
|
+
*/function l(t){return Array.from(function*(t){for(var e of t)yield*e}(t))}
|
|
89
68
|
/**
|
|
90
69
|
@function unique
|
|
91
70
|
@desc ES5 implementation to reduce an Array of values to unique instances.
|
|
@@ -95,7 +74,7 @@ let e=1===c(h)?h[0]:h;a?(n=a(1===c(h)?h[0]:h),"data"===s&&S(n)?(e=n.data||[],del
|
|
|
95
74
|
unique(["apple", "banana", "apple"]);
|
|
96
75
|
@example <caption>returns this</caption>
|
|
97
76
|
["apple", "banana"]
|
|
98
|
-
*/function
|
|
77
|
+
*/function b(t,n=t=>t){let r=t.map(n).map(t=>t instanceof Date?+t:t);return t.filter((t,e)=>{t=n(t);return r.indexOf(t instanceof Date?+t:t)===e})}
|
|
99
78
|
/**
|
|
100
79
|
@function merge
|
|
101
80
|
@desc Combines an Array of Objects together and returns a new Object.
|
|
@@ -108,18 +87,20 @@ let e=1===c(h)?h[0]:h;a?(n=a(1===c(h)?h[0]:h),"data"===s&&S(n)?(e=n.data||[],del
|
|
|
108
87
|
]);
|
|
109
88
|
@example <caption>returns this</caption>
|
|
110
89
|
{id: ["bar", "foo"], group: "A", value: 30, links: [1, 2, 3]}
|
|
111
|
-
*/
|
|
90
|
+
*/var x="$";function E(){}function T(t,e){var n=new E;
|
|
91
|
+
// Copy constructor.
|
|
92
|
+
if(t instanceof E)t.each(function(t,e){n.set(e,t)});else if(Array.isArray(t)){var r,i=-1,o=t.length;if(null==e)for(;++i<o;)n.set(i,t[i]);else for(;++i<o;)n.set(e(r=t[i],i,t),r)}else if(t)for(var u in t)n.set(u,t[u]);return n}function j(){var h,d,e,p=[],u=[];function y(t,n,r,i){if(n>=p.length)return null!=h&&t.sort(h),null!=d?d(t):t;for(var e,o,u,a=-1,f=t.length,s=p[n++],c=T(),l=r();++a<f;)(u=c.get(e=s(o=t[a])+""))?u.push(o):c.set(e,[o]);return c.each(function(t,e){i(l,e,y(t,n,r,i))}),l}return e={object:function(t){return y(t,0,k,S)},map:function(t){return y(t,0,N,O)},entries:function(t){return function n(t,r){var i,o;return++r>p.length?t:(o=u[r-1],null!=d&&r>=p.length?i=t.entries():(i=[],t.each(function(t,e){i.push({key:e,values:n(t,r)})})),null!=o?i.sort(function(t,e){return o(t.key,e.key)}):i)}(y(t,0,N,O),0)},key:function(t){return p.push(t),e},sortKeys:function(t){return u[p.length-1]=t,e},sortValues:function(t){return h=t,e},rollup:function(t){return d=t,e}}}function k(){return{}}function S(t,e,n){t[e]=n}function N(){return T()}function O(t,e,n){t.set(e,n)}function _(){}E.prototype=T.prototype={constructor:E,has:function(t){return x+t in this},get:function(t){return this[x+t]},set:function(t,e){return this[x+t]=e,this},remove:function(t){t=x+t;return t in this&&delete this[t]},clear:function(){for(var t in this)t[0]===x&&delete this[t]},keys:function(){var t,e=[];for(t in this)t[0]===x&&e.push(t.slice(1));return e},values:function(){var t,e=[];for(t in this)t[0]===x&&e.push(this[t]);return e},entries:function(){var t,e=[];for(t in this)t[0]===x&&e.push({key:t.slice(1),value:this[t]});return e},size:function(){var t,e=0;for(t in this)t[0]===x&&++e;return e},empty:function(){for(var t in this)if(t[0]===x)return!1;return!0},each:function(t){for(var e in this)e[0]===x&&t(this[e],e.slice(1),this)}};n=T.prototype;_.prototype={constructor:_,has:n.has,add:function(t){return this[x+(t+="")]=t,this},remove:n.remove,clear:n.clear,values:n.keys,size:n.size,empty:n.empty,each:n.each},t.addToQueue=function(t,e,n){var r,i=t instanceof Array?t:[t];i.find(h)?(r=this._queue.find(t=>t[3]===n),i=[c.bind(this),i,e,n],r?this._queue[this._queue.indexOf(r)]=i:this._queue.push(i)):this["_"+n]=t},t.concat=C,t.fold=A,t.isData=h,t.load=c,t.merge=function i(o,u={}){let t=b(l(o.map(t=>Object.keys(t)))),a={};return t.forEach(e=>{let t;var n,r;u[e]?t=u[e](o,t=>t[e]):(r=(n=o.map(t=>t[e])).map(t=>t||!1===t?t.constructor:t).filter(t=>void 0!==t)).length?0<=r.indexOf(Array)?1===(t=b(t=l(n.map(t=>t instanceof Array?t:[t])))).length&&(t=t[0]):0<=r.indexOf(String)?1===(t=b(n)).length&&(t=t[0]):0<=r.indexOf(Number)?t=(t=>{let e=0;for(var n of t)(n=+n)&&(e+=n);return e})(n):0<=r.indexOf(Object)?t=1===(t=b(n.filter(t=>t))).length?t[0]:i(t):1===(t=b(n.filter(t=>void 0!==t))).length&&(t=t[0]):t=void 0,a[e]=t}),a},t.nest=
|
|
112
93
|
/**
|
|
113
94
|
@function nest
|
|
114
95
|
@summary Extends the base behavior of d3.nest to allow for multiple depth levels.
|
|
115
96
|
@param {Array} *data* The data array to be nested.
|
|
116
97
|
@param {Array} *keys* An array of key accessors that signify each nest level.
|
|
117
98
|
@private
|
|
118
|
-
|
|
99
|
+
*/function(t,e){e instanceof Array||(e=[e]);var n=j();for(let t=0;t<e.length;t++)n.key(e[t]);
|
|
119
100
|
/**
|
|
120
101
|
Bubbles up values that do not nest to the furthest key.
|
|
121
102
|
@param {Array} *values* The "values" of a nest object.
|
|
122
103
|
@private
|
|
123
104
|
*/
|
|
124
|
-
return function
|
|
105
|
+
return function e(t){return t.map(t=>{if(t.key&&t.values){if("undefined"===t.values[0].key)return t.values[0].values[0];t.values=e(t.values)}return t})}(n.entries(t))},t.unique=b});
|
|
125
106
|
//# sourceMappingURL=d3plus-data.full.js.map
|