Timeline или календарь на JS с правилами и валидацией

Реализую все что ниже описано на JavaScript (Vue, но это не важно).

Есть задача: сделать шкалу времени, на которую будут помещаться события определенного типа (например работа, перерыв, отдых междусменный, отдых еженедельный) с определенной продолжительностью, все события строго последовательны и не пересекаются по времени (то есть закончилось одно - началось другое), для каждого типа события есть свои лимитации и правила, вот тут начинается самый сок:

  1. простая задача: Если сдвигаешь событие одно, в след за ним должны подвинуться остальные.
  2. сложная задача: например, пользователь решил сократить вдвое время еженедельного отдыха, а по правилам он тогда должен в течении недели "доотдыхать" это время, так вот как только он сократил это время, то на следующие 7 дней надо равномерно распределить эти часы автоматом. Это только вершина айсберга - правил намного больше в реальности, это просто что бы описать суть вопроса.

В плане визуализации проблем нет: есть visjs или google charts например и тд.

Весь вопрос в плане логики и алгоритмов, так как описывать это все с нуля просто ужасно.

Может кто-то знает какой-то плагин/библиотеку для подобных календарных вычислений? Я не требую что бы эта библиотека умела во все такие правила (такой просто нет наверное), мне бы какую-то основу с необходимым минимумом:

  1. соблюдение последовательности при изменении - предшествующее событие "толкает" последующие при перемещении во времени.
  2. возможность подсчитывать итоги по времени для каждого типа события - типа как в тайм-трекере.

Заранее спасибо всем за помощь!


Ответы (0 шт):