{"analyzedAt":"2023-01-15T14:36:43.727Z","collected":{"metadata":{"name":"react-canvas-timeline","scope":"unscoped","version":"0.0.95","description":"a timeline based on canvas and react","keywords":["timeline","gantt","scheduler"],"date":"2023-01-15T14:35:54.191Z","author":{"name":"Peter Rank"},"publisher":{"username":"peterrank","email":"peter_rank@gmx.de"},"maintainers":[{"username":"peterrank","email":"peter_rank@gmx.de"}],"repository":{"type":"git","url":"git+https://github.com/peterrank/timeline.git"},"links":{"npm":"https://www.npmjs.com/package/react-canvas-timeline","homepage":"https://github.com/peterrank/timeline","repository":"https://github.com/peterrank/timeline","bugs":"https://github.com/peterrank/timeline/issues"},"dependencies":{"@types/jest":"^26.0.23","@types/node":"^15.0.1","@types/react":"^17.0.4","@types/react-dom":"^17.0.3","hammerjs":"^2.0.8","typescript":"^4.2.4"},"devDependencies":{"@babel/cli":"^7.13.16","@storybook/addon-actions":"^6.2.9","@storybook/addon-links":"^6.2.9","@storybook/addons":"^6.2.9","@storybook/preset-create-react-app":"^3.1.7","@storybook/react":"^6.2.9","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/user-event":"^13.1.8","babel-preset-react-app":"^10.0.0","react":"^16.14.0","react-dom":"^16.13.1","react-scripts":"^4.0.3"},"releases":[{"from":"2022-12-16T00:00:00.000Z","to":"2023-01-15T00:00:00.000Z","count":8},{"from":"2022-10-17T00:00:00.000Z","to":"2023-01-15T00:00:00.000Z","count":16},{"from":"2022-07-19T00:00:00.000Z","to":"2023-01-15T00:00:00.000Z","count":18},{"from":"2022-01-15T00:00:00.000Z","to":"2023-01-15T00:00:00.000Z","count":23},{"from":"2021-01-15T00:00:00.000Z","to":"2023-01-15T00:00:00.000Z","count":46}],"hasTestScript":true,"readme":"# react-canvas-timeline\na timeline based on canvas and react\n\n\n![histomania](./geschichte.gif)\n\n## Install\nnpm  \n```npm install --save react-canvas-timeline```\n\nyarn  \n```yarn add react-canvas-timeline```\n\n## Github\n\nhttps://github.com/peterrank/timeline\n\n## Examples\n\nrun storybook to see some examples.\n  \n```yarn storybook```\n\n### see usages in projects\n\nhttps://histomania.com/  \nhttps://www.pixipoint.com/  \n\n### Quick run\n\nbuild some test data (testdatabuilder.js)\n\n```\nimport {Resource, Task, LCal, Helper} from 'react-canvas-timeline';\n\nvar seed = 1;\nconst random = () => {\n  var x = Math.sin(seed++) * 10000;\n  return x - Math.floor(x);\n}\n\nconst buildTestData = () => {\n  seed = 1;\n  const COLORS = ['FF005D', '0085B6', '0BB4C1', '00D49D', 'FEDF03', '233D4D', 'FE7F2D', 'FCCA46', 'A1C181', '579C87']\n  let color = -1\n  const nextColor = () => {\n    color = (color + 1) % COLORS.length\n    return COLORS[color]\n  }\n\n  let resources = [];\n  for(let n=0; n<100; n++) {\n    let res = new Resource(n, \"Res \"+String(n).padStart(3, '0'), \"Techniker\", false);\n    resources.push(res);\n  }\n\n  let tasks = [];\n  for(let n=0; n<1000; n++) {\n    let now = new LCal().initNow();\n\n    let start = now.clone().addDay(Math.round(n/10));\n    let end = now.clone().addDay(Math.round(n/10) + 1 + random()*20);\n\n    let task = new Task(n, start, end, Math.round(random()*100), \"Task \"+n, \"Ein Vorgang\", null);\n    let barColor = \"#\"+nextColor();\n    task.getDisplayData().setColor(barColor);\n    task.getDisplayData().setLabelColor(Helper.isDarkBackground(barColor) ? \"#FFF\" : \"#000\"); //Default Label color is white\n\n    let innerEvents = [];\n    let innerStart = start.clone();\n    let innerEnd = start.clone().addHour(5);\n    let innerEvent = new Task(0, innerStart, innerEnd, 0, \"\", \"\", null);\n    innerEvents.push(innerEvent);\n\n    innerEnd = end.clone();\n    innerStart = end.clone().addHour(-15);\n    innerEvent = new Task(0, innerStart, innerEnd, 0, \"\", \"\", null);\n\n    innerEvents.push(innerEvent);\n\n    task.innerEvents = innerEvents;\n\n    tasks.push(task);\n  }\n  return {\n    resources,\n    tasks\n  }\n}\n```\n\nand use it\n\n```\nimport {ReactCanvasTimeline} from 'react-canvas-timeline';\nimport buildTestData from './testdatabuilder';\n\n...\n\nlet testData = buildTestData();\n\n...\n\n<ReactCanvasTimeline\n  resources={testData.resources}\n  tasks={testData.tasks}\n  width={1000}\n  height={500}\n/>\n```"},"npm":{"downloads":[{"from":"2023-01-14T00:00:00.000Z","to":"2023-01-15T00:00:00.000Z","count":118},{"from":"2023-01-08T00:00:00.000Z","to":"2023-01-15T00:00:00.000Z","count":462},{"from":"2022-12-16T00:00:00.000Z","to":"2023-01-15T00:00:00.000Z","count":854},{"from":"2022-10-17T00:00:00.000Z","to":"2023-01-15T00:00:00.000Z","count":2212},{"from":"2022-07-19T00:00:00.000Z","to":"2023-01-15T00:00:00.000Z","count":2844},{"from":"2022-01-15T00:00:00.000Z","to":"2023-01-15T00:00:00.000Z","count":4198}],"starsCount":0},"github":{"starsCount":6,"forksCount":0,"subscribersCount":1,"issues":{"count":0,"openCount":0,"distribution":{"3600":0,"10800":0,"32400":0,"97200":0,"291600":0,"874800":0,"2624400":0,"7873200":0,"23619600":0,"70858800":0,"212576400":0},"isDisabled":false},"commits":[{"from":"2023-01-08T00:00:00.000Z","to":"2023-01-15T00:00:00.000Z","count":0},{"from":"2022-12-16T00:00:00.000Z","to":"2023-01-15T00:00:00.000Z","count":0},{"from":"2022-10-17T00:00:00.000Z","to":"2023-01-15T00:00:00.000Z","count":0},{"from":"2022-07-19T00:00:00.000Z","to":"2023-01-15T00:00:00.000Z","count":0},{"from":"2022-01-15T00:00:00.000Z","to":"2023-01-15T00:00:00.000Z","count":0}]},"source":{"files":{"readmeSize":2389,"testsSize":222027,"hasNpmIgnore":true},"linters":["eslint"],"outdatedDependencies":{"@types/react-dom":{"required":"^17.0.3","stable":"18.0.10","latest":"18.0.10"},"@types/react":{"required":"^17.0.4","stable":"18.0.26","latest":"18.0.26"},"@types/node":{"required":"^15.0.1","stable":"18.11.18","latest":"14.18.36"},"@types/jest":{"required":"^26.0.23","stable":"29.2.5","latest":"29.2.5"}}}},"evaluation":{"quality":{"carefulness":0.295,"tests":0.6,"health":0.5,"branding":0},"popularity":{"communityInterest":7,"downloadsCount":737.3333333333334,"downloadsAcceleration":5.315981735159817,"dependentsCount":0},"maintenance":{"releasesFrequency":1,"commitsFrequency":0,"openIssues":0.7,"issuesDistribution":0.7}},"score":{"final":0.49124324178244444,"detail":{"quality":0.6193935428975763,"popularity":0.0417722237507762,"maintenance":0.8308711445725712}}}