npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

vue-timelines

v0.2.1

Published

Vue timelines component

Downloads

74

Readme

🚩DEMO

Visit our demo! http://mygraphs.github.io

📦 Install

npm install vue-timelines --save
// component.vue
<script>
  import MyTimeline from "vue-timelines";

  export default {
    // ...
    components: {
      Timeline,
    },
    // ...
  };
</script>

Description

Timeline and Calendar Grid

The top of the interface features a timeline, marked with dates and days, that spans across several months. The calendar's grid allows for a visual representation of time, with vertical lines indicating days and thicker lines denoting the start of a new week.

Task Bars

Tasks are represented by horizontal bars that span the width of the timeline correlating to the task's duration. Each task bar is color-coded, possibly to represent different project stages or priorities.

Grouping

The tasks are organized into groups, as indicated by the headers on the left side (e.g., "group 01," "group 02"). This could represent different teams, project categories, or other organizational divisions.

Progress Indicators

Some tasks have a percentage completion indicator on the bar, such as "50%" or "80%," showing how much of the task has been completed.

Task Interaction

There are circular handles on either end of the task bars, suggesting that users can click and drag to adjust the start and end dates of each task. Additionally, hovering over a task bar reveals a tooltip with more details and further interaction options, such as editing task properties or progress.

Control Panel

On the top right, there is a control panel with various buttons, including "Daily," "Zoom -/+," "Reset," "Height -/+," and "Today," which provide different ways to view and navigate the timeline.

Task Details Sidebar

To the right, there's a sidebar with details about a selected task. This sidebar includes fields for the task name, start and end times, and a progress bar. There are "Update" and "Cancel" buttons, presumably to confirm or discard changes made to the task details.

Design Aesthetics

The interface has a simple and clean design, using a contrasting color palette where the tasks stand out against the lighter background of the calendar.

Application Branding

The top left corner features the application name "vue-timelines," suggesting that this interface may be built using the Vue.js framework.

Overall, the interface appears to be a web-based tool designed for tracking project timelines and tasks, providing users with an intuitive and interactive way to manage work over a period.

(according to chatGPT by uploading a picture to it)

🔧 Requirements

Needed node 18.12 for vue3datepicker

You can update your node version using nvm and make it persistent like this:

nvm install 18.12
nvm alias default 18.12

Update packages

npm i -g npm-check-updates
ncu -u
npm install

🔧 Usage

<template>
  <MyTimeline
    :groups="taskGroups"
    :tasks="tasks"
    @update="handleUpdatedTasks"
  />
</template>

<script>
import MyGraphs from "./MyGraphs";

export default {
  name: "App",
  data() {
    return {
      groups: [
        {
          name: "group 01",
          id: "1",
          tasks: [
            {
              id: "01",
              title: "Test task 01",
              creationDate: 1641437099,
              dueDate: 1651805099,
              progress: 0.8,
              priority: 1,
            },
            {
              id: "02",
              title: "Test task 02",
              creationDate: 1643856299,
              dueDate: 1649126699,
              progress: 0.5,
              priority: 2,
            },
          ],
        },
        {
          name: "group 02",
          id: "2",
          tasks: [
            {
              id: "03",
              title: "Test task 03",
              creationDate: 1649041200,
              dueDate: 1650510000,
              progress: 0.8,
              priority: 1,
            },
            {
              id: "04",
              title: "Test task 04",
              creationDate: 1650596400,
              dueDate: 1651374000,
              progress: 0.5,
              priority: 2,
            },
            {
              id: "05",
              title: "Test task 05",
              creationDate: 1651719600,
              dueDate: 1651892400,
              progress: 0.5,
              priority: 2,
            },
            {
              id: "06",
              title: "Test task 06",
              creationDate: 1652151600,
              dueDate: 1652324400,
              progress: 0.5,
              priority: 1,
            },
          ],
        },
      ],
    };
  },
  methods: {
    handleUpdatedTasks: function ({ tasksUpdated, tasks }) {
      console.log(tasksUpdated);
      console.log(tasks);
      //... Perform your tasks
    },
  },
  components: {
    MyGraphs,
  },
};
</script>