Compare commits
No commits in common. "519a3d728395a0086cb2b366ef4f8ef4f5e89640" and "b13be8afeb22af94eeab9edeb7aaafc8a742a395" have entirely different histories.
519a3d7283
...
b13be8afeb
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "freedatas2html",
|
||||
"version": "0.7.0",
|
||||
"version": "0.6.1",
|
||||
"description": "Visualization of data from various sources (CSV, API, HTML...) with filters, classification, pagination, etc.",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
|
2
public/JS/firstExample.app.js
Normal file
2
public/JS/firstExample.app.js
Normal file
File diff suppressed because one or more lines are too long
6
public/JS/firstExample.app.js.LICENSE.txt
Normal file
6
public/JS/firstExample.app.js.LICENSE.txt
Normal file
@ -0,0 +1,6 @@
|
||||
/* @license
|
||||
Papa Parse
|
||||
v5.3.1
|
||||
https://github.com/mholt/PapaParse
|
||||
License: MIT
|
||||
*/
|
@ -1,602 +0,0 @@
|
||||
[
|
||||
{
|
||||
"userId": 1,
|
||||
"id": 1,
|
||||
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
|
||||
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
|
||||
},
|
||||
{
|
||||
"userId": 1,
|
||||
"id": 2,
|
||||
"title": "qui est esse",
|
||||
"body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla"
|
||||
},
|
||||
{
|
||||
"userId": 1,
|
||||
"id": 3,
|
||||
"title": "ea molestias quasi exercitationem repellat qui ipsa sit aut",
|
||||
"body": "et iusto sed quo iure\nvoluptatem occaecati omnis eligendi aut ad\nvoluptatem doloribus vel accusantium quis pariatur\nmolestiae porro eius odio et labore et velit aut"
|
||||
},
|
||||
{
|
||||
"userId": 1,
|
||||
"id": 4,
|
||||
"title": "eum et est occaecati",
|
||||
"body": "ullam et saepe reiciendis voluptatem adipisci\nsit amet autem assumenda provident rerum culpa\nquis hic commodi nesciunt rem tenetur doloremque ipsam iure\nquis sunt voluptatem rerum illo velit"
|
||||
},
|
||||
{
|
||||
"userId": 1,
|
||||
"id": 5,
|
||||
"title": "nesciunt quas odio",
|
||||
"body": "repudiandae veniam quaerat sunt sed\nalias aut fugiat sit autem sed est\nvoluptatem omnis possimus esse voluptatibus quis\nest aut tenetur dolor neque"
|
||||
},
|
||||
{
|
||||
"userId": 1,
|
||||
"id": 6,
|
||||
"title": "dolorem eum magni eos aperiam quia",
|
||||
"body": "ut aspernatur corporis harum nihil quis provident sequi\nmollitia nobis aliquid molestiae\nperspiciatis et ea nemo ab reprehenderit accusantium quas\nvoluptate dolores velit et doloremque molestiae"
|
||||
},
|
||||
{
|
||||
"userId": 1,
|
||||
"id": 7,
|
||||
"title": "magnam facilis autem",
|
||||
"body": "dolore placeat quibusdam ea quo vitae\nmagni quis enim qui quis quo nemo aut saepe\nquidem repellat excepturi ut quia\nsunt ut sequi eos ea sed quas"
|
||||
},
|
||||
{
|
||||
"userId": 1,
|
||||
"id": 8,
|
||||
"title": "dolorem dolore est ipsam",
|
||||
"body": "dignissimos aperiam dolorem qui eum\nfacilis quibusdam animi sint suscipit qui sint possimus cum\nquaerat magni maiores excepturi\nipsam ut commodi dolor voluptatum modi aut vitae"
|
||||
},
|
||||
{
|
||||
"userId": 1,
|
||||
"id": 9,
|
||||
"title": "nesciunt iure omnis dolorem tempora et accusantium",
|
||||
"body": "consectetur animi nesciunt iure dolore\nenim quia ad\nveniam autem ut quam aut nobis\net est aut quod aut provident voluptas autem voluptas"
|
||||
},
|
||||
{
|
||||
"userId": 1,
|
||||
"id": 10,
|
||||
"title": "optio molestias id quia eum",
|
||||
"body": "quo et expedita modi cum officia vel magni\ndoloribus qui repudiandae\nvero nisi sit\nquos veniam quod sed accusamus veritatis error"
|
||||
},
|
||||
{
|
||||
"userId": 2,
|
||||
"id": 11,
|
||||
"title": "et ea vero quia laudantium autem",
|
||||
"body": "delectus reiciendis molestiae occaecati non minima eveniet qui voluptatibus\naccusamus in eum beatae sit\nvel qui neque voluptates ut commodi qui incidunt\nut animi commodi"
|
||||
},
|
||||
{
|
||||
"userId": 2,
|
||||
"id": 12,
|
||||
"title": "in quibusdam tempore odit est dolorem",
|
||||
"body": "itaque id aut magnam\npraesentium quia et ea odit et ea voluptas et\nsapiente quia nihil amet occaecati quia id voluptatem\nincidunt ea est distinctio odio"
|
||||
},
|
||||
{
|
||||
"userId": 2,
|
||||
"id": 13,
|
||||
"title": "dolorum ut in voluptas mollitia et saepe quo animi",
|
||||
"body": "aut dicta possimus sint mollitia voluptas commodi quo doloremque\niste corrupti reiciendis voluptatem eius rerum\nsit cumque quod eligendi laborum minima\nperferendis recusandae assumenda consectetur porro architecto ipsum ipsam"
|
||||
},
|
||||
{
|
||||
"userId": 2,
|
||||
"id": 14,
|
||||
"title": "voluptatem eligendi optio",
|
||||
"body": "fuga et accusamus dolorum perferendis illo voluptas\nnon doloremque neque facere\nad qui dolorum molestiae beatae\nsed aut voluptas totam sit illum"
|
||||
},
|
||||
{
|
||||
"userId": 2,
|
||||
"id": 15,
|
||||
"title": "eveniet quod temporibus",
|
||||
"body": "reprehenderit quos placeat\nvelit minima officia dolores impedit repudiandae molestiae nam\nvoluptas recusandae quis delectus\nofficiis harum fugiat vitae"
|
||||
},
|
||||
{
|
||||
"userId": 2,
|
||||
"id": 16,
|
||||
"title": "sint suscipit perspiciatis velit dolorum rerum ipsa laboriosam odio",
|
||||
"body": "suscipit nam nisi quo aperiam aut\nasperiores eos fugit maiores voluptatibus quia\nvoluptatem quis ullam qui in alias quia est\nconsequatur magni mollitia accusamus ea nisi voluptate dicta"
|
||||
},
|
||||
{
|
||||
"userId": 2,
|
||||
"id": 17,
|
||||
"title": "fugit voluptas sed molestias voluptatem provident",
|
||||
"body": "eos voluptas et aut odit natus earum\naspernatur fuga molestiae ullam\ndeserunt ratione qui eos\nqui nihil ratione nemo velit ut aut id quo"
|
||||
},
|
||||
{
|
||||
"userId": 2,
|
||||
"id": 18,
|
||||
"title": "voluptate et itaque vero tempora molestiae",
|
||||
"body": "eveniet quo quis\nlaborum totam consequatur non dolor\nut et est repudiandae\nest voluptatem vel debitis et magnam"
|
||||
},
|
||||
{
|
||||
"userId": 2,
|
||||
"id": 19,
|
||||
"title": "adipisci placeat illum aut reiciendis qui",
|
||||
"body": "illum quis cupiditate provident sit magnam\nea sed aut omnis\nveniam maiores ullam consequatur atque\nadipisci quo iste expedita sit quos voluptas"
|
||||
},
|
||||
{
|
||||
"userId": 2,
|
||||
"id": 20,
|
||||
"title": "doloribus ad provident suscipit at",
|
||||
"body": "qui consequuntur ducimus possimus quisquam amet similique\nsuscipit porro ipsam amet\neos veritatis officiis exercitationem vel fugit aut necessitatibus totam\nomnis rerum consequatur expedita quidem cumque explicabo"
|
||||
},
|
||||
{
|
||||
"userId": 3,
|
||||
"id": 21,
|
||||
"title": "asperiores ea ipsam voluptatibus modi minima quia sint",
|
||||
"body": "repellat aliquid praesentium dolorem quo\nsed totam minus non itaque\nnihil labore molestiae sunt dolor eveniet hic recusandae veniam\ntempora et tenetur expedita sunt"
|
||||
},
|
||||
{
|
||||
"userId": 3,
|
||||
"id": 22,
|
||||
"title": "dolor sint quo a velit explicabo quia nam",
|
||||
"body": "eos qui et ipsum ipsam suscipit aut\nsed omnis non odio\nexpedita earum mollitia molestiae aut atque rem suscipit\nnam impedit esse"
|
||||
},
|
||||
{
|
||||
"userId": 3,
|
||||
"id": 23,
|
||||
"title": "maxime id vitae nihil numquam",
|
||||
"body": "veritatis unde neque eligendi\nquae quod architecto quo neque vitae\nest illo sit tempora doloremque fugit quod\net et vel beatae sequi ullam sed tenetur perspiciatis"
|
||||
},
|
||||
{
|
||||
"userId": 3,
|
||||
"id": 24,
|
||||
"title": "autem hic labore sunt dolores incidunt",
|
||||
"body": "enim et ex nulla\nomnis voluptas quia qui\nvoluptatem consequatur numquam aliquam sunt\ntotam recusandae id dignissimos aut sed asperiores deserunt"
|
||||
},
|
||||
{
|
||||
"userId": 3,
|
||||
"id": 25,
|
||||
"title": "rem alias distinctio quo quis",
|
||||
"body": "ullam consequatur ut\nomnis quis sit vel consequuntur\nipsa eligendi ipsum molestiae et omnis error nostrum\nmolestiae illo tempore quia et distinctio"
|
||||
},
|
||||
{
|
||||
"userId": 3,
|
||||
"id": 26,
|
||||
"title": "est et quae odit qui non",
|
||||
"body": "similique esse doloribus nihil accusamus\nomnis dolorem fuga consequuntur reprehenderit fugit recusandae temporibus\nperspiciatis cum ut laudantium\nomnis aut molestiae vel vero"
|
||||
},
|
||||
{
|
||||
"userId": 3,
|
||||
"id": 27,
|
||||
"title": "quasi id et eos tenetur aut quo autem",
|
||||
"body": "eum sed dolores ipsam sint possimus debitis occaecati\ndebitis qui qui et\nut placeat enim earum aut odit facilis\nconsequatur suscipit necessitatibus rerum sed inventore temporibus consequatur"
|
||||
},
|
||||
{
|
||||
"userId": 3,
|
||||
"id": 28,
|
||||
"title": "delectus ullam et corporis nulla voluptas sequi",
|
||||
"body": "non et quaerat ex quae ad maiores\nmaiores recusandae totam aut blanditiis mollitia quas illo\nut voluptatibus voluptatem\nsimilique nostrum eum"
|
||||
},
|
||||
{
|
||||
"userId": 3,
|
||||
"id": 29,
|
||||
"title": "iusto eius quod necessitatibus culpa ea",
|
||||
"body": "odit magnam ut saepe sed non qui\ntempora atque nihil\naccusamus illum doloribus illo dolor\neligendi repudiandae odit magni similique sed cum maiores"
|
||||
},
|
||||
{
|
||||
"userId": 3,
|
||||
"id": 30,
|
||||
"title": "a quo magni similique perferendis",
|
||||
"body": "alias dolor cumque\nimpedit blanditiis non eveniet odio maxime\nblanditiis amet eius quis tempora quia autem rem\na provident perspiciatis quia"
|
||||
},
|
||||
{
|
||||
"userId": 4,
|
||||
"id": 31,
|
||||
"title": "ullam ut quidem id aut vel consequuntur",
|
||||
"body": "debitis eius sed quibusdam non quis consectetur vitae\nimpedit ut qui consequatur sed aut in\nquidem sit nostrum et maiores adipisci atque\nquaerat voluptatem adipisci repudiandae"
|
||||
},
|
||||
{
|
||||
"userId": 4,
|
||||
"id": 32,
|
||||
"title": "doloremque illum aliquid sunt",
|
||||
"body": "deserunt eos nobis asperiores et hic\nest debitis repellat molestiae optio\nnihil ratione ut eos beatae quibusdam distinctio maiores\nearum voluptates et aut adipisci ea maiores voluptas maxime"
|
||||
},
|
||||
{
|
||||
"userId": 4,
|
||||
"id": 33,
|
||||
"title": "qui explicabo molestiae dolorem",
|
||||
"body": "rerum ut et numquam laborum odit est sit\nid qui sint in\nquasi tenetur tempore aperiam et quaerat qui in\nrerum officiis sequi cumque quod"
|
||||
},
|
||||
{
|
||||
"userId": 4,
|
||||
"id": 34,
|
||||
"title": "magnam ut rerum iure",
|
||||
"body": "ea velit perferendis earum ut voluptatem voluptate itaque iusto\ntotam pariatur in\nnemo voluptatem voluptatem autem magni tempora minima in\nest distinctio qui assumenda accusamus dignissimos officia nesciunt nobis"
|
||||
},
|
||||
{
|
||||
"userId": 4,
|
||||
"id": 35,
|
||||
"title": "id nihil consequatur molestias animi provident",
|
||||
"body": "nisi error delectus possimus ut eligendi vitae\nplaceat eos harum cupiditate facilis reprehenderit voluptatem beatae\nmodi ducimus quo illum voluptas eligendi\net nobis quia fugit"
|
||||
},
|
||||
{
|
||||
"userId": 4,
|
||||
"id": 36,
|
||||
"title": "fuga nam accusamus voluptas reiciendis itaque",
|
||||
"body": "ad mollitia et omnis minus architecto odit\nvoluptas doloremque maxime aut non ipsa qui alias veniam\nblanditiis culpa aut quia nihil cumque facere et occaecati\nqui aspernatur quia eaque ut aperiam inventore"
|
||||
},
|
||||
{
|
||||
"userId": 4,
|
||||
"id": 37,
|
||||
"title": "provident vel ut sit ratione est",
|
||||
"body": "debitis et eaque non officia sed nesciunt pariatur vel\nvoluptatem iste vero et ea\nnumquam aut expedita ipsum nulla in\nvoluptates omnis consequatur aut enim officiis in quam qui"
|
||||
},
|
||||
{
|
||||
"userId": 4,
|
||||
"id": 38,
|
||||
"title": "explicabo et eos deleniti nostrum ab id repellendus",
|
||||
"body": "animi esse sit aut sit nesciunt assumenda eum voluptas\nquia voluptatibus provident quia necessitatibus ea\nrerum repudiandae quia voluptatem delectus fugit aut id quia\nratione optio eos iusto veniam iure"
|
||||
},
|
||||
{
|
||||
"userId": 4,
|
||||
"id": 39,
|
||||
"title": "eos dolorem iste accusantium est eaque quam",
|
||||
"body": "corporis rerum ducimus vel eum accusantium\nmaxime aspernatur a porro possimus iste omnis\nest in deleniti asperiores fuga aut\nvoluptas sapiente vel dolore minus voluptatem incidunt ex"
|
||||
},
|
||||
{
|
||||
"userId": 4,
|
||||
"id": 40,
|
||||
"title": "enim quo cumque",
|
||||
"body": "ut voluptatum aliquid illo tenetur nemo sequi quo facilis\nipsum rem optio mollitia quas\nvoluptatem eum voluptas qui\nunde omnis voluptatem iure quasi maxime voluptas nam"
|
||||
},
|
||||
{
|
||||
"userId": 5,
|
||||
"id": 41,
|
||||
"title": "non est facere",
|
||||
"body": "molestias id nostrum\nexcepturi molestiae dolore omnis repellendus quaerat saepe\nconsectetur iste quaerat tenetur asperiores accusamus ex ut\nnam quidem est ducimus sunt debitis saepe"
|
||||
},
|
||||
{
|
||||
"userId": 5,
|
||||
"id": 42,
|
||||
"title": "commodi ullam sint et excepturi error explicabo praesentium voluptas",
|
||||
"body": "odio fugit voluptatum ducimus earum autem est incidunt voluptatem\nodit reiciendis aliquam sunt sequi nulla dolorem\nnon facere repellendus voluptates quia\nratione harum vitae ut"
|
||||
},
|
||||
{
|
||||
"userId": 5,
|
||||
"id": 43,
|
||||
"title": "eligendi iste nostrum consequuntur adipisci praesentium sit beatae perferendis",
|
||||
"body": "similique fugit est\nillum et dolorum harum et voluptate eaque quidem\nexercitationem quos nam commodi possimus cum odio nihil nulla\ndolorum exercitationem magnam ex et a et distinctio debitis"
|
||||
},
|
||||
{
|
||||
"userId": 5,
|
||||
"id": 44,
|
||||
"title": "optio dolor molestias sit",
|
||||
"body": "temporibus est consectetur dolore\net libero debitis vel velit laboriosam quia\nipsum quibusdam qui itaque fuga rem aut\nea et iure quam sed maxime ut distinctio quae"
|
||||
},
|
||||
{
|
||||
"userId": 5,
|
||||
"id": 45,
|
||||
"title": "ut numquam possimus omnis eius suscipit laudantium iure",
|
||||
"body": "est natus reiciendis nihil possimus aut provident\nex et dolor\nrepellat pariatur est\nnobis rerum repellendus dolorem autem"
|
||||
},
|
||||
{
|
||||
"userId": 5,
|
||||
"id": 46,
|
||||
"title": "aut quo modi neque nostrum ducimus",
|
||||
"body": "voluptatem quisquam iste\nvoluptatibus natus officiis facilis dolorem\nquis quas ipsam\nvel et voluptatum in aliquid"
|
||||
},
|
||||
{
|
||||
"userId": 5,
|
||||
"id": 47,
|
||||
"title": "quibusdam cumque rem aut deserunt",
|
||||
"body": "voluptatem assumenda ut qui ut cupiditate aut impedit veniam\noccaecati nemo illum voluptatem laudantium\nmolestiae beatae rerum ea iure soluta nostrum\neligendi et voluptate"
|
||||
},
|
||||
{
|
||||
"userId": 5,
|
||||
"id": 48,
|
||||
"title": "ut voluptatem illum ea doloribus itaque eos",
|
||||
"body": "voluptates quo voluptatem facilis iure occaecati\nvel assumenda rerum officia et\nillum perspiciatis ab deleniti\nlaudantium repellat ad ut et autem reprehenderit"
|
||||
},
|
||||
{
|
||||
"userId": 5,
|
||||
"id": 49,
|
||||
"title": "laborum non sunt aut ut assumenda perspiciatis voluptas",
|
||||
"body": "inventore ab sint\nnatus fugit id nulla sequi architecto nihil quaerat\neos tenetur in in eum veritatis non\nquibusdam officiis aspernatur cumque aut commodi aut"
|
||||
},
|
||||
{
|
||||
"userId": 5,
|
||||
"id": 50,
|
||||
"title": "repellendus qui recusandae incidunt voluptates tenetur qui omnis exercitationem",
|
||||
"body": "error suscipit maxime adipisci consequuntur recusandae\nvoluptas eligendi et est et voluptates\nquia distinctio ab amet quaerat molestiae et vitae\nadipisci impedit sequi nesciunt quis consectetur"
|
||||
},
|
||||
{
|
||||
"userId": 6,
|
||||
"id": 51,
|
||||
"title": "soluta aliquam aperiam consequatur illo quis voluptas",
|
||||
"body": "sunt dolores aut doloribus\ndolore doloribus voluptates tempora et\ndoloremque et quo\ncum asperiores sit consectetur dolorem"
|
||||
},
|
||||
{
|
||||
"userId": 6,
|
||||
"id": 52,
|
||||
"title": "qui enim et consequuntur quia animi quis voluptate quibusdam",
|
||||
"body": "iusto est quibusdam fuga quas quaerat molestias\na enim ut sit accusamus enim\ntemporibus iusto accusantium provident architecto\nsoluta esse reprehenderit qui laborum"
|
||||
},
|
||||
{
|
||||
"userId": 6,
|
||||
"id": 53,
|
||||
"title": "ut quo aut ducimus alias",
|
||||
"body": "minima harum praesentium eum rerum illo dolore\nquasi exercitationem rerum nam\nporro quis neque quo\nconsequatur minus dolor quidem veritatis sunt non explicabo similique"
|
||||
},
|
||||
{
|
||||
"userId": 6,
|
||||
"id": 54,
|
||||
"title": "sit asperiores ipsam eveniet odio non quia",
|
||||
"body": "totam corporis dignissimos\nvitae dolorem ut occaecati accusamus\nex velit deserunt\net exercitationem vero incidunt corrupti mollitia"
|
||||
},
|
||||
{
|
||||
"userId": 6,
|
||||
"id": 55,
|
||||
"title": "sit vel voluptatem et non libero",
|
||||
"body": "debitis excepturi ea perferendis harum libero optio\neos accusamus cum fuga ut sapiente repudiandae\net ut incidunt omnis molestiae\nnihil ut eum odit"
|
||||
},
|
||||
{
|
||||
"userId": 6,
|
||||
"id": 56,
|
||||
"title": "qui et at rerum necessitatibus",
|
||||
"body": "aut est omnis dolores\nneque rerum quod ea rerum velit pariatur beatae excepturi\net provident voluptas corrupti\ncorporis harum reprehenderit dolores eligendi"
|
||||
},
|
||||
{
|
||||
"userId": 6,
|
||||
"id": 57,
|
||||
"title": "sed ab est est",
|
||||
"body": "at pariatur consequuntur earum quidem\nquo est laudantium soluta voluptatem\nqui ullam et est\net cum voluptas voluptatum repellat est"
|
||||
},
|
||||
{
|
||||
"userId": 6,
|
||||
"id": 58,
|
||||
"title": "voluptatum itaque dolores nisi et quasi",
|
||||
"body": "veniam voluptatum quae adipisci id\net id quia eos ad et dolorem\naliquam quo nisi sunt eos impedit error\nad similique veniam"
|
||||
},
|
||||
{
|
||||
"userId": 6,
|
||||
"id": 59,
|
||||
"title": "qui commodi dolor at maiores et quis id accusantium",
|
||||
"body": "perspiciatis et quam ea autem temporibus non voluptatibus qui\nbeatae a earum officia nesciunt dolores suscipit voluptas et\nanimi doloribus cum rerum quas et magni\net hic ut ut commodi expedita sunt"
|
||||
},
|
||||
{
|
||||
"userId": 6,
|
||||
"id": 60,
|
||||
"title": "consequatur placeat omnis quisquam quia reprehenderit fugit veritatis facere",
|
||||
"body": "asperiores sunt ab assumenda cumque modi velit\nqui esse omnis\nvoluptate et fuga perferendis voluptas\nillo ratione amet aut et omnis"
|
||||
},
|
||||
{
|
||||
"userId": 7,
|
||||
"id": 61,
|
||||
"title": "voluptatem doloribus consectetur est ut ducimus",
|
||||
"body": "ab nemo optio odio\ndelectus tenetur corporis similique nobis repellendus rerum omnis facilis\nvero blanditiis debitis in nesciunt doloribus dicta dolores\nmagnam minus velit"
|
||||
},
|
||||
{
|
||||
"userId": 7,
|
||||
"id": 62,
|
||||
"title": "beatae enim quia vel",
|
||||
"body": "enim aspernatur illo distinctio quae praesentium\nbeatae alias amet delectus qui voluptate distinctio\nodit sint accusantium autem omnis\nquo molestiae omnis ea eveniet optio"
|
||||
},
|
||||
{
|
||||
"userId": 7,
|
||||
"id": 63,
|
||||
"title": "voluptas blanditiis repellendus animi ducimus error sapiente et suscipit",
|
||||
"body": "enim adipisci aspernatur nemo\nnumquam omnis facere dolorem dolor ex quis temporibus incidunt\nab delectus culpa quo reprehenderit blanditiis asperiores\naccusantium ut quam in voluptatibus voluptas ipsam dicta"
|
||||
},
|
||||
{
|
||||
"userId": 7,
|
||||
"id": 64,
|
||||
"title": "et fugit quas eum in in aperiam quod",
|
||||
"body": "id velit blanditiis\neum ea voluptatem\nmolestiae sint occaecati est eos perspiciatis\nincidunt a error provident eaque aut aut qui"
|
||||
},
|
||||
{
|
||||
"userId": 7,
|
||||
"id": 65,
|
||||
"title": "consequatur id enim sunt et et",
|
||||
"body": "voluptatibus ex esse\nsint explicabo est aliquid cumque adipisci fuga repellat labore\nmolestiae corrupti ex saepe at asperiores et perferendis\nnatus id esse incidunt pariatur"
|
||||
},
|
||||
{
|
||||
"userId": 7,
|
||||
"id": 66,
|
||||
"title": "repudiandae ea animi iusto",
|
||||
"body": "officia veritatis tenetur vero qui itaque\nsint non ratione\nsed et ut asperiores iusto eos molestiae nostrum\nveritatis quibusdam et nemo iusto saepe"
|
||||
},
|
||||
{
|
||||
"userId": 7,
|
||||
"id": 67,
|
||||
"title": "aliquid eos sed fuga est maxime repellendus",
|
||||
"body": "reprehenderit id nostrum\nvoluptas doloremque pariatur sint et accusantium quia quod aspernatur\net fugiat amet\nnon sapiente et consequatur necessitatibus molestiae"
|
||||
},
|
||||
{
|
||||
"userId": 7,
|
||||
"id": 68,
|
||||
"title": "odio quis facere architecto reiciendis optio",
|
||||
"body": "magnam molestiae perferendis quisquam\nqui cum reiciendis\nquaerat animi amet hic inventore\nea quia deleniti quidem saepe porro velit"
|
||||
},
|
||||
{
|
||||
"userId": 7,
|
||||
"id": 69,
|
||||
"title": "fugiat quod pariatur odit minima",
|
||||
"body": "officiis error culpa consequatur modi asperiores et\ndolorum assumenda voluptas et vel qui aut vel rerum\nvoluptatum quisquam perspiciatis quia rerum consequatur totam quas\nsequi commodi repudiandae asperiores et saepe a"
|
||||
},
|
||||
{
|
||||
"userId": 7,
|
||||
"id": 70,
|
||||
"title": "voluptatem laborum magni",
|
||||
"body": "sunt repellendus quae\nest asperiores aut deleniti esse accusamus repellendus quia aut\nquia dolorem unde\neum tempora esse dolore"
|
||||
},
|
||||
{
|
||||
"userId": 8,
|
||||
"id": 71,
|
||||
"title": "et iusto veniam et illum aut fuga",
|
||||
"body": "occaecati a doloribus\niste saepe consectetur placeat eum voluptate dolorem et\nqui quo quia voluptas\nrerum ut id enim velit est perferendis"
|
||||
},
|
||||
{
|
||||
"userId": 8,
|
||||
"id": 72,
|
||||
"title": "sint hic doloribus consequatur eos non id",
|
||||
"body": "quam occaecati qui deleniti consectetur\nconsequatur aut facere quas exercitationem aliquam hic voluptas\nneque id sunt ut aut accusamus\nsunt consectetur expedita inventore velit"
|
||||
},
|
||||
{
|
||||
"userId": 8,
|
||||
"id": 73,
|
||||
"title": "consequuntur deleniti eos quia temporibus ab aliquid at",
|
||||
"body": "voluptatem cumque tenetur consequatur expedita ipsum nemo quia explicabo\naut eum minima consequatur\ntempore cumque quae est et\net in consequuntur voluptatem voluptates aut"
|
||||
},
|
||||
{
|
||||
"userId": 8,
|
||||
"id": 74,
|
||||
"title": "enim unde ratione doloribus quas enim ut sit sapiente",
|
||||
"body": "odit qui et et necessitatibus sint veniam\nmollitia amet doloremque molestiae commodi similique magnam et quam\nblanditiis est itaque\nquo et tenetur ratione occaecati molestiae tempora"
|
||||
},
|
||||
{
|
||||
"userId": 8,
|
||||
"id": 75,
|
||||
"title": "dignissimos eum dolor ut enim et delectus in",
|
||||
"body": "commodi non non omnis et voluptas sit\nautem aut nobis magnam et sapiente voluptatem\net laborum repellat qui delectus facilis temporibus\nrerum amet et nemo voluptate expedita adipisci error dolorem"
|
||||
},
|
||||
{
|
||||
"userId": 8,
|
||||
"id": 76,
|
||||
"title": "doloremque officiis ad et non perferendis",
|
||||
"body": "ut animi facere\ntotam iusto tempore\nmolestiae eum aut et dolorem aperiam\nquaerat recusandae totam odio"
|
||||
},
|
||||
{
|
||||
"userId": 8,
|
||||
"id": 77,
|
||||
"title": "necessitatibus quasi exercitationem odio",
|
||||
"body": "modi ut in nulla repudiandae dolorum nostrum eos\naut consequatur omnis\nut incidunt est omnis iste et quam\nvoluptates sapiente aliquam asperiores nobis amet corrupti repudiandae provident"
|
||||
},
|
||||
{
|
||||
"userId": 8,
|
||||
"id": 78,
|
||||
"title": "quam voluptatibus rerum veritatis",
|
||||
"body": "nobis facilis odit tempore cupiditate quia\nassumenda doloribus rerum qui ea\nillum et qui totam\naut veniam repellendus"
|
||||
},
|
||||
{
|
||||
"userId": 8,
|
||||
"id": 79,
|
||||
"title": "pariatur consequatur quia magnam autem omnis non amet",
|
||||
"body": "libero accusantium et et facere incidunt sit dolorem\nnon excepturi qui quia sed laudantium\nquisquam molestiae ducimus est\nofficiis esse molestiae iste et quos"
|
||||
},
|
||||
{
|
||||
"userId": 8,
|
||||
"id": 80,
|
||||
"title": "labore in ex et explicabo corporis aut quas",
|
||||
"body": "ex quod dolorem ea eum iure qui provident amet\nquia qui facere excepturi et repudiandae\nasperiores molestias provident\nminus incidunt vero fugit rerum sint sunt excepturi provident"
|
||||
},
|
||||
{
|
||||
"userId": 9,
|
||||
"id": 81,
|
||||
"title": "tempora rem veritatis voluptas quo dolores vero",
|
||||
"body": "facere qui nesciunt est voluptatum voluptatem nisi\nsequi eligendi necessitatibus ea at rerum itaque\nharum non ratione velit laboriosam quis consequuntur\nex officiis minima doloremque voluptas ut aut"
|
||||
},
|
||||
{
|
||||
"userId": 9,
|
||||
"id": 82,
|
||||
"title": "laudantium voluptate suscipit sunt enim enim",
|
||||
"body": "ut libero sit aut totam inventore sunt\nporro sint qui sunt molestiae\nconsequatur cupiditate qui iste ducimus adipisci\ndolor enim assumenda soluta laboriosam amet iste delectus hic"
|
||||
},
|
||||
{
|
||||
"userId": 9,
|
||||
"id": 83,
|
||||
"title": "odit et voluptates doloribus alias odio et",
|
||||
"body": "est molestiae facilis quis tempora numquam nihil qui\nvoluptate sapiente consequatur est qui\nnecessitatibus autem aut ipsa aperiam modi dolore numquam\nreprehenderit eius rem quibusdam"
|
||||
},
|
||||
{
|
||||
"userId": 9,
|
||||
"id": 84,
|
||||
"title": "optio ipsam molestias necessitatibus occaecati facilis veritatis dolores aut",
|
||||
"body": "sint molestiae magni a et quos\neaque et quasi\nut rerum debitis similique veniam\nrecusandae dignissimos dolor incidunt consequatur odio"
|
||||
},
|
||||
{
|
||||
"userId": 9,
|
||||
"id": 85,
|
||||
"title": "dolore veritatis porro provident adipisci blanditiis et sunt",
|
||||
"body": "similique sed nisi voluptas iusto omnis\nmollitia et quo\nassumenda suscipit officia magnam sint sed tempora\nenim provident pariatur praesentium atque animi amet ratione"
|
||||
},
|
||||
{
|
||||
"userId": 9,
|
||||
"id": 86,
|
||||
"title": "placeat quia et porro iste",
|
||||
"body": "quasi excepturi consequatur iste autem temporibus sed molestiae beatae\net quaerat et esse ut\nvoluptatem occaecati et vel explicabo autem\nasperiores pariatur deserunt optio"
|
||||
},
|
||||
{
|
||||
"userId": 9,
|
||||
"id": 87,
|
||||
"title": "nostrum quis quasi placeat",
|
||||
"body": "eos et molestiae\nnesciunt ut a\ndolores perspiciatis repellendus repellat aliquid\nmagnam sint rem ipsum est"
|
||||
},
|
||||
{
|
||||
"userId": 9,
|
||||
"id": 88,
|
||||
"title": "sapiente omnis fugit eos",
|
||||
"body": "consequatur omnis est praesentium\nducimus non iste\nneque hic deserunt\nvoluptatibus veniam cum et rerum sed"
|
||||
},
|
||||
{
|
||||
"userId": 9,
|
||||
"id": 89,
|
||||
"title": "sint soluta et vel magnam aut ut sed qui",
|
||||
"body": "repellat aut aperiam totam temporibus autem et\narchitecto magnam ut\nconsequatur qui cupiditate rerum quia soluta dignissimos nihil iure\ntempore quas est"
|
||||
},
|
||||
{
|
||||
"userId": 9,
|
||||
"id": 90,
|
||||
"title": "ad iusto omnis odit dolor voluptatibus",
|
||||
"body": "minus omnis soluta quia\nqui sed adipisci voluptates illum ipsam voluptatem\neligendi officia ut in\neos soluta similique molestias praesentium blanditiis"
|
||||
},
|
||||
{
|
||||
"userId": 10,
|
||||
"id": 91,
|
||||
"title": "aut amet sed",
|
||||
"body": "libero voluptate eveniet aperiam sed\nsunt placeat suscipit molestias\nsimilique fugit nam natus\nexpedita consequatur consequatur dolores quia eos et placeat"
|
||||
},
|
||||
{
|
||||
"userId": 10,
|
||||
"id": 92,
|
||||
"title": "ratione ex tenetur perferendis",
|
||||
"body": "aut et excepturi dicta laudantium sint rerum nihil\nlaudantium et at\na neque minima officia et similique libero et\ncommodi voluptate qui"
|
||||
},
|
||||
{
|
||||
"userId": 10,
|
||||
"id": 93,
|
||||
"title": "beatae soluta recusandae",
|
||||
"body": "dolorem quibusdam ducimus consequuntur dicta aut quo laboriosam\nvoluptatem quis enim recusandae ut sed sunt\nnostrum est odit totam\nsit error sed sunt eveniet provident qui nulla"
|
||||
},
|
||||
{
|
||||
"userId": 10,
|
||||
"id": 94,
|
||||
"title": "qui qui voluptates illo iste minima",
|
||||
"body": "aspernatur expedita soluta quo ab ut similique\nexpedita dolores amet\nsed temporibus distinctio magnam saepe deleniti\nomnis facilis nam ipsum natus sint similique omnis"
|
||||
},
|
||||
{
|
||||
"userId": 10,
|
||||
"id": 95,
|
||||
"title": "id minus libero illum nam ad officiis",
|
||||
"body": "earum voluptatem facere provident blanditiis velit laboriosam\npariatur accusamus odio saepe\ncumque dolor qui a dicta ab doloribus consequatur omnis\ncorporis cupiditate eaque assumenda ad nesciunt"
|
||||
},
|
||||
{
|
||||
"userId": 10,
|
||||
"id": 96,
|
||||
"title": "quaerat velit veniam amet cupiditate aut numquam ut sequi",
|
||||
"body": "in non odio excepturi sint eum\nlabore voluptates vitae quia qui et\ninventore itaque rerum\nveniam non exercitationem delectus aut"
|
||||
},
|
||||
{
|
||||
"userId": 10,
|
||||
"id": 97,
|
||||
"title": "quas fugiat ut perspiciatis vero provident",
|
||||
"body": "eum non blanditiis soluta porro quibusdam voluptas\nvel voluptatem qui placeat dolores qui velit aut\nvel inventore aut cumque culpa explicabo aliquid at\nperspiciatis est et voluptatem dignissimos dolor itaque sit nam"
|
||||
},
|
||||
{
|
||||
"userId": 10,
|
||||
"id": 98,
|
||||
"title": "laboriosam dolor voluptates",
|
||||
"body": "doloremque ex facilis sit sint culpa\nsoluta assumenda eligendi non ut eius\nsequi ducimus vel quasi\nveritatis est dolores"
|
||||
},
|
||||
{
|
||||
"userId": 10,
|
||||
"id": 99,
|
||||
"title": "temporibus sit alias delectus eligendi possimus magni",
|
||||
"body": "quo deleniti praesentium dicta non quod\naut est molestias\nmolestias et officia quis nihil\nitaque dolorem quia"
|
||||
},
|
||||
{
|
||||
"userId": 10,
|
||||
"id": 100,
|
||||
"title": "at nam consequatur ea labore ea harum",
|
||||
"body": "cupiditate quo est a modi nesciunt soluta\nipsa voluptas error itaque dicta in\nautem qui minus magnam et distinctio eum\naccusamus ratione error aut"
|
||||
}
|
||||
]
|
@ -7,12 +7,11 @@
|
||||
<meta name="robots" content="noindex">
|
||||
<link rel="stylesheet" href="CSS/paper.min.css">
|
||||
<link rel="stylesheet" href="CSS/fd2html.css">
|
||||
<script src="JS/exampleWithCSV.app.js" defer></script>
|
||||
<script src="JS/firstExample.app.js" defer></script>
|
||||
<title>freeDatas2HTML : démo d'affichage de données venant d'un fichier CSV</title>
|
||||
</head>
|
||||
<body class="paper container">
|
||||
<h1>freeDatas2HTML</h1>
|
||||
<p><a href="./withJSON.html">Autre page d'exemple avec des données transmises en JSON</a>.</p>
|
||||
|
||||
<div class="row">
|
||||
<div id="filtre1" class="sm-12 md-6 lg-4 col"></div>
|
||||
|
@ -1,32 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="Page d'exemple d'utilisation du script freeDatas2HTML pour visualiser des informations venant d'un fichier CSV.">
|
||||
<meta name="robots" content="noindex">
|
||||
<link rel="stylesheet" href="CSS/paper.min.css">
|
||||
<link rel="stylesheet" href="CSS/fd2html.css">
|
||||
<script src="JS/exampleWithJSON.app.js" defer></script>
|
||||
<title>freeDatas2HTML : démo d'affichage de données transmises en JSON.</title>
|
||||
</head>
|
||||
<body class="paper container">
|
||||
<h1>freeDatas2HTML</h1>
|
||||
<p><a href="./">Autre page d'exemple avec des données transmises en CSV.</a>.</p>
|
||||
|
||||
<div class="row">
|
||||
<div id="filtre1" class="sm-12 md-6 lg-4 col"></div>
|
||||
<div id="filtre2" class="sm-12 md-6 lg-4 col"></div>
|
||||
<div id="filtre3" class="sm-12 md-6 lg-4 col"></div>
|
||||
<div id="paginationOptions" class="col-12 col"></div>
|
||||
</div>
|
||||
|
||||
<h3>Nombre total de résultats : <span id="compteur"></span></h3>
|
||||
<article id="datas">
|
||||
<p>Si tout se passe bien, ce texte sera remplacé par un tableau de données extraites du fichier csv.</p>
|
||||
</article>
|
||||
<p id="pages"></p>
|
||||
<aside><p>Le fonctionnement est similaire qu'avec du CSV. Les données JSON ont été recopiées de l'<a href="https://jsonplaceholder.typicode.com/" target="_blank">API de test {JSON} Placeholder</a>.</p>
|
||||
<p>Design basé sur <a href="https://www.getpapercss.com" target="_blank">PaperCSS</a></p></aside>
|
||||
</body>
|
||||
</html>
|
120
src/build/firstExample.js
Normal file
120
src/build/firstExample.js
Normal file
@ -0,0 +1,120 @@
|
||||
var __awaiter = (this && this.__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 = (this && this.__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 };
|
||||
}
|
||||
};
|
||||
import { FreeDatas2HTML, Pagination, Render, Selector, SortingField } from "./freeDatas2HTML";
|
||||
var initialise = function () { return __awaiter(void 0, void 0, void 0, function () {
|
||||
var mySort, converter, myRender, pagination, filtre1, filtre2, filtre3, sortingField1, sortingField2, sortingField3, sortingField4, e_1;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
_a.trys.push([0, 3, , 4]);
|
||||
mySort = function (a, b, order) {
|
||||
if (order === void 0) { order = "asc"; }
|
||||
var values = ["> 100000", "> 1 et < 100 000", "≤ 1", "Traces", "Inexistant"];
|
||||
if (order === "desc")
|
||||
values.reverse();
|
||||
if (values.indexOf(a) > values.indexOf(b))
|
||||
return -1;
|
||||
else if (values.indexOf(a) < values.indexOf(b))
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
};
|
||||
converter = new FreeDatas2HTML();
|
||||
converter.datasViewElt = { id: "datas" };
|
||||
converter.datasSourceUrl = "http://localhost:8080/datas/elements-chimiques.csv";
|
||||
return [4, converter.parse()];
|
||||
case 1:
|
||||
_a.sent();
|
||||
converter.datasSortingFunctions = [{ datasFieldNb: 4, sort: mySort }];
|
||||
myRender = new Render(converter);
|
||||
if (window.innerWidth < 800) {
|
||||
myRender.settings =
|
||||
{
|
||||
allBegining: "<h4>Affichage petits écrans !</h4>",
|
||||
allEnding: "",
|
||||
linesBegining: "<ul>",
|
||||
linesEnding: "</ul>",
|
||||
lineBegining: "<li><ul>",
|
||||
lineEnding: "</ul></li>",
|
||||
dataDisplaying: "<li><b>#FIELDNAME :</b> #VALUE</li>",
|
||||
};
|
||||
converter.datasRender = myRender;
|
||||
}
|
||||
else {
|
||||
myRender.settings.allBegining = "<table class='table-hover'>";
|
||||
converter.datasRender = myRender;
|
||||
}
|
||||
pagination = new Pagination(converter, { id: "pages" }, "Page à afficher :");
|
||||
pagination.options = { displayElement: { id: "paginationOptions" }, values: [10, 20, 50, 500], name: "Choix de pagination :" };
|
||||
pagination.selectedValue = 10;
|
||||
converter.pagination = pagination;
|
||||
pagination.rend2HTML();
|
||||
converter.datasCounter = { id: "compteur" };
|
||||
return [4, converter.run()];
|
||||
case 2:
|
||||
_a.sent();
|
||||
filtre1 = new Selector(converter, 3, { id: "filtre1" });
|
||||
filtre1.selector2HTML();
|
||||
filtre2 = new Selector(converter, 4, { id: "filtre2" });
|
||||
filtre2.selector2HTML();
|
||||
filtre3 = new Selector(converter, 5, { id: "filtre3" });
|
||||
filtre3.separator = ",";
|
||||
filtre3.selector2HTML();
|
||||
converter.datasSelectors = [filtre1, filtre2, filtre3];
|
||||
if (window.innerWidth >= 800) {
|
||||
sortingField1 = new SortingField(converter, 0);
|
||||
sortingField1.field2HTML();
|
||||
sortingField2 = new SortingField(converter, 1);
|
||||
sortingField2.field2HTML();
|
||||
sortingField3 = new SortingField(converter, 2);
|
||||
sortingField3.field2HTML();
|
||||
sortingField4 = new SortingField(converter, 4);
|
||||
sortingField4.field2HTML();
|
||||
converter.datasSortingFields = [sortingField1, sortingField2, sortingField3, sortingField4];
|
||||
}
|
||||
return [3, 4];
|
||||
case 3:
|
||||
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, 4];
|
||||
case 4: return [2];
|
||||
}
|
||||
});
|
||||
}); };
|
||||
initialise();
|
@ -16,8 +16,6 @@ module.exports =
|
||||
parserNeedDatas: "Merci de fournir une chaîne de caractères valide à parser.",
|
||||
parserNeedSource: "Merci de fournir une chaîne de caractères où une url pour les données à parser.",
|
||||
parserNeedUrl: "Merci de fournir une url valide pour la source distante de données.",
|
||||
parserRemoteFail: "Erreur rencontrée durant l'accès aux données distantes.",
|
||||
parserTypeError: "Une donnée a été trouvée avec un type imprévu : ",
|
||||
renderNeedDatas: "Il ne peut y avoir de pagination, si les données n'ont pas été récupérées.",
|
||||
renderUnknownField: "Un champ non attendu a été trouvé dans les données à afficher : ",
|
||||
selector2HTMLFail: "Le création d'un filtre dans le DOM nécessite l'initialisation de l'élément HTML et du numéro du champs à filter.",
|
||||
|
@ -1,69 +0,0 @@
|
||||
import { FreeDatas2HTML, Pagination, Render, Selector, SortingField } from "./freeDatas2HTML";
|
||||
|
||||
const initialise = async () =>
|
||||
{
|
||||
try
|
||||
{
|
||||
// Création d'un convertisseur parsant des données transmises en JSON
|
||||
let converter=new FreeDatas2HTML("JSON", "", { url: "http://localhost:8080/datas/posts.json", withCredentials:true, headers: [{ key:"Authorization", value:"Token YWxhZGRpbjpvcGVuc2VzYW1l" }] });
|
||||
converter.datasViewElt={ id:"datas" };
|
||||
await converter.run();
|
||||
// Adaptation du rendu suivant la taille de l'écran
|
||||
const myRender=new Render(converter);
|
||||
if(window.innerWidth < 800)
|
||||
{
|
||||
myRender.settings=
|
||||
{
|
||||
allBegining:"<h4>Affichage petits écrans !</h4>",
|
||||
allEnding:"",
|
||||
linesBegining:"<ul>",
|
||||
linesEnding:"</ul>",
|
||||
lineBegining:"<li><ul>",
|
||||
lineEnding:"</ul></li>",
|
||||
dataDisplaying:"<li><b>#FIELDNAME :</b> #VALUE</li>",
|
||||
};
|
||||
converter.datasRender=myRender;
|
||||
}
|
||||
else
|
||||
{
|
||||
myRender.settings.allBegining="<table class='table-hover'>";
|
||||
converter.datasRender=myRender;
|
||||
}
|
||||
|
||||
// Configuration de la pagination
|
||||
const pagination=new Pagination(converter, { id:"pages" }, "Page à afficher :");
|
||||
pagination.options={ displayElement: { id:"paginationOptions" }, values: [15,30,50,100] , name: "Nombre de lignes par page :" };
|
||||
pagination.selectedValue=15;
|
||||
converter.pagination=pagination;
|
||||
pagination.rend2HTML();
|
||||
|
||||
// Affichage initial
|
||||
converter.datasCounter={ id:"compteur" };
|
||||
await converter.run();
|
||||
|
||||
// Création d'un filtre par auteur :
|
||||
let filtre1=new Selector(converter, 0, { id:"filtre1"} );
|
||||
filtre1.selector2HTML();
|
||||
converter.datasSelectors=[filtre1];
|
||||
|
||||
// Ajout de champs permettant de classer les données
|
||||
// Uniquement avec un rendu tableau (grand écran), car entêtes de colonne nécessaires
|
||||
if(window.innerWidth >= 800)
|
||||
{
|
||||
let sortingField1=new SortingField(converter, 0);
|
||||
sortingField1.field2HTML();
|
||||
let sortingField2=new SortingField(converter, 1);
|
||||
sortingField2.field2HTML();
|
||||
let sortingField3=new SortingField(converter, 2);
|
||||
sortingField3.field2HTML();
|
||||
converter.datasSortingFields=[sortingField1,sortingField2,sortingField3];
|
||||
}
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
console.error(e);
|
||||
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>";
|
||||
}
|
||||
}
|
||||
initialise();
|
@ -19,7 +19,7 @@ const initialise = async () =>
|
||||
};
|
||||
|
||||
// Création d'un convertisseur parsant les données d'un fichier CSV "distant"
|
||||
let converter=new FreeDatas2HTML("CSV","", { url:"http://localhost:8080/datas/elements-chimiques.csv" });
|
||||
let converter=new FreeDatas2HTML("CSV","", { url:"http://localhost:8080/datas/elements-chimiques.csv"});
|
||||
converter.datasViewElt={ id:"datas" };
|
||||
await converter.run();
|
||||
// Adaptation du rendu suivant la taille de l'écran
|
@ -4,7 +4,6 @@ const errors=require("./errors.js");
|
||||
import { Counter, Datas, DatasRenders, DOMElement, Paginations, Parsers, ParseErrors, RemoteSource, Selectors, SortingFields, SortingFunctions } from "./freeDatas2HTMLInterfaces";
|
||||
import { Pagination} from "./freeDatas2HTMLPagination";
|
||||
import { ParserForCSV} from "./freeDatas2HTMLParserForCSV";
|
||||
import { ParserForJSON} from "./freeDatas2HTMLParserForJSON";
|
||||
import { Render} from "./freeDatas2HTMLRender";
|
||||
import { Selector } from "./freeDatas2HTMLSelector";
|
||||
import { SortingField } from "./freeDatas2HTMLSortingField";
|
||||
@ -30,7 +29,7 @@ export class FreeDatas2HTML
|
||||
// Le nom des champs trouvés dans les données :
|
||||
public fields: string[]|undefined=undefined;
|
||||
// Les données à proprement parler :
|
||||
public datas: {[index: string]:any}[]=[];
|
||||
public datas: []=[];
|
||||
// Les erreurs rencontrées durant le traitement des données reçues :
|
||||
public parseErrors: ParseErrors[]|undefined;
|
||||
// Doit-on tout arrêter si une erreur est rencontrée durant le traitement ?
|
||||
@ -63,7 +62,8 @@ export class FreeDatas2HTML
|
||||
console.error("Appeler le parseur HTML");
|
||||
break;
|
||||
case "JSON":
|
||||
this.parser=new ParserForJSON();
|
||||
this.parser=new ParserForCSV();
|
||||
console.error("Appeler le parseur JSON");
|
||||
break;
|
||||
}
|
||||
if(datas2Parse !== "")
|
||||
|
@ -50,7 +50,7 @@ export interface Datas
|
||||
{
|
||||
[key: string]: string;
|
||||
}
|
||||
export interface ParseErrors
|
||||
export interface ParseErrors // erreurs non bloquantes rencontrées lors du parsage de données
|
||||
{
|
||||
code?: string;
|
||||
message: string;
|
||||
@ -59,21 +59,21 @@ export interface ParseErrors
|
||||
}
|
||||
export interface ParseResults
|
||||
{
|
||||
datas: {[index: string]:string}[];
|
||||
datas: [];
|
||||
errors: ParseErrors[];
|
||||
fields: string[];
|
||||
}
|
||||
export interface Parsers
|
||||
{
|
||||
datasRemoteSource: RemoteSource;
|
||||
datas2Parse: string;
|
||||
parseResults: ParseResults|undefined;
|
||||
parse(): Promise<void>;
|
||||
datas2Parse:string;
|
||||
parseResults:ParseResults|undefined;
|
||||
parse(): Promise<void>;
|
||||
}
|
||||
export interface RemoteSource
|
||||
{
|
||||
url: string;
|
||||
headers?: { key:string, value:string }[] ;
|
||||
headers?: { key:string, value:string|boolean|number }[] ;// revoir types possibles pour Headers ?
|
||||
withCredentials?:boolean;
|
||||
}
|
||||
export interface Selectors
|
||||
|
@ -1,154 +0,0 @@
|
||||
const errors = require("./errors.js");
|
||||
|
||||
import { ParseErrors, ParseResults, Parsers, RemoteSource } from "./freeDatas2HTMLInterfaces";
|
||||
|
||||
export class ParserForJSON implements Parsers
|
||||
{
|
||||
private _datasRemoteSource: RemoteSource={ url:"" };
|
||||
private _datas2Parse: string="";
|
||||
private _parseResults: ParseResults|undefined=undefined;
|
||||
|
||||
// Revoir tous les protocoles possibles pour une source distante (http(s)://.. , ftp..)
|
||||
set datasRemoteSource(source: RemoteSource)
|
||||
{
|
||||
if(source.url.trim().length === 0)
|
||||
throw new Error(errors.parserNeedUrl);
|
||||
else
|
||||
{
|
||||
source.url=source.url.trim();
|
||||
this._datasRemoteSource=source;
|
||||
}
|
||||
}
|
||||
|
||||
get datasRemoteSource() : RemoteSource
|
||||
{
|
||||
return this._datasRemoteSource;
|
||||
}
|
||||
|
||||
set datas2Parse(datas: string)
|
||||
{
|
||||
if(datas.trim().length === 0)
|
||||
throw new Error(errors.parserNeedDatas);
|
||||
else
|
||||
this._datas2Parse=datas.trim();
|
||||
}
|
||||
|
||||
get datas2Parse() : string
|
||||
{
|
||||
return this._datas2Parse;
|
||||
}
|
||||
|
||||
get parseResults() : ParseResults|undefined
|
||||
{
|
||||
return this._parseResults;
|
||||
}
|
||||
|
||||
// Refuse les champs qui ne sont pas des chaînes de caractères
|
||||
// trim() les autres
|
||||
public static trimAllFields(fields: any[]) : string[]
|
||||
{
|
||||
const nb=fields.length, goodFields: string[]=[];
|
||||
for(let i=0; i < nb; i++)
|
||||
{
|
||||
if(typeof fields[i] === "string")
|
||||
goodFields.push(fields[i].trim());
|
||||
}
|
||||
return goodFields;
|
||||
}
|
||||
|
||||
// async dans le cas d'une source distante
|
||||
public async parse(): Promise<any>
|
||||
{
|
||||
const parser=this;
|
||||
let parseContent="";
|
||||
if(parser._datasRemoteSource.url !== "")
|
||||
{
|
||||
const headers=new Headers();
|
||||
if(parser._datasRemoteSource.headers !== undefined)
|
||||
{
|
||||
for(let header of parser._datasRemoteSource.headers)
|
||||
headers.append(header.key, header.value);
|
||||
}
|
||||
const credentials : RequestCredentials|undefined=(parser._datasRemoteSource.withCredentials) ? "include" : "omit";
|
||||
const settings={
|
||||
method: "GET",
|
||||
headers: headers,
|
||||
credentials: credentials,
|
||||
};
|
||||
const response=await fetch(parser._datasRemoteSource.url, settings);
|
||||
if (! response.ok)
|
||||
throw new Error(errors.parserRemoteFail);
|
||||
parseContent=await response.text(); // doit en fait retourner du JSON, mais il est parsé plus loin.
|
||||
}
|
||||
else if(parser._datas2Parse !== "")
|
||||
parseContent=parser._datas2Parse;
|
||||
else
|
||||
throw new Error(errors.parserNeedSource);
|
||||
|
||||
try
|
||||
{
|
||||
const datasParsed=JSON.parse(parseContent);
|
||||
const typesOkForValue=["boolean","number","string"];
|
||||
let fields: string[]=[], datas: {[index: string]:string}[]=[], parseErrors: ParseErrors[]=[];
|
||||
// Je peux recevoir 2 tableaux contenant respectivement la liste de champs : string[] + celle des données : any[][]
|
||||
if(datasParsed.fields !== undefined && Array.isArray(datasParsed.fields) && datasParsed.datas !== undefined && Array.isArray(datasParsed.datas))
|
||||
{
|
||||
fields=ParserForJSON.trimAllFields(datasParsed.fields);
|
||||
const nbFields=fields.length, nbDatas=datasParsed.datas.length;
|
||||
for(let i=0; i < nbDatas; i++)
|
||||
{
|
||||
const dataObject: {[index: string]: string} = {}, nbObjFields=datasParsed.datas[i].length;
|
||||
for(let j=0; j < nbObjFields && j < nbFields; j++)
|
||||
{
|
||||
if(typesOkForValue.indexOf(typeof datasParsed.datas[i][j]) === -1)
|
||||
parseErrors.push({ row:i, message:errors.parserTypeError+typeof datasParsed.datas[i][j]});
|
||||
else
|
||||
dataObject[fields[j]]=datasParsed.datas[i][j]+""; // force le type String
|
||||
}
|
||||
if(Object.keys(dataObject).length !== 0)
|
||||
datas.push(dataObject);
|
||||
}
|
||||
}
|
||||
else // Ou un tableau d'objets {}[], dont les attributs sont les noms des champs
|
||||
{
|
||||
let i=0;
|
||||
for(let data of datasParsed)
|
||||
{
|
||||
// Ici les champs sont découverts au fur et à mesure,
|
||||
// leur ordre peut être différent d'une ligne à l'autre
|
||||
// et tous les champs ne sont pas systématiquement présents
|
||||
let dataObject: {[index: string]: string} = {}
|
||||
for(let field in data)
|
||||
{
|
||||
if(typesOkForValue.indexOf(typeof data[field]) !== -1)
|
||||
{
|
||||
field=field.trim();
|
||||
if(field !== "" && fields.indexOf(field) === -1)
|
||||
fields.push(field);
|
||||
dataObject[field]=data[field]+""; // force le type String
|
||||
}
|
||||
else
|
||||
parseErrors.push({ row:i, message:errors.parserTypeError+typeof data[field]});
|
||||
}
|
||||
if(Object.keys(dataObject).length !== 0)
|
||||
datas.push(dataObject);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
if(fields.length === 0) // possible si données fournies non correctement formées.
|
||||
throw new Error(errors.parserFail);
|
||||
// datas et errors peuvent par contre rester vides.
|
||||
parser._parseResults =
|
||||
{
|
||||
datas: datas,
|
||||
errors: parseErrors,
|
||||
fields: fields,
|
||||
};
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
console.error(e);
|
||||
throw new Error(errors.parserFail);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,602 +0,0 @@
|
||||
[
|
||||
{
|
||||
"userId": 1,
|
||||
"id": 1,
|
||||
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
|
||||
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
|
||||
},
|
||||
{
|
||||
"userId": 1,
|
||||
"id": 2,
|
||||
"title": "qui est esse",
|
||||
"body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla"
|
||||
},
|
||||
{
|
||||
"userId": 1,
|
||||
"id": 3,
|
||||
"title": "ea molestias quasi exercitationem repellat qui ipsa sit aut",
|
||||
"body": "et iusto sed quo iure\nvoluptatem occaecati omnis eligendi aut ad\nvoluptatem doloribus vel accusantium quis pariatur\nmolestiae porro eius odio et labore et velit aut"
|
||||
},
|
||||
{
|
||||
"userId": 1,
|
||||
"id": 4,
|
||||
"title": "eum et est occaecati",
|
||||
"body": "ullam et saepe reiciendis voluptatem adipisci\nsit amet autem assumenda provident rerum culpa\nquis hic commodi nesciunt rem tenetur doloremque ipsam iure\nquis sunt voluptatem rerum illo velit"
|
||||
},
|
||||
{
|
||||
"userId": 1,
|
||||
"id": 5,
|
||||
"title": "nesciunt quas odio",
|
||||
"body": "repudiandae veniam quaerat sunt sed\nalias aut fugiat sit autem sed est\nvoluptatem omnis possimus esse voluptatibus quis\nest aut tenetur dolor neque"
|
||||
},
|
||||
{
|
||||
"userId": 1,
|
||||
"id": 6,
|
||||
"title": "dolorem eum magni eos aperiam quia",
|
||||
"body": "ut aspernatur corporis harum nihil quis provident sequi\nmollitia nobis aliquid molestiae\nperspiciatis et ea nemo ab reprehenderit accusantium quas\nvoluptate dolores velit et doloremque molestiae"
|
||||
},
|
||||
{
|
||||
"userId": 1,
|
||||
"id": 7,
|
||||
"title": "magnam facilis autem",
|
||||
"body": "dolore placeat quibusdam ea quo vitae\nmagni quis enim qui quis quo nemo aut saepe\nquidem repellat excepturi ut quia\nsunt ut sequi eos ea sed quas"
|
||||
},
|
||||
{
|
||||
"userId": 1,
|
||||
"id": 8,
|
||||
"title": "dolorem dolore est ipsam",
|
||||
"body": "dignissimos aperiam dolorem qui eum\nfacilis quibusdam animi sint suscipit qui sint possimus cum\nquaerat magni maiores excepturi\nipsam ut commodi dolor voluptatum modi aut vitae"
|
||||
},
|
||||
{
|
||||
"userId": 1,
|
||||
"id": 9,
|
||||
"title": "nesciunt iure omnis dolorem tempora et accusantium",
|
||||
"body": "consectetur animi nesciunt iure dolore\nenim quia ad\nveniam autem ut quam aut nobis\net est aut quod aut provident voluptas autem voluptas"
|
||||
},
|
||||
{
|
||||
"userId": 1,
|
||||
"id": 10,
|
||||
"title": "optio molestias id quia eum",
|
||||
"body": "quo et expedita modi cum officia vel magni\ndoloribus qui repudiandae\nvero nisi sit\nquos veniam quod sed accusamus veritatis error"
|
||||
},
|
||||
{
|
||||
"userId": 2,
|
||||
"id": 11,
|
||||
"title": "et ea vero quia laudantium autem",
|
||||
"body": "delectus reiciendis molestiae occaecati non minima eveniet qui voluptatibus\naccusamus in eum beatae sit\nvel qui neque voluptates ut commodi qui incidunt\nut animi commodi"
|
||||
},
|
||||
{
|
||||
"userId": 2,
|
||||
"id": 12,
|
||||
"title": "in quibusdam tempore odit est dolorem",
|
||||
"body": "itaque id aut magnam\npraesentium quia et ea odit et ea voluptas et\nsapiente quia nihil amet occaecati quia id voluptatem\nincidunt ea est distinctio odio"
|
||||
},
|
||||
{
|
||||
"userId": 2,
|
||||
"id": 13,
|
||||
"title": "dolorum ut in voluptas mollitia et saepe quo animi",
|
||||
"body": "aut dicta possimus sint mollitia voluptas commodi quo doloremque\niste corrupti reiciendis voluptatem eius rerum\nsit cumque quod eligendi laborum minima\nperferendis recusandae assumenda consectetur porro architecto ipsum ipsam"
|
||||
},
|
||||
{
|
||||
"userId": 2,
|
||||
"id": 14,
|
||||
"title": "voluptatem eligendi optio",
|
||||
"body": "fuga et accusamus dolorum perferendis illo voluptas\nnon doloremque neque facere\nad qui dolorum molestiae beatae\nsed aut voluptas totam sit illum"
|
||||
},
|
||||
{
|
||||
"userId": 2,
|
||||
"id": 15,
|
||||
"title": "eveniet quod temporibus",
|
||||
"body": "reprehenderit quos placeat\nvelit minima officia dolores impedit repudiandae molestiae nam\nvoluptas recusandae quis delectus\nofficiis harum fugiat vitae"
|
||||
},
|
||||
{
|
||||
"userId": 2,
|
||||
"id": 16,
|
||||
"title": "sint suscipit perspiciatis velit dolorum rerum ipsa laboriosam odio",
|
||||
"body": "suscipit nam nisi quo aperiam aut\nasperiores eos fugit maiores voluptatibus quia\nvoluptatem quis ullam qui in alias quia est\nconsequatur magni mollitia accusamus ea nisi voluptate dicta"
|
||||
},
|
||||
{
|
||||
"userId": 2,
|
||||
"id": 17,
|
||||
"title": "fugit voluptas sed molestias voluptatem provident",
|
||||
"body": "eos voluptas et aut odit natus earum\naspernatur fuga molestiae ullam\ndeserunt ratione qui eos\nqui nihil ratione nemo velit ut aut id quo"
|
||||
},
|
||||
{
|
||||
"userId": 2,
|
||||
"id": 18,
|
||||
"title": "voluptate et itaque vero tempora molestiae",
|
||||
"body": "eveniet quo quis\nlaborum totam consequatur non dolor\nut et est repudiandae\nest voluptatem vel debitis et magnam"
|
||||
},
|
||||
{
|
||||
"userId": 2,
|
||||
"id": 19,
|
||||
"title": "adipisci placeat illum aut reiciendis qui",
|
||||
"body": "illum quis cupiditate provident sit magnam\nea sed aut omnis\nveniam maiores ullam consequatur atque\nadipisci quo iste expedita sit quos voluptas"
|
||||
},
|
||||
{
|
||||
"userId": 2,
|
||||
"id": 20,
|
||||
"title": "doloribus ad provident suscipit at",
|
||||
"body": "qui consequuntur ducimus possimus quisquam amet similique\nsuscipit porro ipsam amet\neos veritatis officiis exercitationem vel fugit aut necessitatibus totam\nomnis rerum consequatur expedita quidem cumque explicabo"
|
||||
},
|
||||
{
|
||||
"userId": 3,
|
||||
"id": 21,
|
||||
"title": "asperiores ea ipsam voluptatibus modi minima quia sint",
|
||||
"body": "repellat aliquid praesentium dolorem quo\nsed totam minus non itaque\nnihil labore molestiae sunt dolor eveniet hic recusandae veniam\ntempora et tenetur expedita sunt"
|
||||
},
|
||||
{
|
||||
"userId": 3,
|
||||
"id": 22,
|
||||
"title": "dolor sint quo a velit explicabo quia nam",
|
||||
"body": "eos qui et ipsum ipsam suscipit aut\nsed omnis non odio\nexpedita earum mollitia molestiae aut atque rem suscipit\nnam impedit esse"
|
||||
},
|
||||
{
|
||||
"userId": 3,
|
||||
"id": 23,
|
||||
"title": "maxime id vitae nihil numquam",
|
||||
"body": "veritatis unde neque eligendi\nquae quod architecto quo neque vitae\nest illo sit tempora doloremque fugit quod\net et vel beatae sequi ullam sed tenetur perspiciatis"
|
||||
},
|
||||
{
|
||||
"userId": 3,
|
||||
"id": 24,
|
||||
"title": "autem hic labore sunt dolores incidunt",
|
||||
"body": "enim et ex nulla\nomnis voluptas quia qui\nvoluptatem consequatur numquam aliquam sunt\ntotam recusandae id dignissimos aut sed asperiores deserunt"
|
||||
},
|
||||
{
|
||||
"userId": 3,
|
||||
"id": 25,
|
||||
"title": "rem alias distinctio quo quis",
|
||||
"body": "ullam consequatur ut\nomnis quis sit vel consequuntur\nipsa eligendi ipsum molestiae et omnis error nostrum\nmolestiae illo tempore quia et distinctio"
|
||||
},
|
||||
{
|
||||
"userId": 3,
|
||||
"id": 26,
|
||||
"title": "est et quae odit qui non",
|
||||
"body": "similique esse doloribus nihil accusamus\nomnis dolorem fuga consequuntur reprehenderit fugit recusandae temporibus\nperspiciatis cum ut laudantium\nomnis aut molestiae vel vero"
|
||||
},
|
||||
{
|
||||
"userId": 3,
|
||||
"id": 27,
|
||||
"title": "quasi id et eos tenetur aut quo autem",
|
||||
"body": "eum sed dolores ipsam sint possimus debitis occaecati\ndebitis qui qui et\nut placeat enim earum aut odit facilis\nconsequatur suscipit necessitatibus rerum sed inventore temporibus consequatur"
|
||||
},
|
||||
{
|
||||
"userId": 3,
|
||||
"id": 28,
|
||||
"title": "delectus ullam et corporis nulla voluptas sequi",
|
||||
"body": "non et quaerat ex quae ad maiores\nmaiores recusandae totam aut blanditiis mollitia quas illo\nut voluptatibus voluptatem\nsimilique nostrum eum"
|
||||
},
|
||||
{
|
||||
"userId": 3,
|
||||
"id": 29,
|
||||
"title": "iusto eius quod necessitatibus culpa ea",
|
||||
"body": "odit magnam ut saepe sed non qui\ntempora atque nihil\naccusamus illum doloribus illo dolor\neligendi repudiandae odit magni similique sed cum maiores"
|
||||
},
|
||||
{
|
||||
"userId": 3,
|
||||
"id": 30,
|
||||
"title": "a quo magni similique perferendis",
|
||||
"body": "alias dolor cumque\nimpedit blanditiis non eveniet odio maxime\nblanditiis amet eius quis tempora quia autem rem\na provident perspiciatis quia"
|
||||
},
|
||||
{
|
||||
"userId": 4,
|
||||
"id": 31,
|
||||
"title": "ullam ut quidem id aut vel consequuntur",
|
||||
"body": "debitis eius sed quibusdam non quis consectetur vitae\nimpedit ut qui consequatur sed aut in\nquidem sit nostrum et maiores adipisci atque\nquaerat voluptatem adipisci repudiandae"
|
||||
},
|
||||
{
|
||||
"userId": 4,
|
||||
"id": 32,
|
||||
"title": "doloremque illum aliquid sunt",
|
||||
"body": "deserunt eos nobis asperiores et hic\nest debitis repellat molestiae optio\nnihil ratione ut eos beatae quibusdam distinctio maiores\nearum voluptates et aut adipisci ea maiores voluptas maxime"
|
||||
},
|
||||
{
|
||||
"userId": 4,
|
||||
"id": 33,
|
||||
"title": "qui explicabo molestiae dolorem",
|
||||
"body": "rerum ut et numquam laborum odit est sit\nid qui sint in\nquasi tenetur tempore aperiam et quaerat qui in\nrerum officiis sequi cumque quod"
|
||||
},
|
||||
{
|
||||
"userId": 4,
|
||||
"id": 34,
|
||||
"title": "magnam ut rerum iure",
|
||||
"body": "ea velit perferendis earum ut voluptatem voluptate itaque iusto\ntotam pariatur in\nnemo voluptatem voluptatem autem magni tempora minima in\nest distinctio qui assumenda accusamus dignissimos officia nesciunt nobis"
|
||||
},
|
||||
{
|
||||
"userId": 4,
|
||||
"id": 35,
|
||||
"title": "id nihil consequatur molestias animi provident",
|
||||
"body": "nisi error delectus possimus ut eligendi vitae\nplaceat eos harum cupiditate facilis reprehenderit voluptatem beatae\nmodi ducimus quo illum voluptas eligendi\net nobis quia fugit"
|
||||
},
|
||||
{
|
||||
"userId": 4,
|
||||
"id": 36,
|
||||
"title": "fuga nam accusamus voluptas reiciendis itaque",
|
||||
"body": "ad mollitia et omnis minus architecto odit\nvoluptas doloremque maxime aut non ipsa qui alias veniam\nblanditiis culpa aut quia nihil cumque facere et occaecati\nqui aspernatur quia eaque ut aperiam inventore"
|
||||
},
|
||||
{
|
||||
"userId": 4,
|
||||
"id": 37,
|
||||
"title": "provident vel ut sit ratione est",
|
||||
"body": "debitis et eaque non officia sed nesciunt pariatur vel\nvoluptatem iste vero et ea\nnumquam aut expedita ipsum nulla in\nvoluptates omnis consequatur aut enim officiis in quam qui"
|
||||
},
|
||||
{
|
||||
"userId": 4,
|
||||
"id": 38,
|
||||
"title": "explicabo et eos deleniti nostrum ab id repellendus",
|
||||
"body": "animi esse sit aut sit nesciunt assumenda eum voluptas\nquia voluptatibus provident quia necessitatibus ea\nrerum repudiandae quia voluptatem delectus fugit aut id quia\nratione optio eos iusto veniam iure"
|
||||
},
|
||||
{
|
||||
"userId": 4,
|
||||
"id": 39,
|
||||
"title": "eos dolorem iste accusantium est eaque quam",
|
||||
"body": "corporis rerum ducimus vel eum accusantium\nmaxime aspernatur a porro possimus iste omnis\nest in deleniti asperiores fuga aut\nvoluptas sapiente vel dolore minus voluptatem incidunt ex"
|
||||
},
|
||||
{
|
||||
"userId": 4,
|
||||
"id": 40,
|
||||
"title": "enim quo cumque",
|
||||
"body": "ut voluptatum aliquid illo tenetur nemo sequi quo facilis\nipsum rem optio mollitia quas\nvoluptatem eum voluptas qui\nunde omnis voluptatem iure quasi maxime voluptas nam"
|
||||
},
|
||||
{
|
||||
"userId": 5,
|
||||
"id": 41,
|
||||
"title": "non est facere",
|
||||
"body": "molestias id nostrum\nexcepturi molestiae dolore omnis repellendus quaerat saepe\nconsectetur iste quaerat tenetur asperiores accusamus ex ut\nnam quidem est ducimus sunt debitis saepe"
|
||||
},
|
||||
{
|
||||
"userId": 5,
|
||||
"id": 42,
|
||||
"title": "commodi ullam sint et excepturi error explicabo praesentium voluptas",
|
||||
"body": "odio fugit voluptatum ducimus earum autem est incidunt voluptatem\nodit reiciendis aliquam sunt sequi nulla dolorem\nnon facere repellendus voluptates quia\nratione harum vitae ut"
|
||||
},
|
||||
{
|
||||
"userId": 5,
|
||||
"id": 43,
|
||||
"title": "eligendi iste nostrum consequuntur adipisci praesentium sit beatae perferendis",
|
||||
"body": "similique fugit est\nillum et dolorum harum et voluptate eaque quidem\nexercitationem quos nam commodi possimus cum odio nihil nulla\ndolorum exercitationem magnam ex et a et distinctio debitis"
|
||||
},
|
||||
{
|
||||
"userId": 5,
|
||||
"id": 44,
|
||||
"title": "optio dolor molestias sit",
|
||||
"body": "temporibus est consectetur dolore\net libero debitis vel velit laboriosam quia\nipsum quibusdam qui itaque fuga rem aut\nea et iure quam sed maxime ut distinctio quae"
|
||||
},
|
||||
{
|
||||
"userId": 5,
|
||||
"id": 45,
|
||||
"title": "ut numquam possimus omnis eius suscipit laudantium iure",
|
||||
"body": "est natus reiciendis nihil possimus aut provident\nex et dolor\nrepellat pariatur est\nnobis rerum repellendus dolorem autem"
|
||||
},
|
||||
{
|
||||
"userId": 5,
|
||||
"id": 46,
|
||||
"title": "aut quo modi neque nostrum ducimus",
|
||||
"body": "voluptatem quisquam iste\nvoluptatibus natus officiis facilis dolorem\nquis quas ipsam\nvel et voluptatum in aliquid"
|
||||
},
|
||||
{
|
||||
"userId": 5,
|
||||
"id": 47,
|
||||
"title": "quibusdam cumque rem aut deserunt",
|
||||
"body": "voluptatem assumenda ut qui ut cupiditate aut impedit veniam\noccaecati nemo illum voluptatem laudantium\nmolestiae beatae rerum ea iure soluta nostrum\neligendi et voluptate"
|
||||
},
|
||||
{
|
||||
"userId": 5,
|
||||
"id": 48,
|
||||
"title": "ut voluptatem illum ea doloribus itaque eos",
|
||||
"body": "voluptates quo voluptatem facilis iure occaecati\nvel assumenda rerum officia et\nillum perspiciatis ab deleniti\nlaudantium repellat ad ut et autem reprehenderit"
|
||||
},
|
||||
{
|
||||
"userId": 5,
|
||||
"id": 49,
|
||||
"title": "laborum non sunt aut ut assumenda perspiciatis voluptas",
|
||||
"body": "inventore ab sint\nnatus fugit id nulla sequi architecto nihil quaerat\neos tenetur in in eum veritatis non\nquibusdam officiis aspernatur cumque aut commodi aut"
|
||||
},
|
||||
{
|
||||
"userId": 5,
|
||||
"id": 50,
|
||||
"title": "repellendus qui recusandae incidunt voluptates tenetur qui omnis exercitationem",
|
||||
"body": "error suscipit maxime adipisci consequuntur recusandae\nvoluptas eligendi et est et voluptates\nquia distinctio ab amet quaerat molestiae et vitae\nadipisci impedit sequi nesciunt quis consectetur"
|
||||
},
|
||||
{
|
||||
"userId": 6,
|
||||
"id": 51,
|
||||
"title": "soluta aliquam aperiam consequatur illo quis voluptas",
|
||||
"body": "sunt dolores aut doloribus\ndolore doloribus voluptates tempora et\ndoloremque et quo\ncum asperiores sit consectetur dolorem"
|
||||
},
|
||||
{
|
||||
"userId": 6,
|
||||
"id": 52,
|
||||
"title": "qui enim et consequuntur quia animi quis voluptate quibusdam",
|
||||
"body": "iusto est quibusdam fuga quas quaerat molestias\na enim ut sit accusamus enim\ntemporibus iusto accusantium provident architecto\nsoluta esse reprehenderit qui laborum"
|
||||
},
|
||||
{
|
||||
"userId": 6,
|
||||
"id": 53,
|
||||
"title": "ut quo aut ducimus alias",
|
||||
"body": "minima harum praesentium eum rerum illo dolore\nquasi exercitationem rerum nam\nporro quis neque quo\nconsequatur minus dolor quidem veritatis sunt non explicabo similique"
|
||||
},
|
||||
{
|
||||
"userId": 6,
|
||||
"id": 54,
|
||||
"title": "sit asperiores ipsam eveniet odio non quia",
|
||||
"body": "totam corporis dignissimos\nvitae dolorem ut occaecati accusamus\nex velit deserunt\net exercitationem vero incidunt corrupti mollitia"
|
||||
},
|
||||
{
|
||||
"userId": 6,
|
||||
"id": 55,
|
||||
"title": "sit vel voluptatem et non libero",
|
||||
"body": "debitis excepturi ea perferendis harum libero optio\neos accusamus cum fuga ut sapiente repudiandae\net ut incidunt omnis molestiae\nnihil ut eum odit"
|
||||
},
|
||||
{
|
||||
"userId": 6,
|
||||
"id": 56,
|
||||
"title": "qui et at rerum necessitatibus",
|
||||
"body": "aut est omnis dolores\nneque rerum quod ea rerum velit pariatur beatae excepturi\net provident voluptas corrupti\ncorporis harum reprehenderit dolores eligendi"
|
||||
},
|
||||
{
|
||||
"userId": 6,
|
||||
"id": 57,
|
||||
"title": "sed ab est est",
|
||||
"body": "at pariatur consequuntur earum quidem\nquo est laudantium soluta voluptatem\nqui ullam et est\net cum voluptas voluptatum repellat est"
|
||||
},
|
||||
{
|
||||
"userId": 6,
|
||||
"id": 58,
|
||||
"title": "voluptatum itaque dolores nisi et quasi",
|
||||
"body": "veniam voluptatum quae adipisci id\net id quia eos ad et dolorem\naliquam quo nisi sunt eos impedit error\nad similique veniam"
|
||||
},
|
||||
{
|
||||
"userId": 6,
|
||||
"id": 59,
|
||||
"title": "qui commodi dolor at maiores et quis id accusantium",
|
||||
"body": "perspiciatis et quam ea autem temporibus non voluptatibus qui\nbeatae a earum officia nesciunt dolores suscipit voluptas et\nanimi doloribus cum rerum quas et magni\net hic ut ut commodi expedita sunt"
|
||||
},
|
||||
{
|
||||
"userId": 6,
|
||||
"id": 60,
|
||||
"title": "consequatur placeat omnis quisquam quia reprehenderit fugit veritatis facere",
|
||||
"body": "asperiores sunt ab assumenda cumque modi velit\nqui esse omnis\nvoluptate et fuga perferendis voluptas\nillo ratione amet aut et omnis"
|
||||
},
|
||||
{
|
||||
"userId": 7,
|
||||
"id": 61,
|
||||
"title": "voluptatem doloribus consectetur est ut ducimus",
|
||||
"body": "ab nemo optio odio\ndelectus tenetur corporis similique nobis repellendus rerum omnis facilis\nvero blanditiis debitis in nesciunt doloribus dicta dolores\nmagnam minus velit"
|
||||
},
|
||||
{
|
||||
"userId": 7,
|
||||
"id": 62,
|
||||
"title": "beatae enim quia vel",
|
||||
"body": "enim aspernatur illo distinctio quae praesentium\nbeatae alias amet delectus qui voluptate distinctio\nodit sint accusantium autem omnis\nquo molestiae omnis ea eveniet optio"
|
||||
},
|
||||
{
|
||||
"userId": 7,
|
||||
"id": 63,
|
||||
"title": "voluptas blanditiis repellendus animi ducimus error sapiente et suscipit",
|
||||
"body": "enim adipisci aspernatur nemo\nnumquam omnis facere dolorem dolor ex quis temporibus incidunt\nab delectus culpa quo reprehenderit blanditiis asperiores\naccusantium ut quam in voluptatibus voluptas ipsam dicta"
|
||||
},
|
||||
{
|
||||
"userId": 7,
|
||||
"id": 64,
|
||||
"title": "et fugit quas eum in in aperiam quod",
|
||||
"body": "id velit blanditiis\neum ea voluptatem\nmolestiae sint occaecati est eos perspiciatis\nincidunt a error provident eaque aut aut qui"
|
||||
},
|
||||
{
|
||||
"userId": 7,
|
||||
"id": 65,
|
||||
"title": "consequatur id enim sunt et et",
|
||||
"body": "voluptatibus ex esse\nsint explicabo est aliquid cumque adipisci fuga repellat labore\nmolestiae corrupti ex saepe at asperiores et perferendis\nnatus id esse incidunt pariatur"
|
||||
},
|
||||
{
|
||||
"userId": 7,
|
||||
"id": 66,
|
||||
"title": "repudiandae ea animi iusto",
|
||||
"body": "officia veritatis tenetur vero qui itaque\nsint non ratione\nsed et ut asperiores iusto eos molestiae nostrum\nveritatis quibusdam et nemo iusto saepe"
|
||||
},
|
||||
{
|
||||
"userId": 7,
|
||||
"id": 67,
|
||||
"title": "aliquid eos sed fuga est maxime repellendus",
|
||||
"body": "reprehenderit id nostrum\nvoluptas doloremque pariatur sint et accusantium quia quod aspernatur\net fugiat amet\nnon sapiente et consequatur necessitatibus molestiae"
|
||||
},
|
||||
{
|
||||
"userId": 7,
|
||||
"id": 68,
|
||||
"title": "odio quis facere architecto reiciendis optio",
|
||||
"body": "magnam molestiae perferendis quisquam\nqui cum reiciendis\nquaerat animi amet hic inventore\nea quia deleniti quidem saepe porro velit"
|
||||
},
|
||||
{
|
||||
"userId": 7,
|
||||
"id": 69,
|
||||
"title": "fugiat quod pariatur odit minima",
|
||||
"body": "officiis error culpa consequatur modi asperiores et\ndolorum assumenda voluptas et vel qui aut vel rerum\nvoluptatum quisquam perspiciatis quia rerum consequatur totam quas\nsequi commodi repudiandae asperiores et saepe a"
|
||||
},
|
||||
{
|
||||
"userId": 7,
|
||||
"id": 70,
|
||||
"title": "voluptatem laborum magni",
|
||||
"body": "sunt repellendus quae\nest asperiores aut deleniti esse accusamus repellendus quia aut\nquia dolorem unde\neum tempora esse dolore"
|
||||
},
|
||||
{
|
||||
"userId": 8,
|
||||
"id": 71,
|
||||
"title": "et iusto veniam et illum aut fuga",
|
||||
"body": "occaecati a doloribus\niste saepe consectetur placeat eum voluptate dolorem et\nqui quo quia voluptas\nrerum ut id enim velit est perferendis"
|
||||
},
|
||||
{
|
||||
"userId": 8,
|
||||
"id": 72,
|
||||
"title": "sint hic doloribus consequatur eos non id",
|
||||
"body": "quam occaecati qui deleniti consectetur\nconsequatur aut facere quas exercitationem aliquam hic voluptas\nneque id sunt ut aut accusamus\nsunt consectetur expedita inventore velit"
|
||||
},
|
||||
{
|
||||
"userId": 8,
|
||||
"id": 73,
|
||||
"title": "consequuntur deleniti eos quia temporibus ab aliquid at",
|
||||
"body": "voluptatem cumque tenetur consequatur expedita ipsum nemo quia explicabo\naut eum minima consequatur\ntempore cumque quae est et\net in consequuntur voluptatem voluptates aut"
|
||||
},
|
||||
{
|
||||
"userId": 8,
|
||||
"id": 74,
|
||||
"title": "enim unde ratione doloribus quas enim ut sit sapiente",
|
||||
"body": "odit qui et et necessitatibus sint veniam\nmollitia amet doloremque molestiae commodi similique magnam et quam\nblanditiis est itaque\nquo et tenetur ratione occaecati molestiae tempora"
|
||||
},
|
||||
{
|
||||
"userId": 8,
|
||||
"id": 75,
|
||||
"title": "dignissimos eum dolor ut enim et delectus in",
|
||||
"body": "commodi non non omnis et voluptas sit\nautem aut nobis magnam et sapiente voluptatem\net laborum repellat qui delectus facilis temporibus\nrerum amet et nemo voluptate expedita adipisci error dolorem"
|
||||
},
|
||||
{
|
||||
"userId": 8,
|
||||
"id": 76,
|
||||
"title": "doloremque officiis ad et non perferendis",
|
||||
"body": "ut animi facere\ntotam iusto tempore\nmolestiae eum aut et dolorem aperiam\nquaerat recusandae totam odio"
|
||||
},
|
||||
{
|
||||
"userId": 8,
|
||||
"id": 77,
|
||||
"title": "necessitatibus quasi exercitationem odio",
|
||||
"body": "modi ut in nulla repudiandae dolorum nostrum eos\naut consequatur omnis\nut incidunt est omnis iste et quam\nvoluptates sapiente aliquam asperiores nobis amet corrupti repudiandae provident"
|
||||
},
|
||||
{
|
||||
"userId": 8,
|
||||
"id": 78,
|
||||
"title": "quam voluptatibus rerum veritatis",
|
||||
"body": "nobis facilis odit tempore cupiditate quia\nassumenda doloribus rerum qui ea\nillum et qui totam\naut veniam repellendus"
|
||||
},
|
||||
{
|
||||
"userId": 8,
|
||||
"id": 79,
|
||||
"title": "pariatur consequatur quia magnam autem omnis non amet",
|
||||
"body": "libero accusantium et et facere incidunt sit dolorem\nnon excepturi qui quia sed laudantium\nquisquam molestiae ducimus est\nofficiis esse molestiae iste et quos"
|
||||
},
|
||||
{
|
||||
"userId": 8,
|
||||
"id": 80,
|
||||
"title": "labore in ex et explicabo corporis aut quas",
|
||||
"body": "ex quod dolorem ea eum iure qui provident amet\nquia qui facere excepturi et repudiandae\nasperiores molestias provident\nminus incidunt vero fugit rerum sint sunt excepturi provident"
|
||||
},
|
||||
{
|
||||
"userId": 9,
|
||||
"id": 81,
|
||||
"title": "tempora rem veritatis voluptas quo dolores vero",
|
||||
"body": "facere qui nesciunt est voluptatum voluptatem nisi\nsequi eligendi necessitatibus ea at rerum itaque\nharum non ratione velit laboriosam quis consequuntur\nex officiis minima doloremque voluptas ut aut"
|
||||
},
|
||||
{
|
||||
"userId": 9,
|
||||
"id": 82,
|
||||
"title": "laudantium voluptate suscipit sunt enim enim",
|
||||
"body": "ut libero sit aut totam inventore sunt\nporro sint qui sunt molestiae\nconsequatur cupiditate qui iste ducimus adipisci\ndolor enim assumenda soluta laboriosam amet iste delectus hic"
|
||||
},
|
||||
{
|
||||
"userId": 9,
|
||||
"id": 83,
|
||||
"title": "odit et voluptates doloribus alias odio et",
|
||||
"body": "est molestiae facilis quis tempora numquam nihil qui\nvoluptate sapiente consequatur est qui\nnecessitatibus autem aut ipsa aperiam modi dolore numquam\nreprehenderit eius rem quibusdam"
|
||||
},
|
||||
{
|
||||
"userId": 9,
|
||||
"id": 84,
|
||||
"title": "optio ipsam molestias necessitatibus occaecati facilis veritatis dolores aut",
|
||||
"body": "sint molestiae magni a et quos\neaque et quasi\nut rerum debitis similique veniam\nrecusandae dignissimos dolor incidunt consequatur odio"
|
||||
},
|
||||
{
|
||||
"userId": 9,
|
||||
"id": 85,
|
||||
"title": "dolore veritatis porro provident adipisci blanditiis et sunt",
|
||||
"body": "similique sed nisi voluptas iusto omnis\nmollitia et quo\nassumenda suscipit officia magnam sint sed tempora\nenim provident pariatur praesentium atque animi amet ratione"
|
||||
},
|
||||
{
|
||||
"userId": 9,
|
||||
"id": 86,
|
||||
"title": "placeat quia et porro iste",
|
||||
"body": "quasi excepturi consequatur iste autem temporibus sed molestiae beatae\net quaerat et esse ut\nvoluptatem occaecati et vel explicabo autem\nasperiores pariatur deserunt optio"
|
||||
},
|
||||
{
|
||||
"userId": 9,
|
||||
"id": 87,
|
||||
"title": "nostrum quis quasi placeat",
|
||||
"body": "eos et molestiae\nnesciunt ut a\ndolores perspiciatis repellendus repellat aliquid\nmagnam sint rem ipsum est"
|
||||
},
|
||||
{
|
||||
"userId": 9,
|
||||
"id": 88,
|
||||
"title": "sapiente omnis fugit eos",
|
||||
"body": "consequatur omnis est praesentium\nducimus non iste\nneque hic deserunt\nvoluptatibus veniam cum et rerum sed"
|
||||
},
|
||||
{
|
||||
"userId": 9,
|
||||
"id": 89,
|
||||
"title": "sint soluta et vel magnam aut ut sed qui",
|
||||
"body": "repellat aut aperiam totam temporibus autem et\narchitecto magnam ut\nconsequatur qui cupiditate rerum quia soluta dignissimos nihil iure\ntempore quas est"
|
||||
},
|
||||
{
|
||||
"userId": 9,
|
||||
"id": 90,
|
||||
"title": "ad iusto omnis odit dolor voluptatibus",
|
||||
"body": "minus omnis soluta quia\nqui sed adipisci voluptates illum ipsam voluptatem\neligendi officia ut in\neos soluta similique molestias praesentium blanditiis"
|
||||
},
|
||||
{
|
||||
"userId": 10,
|
||||
"id": 91,
|
||||
"title": "aut amet sed",
|
||||
"body": "libero voluptate eveniet aperiam sed\nsunt placeat suscipit molestias\nsimilique fugit nam natus\nexpedita consequatur consequatur dolores quia eos et placeat"
|
||||
},
|
||||
{
|
||||
"userId": 10,
|
||||
"id": 92,
|
||||
"title": "ratione ex tenetur perferendis",
|
||||
"body": "aut et excepturi dicta laudantium sint rerum nihil\nlaudantium et at\na neque minima officia et similique libero et\ncommodi voluptate qui"
|
||||
},
|
||||
{
|
||||
"userId": 10,
|
||||
"id": 93,
|
||||
"title": "beatae soluta recusandae",
|
||||
"body": "dolorem quibusdam ducimus consequuntur dicta aut quo laboriosam\nvoluptatem quis enim recusandae ut sed sunt\nnostrum est odit totam\nsit error sed sunt eveniet provident qui nulla"
|
||||
},
|
||||
{
|
||||
"userId": 10,
|
||||
"id": 94,
|
||||
"title": "qui qui voluptates illo iste minima",
|
||||
"body": "aspernatur expedita soluta quo ab ut similique\nexpedita dolores amet\nsed temporibus distinctio magnam saepe deleniti\nomnis facilis nam ipsum natus sint similique omnis"
|
||||
},
|
||||
{
|
||||
"userId": 10,
|
||||
"id": 95,
|
||||
"title": "id minus libero illum nam ad officiis",
|
||||
"body": "earum voluptatem facere provident blanditiis velit laboriosam\npariatur accusamus odio saepe\ncumque dolor qui a dicta ab doloribus consequatur omnis\ncorporis cupiditate eaque assumenda ad nesciunt"
|
||||
},
|
||||
{
|
||||
"userId": 10,
|
||||
"id": 96,
|
||||
"title": "quaerat velit veniam amet cupiditate aut numquam ut sequi",
|
||||
"body": "in non odio excepturi sint eum\nlabore voluptates vitae quia qui et\ninventore itaque rerum\nveniam non exercitationem delectus aut"
|
||||
},
|
||||
{
|
||||
"userId": 10,
|
||||
"id": 97,
|
||||
"title": "quas fugiat ut perspiciatis vero provident",
|
||||
"body": "eum non blanditiis soluta porro quibusdam voluptas\nvel voluptatem qui placeat dolores qui velit aut\nvel inventore aut cumque culpa explicabo aliquid at\nperspiciatis est et voluptatem dignissimos dolor itaque sit nam"
|
||||
},
|
||||
{
|
||||
"userId": 10,
|
||||
"id": 98,
|
||||
"title": "laboriosam dolor voluptates",
|
||||
"body": "doloremque ex facilis sit sint culpa\nsoluta assumenda eligendi non ut eius\nsequi ducimus vel quasi\nveritatis est dolores"
|
||||
},
|
||||
{
|
||||
"userId": 10,
|
||||
"id": 99,
|
||||
"title": "temporibus sit alias delectus eligendi possimus magni",
|
||||
"body": "quo deleniti praesentium dicta non quod\naut est molestias\nmolestias et officia quis nihil\nitaque dolorem quia"
|
||||
},
|
||||
{
|
||||
"userId": 10,
|
||||
"id": 100,
|
||||
"title": "at nam consequatur ea labore ea harum",
|
||||
"body": "cupiditate quo est a modi nesciunt soluta\nipsa voluptas error itaque dicta in\nautem qui minus magnam et distinctio eum\naccusamus ratione error aut"
|
||||
}
|
||||
]
|
@ -3,15 +3,37 @@ import { RemoteSource } from "../src/freeDatas2HTMLInterfaces";
|
||||
import { ParserForCSV as Parser } from "../src/freeDatas2HTMLParserForCSV";
|
||||
const errors=require("../src/errors.js");
|
||||
|
||||
// Pas de test de Papa Parse lui-même, car il s'agit d'un module externe.
|
||||
// Mais tests de la classe l'utilisant.
|
||||
// Pas de test de Papa Parse, car module externe
|
||||
// Mais tests d'instanciation et configuration de la classe l'utilisant
|
||||
describe("Tests du parseur de CSV", () =>
|
||||
{
|
||||
let parser: Parser;
|
||||
let papaParseOptions: {};
|
||||
|
||||
beforeEach( () =>
|
||||
{
|
||||
parser=new Parser();
|
||||
papaParseOptions =
|
||||
{
|
||||
delimiter: "",
|
||||
newline: "",
|
||||
quoteChar: '"',
|
||||
escapeChar: '"',
|
||||
header: true,
|
||||
transformHeader: function(field: string, index: number): string { return field.trim() },
|
||||
preview: 0,
|
||||
comments: "",
|
||||
complete: function(results :any)
|
||||
{
|
||||
console.log(results);// peut importe cette partie pour les tests
|
||||
},
|
||||
download: undefined,
|
||||
downloadRequestHeaders: undefined,
|
||||
skipEmptyLines:"greedy",
|
||||
fastMode: undefined,
|
||||
withCredentials: undefined,
|
||||
transform: undefined,
|
||||
}
|
||||
});
|
||||
|
||||
it("Doit avoir créé une instance du Parser", () =>
|
||||
@ -30,15 +52,15 @@ describe("Tests du parseur de CSV", () =>
|
||||
let myRemoteSource: RemoteSource={ url:"zz" };
|
||||
parser.datasRemoteSource=myRemoteSource;
|
||||
expect(parser.datasRemoteSource).toEqual(myRemoteSource);
|
||||
myRemoteSource={ url:"zz", headers:[ { key:"test", value:"coucou"}, { key:"test2", value:"coucou2"}], withCredentials:true };
|
||||
myRemoteSource={ url:"zz", headers: [ { key:"test", value: "coucou"}, { key:"test2", value:"coucou2"}], withCredentials:true };
|
||||
parser.datasRemoteSource=myRemoteSource;
|
||||
expect(parser.datasRemoteSource).toEqual(myRemoteSource);
|
||||
});
|
||||
|
||||
it("Doit générer une erreur si la chaîne de données à parser est vide.", () =>
|
||||
{
|
||||
expect(() => { return parser.datas2Parse="" }).toThrowError(errors.parserNeedDatas);
|
||||
expect(() => { return parser.datas2Parse=" " }).toThrowError(errors.parserNeedDatas);
|
||||
expect(() => { return parser. datas2Parse= "" }).toThrowError(errors.parserNeedDatas);
|
||||
expect(() => { return parser. datas2Parse= " " }).toThrowError(errors.parserNeedDatas);
|
||||
});
|
||||
|
||||
it("Doit accepter toute chaîne de caractères non vide pour les données à parser.", () =>
|
||||
@ -55,17 +77,17 @@ describe("Tests du parseur de CSV", () =>
|
||||
it("Si les données sont directement fournies, cela doit être pris en compte dans les options passées à Papa Parse.", () =>
|
||||
{
|
||||
// Idéalement il faudrait tester les paramètres passés à PapaParse
|
||||
// Mais semble impossible à cause des fonctions callback ?!
|
||||
// Mais semble impossible à cause des fonctions callback ?
|
||||
spyOn(Papa, "parse");
|
||||
parser.datas2Parse="datas";
|
||||
parser.parse();
|
||||
expect(parser.privateOptions).toEqual(
|
||||
{
|
||||
header:true,
|
||||
download:false,
|
||||
downloadRequestHeaders:undefined,
|
||||
header: true,
|
||||
download: false,
|
||||
downloadRequestHeaders: undefined,
|
||||
skipEmptyLines:"greedy",
|
||||
withCredentials:undefined
|
||||
withCredentials: undefined
|
||||
});
|
||||
});
|
||||
|
||||
@ -73,27 +95,27 @@ describe("Tests du parseur de CSV", () =>
|
||||
{
|
||||
// Même remarque, test précédent
|
||||
spyOn(Papa, "parse");
|
||||
let myRemoteSource: RemoteSource={ url:"http://localhost:9876/datas/datas1.csv", withCredentials:true };
|
||||
let myRemoteSource: RemoteSource={ url:"http://localhost:9876/datas/datas1.csv", withCredentials:true };
|
||||
parser.datasRemoteSource=myRemoteSource;
|
||||
parser.parse();
|
||||
expect(parser.privateOptions).toEqual(
|
||||
{
|
||||
header:true,
|
||||
download:true,
|
||||
downloadRequestHeaders:undefined,
|
||||
skipEmptyLines:"greedy",
|
||||
withCredentials:true
|
||||
header: true,
|
||||
download: true,
|
||||
downloadRequestHeaders: undefined,
|
||||
skipEmptyLines: "greedy",
|
||||
withCredentials: true
|
||||
});
|
||||
myRemoteSource={ url:"http://localhost:9876/datas/datas1.csv", headers:[ { key:"test", value:"coucou"}, { key:"test2", value:"coucou2"}] , withCredentials:false };
|
||||
myRemoteSource={ url:"http://localhost:9876/datas/datas1.csv", headers: [ { key:"test", value: "coucou"}, { key:"test2", value:"coucou2"}] , withCredentials:false };
|
||||
parser.datasRemoteSource=myRemoteSource;
|
||||
parser.parse();
|
||||
expect(parser.privateOptions).toEqual(
|
||||
{
|
||||
header:true,
|
||||
download:true,
|
||||
downloadRequestHeaders:{ test:"coucou", test2:"coucou2"},
|
||||
skipEmptyLines:"greedy",
|
||||
withCredentials:false
|
||||
header: true,
|
||||
download: true,
|
||||
downloadRequestHeaders: { test:"coucou", test2:"coucou2"},
|
||||
skipEmptyLines: "greedy",
|
||||
withCredentials: false
|
||||
});
|
||||
expect(Papa.parse).toHaveBeenCalledTimes(2);
|
||||
});
|
||||
@ -103,12 +125,10 @@ describe("Tests du parseur de CSV", () =>
|
||||
parser.datasRemoteSource={ url:"http://localhost:9876/datas/datas1.csv" };
|
||||
await parser.parse();
|
||||
expect(parser.parseResults).not.toBeUndefined();
|
||||
// Y compris si les données fournies sont bidon :
|
||||
// Y compris si données fournies bidon :
|
||||
parser=new Parser();
|
||||
parser.datas2Parse="datas";
|
||||
await parser.parse();
|
||||
expect(parser.parseResults).not.toBeUndefined();
|
||||
// Mais dans ce cas, des erreurs doivent être reportées :
|
||||
expect(parser.parseResults.errors.length).not.toEqual(0);
|
||||
});
|
||||
});
|
@ -1,190 +0,0 @@
|
||||
import { RemoteSource } from "../src/freeDatas2HTMLInterfaces";
|
||||
import { ParserForJSON as Parser } from "../src/freeDatas2HTMLParserForJSON";
|
||||
const errors=require("../src/errors.js");
|
||||
|
||||
describe("Tests du parseur de JSON", () =>
|
||||
{
|
||||
let parser: Parser;
|
||||
|
||||
beforeEach( () =>
|
||||
{
|
||||
parser=new Parser();
|
||||
});
|
||||
|
||||
it("Doit avoir créé une instance du Parser", () =>
|
||||
{
|
||||
expect(parser).toBeInstanceOf(Parser);
|
||||
});
|
||||
|
||||
it("Doit générer une erreur si la chaîne de données à parser est vide.", () =>
|
||||
{
|
||||
expect(() => { return parser.datas2Parse= "" }).toThrowError(errors.parserNeedDatas);
|
||||
expect(() => { return parser.datas2Parse= " " }).toThrowError(errors.parserNeedDatas);
|
||||
});
|
||||
|
||||
it("Doit accepter toute chaîne de caractères non vide pour les données à parser.", () =>
|
||||
{
|
||||
parser. datas2Parse="datas";
|
||||
expect(parser.datas2Parse).toEqual("datas");
|
||||
});
|
||||
|
||||
it("Doit générer une erreur si le parseur est lancé sans source de données fournie.", async () =>
|
||||
{
|
||||
await expectAsync(parser.parse()).toBeRejectedWith(new Error(errors.parserNeedSource));
|
||||
});
|
||||
|
||||
it("Si le parseur a été appelé avec des données correctes, des résultats doivent être enregistrés.", async () =>
|
||||
{
|
||||
parser.datas2Parse= `[{ "nom": "dugenoux"},{ "nom": "dupont"}]`;
|
||||
await parser.parse();
|
||||
expect(parser.parseResults).not.toBeUndefined();
|
||||
});
|
||||
|
||||
describe("Accès à des données distantes.", () =>
|
||||
{
|
||||
it("Doit générer une erreur si l'url fournie pour importer les données est une chaîne vide.", () =>
|
||||
{
|
||||
expect(() => { return parser.datasRemoteSource= { url:"" } }).toThrowError(errors.parserNeedUrl);
|
||||
expect(() => { return parser.datasRemoteSource= { url:" " } }).toThrowError(errors.parserNeedUrl);
|
||||
});
|
||||
|
||||
it("Doit accepter des paramètres valides pour la source de données distante.", () =>
|
||||
{
|
||||
let myRemoteSource: RemoteSource={ url:"zz" };
|
||||
parser.datasRemoteSource=myRemoteSource;
|
||||
expect(parser.datasRemoteSource).toEqual(myRemoteSource);
|
||||
myRemoteSource={ url:"zz", headers: [ { key:"test", value: "coucou"}, { key:"test2", value:"coucou2"}], withCredentials:true };
|
||||
parser.datasRemoteSource=myRemoteSource;
|
||||
expect(parser.datasRemoteSource).toEqual(myRemoteSource);
|
||||
});
|
||||
|
||||
it("Si des options sont fournies pour appeler une ressource distante, elles doivent être prises en compte.", async () =>
|
||||
{
|
||||
spyOn(window,"fetch").and.callThrough();
|
||||
parser.datasRemoteSource={ url: "http://localhost:9876/datas/posts.json", withCredentials:true, headers: [{ key:"Authorization", value:"Token YWxhZGRpbjpvcGVuc2VzYW1l" }]};
|
||||
await parser.parse();
|
||||
|
||||
const headers=new Headers();
|
||||
headers.append("Authorization", "Token YWxhZGRpbjpvcGVuc2VzYW1l");
|
||||
const credentials : RequestCredentials|undefined="include" ;
|
||||
const settings={
|
||||
method: "GET",
|
||||
headers: headers,
|
||||
credentials: credentials,
|
||||
};
|
||||
expect(fetch).toHaveBeenCalledWith("http://localhost:9876/datas/posts.json", settings);
|
||||
});
|
||||
|
||||
it("Doit générer une erreur, si l'accès aux données distantes est défaillant.", async () =>
|
||||
{
|
||||
parser.datasRemoteSource={ url:"http://localhost:9876/datas/posts.jso" }; // une seule lettre vous manque...
|
||||
await expectAsync(parser.parse()).toBeRejectedWith(new Error(errors.parserRemoteFail));
|
||||
});
|
||||
|
||||
it("Si le parseur a été appelé avec une url fournissant des données correctes, des résultats doivent être enregistrés.", async () =>
|
||||
{
|
||||
parser.datasRemoteSource={ url:"http://localhost:9876/datas/posts.json" };
|
||||
await parser.parse();
|
||||
expect(parser.parseResults).not.toBeUndefined();
|
||||
});
|
||||
});
|
||||
|
||||
describe("Noms des champs et données fournies dans deux tableaux distincts.", () =>
|
||||
{
|
||||
it("Les valeurs fournies pour les champs doivent être des chaînes de caractères.", () =>
|
||||
{
|
||||
const fields=["nom",24,"prénom", true,{ field:"champ"},"âge",["je suis un nom de champ"]];
|
||||
expect(Parser.trimAllFields(fields)).toEqual(["nom","prénom", "âge"]);
|
||||
});
|
||||
|
||||
it("Les espaces entourant les noms de champs doivent être supprimés.", () =>
|
||||
{
|
||||
const fields=[" nom","prénom ", " âge "];
|
||||
expect(Parser.trimAllFields(fields)).toEqual(["nom","prénom", "âge"]);
|
||||
});
|
||||
|
||||
it("Si des champs en trop sont trouvés dans une ligne de données, ils doivent être ignorés. Idem pour les champs absents.", async () =>
|
||||
{
|
||||
parser.datas2Parse=`{ "fields": ["nom","prénom", "âge"], "datas": [["dugenoux","henri",25,"je me champ en trop"],["michu","mariette"]] }`;
|
||||
await parser.parse();
|
||||
expect(parser.parseResults.fields).toEqual(["nom","prénom", "âge"]);
|
||||
expect(parser.parseResults.datas).toEqual([{nom:"dugenoux","prénom":"henri", "âge":"25"}, {nom:"michu","prénom":"mariette"}]);
|
||||
});
|
||||
|
||||
it("Si certaines des données fournies ont un type non accepté, elles doivent être ignorées et les erreurs doivent être reportées.", async () =>
|
||||
{
|
||||
parser.datas2Parse=`{ "fields": ["nom","prénom", "âge"], "datas": [["dugenoux",{ "prenom":"henri"},25],["michu","mariette",null]] }`;
|
||||
await parser.parse();
|
||||
expect(parser.parseResults.fields).toEqual(["nom","prénom", "âge"]);
|
||||
expect(parser.parseResults.datas).toEqual([{nom:"dugenoux", "âge":"25"}, {nom:"michu","prénom":"mariette"}]);
|
||||
expect(parser.parseResults.errors[0]).toEqual({row:0,message:errors.parserTypeError+"object"});
|
||||
expect(parser.parseResults.errors[1]).toEqual({row:1,message:errors.parserTypeError+"object"});
|
||||
});
|
||||
|
||||
it("Un enregistrement n'ayant aucune donnée valide sera ignoré.", async () =>
|
||||
{
|
||||
parser.datas2Parse=`{ "fields": ["nom","prénom", "âge"], "datas": [["dugenoux","henri",25],[null,{ "prenom":"mariette"},[58]]] }`;
|
||||
await parser.parse();
|
||||
expect(parser.parseResults.fields).toEqual(["nom","prénom", "âge"]);
|
||||
expect(parser.parseResults.datas).toEqual([{nom:"dugenoux","prénom":"henri", "âge":"25"}]);
|
||||
});
|
||||
|
||||
it("Si toutes les données fournies sont ok, on doit les retrouver en résultat.", async () =>
|
||||
{
|
||||
parser.datas2Parse=`{ "fields": ["nom","prénom", "âge"], "datas": [["dugenoux","henri",25],["michu","mariette",58]] }`;
|
||||
await parser.parse();
|
||||
expect(parser.parseResults.fields).toEqual(["nom","prénom", "âge"]);
|
||||
expect(parser.parseResults.datas).toEqual([{nom:"dugenoux","prénom":"henri", "âge":"25"}, {nom:"michu","prénom":"mariette", "âge":"58"}]);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Données fournies sous forme de tableau d'objets.", () =>
|
||||
{
|
||||
it("Les espaces entourant les noms de champs doivent être supprimés.", async () =>
|
||||
{
|
||||
parser.datas2Parse=`[{"nom ":"dugenoux"," prénom":"henri"," âge ":25},{"nom":"michu","prénom":"mariette","âge":58}]`;
|
||||
await parser.parse();
|
||||
expect(parser.parseResults.fields).toEqual(["nom","prénom", "âge"]);
|
||||
});
|
||||
|
||||
it("Si certaines des données fournies ont un type non accepté, elles doivent être ignorées ainsi que leur attribut. Et les erreurs doivent être reportées.", async () =>
|
||||
{
|
||||
parser.datas2Parse=`[{"nom":"dugenoux","prénom":{"value":"henri"},"âge":25},{"âge":"58","nom":"michu","prénom":"mariette","pseudo":["madame Michu"]}]`;
|
||||
await parser.parse();
|
||||
expect(parser.parseResults.fields).toEqual(["nom", "âge", "prénom"]);
|
||||
expect(parser.parseResults.datas).toEqual([{nom:"dugenoux", "âge":"25"}, {"âge":"58", nom:"michu", "prénom":"mariette"}]);
|
||||
expect(parser.parseResults.errors[0]).toEqual({row:0,message:errors.parserTypeError+"object"});
|
||||
expect(parser.parseResults.errors[1]).toEqual({row:1,message:errors.parserTypeError+"object"});
|
||||
});
|
||||
|
||||
it("Un enregistrement n'ayant aucune donnée valide doit être ignoré.", async () =>
|
||||
{
|
||||
parser.datas2Parse=`[{"nom":["dugenoux"],"prénom":{"value":"henri"},"âge":null},{"nom":"michu","prénom":"mariette","âge":58}]`;
|
||||
await parser.parse();
|
||||
expect(parser.parseResults.fields).toEqual(["nom", "prénom", "âge"]);
|
||||
expect(parser.parseResults.datas).toEqual([{ nom:"michu","prénom":"mariette","âge":"58"}]);
|
||||
});
|
||||
|
||||
it("Si toutes les données fournies sont ok, on doit les retrouver en résultat.", async () =>
|
||||
{
|
||||
parser.datas2Parse=`[{"nom":"dugenoux","prénom":"henri","âge":25},{"nom":"michu","prénom":"mariette","âge":58}]`;
|
||||
await parser.parse();
|
||||
expect(parser.parseResults.fields).toEqual(["nom","prénom", "âge"]);
|
||||
expect(parser.parseResults.datas).toEqual([{nom:"dugenoux","prénom":"henri", "âge":"25"}, {nom:"michu","prénom":"mariette", "âge":"58"}]);
|
||||
// Tous les objets n'ont pas forcément les mêmes attributs, ni dans le même ordre
|
||||
parser.datas2Parse=`[{"nom":"dugenoux","prénom":"henri","âge":"25"},{"âge":"58","nom":"michu","pseudo":"madame Michu"}]`;
|
||||
await parser.parse();
|
||||
expect(parser.parseResults.fields).toEqual(["nom","prénom", "âge", "pseudo"]);
|
||||
expect(parser.parseResults.datas).toEqual([{nom:"dugenoux","prénom":"henri", "âge":"25"}, {"âge":"58", nom:"michu", pseudo:"madame Michu" }]);
|
||||
});
|
||||
});
|
||||
|
||||
it("Doit générer une erreur si les champs n'ont pas été trouvés dans les données.", async () =>
|
||||
{
|
||||
parser.datas2Parse=`{ "field": [" nom","prénom ", " âge "], "datas": [["dugenoux","henri","25"]] }`; // manque un "s" à fields :)
|
||||
await expectAsync(parser.parse()).toBeRejectedWith(new Error(errors.parserFail));
|
||||
parser.datas2Parse=`[{" ":"dugenoux"," ":"henri"},{" ":"michu"," ":" "}]`;
|
||||
await expectAsync(parser.parse()).toBeRejectedWith(new Error(errors.parserFail));
|
||||
});
|
||||
|
||||
});
|
@ -5,8 +5,7 @@ module.exports =
|
||||
mode: "development",
|
||||
entry:
|
||||
{
|
||||
exampleWithCSV: "./src/exampleWithCSV.ts",
|
||||
exampleWithJSON: "./src/exampleWithJSON.ts",
|
||||
firstExample: "./src/firstExample.ts",
|
||||
},
|
||||
output:
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user