update vis
This commit is contained in:
@@ -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) => {
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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
@@ -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"
|
||||
}
|
||||
]
|
||||
|
||||
Generated
+191
-36
@@ -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
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user