update vis

This commit is contained in:
Yuri Kuznetsov
2023-07-04 16:00:38 +03:00
parent 05084c67db
commit 6bd0a0ee1f
8 changed files with 284 additions and 218 deletions
@@ -20,9 +20,15 @@
"exportsAs": "MomentTimezone",
"sourceMap": true
},
"vis": {
"path": "client/modules/crm/lib/vis.js",
"devPath": "client/modules/crm/lib/original/vis.js",
"vis-timeline": {
"path": "client/modules/crm/lib/vis-timeline.js",
"devPath": "client/modules/crm/lib/original/vis-timeline.js",
"sourceMap": true
},
"vis-data": {
"path": "client/modules/crm/lib/vis-data.js",
"devPath": "client/modules/crm/lib/original/vis-data.js",
"aliases": ["vis-data/peer/umd/vis-data.js"],
"sourceMap": true
}
}
@@ -181,7 +181,7 @@ define('crm:views/calendar/calendar-page', ['view'], function (Dep) {
url += '&userId=' + this.options.userId;
if (this.options.userName) {
url += '&userName=' + this.getHelper().escapeString(this.options.userName).replace(/\\|\//g,'');
url += '&userName=' + encodeURIComponent(this.options.userName);
}
}
@@ -243,12 +243,18 @@ define('crm:views/calendar/calendar-page', ['view'], function (Dep) {
userId: this.options.userId,
userName: this.options.userName,
el: '#main > .calendar-container',
}, (view) => {
}, view => {
let initial = true;
this.listenTo(view, 'view', (date, mode) => {
this.date = date;
this.mode = mode;
this.updateUrl();
if (!initial) {
this.updateUrl();
}
initial = false;
});
this.listenTo(view, 'change:mode', (mode) => {
+36 -156
View File
@@ -27,7 +27,8 @@
************************************************************************/
import View from 'view';
import Vis from 'vis';
import {DataSet} from 'vis-data';
import {Timeline} from 'vis-timeline';
import moment from 'moment';
import $ from 'jquery';
@@ -49,6 +50,9 @@ class TimelineView extends View {
calendarTypeList = ['single', 'shared']
zoomPercentage = 1
/** @type {Timeline} */
timeline
events = {
/** @this TimelineView */
'click button[data-action="today"]': function () {
@@ -220,79 +224,6 @@ class TimelineView extends View {
this.trigger('change:mode', mode);
}
/*getModeDataList() {
let list = [];
this.modeList.forEach(name => {
let o = {
mode: name,
label: this.translate(name, 'modes', 'Calendar'),
labelShort: this.translate(name, 'modes', 'Calendar').substring(0, 2),
};
list.push(o);
});
if (this.isCustomViewAvailable) {
(this.getPreferences().get('calendarViewDataList') || []).forEach((item) => {
item = Espo.Utils.clone(item);
item.mode = 'view-' + item.id;
item.label = item.name;
item.labelShort = (item.name || '').substring(0, 2);
list.push(item);
});
}
let currentIndex = -1;
list.forEach((item, i) => {
if (item.mode === this.mode) {
currentIndex = i;
}
});
if (currentIndex >= this.visibleModeListCount) {
let tmp = list[this.visibleModeListCount - 1];
list[this.visibleModeListCount - 1] = list[currentIndex];
list[currentIndex] = tmp;
}
return list;
}*/
/*getVisibleModeDataList() {
let fullList = this.getModeDataList();
let list = [];
fullList.forEach((o, i) => {
if (i >= this.visibleModeListCount) {
return;
}
list.push(o);
});
return list;
}*/
/*getHiddenModeDataList() {
let fullList = this.getModeDataList();
let list = [];
fullList.forEach((o, i) => {
if (i < this.visibleModeListCount) {
return;
}
list.push(o);
});
return list;
}*/
getCalendarTypeDataList() {
let list = [];
@@ -375,16 +306,6 @@ class TimelineView extends View {
this.getStorage().set('state', key, enabledScopeList);
}
/*updateDate() {
if (!this.header) {
return;
}
let title = this.getTitle();
this.$el.find('.date-title h4 span').text(title);
}*/
getTitle() {
let title = '';
@@ -397,6 +318,10 @@ class TimelineView extends View {
return title;
}
/**
* @param {Object.<string, *>} o
* @return {Object}
*/
convertEvent(o) {
let userId = o.userId || this.userList[0].id || this.getUser().id;
@@ -591,20 +516,6 @@ class TimelineView extends View {
return resultList;
}
/*convertTime(d) {
let format = this.getDateTime().internalDateTimeFormat;
let timeZone = this.getDateTime().timeZone;
let string = d.format(format);
let m;
m = timeZone ?
moment.tz(string, format, timeZone).utc() :
moment.utc(string, format);
return m.format(format) + ':00';
}*/
afterRender() {
if (this.options.containerSelector) {
this.$container = $(this.options.containerSelector);
@@ -616,13 +527,18 @@ class TimelineView extends View {
this.initDates();
this.initGroupsDataSet();
this.fetchEvents(this.start, this.end, (eventList) => {
let itemsDataSet = new Vis.DataSet(eventList);
this.fetchEvents(this.start, this.end, eventList => {
let itemsDataSet = new DataSet(eventList);
let timeline = this.timeline = new Vis.Timeline($timeline.get(0), itemsDataSet, this.groupsDataSet, {
this.timeline = new Timeline($timeline.get(0), itemsDataSet, this.groupsDataSet, {
dataAttributes: 'all',
start: this.start.toDate(),
end: this.end.toDate(),
xss: {
filterOptions: {
onTag: (tag, html) => html,
},
},
moment: date => {
let m = moment(date);
@@ -641,15 +557,15 @@ class TimelineView extends View {
add: false,
updateTime: false,
updateGroup: false,
remove: false
remove: false,
},
locales: {
mylocale: {
myLocale: {
current: this.translate('current', 'labels', 'Calendar'),
time: this.translate('time', 'labels', 'Calendar')
time: this.translate('time', 'labels', 'Calendar'),
}
},
locale: 'mylocale',
locale: 'myLocale',
margin: {
item: {
vertical: 12,
@@ -658,7 +574,7 @@ class TimelineView extends View {
},
});
timeline.on('click', (e) => {
this.timeline.on('click', e => {
if (this.blockClick) {
return;
}
@@ -682,7 +598,8 @@ class TimelineView extends View {
}
});
timeline.on('rangechanged', (e) =>{
// noinspection SpellCheckingInspection
this.timeline.on('rangechanged', e => {
e.skipClick = true;
this.blockClick = true;
@@ -705,15 +622,15 @@ class TimelineView extends View {
});
this.once('remove', () => {
timeline.destroy();
this.timeline.destroy();
});
});
}
createEvent(dateStart, userId) {
if (!dateStart) {
let time = (this.timeline.range.end - this.timeline.range.start) / 2 +
this.timeline.range.start;
let time = (this.timeline.getWindow().end - this.timeline.getWindow().start) / 2 +
this.timeline.getWindow().start;
dateStart = moment(time)
.utc()
@@ -789,7 +706,7 @@ class TimelineView extends View {
runFetch() {
this.fetchEvents(this.start, this.end, eventList => {
let itemsDataSet = new Vis.DataSet(eventList);
let itemsDataSet = new DataSet(eventList);
this.timeline.setItems(itemsDataSet);
this.triggerView();
@@ -876,22 +793,6 @@ class TimelineView extends View {
}
}
/*orderUserList(list) {
let userList = [];
list.forEach(id => {
this.userList.forEach(item => {
if (id === item.id) {
userList.push(item);
}
});
});
this.userList = userList;
this.storeUserList();
}*/
storeUserList() {
this.getPreferences().save({
'sharedCalendarUserList': Espo.Utils.clone(this.userList),
@@ -921,21 +822,6 @@ class TimelineView extends View {
}
}
/*removeSharedCalendarUser(id) {
let index = -1;
this.userList.forEach((item, i) => {
if (item.id === id) {
index = i;
}
});
if (~index) {
this.userList.splice(index, 1);
this.storeUserList();
}
}*/
getSharedCalenderUserList() {
let list = Espo.Utils.clone(this.getPreferences().get('sharedCalendarUserList'));
@@ -984,7 +870,7 @@ class TimelineView extends View {
});
});
this.groupsDataSet = new Vis.DataSet(list);
this.groupsDataSet = new DataSet(list);
}
getGroupContent(id, name) {
@@ -1030,10 +916,6 @@ class TimelineView extends View {
.get(0).outerHTML;
}
/*initItemsDataSet() {
this.itemsDataSet = new Vis.DataSet(list);
}*/
fetchEvents(from, to, callback) {
if (!this.options.noFetchLoadingMessage) {
Espo.Ui.notify(' ... ');
@@ -1083,12 +965,6 @@ class TimelineView extends View {
});
}
/*removeUser(id) {
this.removeSharedCalendarUser(id);
this.initGroupsDataSet();
this.timeline.setGroups(this.groupsDataSet);
}*/
actionShowSharedCalendarOptions() {
this.createView('dialog', 'crm:views/calendar/modals/shared-options', {
userList: this.userList,
@@ -1179,19 +1055,23 @@ class TimelineView extends View {
}
actionPrevious() {
this.timeline.moveTo(this.timeline.range.start);
let start = this.timeline.getWindow().start;
this.timeline.moveTo(start);
this.triggerView();
}
actionNext() {
this.timeline.moveTo(this.timeline.range.end);
let end = this.timeline.getWindow().end;
this.timeline.moveTo(end);
this.triggerView();
}
actionToday() {
this.timeline.moveTo(moment());
this.timeline.moveTo(moment().toDate());
this.triggerView();
}
@@ -27,7 +27,8 @@
************************************************************************/
import View from 'view';
import Vis from 'vis';
import {DataSet} from 'vis-data';
import {Timeline} from 'vis-timeline';
import moment from 'moment';
import $ from 'jquery';
@@ -66,8 +67,6 @@ class SchedulerView extends View {
this.usersField = this.options.usersField || usersFieldDefault;
this.userIdList = [];
this.Vis = Vis;
this.listenTo(this.model, 'change', (m) => {
let isChanged =
m.hasChanged('isAllDay') ||
@@ -176,9 +175,10 @@ class SchedulerView extends View {
}
this.fetch(this.start, this.end, eventList => {
let itemsDataSet = new Vis.DataSet(eventList);
let itemsDataSet = new DataSet(eventList);
let timeline = this.timeline =new Vis.Timeline($timeline.get(0), itemsDataSet, this.groupsDataSet, {
// noinspection SpellCheckingInspection
this.timeline = new Timeline($timeline.get(0), itemsDataSet, this.groupsDataSet, {
dataAttributes: 'all',
start: this.start.toDate(),
end: this.end.toDate(),
@@ -191,6 +191,11 @@ class SchedulerView extends View {
return m.tz(this.getDateTime().getTimeZone());
},
xss: {
filterOptions: {
onTag: (tag, html) => html,
},
},
format: this.getFormatObject(),
zoomable: false,
moveable: true,
@@ -204,12 +209,12 @@ class SchedulerView extends View {
},
showCurrentTime: true,
locales: {
mylocale: {
myLocale: {
current: this.translate('current', 'labels', 'Calendar'),
time: this.translate('time', 'labels', 'Calendar')
time: this.translate('time', 'labels', 'Calendar'),
}
},
locale: 'mylocale',
locale: 'myLocale',
margin: {
item: {
vertical: 12,
@@ -220,7 +225,8 @@ class SchedulerView extends View {
$timeline.css('min-height', '');
timeline.on('rangechanged', (e) => {
// noinspection SpellCheckingInspection
this.timeline.on('rangechanged', (e) => {
e.skipClick = true;
this.blockClick = true;
@@ -245,7 +251,7 @@ class SchedulerView extends View {
let convertedEventList = this.convertEventList(eventList);
this.addEvent(convertedEventList);
let itemsDataSet = new this.Vis.DataSet(convertedEventList);
let itemsDataSet = new DataSet(convertedEventList);
this.timeline.setItems(itemsDataSet);
}
@@ -311,7 +317,7 @@ class SchedulerView extends View {
runFetch() {
this.fetch(this.start, this.end, eventList => {
let itemsDataSet = new this.Vis.DataSet(eventList);
let itemsDataSet = new DataSet(eventList);
this.timeline.setItems(itemsDataSet);
});
@@ -340,7 +346,7 @@ class SchedulerView extends View {
let eventList = [];
for (let userId in data) {
let itemList = data[userId]
let itemList = /** @type {Object.<string, *>} */data[userId]
.filter(item => !item.isBusyRange)
.concat(
data[userId].filter(item => item.isBusyRange)
@@ -417,6 +423,10 @@ class SchedulerView extends View {
return resultList;
}
/**
* @param {Object.<string, *>} o
* @return {Object}
*/
convertEvent(o) {
let event;
@@ -500,7 +510,7 @@ class SchedulerView extends View {
});
});
this.groupsDataSet = new this.Vis.DataSet(list);
this.groupsDataSet = new DataSet(list);
}
getGroupContent(id, name) {
@@ -518,7 +528,7 @@ class SchedulerView extends View {
return $('<span>')
.append(
avatarHtml,
$(avatarHtml),
$('<span>')
.attr('data-id', id)
.addClass('group-title')
+4 -2
View File
@@ -105,10 +105,12 @@
"modules/crm/src/**/*.js"
],
"dependentOn": [
"vis"
"vis-data",
"vis-timeline"
],
"requires": [
"vis"
"vis-data",
"vis-timeline"
],
"lookupPatterns": [
"modules/crm/src/**/*.js"
+9 -3
View File
@@ -198,9 +198,15 @@
"amdId": "@fullcalendar/moment-timezone"
},
{
"src": "node_modules/vis/dist/vis.js",
"dest": "client/modules/crm/lib/vis.js",
"src": "node_modules/vis-timeline/peer/umd/vis-timeline-graph2d.js",
"dest": "client/modules/crm/lib/vis-timeline.js",
"minify": true,
"amdId": "vis"
"amdId": "vis-timeline"
},
{
"src": "node_modules/vis-data/peer/umd/vis-data.js",
"dest": "client/modules/crm/lib/vis-data.js",
"minify": true,
"amdId": "vis-data"
}
]
+191 -36
View File
@@ -47,7 +47,8 @@
"summernote": "^0.8.18",
"timepicker": "^1.11.15",
"underscore": "^1.13.1",
"vis": "^4.19.1"
"vis-data": "^7.1.6",
"vis-timeline": "^7.7.2"
},
"devDependencies": {
"archiver": "^5.3.0",
@@ -1917,6 +1918,18 @@
"node": ">=6.9.0"
}
},
"node_modules/@egjs/hammerjs": {
"version": "2.0.17",
"resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz",
"integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==",
"peer": true,
"dependencies": {
"@types/hammerjs": "^2.0.36"
},
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/@fullcalendar/core": {
"version": "6.1.8",
"resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.8.tgz",
@@ -2108,6 +2121,12 @@
"sifter": "bin/sifter.js"
}
},
"node_modules/@types/hammerjs": {
"version": "2.0.41",
"resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.41.tgz",
"integrity": "sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA==",
"peer": true
},
"node_modules/@types/jquery": {
"version": "2.0.56",
"resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-2.0.56.tgz",
@@ -2775,6 +2794,12 @@
"node": ">= 6"
}
},
"node_modules/component-emitter": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
"integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
"peer": true
},
"node_modules/compress-commons": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz",
@@ -3002,6 +3027,12 @@
"node": ">=10.13"
}
},
"node_modules/cssfilter": {
"version": "0.0.10",
"resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz",
"integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==",
"peer": true
},
"node_modules/csv-parse": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-5.3.0.tgz",
@@ -3104,11 +3135,6 @@
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.419.tgz",
"integrity": "sha512-jdie3RiEgygvDTyS2sgjq71B36q2cDSBfPlwzUyuOrfYTNoYWyBxxjGJV/HAu3A2hB0Y+HesvCVkVAFoCKwCSw=="
},
"node_modules/emitter-component": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/emitter-component/-/emitter-component-1.1.1.tgz",
"integrity": "sha1-Bl4tvtaVm/RwZ57avq95gdEAOrY="
},
"node_modules/emoji-regex": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
@@ -4573,6 +4599,7 @@
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz",
"integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=",
"peer": true,
"engines": {
"node": ">=0.8.0"
}
@@ -5194,7 +5221,8 @@
"node_modules/keycharm": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/keycharm/-/keycharm-0.2.0.tgz",
"integrity": "sha1-+m6i5DuQpoAohD0n8gddNajD5vk="
"integrity": "sha1-+m6i5DuQpoAohD0n8gddNajD5vk=",
"peer": true
},
"node_modules/kind-of": {
"version": "6.0.3",
@@ -6038,6 +6066,7 @@
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/propagating-hammerjs/-/propagating-hammerjs-1.5.0.tgz",
"integrity": "sha512-3PUXWmomwutoZfydC+lJwK1bKCh6sK6jZGB31RUX6+4EXzsbkDZrK4/sVR7gBrvJaEIwpTVyxQUAd29FKkmVdw==",
"peer": true,
"dependencies": {
"hammerjs": "^2.0.8"
}
@@ -6988,6 +7017,15 @@
"node": ">= 0.4.0"
}
},
"node_modules/uuid": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
"integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
"peer": true,
"bin": {
"uuid": "dist/bin/uuid"
}
},
"node_modules/v8flags": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz",
@@ -7008,17 +7046,56 @@
"node": ">= 0.8"
}
},
"node_modules/vis": {
"version": "4.19.1",
"resolved": "https://registry.npmjs.org/vis/-/vis-4.19.1.tgz",
"integrity": "sha1-XO9OcuHwNypOWrUCUjuIaHseICc=",
"deprecated": "Please consider using https://github.com/visjs",
"dependencies": {
"emitter-component": "^1.1.1",
"hammerjs": "^2.0.8",
"keycharm": "^0.2.0",
"moment": "^2.17.1",
"propagating-hammerjs": "^1.4.6"
"node_modules/vis-data": {
"version": "7.1.6",
"resolved": "https://registry.npmjs.org/vis-data/-/vis-data-7.1.6.tgz",
"integrity": "sha512-lG7LJdkawlKSXsdcEkxe/zRDyW29a4r7N7PMwxCPxK12/QIdqxJwcMxwjVj9ozdisRhP5TyWDHZwsgjmj0g6Dg==",
"hasInstallScript": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/visjs"
},
"peerDependencies": {
"uuid": "^3.4.0 || ^7.0.0 || ^8.0.0 || ^9.0.0",
"vis-util": "^5.0.1"
}
},
"node_modules/vis-timeline": {
"version": "7.7.2",
"resolved": "https://registry.npmjs.org/vis-timeline/-/vis-timeline-7.7.2.tgz",
"integrity": "sha512-l7hDBFJ0FI6gX4kzsxAONnAacowK3sHWx3uc5jR1DYs/FAsOEZsHDclVNW3+QAwmV3Xvg61U8//ha6hZNw7G1Q==",
"hasInstallScript": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/visjs"
},
"peerDependencies": {
"@egjs/hammerjs": "^2.0.0",
"component-emitter": "^1.3.0",
"keycharm": "^0.2.0 || ^0.3.0 || ^0.4.0",
"moment": "^2.24.0",
"propagating-hammerjs": "^1.4.0 || ^2.0.0",
"uuid": "^3.4.0 || ^7.0.0 || ^8.0.0 || ^9.0.0",
"vis-data": "^6.3.0 || ^7.0.0",
"vis-util": "^5.0.1",
"xss": "^1.0.0"
}
},
"node_modules/vis-util": {
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/vis-util/-/vis-util-5.0.3.tgz",
"integrity": "sha512-Wf9STUcFrDzK4/Zr7B6epW2Kvm3ORNWF+WiwEz2dpf5RdWkLUXFSbLcuB88n1W6tCdFwVN+v3V4/Xmn9PeL39g==",
"peer": true,
"engines": {
"node": ">=8"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/visjs"
},
"peerDependencies": {
"@egjs/hammerjs": "^2.0.0",
"component-emitter": "^1.3.0"
}
},
"node_modules/which": {
@@ -7211,6 +7288,28 @@
}
}
},
"node_modules/xss": {
"version": "1.0.14",
"resolved": "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz",
"integrity": "sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==",
"peer": true,
"dependencies": {
"commander": "^2.20.3",
"cssfilter": "0.0.10"
},
"bin": {
"xss": "bin/xss"
},
"engines": {
"node": ">= 0.10.0"
}
},
"node_modules/xss/node_modules/commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
"peer": true
},
"node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
@@ -8526,6 +8625,15 @@
"to-fast-properties": "^2.0.0"
}
},
"@egjs/hammerjs": {
"version": "2.0.17",
"resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz",
"integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==",
"peer": true,
"requires": {
"@types/hammerjs": "^2.0.36"
}
},
"@fullcalendar/core": {
"version": "6.1.8",
"resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.8.tgz",
@@ -8671,6 +8779,12 @@
"optimist": "^0.5.2"
}
},
"@types/hammerjs": {
"version": "2.0.41",
"resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.41.tgz",
"integrity": "sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA==",
"peer": true
},
"@types/jquery": {
"version": "2.0.56",
"resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-2.0.56.tgz",
@@ -9170,6 +9284,12 @@
"integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
"dev": true
},
"component-emitter": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
"integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
"peer": true
},
"compress-commons": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz",
@@ -9345,6 +9465,12 @@
"coffeescript": "1.12.7"
}
},
"cssfilter": {
"version": "0.0.10",
"resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz",
"integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==",
"peer": true
},
"csv-parse": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-5.3.0.tgz",
@@ -9428,11 +9554,6 @@
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.419.tgz",
"integrity": "sha512-jdie3RiEgygvDTyS2sgjq71B36q2cDSBfPlwzUyuOrfYTNoYWyBxxjGJV/HAu3A2hB0Y+HesvCVkVAFoCKwCSw=="
},
"emitter-component": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/emitter-component/-/emitter-component-1.1.1.tgz",
"integrity": "sha1-Bl4tvtaVm/RwZ57avq95gdEAOrY="
},
"emoji-regex": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
@@ -10536,7 +10657,8 @@
"hammerjs": {
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz",
"integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE="
"integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=",
"peer": true
},
"handlebars": {
"version": "4.7.7",
@@ -10945,7 +11067,8 @@
"keycharm": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/keycharm/-/keycharm-0.2.0.tgz",
"integrity": "sha1-+m6i5DuQpoAohD0n8gddNajD5vk="
"integrity": "sha1-+m6i5DuQpoAohD0n8gddNajD5vk=",
"peer": true
},
"kind-of": {
"version": "6.0.3",
@@ -11574,6 +11697,7 @@
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/propagating-hammerjs/-/propagating-hammerjs-1.5.0.tgz",
"integrity": "sha512-3PUXWmomwutoZfydC+lJwK1bKCh6sK6jZGB31RUX6+4EXzsbkDZrK4/sVR7gBrvJaEIwpTVyxQUAd29FKkmVdw==",
"peer": true,
"requires": {
"hammerjs": "^2.0.8"
}
@@ -12293,6 +12417,12 @@
"integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
"dev": true
},
"uuid": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
"integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
"peer": true
},
"v8flags": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz",
@@ -12307,17 +12437,24 @@
"integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
"dev": true
},
"vis": {
"version": "4.19.1",
"resolved": "https://registry.npmjs.org/vis/-/vis-4.19.1.tgz",
"integrity": "sha1-XO9OcuHwNypOWrUCUjuIaHseICc=",
"requires": {
"emitter-component": "^1.1.1",
"hammerjs": "^2.0.8",
"keycharm": "^0.2.0",
"moment": "^2.17.1",
"propagating-hammerjs": "^1.4.6"
}
"vis-data": {
"version": "7.1.6",
"resolved": "https://registry.npmjs.org/vis-data/-/vis-data-7.1.6.tgz",
"integrity": "sha512-lG7LJdkawlKSXsdcEkxe/zRDyW29a4r7N7PMwxCPxK12/QIdqxJwcMxwjVj9ozdisRhP5TyWDHZwsgjmj0g6Dg==",
"requires": {}
},
"vis-timeline": {
"version": "7.7.2",
"resolved": "https://registry.npmjs.org/vis-timeline/-/vis-timeline-7.7.2.tgz",
"integrity": "sha512-l7hDBFJ0FI6gX4kzsxAONnAacowK3sHWx3uc5jR1DYs/FAsOEZsHDclVNW3+QAwmV3Xvg61U8//ha6hZNw7G1Q==",
"requires": {}
},
"vis-util": {
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/vis-util/-/vis-util-5.0.3.tgz",
"integrity": "sha512-Wf9STUcFrDzK4/Zr7B6epW2Kvm3ORNWF+WiwEz2dpf5RdWkLUXFSbLcuB88n1W6tCdFwVN+v3V4/Xmn9PeL39g==",
"peer": true,
"requires": {}
},
"which": {
"version": "1.3.1",
@@ -12447,6 +12584,24 @@
"dev": true,
"requires": {}
},
"xss": {
"version": "1.0.14",
"resolved": "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz",
"integrity": "sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==",
"peer": true,
"requires": {
"commander": "^2.20.3",
"cssfilter": "0.0.10"
},
"dependencies": {
"commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
"peer": true
}
}
},
"yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+2 -1
View File
@@ -73,7 +73,8 @@
"summernote": "^0.8.18",
"timepicker": "^1.11.15",
"underscore": "^1.13.1",
"vis": "^4.19.1"
"vis-data": "^7.1.6",
"vis-timeline": "^7.7.2"
},
"engines": {
"npm": ">=7",