2021-08-13 20:00:03 +02:00
|
|
|
|
/******/ (() => { // webpackBootstrap
|
|
|
|
|
/******/ var __webpack_modules__ = ({
|
|
|
|
|
|
2021-09-02 18:15:15 +02:00
|
|
|
|
/***/ "./node_modules/natural-orderby/esm/natural-orderby.js":
|
|
|
|
|
/*!*************************************************************!*\
|
|
|
|
|
!*** ./node_modules/natural-orderby/esm/natural-orderby.js ***!
|
|
|
|
|
\*************************************************************/
|
|
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
|
|
|
|
"use strict";
|
|
|
|
|
__webpack_require__.r(__webpack_exports__);
|
|
|
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
|
|
|
/* harmony export */ "orderBy": () => (/* binding */ orderBy),
|
|
|
|
|
/* harmony export */ "compare": () => (/* binding */ compare)
|
|
|
|
|
/* harmony export */ });
|
|
|
|
|
var compareNumbers = function compareNumbers(numberA, numberB) {
|
|
|
|
|
if (numberA < numberB) {
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (numberA > numberB) {
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var RE_NUMBERS = /(^0x[\da-fA-F]+$|^([+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?(?!\.\d+)(?=\D|\s|$))|\d+)/g;
|
|
|
|
|
var RE_LEADING_OR_TRAILING_WHITESPACES = /^\s+|\s+$/g; // trim pre-post whitespace
|
|
|
|
|
|
|
|
|
|
var RE_WHITESPACES = /\s+/g; // normalize all whitespace to single ' ' character
|
|
|
|
|
|
|
|
|
|
var RE_INT_OR_FLOAT = /^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/; // identify integers and floats
|
|
|
|
|
|
|
|
|
|
var RE_DATE = /(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[/-]\d{1,4}[/-]\d{1,4}|^\w+, \w+ \d+, \d{4})/; // identify date strings
|
|
|
|
|
|
|
|
|
|
var RE_LEADING_ZERO = /^0+[1-9]{1}[0-9]*$/;
|
|
|
|
|
var RE_UNICODE_CHARACTERS = /[^\x00-\x80]/;
|
|
|
|
|
|
|
|
|
|
var compareUnicode = function compareUnicode(stringA, stringB) {
|
|
|
|
|
var result = stringA.localeCompare(stringB);
|
|
|
|
|
return result ? result / Math.abs(result) : 0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var stringCompare = function stringCompare(stringA, stringB) {
|
|
|
|
|
if (stringA < stringB) {
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (stringA > stringB) {
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var compareChunks = function compareChunks(chunksA, chunksB) {
|
|
|
|
|
var lengthA = chunksA.length;
|
|
|
|
|
var lengthB = chunksB.length;
|
|
|
|
|
var size = Math.min(lengthA, lengthB);
|
|
|
|
|
|
|
|
|
|
for (var i = 0; i < size; i++) {
|
|
|
|
|
var chunkA = chunksA[i];
|
|
|
|
|
var chunkB = chunksB[i];
|
|
|
|
|
|
|
|
|
|
if (chunkA.normalizedString !== chunkB.normalizedString) {
|
|
|
|
|
if (chunkA.normalizedString === '' !== (chunkB.normalizedString === '')) {
|
|
|
|
|
// empty strings have lowest value
|
|
|
|
|
return chunkA.normalizedString === '' ? -1 : 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (chunkA.parsedNumber !== undefined && chunkB.parsedNumber !== undefined) {
|
|
|
|
|
// compare numbers
|
|
|
|
|
var result = compareNumbers(chunkA.parsedNumber, chunkB.parsedNumber);
|
|
|
|
|
|
|
|
|
|
if (result === 0) {
|
|
|
|
|
// compare string value, if parsed numbers are equal
|
|
|
|
|
// Example:
|
|
|
|
|
// chunkA = { parsedNumber: 1, normalizedString: "001" }
|
|
|
|
|
// chunkB = { parsedNumber: 1, normalizedString: "01" }
|
|
|
|
|
// chunkA.parsedNumber === chunkB.parsedNumber
|
|
|
|
|
// chunkA.normalizedString < chunkB.normalizedString
|
|
|
|
|
return stringCompare(chunkA.normalizedString, chunkB.normalizedString);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
} else if (chunkA.parsedNumber !== undefined || chunkB.parsedNumber !== undefined) {
|
|
|
|
|
// number < string
|
|
|
|
|
return chunkA.parsedNumber !== undefined ? -1 : 1;
|
|
|
|
|
} else if (RE_UNICODE_CHARACTERS.test(chunkA.normalizedString + chunkB.normalizedString) && chunkA.normalizedString.localeCompare) {
|
|
|
|
|
// use locale comparison only if one of the chunks contains unicode characters
|
|
|
|
|
return compareUnicode(chunkA.normalizedString, chunkB.normalizedString);
|
|
|
|
|
} else {
|
|
|
|
|
// use common string comparison for performance reason
|
|
|
|
|
return stringCompare(chunkA.normalizedString, chunkB.normalizedString);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} // if the chunks are equal so far, the one which has more chunks is greater than the other one
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (lengthA > size || lengthB > size) {
|
|
|
|
|
return lengthA <= size ? -1 : 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var compareOtherTypes = function compareOtherTypes(valueA, valueB) {
|
|
|
|
|
if (!valueA.chunks ? valueB.chunks : !valueB.chunks) {
|
|
|
|
|
return !valueA.chunks ? 1 : -1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (valueA.isNaN ? !valueB.isNaN : valueB.isNaN) {
|
|
|
|
|
return valueA.isNaN ? -1 : 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (valueA.isSymbol ? !valueB.isSymbol : valueB.isSymbol) {
|
|
|
|
|
return valueA.isSymbol ? -1 : 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (valueA.isObject ? !valueB.isObject : valueB.isObject) {
|
|
|
|
|
return valueA.isObject ? -1 : 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (valueA.isArray ? !valueB.isArray : valueB.isArray) {
|
|
|
|
|
return valueA.isArray ? -1 : 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (valueA.isFunction ? !valueB.isFunction : valueB.isFunction) {
|
|
|
|
|
return valueA.isFunction ? -1 : 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (valueA.isNull ? !valueB.isNull : valueB.isNull) {
|
|
|
|
|
return valueA.isNull ? -1 : 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var compareValues = function compareValues(valueA, valueB) {
|
|
|
|
|
if (valueA.value === valueB.value) {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (valueA.parsedNumber !== undefined && valueB.parsedNumber !== undefined) {
|
|
|
|
|
return compareNumbers(valueA.parsedNumber, valueB.parsedNumber);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (valueA.chunks && valueB.chunks) {
|
|
|
|
|
return compareChunks(valueA.chunks, valueB.chunks);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return compareOtherTypes(valueA, valueB);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var compareMultiple = function compareMultiple(recordA, recordB, orders) {
|
|
|
|
|
var indexA = recordA.index,
|
|
|
|
|
valuesA = recordA.values;
|
|
|
|
|
var indexB = recordB.index,
|
|
|
|
|
valuesB = recordB.values;
|
|
|
|
|
var length = valuesA.length;
|
|
|
|
|
var ordersLength = orders.length;
|
|
|
|
|
|
|
|
|
|
for (var i = 0; i < length; i++) {
|
|
|
|
|
var order = i < ordersLength ? orders[i] : null;
|
|
|
|
|
|
|
|
|
|
if (order && typeof order === 'function') {
|
|
|
|
|
var result = order(valuesA[i].value, valuesB[i].value);
|
|
|
|
|
|
|
|
|
|
if (result) {
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
var _result = compareValues(valuesA[i], valuesB[i]);
|
|
|
|
|
|
|
|
|
|
if (_result) {
|
|
|
|
|
return _result * (order === 'desc' ? -1 : 1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return indexA - indexB;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var createIdentifierFn = function createIdentifierFn(identifier) {
|
|
|
|
|
if (typeof identifier === 'function') {
|
|
|
|
|
// identifier is already a lookup function
|
|
|
|
|
return identifier;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return function (value) {
|
|
|
|
|
if (Array.isArray(value)) {
|
|
|
|
|
var index = Number(identifier);
|
|
|
|
|
|
|
|
|
|
if (Number.isInteger(index)) {
|
|
|
|
|
return value[index];
|
|
|
|
|
}
|
|
|
|
|
} else if (value && typeof value === 'object' && typeof identifier !== 'function') {
|
|
|
|
|
return value[identifier];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return value;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var stringify = function stringify(value) {
|
|
|
|
|
if (typeof value === 'boolean' || value instanceof Boolean) {
|
|
|
|
|
return Number(value).toString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (typeof value === 'number' || value instanceof Number) {
|
|
|
|
|
return value.toString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (value instanceof Date) {
|
|
|
|
|
return value.getTime().toString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (typeof value === 'string' || value instanceof String) {
|
|
|
|
|
return value.toLowerCase().replace(RE_LEADING_OR_TRAILING_WHITESPACES, '');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return '';
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var parseNumber = function parseNumber(value) {
|
|
|
|
|
if (value.length !== 0) {
|
|
|
|
|
var parsedNumber = Number(value);
|
|
|
|
|
|
|
|
|
|
if (!Number.isNaN(parsedNumber)) {
|
|
|
|
|
return parsedNumber;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return undefined;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var parseDate = function parseDate(value) {
|
|
|
|
|
if (RE_DATE.test(value)) {
|
|
|
|
|
var parsedDate = Date.parse(value);
|
|
|
|
|
|
|
|
|
|
if (!Number.isNaN(parsedDate)) {
|
|
|
|
|
return parsedDate;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return undefined;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var numberify = function numberify(value) {
|
|
|
|
|
var parsedNumber = parseNumber(value);
|
|
|
|
|
|
|
|
|
|
if (parsedNumber !== undefined) {
|
|
|
|
|
return parsedNumber;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return parseDate(value);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var createChunks = function createChunks(value) {
|
|
|
|
|
return value.replace(RE_NUMBERS, '\0$1\0').replace(/\0$/, '').replace(/^\0/, '').split('\0');
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var normalizeAlphaChunk = function normalizeAlphaChunk(chunk) {
|
|
|
|
|
return chunk.replace(RE_WHITESPACES, ' ').replace(RE_LEADING_OR_TRAILING_WHITESPACES, '');
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var normalizeNumericChunk = function normalizeNumericChunk(chunk, index, chunks) {
|
|
|
|
|
if (RE_INT_OR_FLOAT.test(chunk)) {
|
|
|
|
|
// don´t parse a number, if there´s a preceding decimal point
|
|
|
|
|
// to keep significance
|
|
|
|
|
// e.g. 1.0020, 1.020
|
|
|
|
|
if (!RE_LEADING_ZERO.test(chunk) || index === 0 || chunks[index - 1] !== '.') {
|
|
|
|
|
return parseNumber(chunk) || 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return undefined;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var createChunkMap = function createChunkMap(chunk, index, chunks) {
|
|
|
|
|
return {
|
|
|
|
|
parsedNumber: normalizeNumericChunk(chunk, index, chunks),
|
|
|
|
|
normalizedString: normalizeAlphaChunk(chunk)
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var createChunkMaps = function createChunkMaps(value) {
|
|
|
|
|
var chunksMaps = createChunks(value).map(createChunkMap);
|
|
|
|
|
return chunksMaps;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var isFunction = function isFunction(value) {
|
|
|
|
|
return typeof value === 'function';
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var isNaN = function isNaN(value) {
|
|
|
|
|
return Number.isNaN(value) || value instanceof Number && Number.isNaN(value.valueOf());
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var isNull = function isNull(value) {
|
|
|
|
|
return value === null;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var isObject = function isObject(value) {
|
|
|
|
|
return value !== null && typeof value === 'object' && !Array.isArray(value) && !(value instanceof Number) && !(value instanceof String) && !(value instanceof Boolean) && !(value instanceof Date);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var isSymbol = function isSymbol(value) {
|
|
|
|
|
return typeof value === 'symbol';
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var isUndefined = function isUndefined(value) {
|
|
|
|
|
return value === undefined;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var getMappedValueRecord = function getMappedValueRecord(value) {
|
|
|
|
|
if (typeof value === 'string' || value instanceof String || (typeof value === 'number' || value instanceof Number) && !isNaN(value) || typeof value === 'boolean' || value instanceof Boolean || value instanceof Date) {
|
|
|
|
|
var stringValue = stringify(value);
|
|
|
|
|
var parsedNumber = numberify(stringValue);
|
|
|
|
|
var chunks = createChunkMaps(parsedNumber ? "" + parsedNumber : stringValue);
|
|
|
|
|
return {
|
|
|
|
|
parsedNumber: parsedNumber,
|
|
|
|
|
chunks: chunks,
|
|
|
|
|
value: value
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
isArray: Array.isArray(value),
|
|
|
|
|
isFunction: isFunction(value),
|
|
|
|
|
isNaN: isNaN(value),
|
|
|
|
|
isNull: isNull(value),
|
|
|
|
|
isObject: isObject(value),
|
|
|
|
|
isSymbol: isSymbol(value),
|
|
|
|
|
isUndefined: isUndefined(value),
|
|
|
|
|
value: value
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var getValueByIdentifier = function getValueByIdentifier(value, getValue) {
|
|
|
|
|
return getValue(value);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var getElementByIndex = function getElementByIndex(collection, index) {
|
|
|
|
|
return collection[index];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var baseOrderBy = function baseOrderBy(collection, identifiers, orders) {
|
|
|
|
|
var identifierFns = identifiers.length ? identifiers.map(createIdentifierFn) : [function (value) {
|
|
|
|
|
return value;
|
|
|
|
|
}]; // temporary array holds elements with position and sort-values
|
|
|
|
|
|
|
|
|
|
var mappedCollection = collection.map(function (element, index) {
|
|
|
|
|
var values = identifierFns.map(function (identifier) {
|
|
|
|
|
return getValueByIdentifier(element, identifier);
|
|
|
|
|
}).map(getMappedValueRecord);
|
|
|
|
|
return {
|
|
|
|
|
index: index,
|
|
|
|
|
values: values
|
|
|
|
|
};
|
|
|
|
|
}); // iterate over values and compare values until a != b or last value reached
|
|
|
|
|
|
|
|
|
|
mappedCollection.sort(function (recordA, recordB) {
|
|
|
|
|
return compareMultiple(recordA, recordB, orders);
|
|
|
|
|
});
|
|
|
|
|
return mappedCollection.map(function (element) {
|
|
|
|
|
return getElementByIndex(collection, element.index);
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var getIdentifiers = function getIdentifiers(identifiers) {
|
|
|
|
|
if (!identifiers) {
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var identifierList = !Array.isArray(identifiers) ? [identifiers] : [].concat(identifiers);
|
|
|
|
|
|
|
|
|
|
if (identifierList.some(function (identifier) {
|
|
|
|
|
return typeof identifier !== 'string' && typeof identifier !== 'number' && typeof identifier !== 'function';
|
|
|
|
|
})) {
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return identifierList;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var getOrders = function getOrders(orders) {
|
|
|
|
|
if (!orders) {
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var orderList = !Array.isArray(orders) ? [orders] : [].concat(orders);
|
|
|
|
|
|
|
|
|
|
if (orderList.some(function (order) {
|
|
|
|
|
return order !== 'asc' && order !== 'desc' && typeof order !== 'function';
|
|
|
|
|
})) {
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return orderList;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Creates an array of elements, natural sorted by specified identifiers and
|
|
|
|
|
* the corresponding sort orders. This method implements a stable sort
|
|
|
|
|
* algorithm, which means the original sort order of equal elements is
|
|
|
|
|
* preserved.
|
|
|
|
|
*
|
|
|
|
|
* If `collection` is an array of primitives, `identifiers` may be unspecified.
|
|
|
|
|
* Otherwise, you should specify `identifiers` to sort by or `collection` will
|
|
|
|
|
* be returned unsorted. An identifier can expressed by:
|
|
|
|
|
*
|
|
|
|
|
* - an index position, if `collection` is a nested array,
|
|
|
|
|
* - a property name, if `collection` is an array of objects,
|
|
|
|
|
* - a function which returns a particular value from an element of a nested array or an array of objects. This function will be invoked by passing one element of `collection`.
|
|
|
|
|
*
|
|
|
|
|
* If `orders` is unspecified, all values are sorted in ascending order.
|
|
|
|
|
* Otherwise, specify an order of `'desc'` for descending or `'asc'` for
|
|
|
|
|
* ascending sort order of corresponding values. You may also specify a compare
|
|
|
|
|
* function for an order, which will be invoked by two arguments:
|
|
|
|
|
* `(valueA, valueB)`. It must return a number representing the sort order.
|
|
|
|
|
*
|
|
|
|
|
* @example
|
|
|
|
|
*
|
|
|
|
|
* import { orderBy } from 'natural-orderby';
|
|
|
|
|
*
|
|
|
|
|
* const users = [
|
|
|
|
|
* {
|
|
|
|
|
* username: 'Bamm-Bamm',
|
|
|
|
|
* ip: '192.168.5.2',
|
|
|
|
|
* datetime: 'Fri Jun 15 2018 16:48:00 GMT+0200 (CEST)'
|
|
|
|
|
* },
|
|
|
|
|
* {
|
|
|
|
|
* username: 'Wilma',
|
|
|
|
|
* ip: '192.168.10.1',
|
|
|
|
|
* datetime: '14 Jun 2018 00:00:00 PDT'
|
|
|
|
|
* },
|
|
|
|
|
* {
|
|
|
|
|
* username: 'dino',
|
|
|
|
|
* ip: '192.168.0.2',
|
|
|
|
|
* datetime: 'June 15, 2018 14:48:00'
|
|
|
|
|
* },
|
|
|
|
|
* {
|
|
|
|
|
* username: 'Barney',
|
|
|
|
|
* ip: '192.168.1.1',
|
|
|
|
|
* datetime: 'Thu, 14 Jun 2018 07:00:00 GMT'
|
|
|
|
|
* },
|
|
|
|
|
* {
|
|
|
|
|
* username: 'Pebbles',
|
|
|
|
|
* ip: '192.168.1.21',
|
|
|
|
|
* datetime: '15 June 2018 14:48 UTC'
|
|
|
|
|
* },
|
|
|
|
|
* {
|
|
|
|
|
* username: 'Hoppy',
|
|
|
|
|
* ip: '192.168.5.10',
|
|
|
|
|
* datetime: '2018-06-15T14:48:00.000Z'
|
|
|
|
|
* },
|
|
|
|
|
* ];
|
|
|
|
|
*
|
|
|
|
|
* orderBy(
|
|
|
|
|
* users,
|
|
|
|
|
* [v => v.datetime, v => v.ip],
|
|
|
|
|
* ['desc', 'asc']
|
|
|
|
|
* );
|
|
|
|
|
*
|
|
|
|
|
* // => [
|
|
|
|
|
* // {
|
|
|
|
|
* // username: 'dino',
|
|
|
|
|
* // ip: '192.168.0.2',
|
|
|
|
|
* // datetime: 'June 15, 2018 14:48:00',
|
|
|
|
|
* // },
|
|
|
|
|
* // {
|
|
|
|
|
* // username: 'Pebbles',
|
|
|
|
|
* // ip: '192.168.1.21',
|
|
|
|
|
* // datetime: '15 June 2018 14:48 UTC',
|
|
|
|
|
* // },
|
|
|
|
|
* // {
|
|
|
|
|
* // username: 'Bamm-Bamm',
|
|
|
|
|
* // ip: '192.168.5.2',
|
|
|
|
|
* // datetime: 'Fri Jun 15 2018 16:48:00 GMT+0200 (CEST)',
|
|
|
|
|
* // },
|
|
|
|
|
* // {
|
|
|
|
|
* // username: 'Hoppy',
|
|
|
|
|
* // ip: '192.168.5.10',
|
|
|
|
|
* // datetime: '2018-06-15T14:48:00.000Z',
|
|
|
|
|
* // },
|
|
|
|
|
* // {
|
|
|
|
|
* // username: 'Barney',
|
|
|
|
|
* // ip: '192.168.1.1',
|
|
|
|
|
* // datetime: 'Thu, 14 Jun 2018 07:00:00 GMT',
|
|
|
|
|
* // },
|
|
|
|
|
* // {
|
|
|
|
|
* // username: 'Wilma',
|
|
|
|
|
* // ip: '192.168.10.1',
|
|
|
|
|
* // datetime: '14 Jun 2018 00:00:00 PDT',
|
|
|
|
|
* // },
|
|
|
|
|
* // ]
|
|
|
|
|
*/
|
|
|
|
|
function orderBy(collection, identifiers, orders) {
|
|
|
|
|
if (!collection || !Array.isArray(collection)) {
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var validatedIdentifiers = getIdentifiers(identifiers);
|
|
|
|
|
var validatedOrders = getOrders(orders);
|
|
|
|
|
return baseOrderBy(collection, validatedIdentifiers, validatedOrders);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var baseCompare = function baseCompare(options) {
|
|
|
|
|
return function (valueA, valueB) {
|
|
|
|
|
var a = getMappedValueRecord(valueA);
|
|
|
|
|
var b = getMappedValueRecord(valueB);
|
|
|
|
|
var result = compareValues(a, b);
|
|
|
|
|
return result * (options.order === 'desc' ? -1 : 1);
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var isValidOrder = function isValidOrder(value) {
|
|
|
|
|
return typeof value === 'string' && (value === 'asc' || value === 'desc');
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var getOptions = function getOptions(customOptions) {
|
|
|
|
|
var order = 'asc';
|
|
|
|
|
|
|
|
|
|
if (typeof customOptions === 'string' && isValidOrder(customOptions)) {
|
|
|
|
|
order = customOptions;
|
|
|
|
|
} else if (customOptions && typeof customOptions === 'object' && customOptions.order && isValidOrder(customOptions.order)) {
|
|
|
|
|
order = customOptions.order;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
order: order
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Creates a compare function that defines the natural sort order considering
|
|
|
|
|
* the given `options` which may be passed to [`Array.prototype.sort()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort).
|
|
|
|
|
*
|
|
|
|
|
* If `options` or its property `order` is unspecified, values are sorted in
|
|
|
|
|
* ascending sort order. Otherwise, specify an order of `'desc'` for descending
|
|
|
|
|
* or `'asc'` for ascending sort order of values.
|
|
|
|
|
*
|
|
|
|
|
* @example
|
|
|
|
|
*
|
|
|
|
|
* import { compare } from 'natural-orderby';
|
|
|
|
|
*
|
|
|
|
|
* const users = [
|
|
|
|
|
* {
|
|
|
|
|
* username: 'Bamm-Bamm',
|
|
|
|
|
* lastLogin: {
|
|
|
|
|
* ip: '192.168.5.2',
|
|
|
|
|
* datetime: 'Fri Jun 15 2018 16:48:00 GMT+0200 (CEST)'
|
|
|
|
|
* },
|
|
|
|
|
* },
|
|
|
|
|
* {
|
|
|
|
|
* username: 'Wilma',
|
|
|
|
|
* lastLogin: {
|
|
|
|
|
* ip: '192.168.10.1',
|
|
|
|
|
* datetime: '14 Jun 2018 00:00:00 PDT'
|
|
|
|
|
* },
|
|
|
|
|
* },
|
|
|
|
|
* {
|
|
|
|
|
* username: 'dino',
|
|
|
|
|
* lastLogin: {
|
|
|
|
|
* ip: '192.168.0.2',
|
|
|
|
|
* datetime: 'June 15, 2018 14:48:00'
|
|
|
|
|
* },
|
|
|
|
|
* },
|
|
|
|
|
* {
|
|
|
|
|
* username: 'Barney',
|
|
|
|
|
* lastLogin: {
|
|
|
|
|
* ip: '192.168.1.1',
|
|
|
|
|
* datetime: 'Thu, 14 Jun 2018 07:00:00 GMT'
|
|
|
|
|
* },
|
|
|
|
|
* },
|
|
|
|
|
* {
|
|
|
|
|
* username: 'Pebbles',
|
|
|
|
|
* lastLogin: {
|
|
|
|
|
* ip: '192.168.1.21',
|
|
|
|
|
* datetime: '15 June 2018 14:48 UTC'
|
|
|
|
|
* },
|
|
|
|
|
* },
|
|
|
|
|
* {
|
|
|
|
|
* username: 'Hoppy',
|
|
|
|
|
* lastLogin: {
|
|
|
|
|
* ip: '192.168.5.10',
|
|
|
|
|
* datetime: '2018-06-15T14:48:00.000Z'
|
|
|
|
|
* },
|
|
|
|
|
* },
|
|
|
|
|
* ];
|
|
|
|
|
*
|
|
|
|
|
* users.sort((a, b) => compare()(a.ip, b.ip));
|
|
|
|
|
*
|
|
|
|
|
* // => [
|
|
|
|
|
* // {
|
|
|
|
|
* // username: 'dino',
|
|
|
|
|
* // ip: '192.168.0.2',
|
|
|
|
|
* // datetime: 'June 15, 2018 14:48:00'
|
|
|
|
|
* // },
|
|
|
|
|
* // {
|
|
|
|
|
* // username: 'Barney',
|
|
|
|
|
* // ip: '192.168.1.1',
|
|
|
|
|
* // datetime: 'Thu, 14 Jun 2018 07:00:00 GMT'
|
|
|
|
|
* // },
|
|
|
|
|
* // {
|
|
|
|
|
* // username: 'Pebbles',
|
|
|
|
|
* // ip: '192.168.1.21',
|
|
|
|
|
* // datetime: '15 June 2018 14:48 UTC'
|
|
|
|
|
* // },
|
|
|
|
|
* // {
|
|
|
|
|
* // username: 'Bamm-Bamm',
|
|
|
|
|
* // ip: '192.168.5.2',
|
|
|
|
|
* // datetime: 'Fri Jun 15 2018 16:48:00 GMT+0200 (CEST)'
|
|
|
|
|
* // },
|
|
|
|
|
* // {
|
|
|
|
|
* // username: 'Hoppy',
|
|
|
|
|
* // ip: '192.168.5.10',
|
|
|
|
|
* // datetime: '2018-06-15T14:48:00.000Z'
|
|
|
|
|
* // },
|
|
|
|
|
* // {
|
|
|
|
|
* // username: 'Wilma',
|
|
|
|
|
* // ip: '192.168.10.1',
|
|
|
|
|
* // datetime: '14 Jun 2018 00:00:00 PDT'
|
|
|
|
|
* // }
|
|
|
|
|
* // ]
|
|
|
|
|
*/
|
|
|
|
|
function compare(options) {
|
|
|
|
|
var validatedOptions = getOptions(options);
|
|
|
|
|
return baseCompare(validatedOptions);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Javascript natural sort algorithm with unicode support
|
|
|
|
|
* based on chunking idea by Dave Koelle
|
|
|
|
|
*
|
|
|
|
|
* https://github.com/yobacca/natural-sort-order
|
|
|
|
|
* released under MIT License
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
2021-08-13 20:00:03 +02:00
|
|
|
|
/***/ "./node_modules/papaparse/papaparse.min.js":
|
|
|
|
|
/*!*************************************************!*\
|
|
|
|
|
!*** ./node_modules/papaparse/papaparse.min.js ***!
|
|
|
|
|
\*************************************************/
|
|
|
|
|
/***/ (function(module, exports) {
|
|
|
|
|
|
|
|
|
|
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* @license
|
|
|
|
|
Papa Parse
|
|
|
|
|
v5.3.1
|
|
|
|
|
https://github.com/mholt/PapaParse
|
|
|
|
|
License: MIT
|
|
|
|
|
*/
|
|
|
|
|
!function(e,t){ true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (t),
|
|
|
|
|
__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
|
|
|
|
|
(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
|
|
|
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):0}(this,function s(){"use strict";var f="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==f?f:{};var n=!f.document&&!!f.postMessage,o=n&&/blob:/i.test((f.location||{}).protocol),a={},h=0,b={parse:function(e,t){var i=(t=t||{}).dynamicTyping||!1;M(i)&&(t.dynamicTypingFunction=i,i={});if(t.dynamicTyping=i,t.transform=!!M(t.transform)&&t.transform,t.worker&&b.WORKERS_SUPPORTED){var r=function(){if(!b.WORKERS_SUPPORTED)return!1;var e=(i=f.URL||f.webkitURL||null,r=s.toString(),b.BLOB_URL||(b.BLOB_URL=i.createObjectURL(new Blob(["(",r,")();"],{type:"text/javascript"})))),t=new f.Worker(e);var i,r;return t.onmessage=_,t.id=h++,a[t.id]=t}();return r.userStep=t.step,r.userChunk=t.chunk,r.userComplete=t.complete,r.userError=t.error,t.step=M(t.step),t.chunk=M(t.chunk),t.complete=M(t.complete),t.error=M(t.error),delete t.worker,void r.postMessage({input:e,config:t,workerId:r.id})}var n=null;b.NODE_STREAM_INPUT,"string"==typeof e?n=t.download?new l(t):new p(t):!0===e.readable&&M(e.read)&&M(e.on)?n=new g(t):(f.File&&e instanceof File||e instanceof Object)&&(n=new c(t));return n.stream(e)},unparse:function(e,t){var n=!1,_=!0,m=",",y="\r\n",s='"',a=s+s,i=!1,r=null,o=!1;!function(){if("object"!=typeof t)return;"string"!=typeof t.delimiter||b.BAD_DELIMITERS.filter(function(e){return-1!==t.delimiter.indexOf(e)}).length||(m=t.delimiter);("boolean"==typeof t.quotes||"function"==typeof t.quotes||Array.isArray(t.quotes))&&(n=t.quotes);"boolean"!=typeof t.skipEmptyLines&&"string"!=typeof t.skipEmptyLines||(i=t.skipEmptyLines);"string"==typeof t.newline&&(y=t.newline);"string"==typeof t.quoteChar&&(s=t.quoteChar);"boolean"==typeof t.header&&(_=t.header);if(Array.isArray(t.columns)){if(0===t.columns.length)throw new Error("Option columns is empty");r=t.columns}void 0!==t.escapeChar&&(a=t.escapeChar+s);"boolean"==typeof t.escapeFormulae&&(o=t.escapeFormulae)}();var h=new RegExp(j(s),"g");"string"==typeof e&&(e=JSON.parse(e));if(Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return u(null,e,i);if("object"==typeof e[0])return u(r||Object.keys(e[0]),e,i)}else if("object"==typeof e)return"string"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:"object"==typeof e.data[0]?Object.keys(e.data[0]):[]),Array.isArray(e.data[0])||"object"==typeof e.data[0]||(e.data=[e.data])),u(e.fields||[],e.data||[],i);throw new Error("Unable to serialize unrecognized input");function u(e,t,i){var r="";"string"==typeof e&&(e=JSON.parse(e)),"string"==typeof t&&(t=JSON.parse(t));var n=Array.isArray(e)&&0<e.length,s=!Array.isArray(t[0]);if(n&&_){for(var a=0;a<e.length;a++)0<a&&(r+=m),r+=v(e[a],a);0<t.length&&(r+=y)}for(var o=0;o<t.length;o++){var h=n?e.length:t[o].length,u=!1,f=n?0===Object.keys(t[o]).length:0===t[o].length;if(i&&!n&&(u="greedy"===i?""===t[o].join("").trim():1===t[o].length&&0===t[o][0].length),"greedy"===i&&n){for(var d=[],l=0;l<h;l++){var c=s?e[l]:l;d.push(t[o][c])}u=""===d.join("").trim()}if(!u){for(var p=0;p<h;p++){0<p&&!f&&(r+=m);var g=n&&s?e[p]:p;r+=v(t[o][g],p)}o<t.length-1&&(!i||0<h&&!f)&&(r+=y)}}return r}function v(e,t){if(null==e)return"";if(e.constructor===Date)return JSON.stringify(e).slice(1,25);!0===o&&"string"==typeof e&&null!==e.match(/^[=+\-@].*$/)&&(e="'"+e);var i=e.toString().replace(h,a),r="boolean"==typeof n&&n||"function"==typeof n&&n(e,t)||Array.isArray(n)&&n[t]||function(e,t){for(var i=0;i<t.length;i++)if(-1<e.indexOf(t[i]))return!0;return!1}(i,b.BAD_DELIMITERS)||-1<i.indexOf(m)||" "===i.charAt(0)||" "===i.charAt(i.length-1);return r?s+i+s:i}}};if(b.RECORD_SEP=String.fromCharCode(30),b.UNIT_SEP=String.fromCharCode(31),b.BYTE_ORDER_MARK="\ufeff",b.BAD_DELIMITERS=["\r","\n",'"',b.BYTE_ORDER_MARK],b.WORKERS_SUPPORTED=!n&&!!f.Worker,b.NODE_STREAM_INPUT=1,b.LocalChunkSize=10485760,b.RemoteChunkSize=5242880,b.DefaultDelimiter=",",b.Parser=E,b.ParserHandle=i,b.NetworkStreamer=l,b.FileStreamer=c,b.StringS
|
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
2021-08-30 18:10:21 +02:00
|
|
|
|
/***/ "./src/freeDatas2HTML.ts":
|
|
|
|
|
/*!*******************************!*\
|
|
|
|
|
!*** ./src/freeDatas2HTML.ts ***!
|
|
|
|
|
\*******************************/
|
2021-08-13 20:00:03 +02:00
|
|
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
|
|
|
|
|
"use strict";
|
|
|
|
|
__webpack_require__.r(__webpack_exports__);
|
|
|
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
2021-08-30 18:10:21 +02:00
|
|
|
|
/* harmony export */ "freeDatas2HTML": () => (/* binding */ freeDatas2HTML)
|
2021-08-13 20:00:03 +02:00
|
|
|
|
/* harmony export */ });
|
|
|
|
|
var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
|
|
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
|
|
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
|
|
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
|
|
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
|
|
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
|
|
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
|
|
|
|
|
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
|
|
|
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
|
|
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
|
|
|
function step(op) {
|
|
|
|
|
if (f) throw new TypeError("Generator is already executing.");
|
|
|
|
|
while (_) try {
|
|
|
|
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
|
|
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
|
|
|
switch (op[0]) {
|
|
|
|
|
case 0: case 1: t = op; break;
|
|
|
|
|
case 4: _.label++; return { value: op[1], done: false };
|
|
|
|
|
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
|
|
|
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
|
|
|
default:
|
|
|
|
|
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
|
|
|
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
|
|
|
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
|
|
|
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
|
|
|
if (t[2]) _.ops.pop();
|
|
|
|
|
_.trys.pop(); continue;
|
|
|
|
|
}
|
|
|
|
|
op = body.call(thisArg, _);
|
|
|
|
|
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
|
|
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
var Papa = __webpack_require__(/*! papaparse */ "./node_modules/papaparse/papaparse.min.js");
|
|
|
|
|
var errors = __webpack_require__(/*! ./errors.js */ "./src/errors.js");
|
2021-09-02 18:15:15 +02:00
|
|
|
|
var compare = __webpack_require__(/*! natural-orderby */ "./node_modules/natural-orderby/esm/natural-orderby.js").compare;
|
2021-08-30 18:10:21 +02:00
|
|
|
|
var freeDatas2HTML = (function () {
|
|
|
|
|
function freeDatas2HTML() {
|
2021-08-13 20:00:03 +02:00
|
|
|
|
this._datasViewElt = { id: "", eltDOM: undefined };
|
|
|
|
|
this._datasSourceUrl = "";
|
|
|
|
|
this._datasSelectors = [];
|
2021-09-02 18:15:15 +02:00
|
|
|
|
this._datasSortingColumns = [];
|
2021-08-13 20:00:03 +02:00
|
|
|
|
this.parseMeta = undefined;
|
|
|
|
|
this.parseDatas = [];
|
|
|
|
|
this.parseErrors = [];
|
|
|
|
|
this.datasHTML = "";
|
|
|
|
|
this.stopIfParseErrors = false;
|
|
|
|
|
}
|
2021-08-30 18:10:21 +02:00
|
|
|
|
Object.defineProperty(freeDatas2HTML.prototype, "datasViewElt", {
|
2021-08-13 20:00:03 +02:00
|
|
|
|
set: function (elt) {
|
|
|
|
|
var checkContainerExist = document.getElementById(elt.id);
|
|
|
|
|
if (checkContainerExist === null)
|
|
|
|
|
throw new Error(errors.elementNotFound + elt.id);
|
|
|
|
|
else {
|
|
|
|
|
this._datasViewElt.id = elt.id;
|
|
|
|
|
this._datasViewElt.eltDOM = checkContainerExist;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
enumerable: false,
|
|
|
|
|
configurable: true
|
|
|
|
|
});
|
2021-08-30 18:10:21 +02:00
|
|
|
|
Object.defineProperty(freeDatas2HTML.prototype, "datasSourceUrl", {
|
2021-08-13 20:00:03 +02:00
|
|
|
|
set: function (url) {
|
|
|
|
|
if (url.trim().length === 0)
|
|
|
|
|
throw new Error(errors.needUrl);
|
|
|
|
|
else
|
|
|
|
|
this._datasSourceUrl = url.trim();
|
|
|
|
|
},
|
|
|
|
|
enumerable: false,
|
|
|
|
|
configurable: true
|
|
|
|
|
});
|
2021-08-30 18:10:21 +02:00
|
|
|
|
Object.defineProperty(freeDatas2HTML.prototype, "datasSelectors", {
|
2021-08-13 20:00:03 +02:00
|
|
|
|
get: function () {
|
|
|
|
|
return this._datasSelectors;
|
|
|
|
|
},
|
|
|
|
|
set: function (selectionElts) {
|
|
|
|
|
this._datasSelectors = [];
|
|
|
|
|
var checkContainerExist;
|
|
|
|
|
for (var i = 0; i < selectionElts.length; i++) {
|
|
|
|
|
checkContainerExist = document.getElementById(selectionElts[i].id);
|
|
|
|
|
if (checkContainerExist === null)
|
|
|
|
|
console.error(errors.elementNotFound + selectionElts[i].id);
|
2021-09-02 18:15:15 +02:00
|
|
|
|
else if (Number.isInteger(selectionElts[i].datasFieldNb) === false || selectionElts[i].datasFieldNb < 0)
|
2021-08-13 20:00:03 +02:00
|
|
|
|
console.error(errors.needNaturalNumber);
|
|
|
|
|
else {
|
|
|
|
|
selectionElts[i].eltDOM = checkContainerExist;
|
2021-09-02 18:15:15 +02:00
|
|
|
|
if (selectionElts[i].separator !== undefined && selectionElts[i].separator === "")
|
|
|
|
|
selectionElts[i].separator = undefined;
|
2021-08-13 20:00:03 +02:00
|
|
|
|
this._datasSelectors.push(selectionElts[i]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
enumerable: false,
|
|
|
|
|
configurable: true
|
|
|
|
|
});
|
2021-09-02 18:15:15 +02:00
|
|
|
|
Object.defineProperty(freeDatas2HTML.prototype, "datasSortingColumns", {
|
|
|
|
|
get: function () {
|
|
|
|
|
return this._datasSortingColumns;
|
|
|
|
|
},
|
|
|
|
|
set: function (sortingColumns) {
|
|
|
|
|
this._datasSortingColumns = [];
|
|
|
|
|
for (var i = 0; i < sortingColumns.length; i++) {
|
|
|
|
|
if (Number.isInteger(sortingColumns[i].datasFieldNb) === false || sortingColumns[i].datasFieldNb < 0)
|
|
|
|
|
console.error(errors.needNaturalNumber);
|
|
|
|
|
else {
|
|
|
|
|
sortingColumns[i].order = undefined;
|
|
|
|
|
this._datasSortingColumns.push(sortingColumns[i]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
enumerable: false,
|
|
|
|
|
configurable: true
|
|
|
|
|
});
|
2021-08-30 18:10:21 +02:00
|
|
|
|
freeDatas2HTML.prototype.parse = function () {
|
2021-08-13 20:00:03 +02:00
|
|
|
|
return __awaiter(this, void 0, void 0, function () {
|
|
|
|
|
var converter;
|
|
|
|
|
return __generator(this, function (_a) {
|
|
|
|
|
converter = this;
|
|
|
|
|
return [2, new Promise(function (resolve, reject) {
|
|
|
|
|
if (converter._datasSourceUrl !== "") {
|
|
|
|
|
Papa.parse(converter._datasSourceUrl, {
|
|
|
|
|
quoteChar: '"',
|
|
|
|
|
header: true,
|
|
|
|
|
complete: function (results) {
|
|
|
|
|
converter.parseErrors = results.errors;
|
|
|
|
|
converter.parseDatas = results.data;
|
|
|
|
|
var realFields = [];
|
|
|
|
|
for (var i in results.meta.fields) {
|
|
|
|
|
if (results.meta.fields[i].trim() !== "")
|
|
|
|
|
realFields.push(results.meta.fields[i]);
|
|
|
|
|
}
|
|
|
|
|
results.meta.fields = realFields;
|
|
|
|
|
converter.parseMeta = results.meta;
|
|
|
|
|
resolve(true);
|
|
|
|
|
},
|
|
|
|
|
error: function (error) {
|
|
|
|
|
reject(new Error(errors.parserFail));
|
|
|
|
|
},
|
|
|
|
|
download: true,
|
|
|
|
|
skipEmptyLines: true,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
reject(new Error(errors.needUrl));
|
|
|
|
|
})];
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
};
|
2021-08-30 18:10:21 +02:00
|
|
|
|
freeDatas2HTML.prototype.run = function () {
|
2021-08-13 20:00:03 +02:00
|
|
|
|
return __awaiter(this, void 0, void 0, function () {
|
2021-09-02 18:15:15 +02:00
|
|
|
|
var converter_1, selectorsHTML, i, values, colName, row, checkedValue, checkedValues, i_1, checkedValue, j, selectElement, i;
|
2021-08-13 20:00:03 +02:00
|
|
|
|
return __generator(this, function (_a) {
|
|
|
|
|
switch (_a.label) {
|
|
|
|
|
case 0:
|
|
|
|
|
if (this._datasViewElt.eltDOM === undefined)
|
|
|
|
|
throw new Error(errors.needDatasElt);
|
|
|
|
|
if (this._datasSourceUrl === "")
|
|
|
|
|
throw new Error(errors.needUrl);
|
|
|
|
|
return [4, this.parse()];
|
|
|
|
|
case 1:
|
|
|
|
|
_a.sent();
|
|
|
|
|
if (this.parseDatas.length === 0 || this.parseMeta.fields === undefined)
|
|
|
|
|
throw new Error(errors.datasNotFound);
|
|
|
|
|
else if (this.stopIfParseErrors && this.parseErrors.length !== 0)
|
|
|
|
|
console.error(this.parseErrors);
|
|
|
|
|
else {
|
|
|
|
|
converter_1 = this;
|
|
|
|
|
if (this._datasSelectors.length > 0) {
|
|
|
|
|
selectorsHTML = [];
|
|
|
|
|
for (i in this._datasSelectors) {
|
2021-09-02 18:15:15 +02:00
|
|
|
|
if (this._datasSelectors[i].datasFieldNb > (this.parseMeta.fields.length - 1))
|
2021-08-13 20:00:03 +02:00
|
|
|
|
throw new Error(errors.selectorFieldNotFound);
|
|
|
|
|
else {
|
2021-09-02 18:15:15 +02:00
|
|
|
|
values = [], colName = this.parseMeta.fields[this._datasSelectors[i].datasFieldNb];
|
2021-08-13 20:00:03 +02:00
|
|
|
|
for (row in this.parseDatas) {
|
2021-09-02 18:15:15 +02:00
|
|
|
|
if (this._datasSelectors[i].separator === undefined) {
|
|
|
|
|
checkedValue = this.parseDatas[row][colName].trim();
|
|
|
|
|
if (checkedValue !== "" && values.indexOf(checkedValue) === -1)
|
|
|
|
|
values.push(checkedValue);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
checkedValues = this.parseDatas[row][colName].split(this._datasSelectors[i].separator);
|
|
|
|
|
for (i_1 in checkedValues) {
|
|
|
|
|
checkedValue = checkedValues[i_1].trim();
|
|
|
|
|
if (checkedValue !== "" && values.indexOf(checkedValue) === -1)
|
|
|
|
|
values.push(checkedValue);
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-08-13 20:00:03 +02:00
|
|
|
|
}
|
|
|
|
|
if (values.length > 0) {
|
2021-09-02 18:15:15 +02:00
|
|
|
|
values.sort(compare());
|
2021-08-13 20:00:03 +02:00
|
|
|
|
this._datasSelectors[i].name = colName;
|
|
|
|
|
this._datasSelectors[i].values = values;
|
2021-08-30 18:10:21 +02:00
|
|
|
|
selectorsHTML[i] = "<label for='freeDatas2HTMLSelector" + i + "'>" + colName + " : </label><select name='freeDatas2HTMLSelector" + i + "' id='freeDatas2HTMLSelector" + i + "'><option value='0'>----</option>";
|
2021-08-13 20:00:03 +02:00
|
|
|
|
for (j in values)
|
|
|
|
|
selectorsHTML[i] += "<option value='" + (Number(j) + 1) + "'>" + values[j] + "</option>";
|
|
|
|
|
selectorsHTML[i] += "</select>";
|
|
|
|
|
this._datasSelectors[i].eltDOM.innerHTML = selectorsHTML[i];
|
2021-08-30 18:10:21 +02:00
|
|
|
|
selectElement = document.getElementById("freeDatas2HTMLSelector" + i);
|
2021-08-13 20:00:03 +02:00
|
|
|
|
selectElement.addEventListener('change', function (e) {
|
|
|
|
|
converter_1.datasHTML = converter_1.createDatasHTML(converter_1.parseMeta.fields, converter_1.parseDatas);
|
2021-09-02 18:15:15 +02:00
|
|
|
|
converter_1.refreshView();
|
2021-08-13 20:00:03 +02:00
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-09-02 18:15:15 +02:00
|
|
|
|
for (i in this._datasSortingColumns) {
|
|
|
|
|
if (this._datasSortingColumns[i].datasFieldNb > (this.parseMeta.fields.length - 1))
|
|
|
|
|
throw new Error(errors.sortingColumnsFieldNotFound);
|
|
|
|
|
}
|
|
|
|
|
this.datasHTML = this.createDatasHTML(this.parseMeta.fields, this.parseDatas);
|
|
|
|
|
this.refreshView();
|
2021-08-13 20:00:03 +02:00
|
|
|
|
return [2, true];
|
|
|
|
|
}
|
|
|
|
|
return [2];
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
};
|
2021-09-02 18:15:15 +02:00
|
|
|
|
freeDatas2HTML.prototype.refreshView = function () {
|
|
|
|
|
if (this._datasViewElt.eltDOM !== undefined) {
|
|
|
|
|
var converter_2 = this;
|
|
|
|
|
this._datasViewElt.eltDOM.innerHTML = this.datasHTML;
|
|
|
|
|
if (this._datasSortingColumns.length > 0) {
|
|
|
|
|
var getTableTh = document.querySelectorAll("table th");
|
|
|
|
|
if (getTableTh !== null) {
|
|
|
|
|
var _loop_1 = function (i) {
|
|
|
|
|
var datasFieldNb = this_1._datasSortingColumns[i].datasFieldNb;
|
|
|
|
|
var htmlContent = getTableTh[datasFieldNb].innerHTML;
|
|
|
|
|
htmlContent = "<a href='#freeDatas2HTMLSorting" + datasFieldNb + "' id='freeDatas2HTMLSorting" + datasFieldNb + "'>" + htmlContent + "</a>";
|
|
|
|
|
getTableTh[datasFieldNb].innerHTML = htmlContent;
|
|
|
|
|
var sortingElement = document.getElementById("freeDatas2HTMLSorting" + datasFieldNb);
|
|
|
|
|
sortingElement.addEventListener('click', function (e) {
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
var order = converter_2.datasSortingColumns[i].order;
|
|
|
|
|
if (order === undefined || order === "desc")
|
|
|
|
|
converter_2.datasSortingColumns[i].order = "asc";
|
|
|
|
|
else
|
|
|
|
|
converter_2.datasSortingColumns[i].order = "desc";
|
|
|
|
|
converter_2._datasSortedColumn = converter_2.datasSortingColumns[i];
|
|
|
|
|
converter_2.datasHTML = converter_2.createDatasHTML(converter_2.parseMeta.fields, converter_2.parseDatas);
|
|
|
|
|
converter_2.refreshView();
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
var this_1 = this;
|
|
|
|
|
for (var i in this._datasSortingColumns) {
|
|
|
|
|
_loop_1(i);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
};
|
2021-08-30 18:10:21 +02:00
|
|
|
|
freeDatas2HTML.prototype.createDatasHTML = function (fields, datas) {
|
2021-08-13 20:00:03 +02:00
|
|
|
|
var checkSelectorExist, filters = [];
|
|
|
|
|
for (var i in this._datasSelectors) {
|
|
|
|
|
checkSelectorExist = document.querySelector("#" + this._datasSelectors[i].id + " select");
|
2021-09-02 18:15:15 +02:00
|
|
|
|
if (checkSelectorExist != null && checkSelectorExist.selectedIndex != 0)
|
|
|
|
|
filters.push({ field: this._datasSelectors[i].name, value: this._datasSelectors[i].values[checkSelectorExist.selectedIndex - 1], separator: this._datasSelectors[i].separator });
|
|
|
|
|
}
|
|
|
|
|
if (this._datasSortedColumn !== undefined) {
|
|
|
|
|
var col_1 = fields[this._datasSortedColumn.datasFieldNb];
|
|
|
|
|
var colOrder_1 = this._datasSortedColumn.order;
|
|
|
|
|
datas.sort(function (a, b) { return compare({ order: colOrder_1 })(a[col_1], b[col_1]); });
|
2021-08-13 20:00:03 +02:00
|
|
|
|
}
|
|
|
|
|
var datasHTML = "<table><thead>";
|
|
|
|
|
for (var i in fields)
|
|
|
|
|
datasHTML += "<th>" + fields[i] + "</th>";
|
|
|
|
|
datasHTML += "</thead><tbody>";
|
|
|
|
|
for (var row in datas) {
|
|
|
|
|
var visible = true;
|
|
|
|
|
if (filters.length !== 0) {
|
|
|
|
|
for (var i in filters) {
|
2021-09-02 18:15:15 +02:00
|
|
|
|
if (filters[i].separator === undefined) {
|
|
|
|
|
if (datas[row][filters[i].field].trim() != filters[i].value)
|
|
|
|
|
visible = false;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
var checkedValues = datas[row][filters[i].field].split(filters[i].separator), finded = false;
|
|
|
|
|
for (var j in checkedValues) {
|
|
|
|
|
if (checkedValues[j].trim() === filters[i].value) {
|
|
|
|
|
finded = true;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!finded)
|
|
|
|
|
visible = false;
|
|
|
|
|
}
|
2021-08-13 20:00:03 +02:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (visible) {
|
|
|
|
|
datasHTML += "<tr>";
|
|
|
|
|
for (var field in datas[row]) {
|
|
|
|
|
if (fields.indexOf(field) !== -1)
|
|
|
|
|
datasHTML += "<td>" + datas[row][field] + "</td>";
|
|
|
|
|
}
|
|
|
|
|
datasHTML += "</tr>";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
datasHTML += "</tbody></table>";
|
|
|
|
|
return datasHTML;
|
|
|
|
|
};
|
2021-08-30 18:10:21 +02:00
|
|
|
|
return freeDatas2HTML;
|
2021-08-13 20:00:03 +02:00
|
|
|
|
}());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
|
|
|
|
/***/ "./src/errors.js":
|
|
|
|
|
/*!***********************!*\
|
|
|
|
|
!*** ./src/errors.js ***!
|
|
|
|
|
\***********************/
|
|
|
|
|
/***/ ((module) => {
|
|
|
|
|
|
|
|
|
|
module.exports =
|
|
|
|
|
{
|
|
|
|
|
datasNotFound : "Aucune donnée n'a été trouvée.",
|
|
|
|
|
elementNotFound : "Aucun élément HTML n'a été trouvé ayant comme \"id\" : ",
|
|
|
|
|
needDatasElt: "Merci de fournir un id valide pour l'élément où afficher les données.",
|
|
|
|
|
needNaturalNumber: "Merci de fournir un nombre entier supérieur ou égal à zéro pour désigner chaque colonne.",
|
|
|
|
|
needUrl: "Merci de fournir une url valide pour le fichier CSV à parser.",
|
|
|
|
|
parserFail: "La lecture des données du fichier a échoué.",
|
|
|
|
|
selectorFieldNotFound: "Au moins une des colonnes devant servir à filtrer les données n'existe pas dans le fichier.",
|
2021-09-02 18:15:15 +02:00
|
|
|
|
sortingColumnsFieldNotFound: "Au moins une des colonnes devant servir à classer les données n'existe pas dans le fichier.",
|
2021-08-13 20:00:03 +02:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/***/ })
|
|
|
|
|
|
|
|
|
|
/******/ });
|
|
|
|
|
/************************************************************************/
|
|
|
|
|
/******/ // The module cache
|
|
|
|
|
/******/ var __webpack_module_cache__ = {};
|
|
|
|
|
/******/
|
|
|
|
|
/******/ // The require function
|
|
|
|
|
/******/ function __webpack_require__(moduleId) {
|
|
|
|
|
/******/ // Check if module is in cache
|
|
|
|
|
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
|
|
|
|
/******/ if (cachedModule !== undefined) {
|
|
|
|
|
/******/ return cachedModule.exports;
|
|
|
|
|
/******/ }
|
|
|
|
|
/******/ // Create a new module (and put it into the cache)
|
|
|
|
|
/******/ var module = __webpack_module_cache__[moduleId] = {
|
|
|
|
|
/******/ // no module.id needed
|
|
|
|
|
/******/ // no module.loaded needed
|
|
|
|
|
/******/ exports: {}
|
|
|
|
|
/******/ };
|
|
|
|
|
/******/
|
|
|
|
|
/******/ // Execute the module function
|
|
|
|
|
/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
|
|
|
|
/******/
|
|
|
|
|
/******/ // Return the exports of the module
|
|
|
|
|
/******/ return module.exports;
|
|
|
|
|
/******/ }
|
|
|
|
|
/******/
|
|
|
|
|
/************************************************************************/
|
|
|
|
|
/******/ /* webpack/runtime/define property getters */
|
|
|
|
|
/******/ (() => {
|
|
|
|
|
/******/ // define getter functions for harmony exports
|
|
|
|
|
/******/ __webpack_require__.d = (exports, definition) => {
|
|
|
|
|
/******/ for(var key in definition) {
|
|
|
|
|
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
|
|
|
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
|
|
|
/******/ }
|
|
|
|
|
/******/ }
|
|
|
|
|
/******/ };
|
|
|
|
|
/******/ })();
|
|
|
|
|
/******/
|
|
|
|
|
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
|
|
|
/******/ (() => {
|
|
|
|
|
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
|
|
|
/******/ })();
|
|
|
|
|
/******/
|
|
|
|
|
/******/ /* webpack/runtime/make namespace object */
|
|
|
|
|
/******/ (() => {
|
|
|
|
|
/******/ // define __esModule on exports
|
|
|
|
|
/******/ __webpack_require__.r = (exports) => {
|
|
|
|
|
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
|
|
|
|
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
|
|
/******/ }
|
|
|
|
|
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
|
|
/******/ };
|
|
|
|
|
/******/ })();
|
|
|
|
|
/******/
|
|
|
|
|
/************************************************************************/
|
|
|
|
|
var __webpack_exports__ = {};
|
|
|
|
|
// This entry need to be wrapped in an IIFE because it need to be in strict mode.
|
|
|
|
|
(() => {
|
|
|
|
|
"use strict";
|
|
|
|
|
/*!*****************************!*\
|
|
|
|
|
!*** ./src/firstExample.ts ***!
|
|
|
|
|
\*****************************/
|
|
|
|
|
__webpack_require__.r(__webpack_exports__);
|
2021-08-30 18:10:21 +02:00
|
|
|
|
/* harmony import */ var _freeDatas2HTML__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./freeDatas2HTML */ "./src/freeDatas2HTML.ts");
|
2021-08-13 20:00:03 +02:00
|
|
|
|
var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
|
|
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
|
|
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
|
|
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
|
|
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
|
|
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
|
|
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
|
|
|
|
|
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
|
|
|
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
|
|
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
|
|
|
function step(op) {
|
|
|
|
|
if (f) throw new TypeError("Generator is already executing.");
|
|
|
|
|
while (_) try {
|
|
|
|
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
|
|
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
|
|
|
switch (op[0]) {
|
|
|
|
|
case 0: case 1: t = op; break;
|
|
|
|
|
case 4: _.label++; return { value: op[1], done: false };
|
|
|
|
|
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
|
|
|
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
|
|
|
default:
|
|
|
|
|
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
|
|
|
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
|
|
|
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
|
|
|
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
|
|
|
if (t[2]) _.ops.pop();
|
|
|
|
|
_.trys.pop(); continue;
|
|
|
|
|
}
|
|
|
|
|
op = body.call(thisArg, _);
|
|
|
|
|
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
|
|
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var initialise = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
|
|
|
var converter, e_1;
|
|
|
|
|
return __generator(this, function (_a) {
|
|
|
|
|
switch (_a.label) {
|
|
|
|
|
case 0:
|
|
|
|
|
_a.trys.push([0, 2, , 3]);
|
2021-08-30 18:10:21 +02:00
|
|
|
|
converter = new _freeDatas2HTML__WEBPACK_IMPORTED_MODULE_0__.freeDatas2HTML();
|
2021-08-13 20:00:03 +02:00
|
|
|
|
converter.datasViewElt = { id: "datas" };
|
2021-09-02 18:15:15 +02:00
|
|
|
|
converter.datasSelectors = [{ datasFieldNb: 3, id: "filtre1" }, { datasFieldNb: 4, id: "filtre2" }, { datasFieldNb: 5, id: "filtre3", separator: "," }];
|
|
|
|
|
converter.datasSortingColumns = [{ datasFieldNb: 0 }, { datasFieldNb: 1 }, { datasFieldNb: 2 }];
|
2021-08-13 20:00:03 +02:00
|
|
|
|
converter.datasSourceUrl = "http://localhost:8080/datas/elements-chimiques.csv";
|
|
|
|
|
return [4, converter.run()];
|
|
|
|
|
case 1:
|
|
|
|
|
_a.sent();
|
|
|
|
|
return [3, 3];
|
|
|
|
|
case 2:
|
|
|
|
|
e_1 = _a.sent();
|
|
|
|
|
console.error(e_1);
|
|
|
|
|
if (document.getElementById("datas") !== null)
|
|
|
|
|
document.getElementById("datas").innerHTML = "<strong>Désolé, mais un problème technique empêche l'affichage des données.</strong>";
|
|
|
|
|
return [3, 3];
|
|
|
|
|
case 3: return [2];
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}); };
|
|
|
|
|
initialise();
|
|
|
|
|
|
|
|
|
|
})();
|
|
|
|
|
|
|
|
|
|
/******/ })()
|
|
|
|
|
;
|
2021-09-02 18:15:15 +02:00
|
|
|
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9KUy9maXJzdEV4YW1wbGUuYXBwLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsdURBQXVEOztBQUV2RCw2QkFBNkI7O0FBRTdCLHlFQUF5RTs7QUFFekUseUVBQXlFLElBQUksT0FBTyxJQUFJLE9BQU8sSUFBSSxtQkFBbUIsRUFBRSxJQUFJOztBQUU1SCxnQ0FBZ0MsRUFBRTtBQUNsQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxrQkFBa0IsVUFBVTtBQUM1QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4Qix3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsa0JBQWtCLFlBQVk7QUFDOUI7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRyxHQUFHOztBQUVOO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsR0FBRzs7QUFFTjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLFVBQVU7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksVUFBVTtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUixNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUixNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUixNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUixNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUixNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUixNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUF
|