pcm-shared-components 2.0.18 → 2.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/NEW_COMPONENT/index.js +2 -1
- package/dist/index.js +1 -3
- package/dist/languages/en/translations.json +4 -0
- package/dist/languages/es/translations.json +4 -0
- package/dist/languages/fr/translations.json +4 -0
- package/dist/styles/tailwind.css +1 -1
- package/package.json +1 -4
- package/dist/app/config/reservation_state.js +0 -89
- package/dist/app/config/yes_no_status.js +0 -72
- package/dist/app/tools/date_formatter.js +0 -141
- package/dist/app/tools/date_overlap.js +0 -177
- package/dist/app/tools/seasonal_dates.js +0 -229
- package/dist/components/Timelines/ReservationTimelineComponent/components/SearchLotsTextBox.js +0 -36
- package/dist/components/Timelines/ReservationTimelineComponent/components/TimelinePopUp.js +0 -11
- package/dist/components/Timelines/ReservationTimelineComponent/css/header.css +0 -98
- package/dist/components/Timelines/ReservationTimelineComponent/css/styles.css +0 -121
- package/dist/components/Timelines/ReservationTimelineComponent/css/styles.old +0 -209
- package/dist/components/Timelines/ReservationTimelineComponent/index.js +0 -966
|
@@ -1,229 +0,0 @@
|
|
|
1
|
-
import moment from 'moment';
|
|
2
|
-
export const weeks = {
|
|
3
|
-
first: 0,
|
|
4
|
-
second: 1,
|
|
5
|
-
third: 2,
|
|
6
|
-
fourth: 3,
|
|
7
|
-
last: 4
|
|
8
|
-
};
|
|
9
|
-
export const weekdays = {
|
|
10
|
-
sunday: 0,
|
|
11
|
-
monday: 1,
|
|
12
|
-
tuesday: 2,
|
|
13
|
-
wednesday: 3,
|
|
14
|
-
thursday: 4,
|
|
15
|
-
friday: 5,
|
|
16
|
-
saturday: 6
|
|
17
|
-
};
|
|
18
|
-
export const months = {
|
|
19
|
-
january: 0,
|
|
20
|
-
february: 1,
|
|
21
|
-
march: 2,
|
|
22
|
-
april: 3,
|
|
23
|
-
may: 4,
|
|
24
|
-
june: 5,
|
|
25
|
-
july: 6,
|
|
26
|
-
august: 7,
|
|
27
|
-
september: 8,
|
|
28
|
-
october: 9,
|
|
29
|
-
november: 10,
|
|
30
|
-
december: 11
|
|
31
|
-
};
|
|
32
|
-
export const getSeasonalStartDate = (year, seasonal_object) => {
|
|
33
|
-
seasonal_object = getWorkingSeasonalObject(year, seasonal_object);
|
|
34
|
-
if (Number(seasonal_object.use_fix_start_date) === 1) {
|
|
35
|
-
//use the date defined
|
|
36
|
-
// const test = moment([ year, months[returnLiteralString(months, seasonal_object.fix_dates.start.month)], seasonal_object.fix_dates.start.day ]).set({ hour: seasonal_object.arrival_hour, minute: seasonal_object.arrival_minute });
|
|
37
|
-
// console.log('debug Start Date Fixed ', test)
|
|
38
|
-
return moment([year, months[returnLiteralString(months, seasonal_object.fix_dates.start.month)], seasonal_object.fix_dates.start.day]).set({
|
|
39
|
-
hour: seasonal_object.arrival_hour,
|
|
40
|
-
minute: seasonal_object.arrival_minute
|
|
41
|
-
});
|
|
42
|
-
} else {
|
|
43
|
-
//need to find the date base on the literal date
|
|
44
|
-
// const test = getVariableDate(year, months[returnLiteralString(months, seasonal_object.variable_dates.start.month)], weeks[returnLiteralString(weeks, seasonal_object.variable_dates.start.week)], weekdays[returnLiteralString(weekdays, seasonal_object.variable_dates.start.weekday)]).set({ hour: seasonal_object.arrival_hour, minute: seasonal_object.arrival_minute });
|
|
45
|
-
// console.log('debug Start Variable Date ', test)
|
|
46
|
-
return getVariableDate(year, months[returnLiteralString(months, seasonal_object.variable_dates.start.month)], weeks[returnLiteralString(weeks, seasonal_object.variable_dates.start.week)], weekdays[returnLiteralString(weekdays, seasonal_object.variable_dates.start.weekday)]).set({
|
|
47
|
-
hour: seasonal_object.arrival_hour,
|
|
48
|
-
minute: seasonal_object.arrival_minute
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
export const getSeasonalEndDate = (year, seasonal_object) => {
|
|
53
|
-
seasonal_object = getWorkingSeasonalObject(year, seasonal_object);
|
|
54
|
-
const end_year = getSeasonalEndDateYear(year, seasonal_object);
|
|
55
|
-
if (Number(seasonal_object.use_fix_end_date) === 1) {
|
|
56
|
-
//use the date defined
|
|
57
|
-
return moment([end_year, months[returnLiteralString(months, seasonal_object.fix_dates.end.month)], seasonal_object.fix_dates.end.day]).set({
|
|
58
|
-
hour: seasonal_object.departure_hour,
|
|
59
|
-
minute: seasonal_object.departure_minute
|
|
60
|
-
});
|
|
61
|
-
} else {
|
|
62
|
-
//need to find the date base on the literal date
|
|
63
|
-
return getVariableDate(end_year, months[returnLiteralString(months, seasonal_object.variable_dates.end.month)], weeks[returnLiteralString(weeks, seasonal_object.variable_dates.end.week)], weekdays[returnLiteralString(weekdays, seasonal_object.variable_dates.end.weekday)]).set({
|
|
64
|
-
hour: seasonal_object.departure_hour,
|
|
65
|
-
minute: seasonal_object.departure_minute
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
const getSeasonalEndDateYear = (year, seasonal_object) => {
|
|
70
|
-
//This is used to make sure that we don't reuse the current year for the end date when our end month is > than the starting month.
|
|
71
|
-
// Meaning: Start month is December and End month is April. Because the start and end date are stored inside the same year object I need to increase the end year when this happens
|
|
72
|
-
/*
|
|
73
|
-
2020----------Dec=11-----------------April=3---------------------
|
|
74
|
-
^ start date ^ end date
|
|
75
|
-
|
|
76
|
-
So the above seasonal object would return and end date before the start date making the selection invalid because what we need is
|
|
77
|
-
- Start date Dec 2020
|
|
78
|
-
- End date April 2021
|
|
79
|
-
Returns the end date year to be used example: 2021 in the example above
|
|
80
|
-
*/
|
|
81
|
-
let start_month,
|
|
82
|
-
end_month,
|
|
83
|
-
start_day,
|
|
84
|
-
end_day,
|
|
85
|
-
has_variable_date = false;
|
|
86
|
-
|
|
87
|
-
// Get the starting and ending month and day index value
|
|
88
|
-
if (Number(seasonal_object.use_fix_start_date) === 1) {
|
|
89
|
-
start_month = returnIndexPosition(months, seasonal_object.fix_dates.start.month);
|
|
90
|
-
start_day = returnIndexPosition(weekdays, seasonal_object.fix_dates.start.day);
|
|
91
|
-
} else {
|
|
92
|
-
has_variable_date = true;
|
|
93
|
-
start_month = returnIndexPosition(months, seasonal_object.variable_dates.start.month);
|
|
94
|
-
start_day = returnIndexPosition(weekdays, seasonal_object.variable_dates.start.weekday);
|
|
95
|
-
}
|
|
96
|
-
if (Number(seasonal_object.use_fix_end_date) === 1) {
|
|
97
|
-
end_month = returnIndexPosition(months, seasonal_object.fix_dates.end.month);
|
|
98
|
-
end_day = returnIndexPosition(weekdays, seasonal_object.fix_dates.end.day);
|
|
99
|
-
} else {
|
|
100
|
-
has_variable_date = true;
|
|
101
|
-
end_month = returnIndexPosition(months, seasonal_object.variable_dates.end.month);
|
|
102
|
-
end_day = returnIndexPosition(weekdays, seasonal_object.variable_dates.end.weekday);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
// Now check to see if we need to increase our year by one
|
|
106
|
-
if (Number(end_month) < Number(start_month)) {
|
|
107
|
-
// Ending month is smaller than starting month we are automatically in a new year
|
|
108
|
-
year = Number(year) + 1;
|
|
109
|
-
} else if (Number(end_month) === Number(start_month) && has_variable_date) {
|
|
110
|
-
// Same month and we have a variable date for one or both dates.
|
|
111
|
-
// Automatically the ending year should be increased
|
|
112
|
-
year = Number(year) + 1;
|
|
113
|
-
} else if (Number(end_month) === Number(start_month) && Number(end_day) <= Number(start_day)) {
|
|
114
|
-
// Ending month is the same as the starting month and we have the same or smaller day.
|
|
115
|
-
// 2020----------Dec 2st-----------------Dec 2nd--------------------- We want a full year date to date
|
|
116
|
-
// 2020----------Dec 2st-----------------Dec 1nd--------------------- We want a full year minus one day
|
|
117
|
-
year = Number(year) + 1;
|
|
118
|
-
}
|
|
119
|
-
return year;
|
|
120
|
-
};
|
|
121
|
-
const getVariableDate = (year, month, week_number, week_day) => {
|
|
122
|
-
let loop_end = true;
|
|
123
|
-
let week_number_i = week_number;
|
|
124
|
-
//let leep_week = 0; //used to compensate for the start of the previous months when week 0 = previous month
|
|
125
|
-
// Check if we are not in the current month based on the week number and adjust accordingly
|
|
126
|
-
while (loop_end) {
|
|
127
|
-
let new_month = moment([year, month]).day(week_day + week_number_i * 7).month();
|
|
128
|
-
if (new_month === 11 && month === 0) {
|
|
129
|
-
//This is the cross over from January to December, need to bring it back to January
|
|
130
|
-
week_number_i++;
|
|
131
|
-
} else if (new_month === 0 && month === 11) {
|
|
132
|
-
//This is the cross over from December to January, need to bring it back to December
|
|
133
|
-
week_number_i--;
|
|
134
|
-
} else if (new_month < month) {
|
|
135
|
-
week_number_i++;
|
|
136
|
-
} else if (new_month > month) {
|
|
137
|
-
week_number_i--;
|
|
138
|
-
} else {
|
|
139
|
-
loop_end = false;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
//condition to ensure we are not in the previous month
|
|
143
|
-
let condition1 = moment([year, month]).day(week_day + week_number_i * 7 - 7 * week_number_i).month() !== month;
|
|
144
|
-
|
|
145
|
-
//condition to ensure we are still in the specified month
|
|
146
|
-
let condition2 = week_number > 0 && (week_number < 5 && moment([year, month]).day(week_day + (week_number_i + 1) * 7).month()) === month;
|
|
147
|
-
if (condition1 && condition2) {
|
|
148
|
-
// if (moment([ year, month ]).day(week_day + week_number_i * 7 - 7 * week_number_i).month() !== month && (week_number > 0 && week_number < 5)) {
|
|
149
|
-
week_number_i++;
|
|
150
|
-
}
|
|
151
|
-
return moment([year, month]).day(week_day + week_number_i * 7);
|
|
152
|
-
};
|
|
153
|
-
|
|
154
|
-
//Makes it possible to store 'may' or 4 in the database and still return the proper month,week etc...
|
|
155
|
-
export const returnLiteralString = (object, item) => {
|
|
156
|
-
//verify if object/month,weekdays etc is a string or int, so that i can support both example 'may' or 4=may
|
|
157
|
-
//get the literal string for the object/month,weekdays etc based on the zero based object/month,weekdays etc position 0=jan, 1=feb etc..
|
|
158
|
-
try {
|
|
159
|
-
if (parseInt(item, 10) || item === 0) {
|
|
160
|
-
item = Object.keys(object).find((m, idx) => idx === item);
|
|
161
|
-
}
|
|
162
|
-
} catch (error) {
|
|
163
|
-
console.error(error);
|
|
164
|
-
}
|
|
165
|
-
return item;
|
|
166
|
-
};
|
|
167
|
-
|
|
168
|
-
//Makes it possible to store 'may' or 4 in the database and still return the proper month,week index value etc...
|
|
169
|
-
export const returnIndexPosition = (object, item) => {
|
|
170
|
-
//verify if object/month,weekdays etc is a string or int, so that i can support both example 'may' or 4=may
|
|
171
|
-
//get the index position for the object/month,weekdays etc based on the zero based object/month,weekdays etc position 0=jan, 1=feb etc..
|
|
172
|
-
try {
|
|
173
|
-
if (parseInt(item, 10) || item === 0) {
|
|
174
|
-
//nothing to convert we already have the number index
|
|
175
|
-
} else {
|
|
176
|
-
//get the index position of the string literal
|
|
177
|
-
item = object[item];
|
|
178
|
-
// item = Object.keys(object).find((m, idx) => m === item);
|
|
179
|
-
}
|
|
180
|
-
} catch (error) {
|
|
181
|
-
console.error(error);
|
|
182
|
-
}
|
|
183
|
-
return item;
|
|
184
|
-
};
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* Returns the seasonal date object to use based on the year provided
|
|
188
|
-
*/
|
|
189
|
-
const getWorkingSeasonalObject = (year, seasonal_object) => {
|
|
190
|
-
//get the date object based on the requested year
|
|
191
|
-
let seasonal_object_working = seasonal_object.find(so => Number(so.seasonal_year) === Number(year));
|
|
192
|
-
|
|
193
|
-
//If no results returned then get the default date object and use it's parameters
|
|
194
|
-
if (!seasonal_object_working) {
|
|
195
|
-
seasonal_object_working = seasonal_object.find(so => Number(so.is_default) === 1);
|
|
196
|
-
}
|
|
197
|
-
return seasonal_object_working;
|
|
198
|
-
};
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
* Returns the week in a nice sorted array example [first,second....] so the index position relates to the week etc...
|
|
202
|
-
* Returns the months in a nice sorted array example [january,february....] so the index position relates to the month etc...
|
|
203
|
-
* Returns the weekdays in a nice sorted array example [monday,tuesday....] so the index position relates to the weekdays etc...
|
|
204
|
-
*
|
|
205
|
-
* @returns
|
|
206
|
-
*/
|
|
207
|
-
export const sortedArray = array_months_weekdays_weekdays => {
|
|
208
|
-
let new_object = [];
|
|
209
|
-
let sorted = Object.keys(array_months_weekdays_weekdays).sort(function (a, b) {
|
|
210
|
-
return a.value - b.value;
|
|
211
|
-
});
|
|
212
|
-
|
|
213
|
-
// eslint-disable-next-line no-unused-vars
|
|
214
|
-
for (const [key, value] of Object.entries(sorted)) {
|
|
215
|
-
// console.log(`${key}: ${value}`);
|
|
216
|
-
new_object = [...new_object, value];
|
|
217
|
-
}
|
|
218
|
-
return new_object;
|
|
219
|
-
};
|
|
220
|
-
|
|
221
|
-
// Month here is 1-indexed (January is 1, February is 2, etc). This is
|
|
222
|
-
// because we're using 0 as the day so that it returns the last day
|
|
223
|
-
// of the last month, so you have to add 1 to the month number
|
|
224
|
-
// so it returns the correct amount of days
|
|
225
|
-
//!Converting months to base zero (+1) the month since i'm used to using base zero
|
|
226
|
-
export const daysInMonth = (year, month) => {
|
|
227
|
-
// console.log('123 month: ', month, ' days: ', Number(new Date(year, month+1, 0).getDate())+1, ' date: ',new Date(year, month+1, 0))
|
|
228
|
-
return Number(new Date(year, month + 1, 0).getDate()) + 1;
|
|
229
|
-
};
|
package/dist/components/Timelines/ReservationTimelineComponent/components/SearchLotsTextBox.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import TextField from '@mui/material/TextField';
|
|
3
|
-
import i18next from 'i18next';
|
|
4
|
-
const SearchLotsTextBox = props => {
|
|
5
|
-
const {
|
|
6
|
-
lot_search,
|
|
7
|
-
setLotSearch,
|
|
8
|
-
setFocusOnFilter,
|
|
9
|
-
label
|
|
10
|
-
} = props;
|
|
11
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
12
|
-
style: {}
|
|
13
|
-
}, /*#__PURE__*/React.createElement(TextField, {
|
|
14
|
-
style: {
|
|
15
|
-
paddingTop: 12,
|
|
16
|
-
paddingBottom: 12
|
|
17
|
-
},
|
|
18
|
-
id: "lot_filter_search",
|
|
19
|
-
label: label,
|
|
20
|
-
value: lot_search,
|
|
21
|
-
variant: "standard",
|
|
22
|
-
onChange: e => {
|
|
23
|
-
setLotSearch(e.target.value);
|
|
24
|
-
},
|
|
25
|
-
onClick: () => {
|
|
26
|
-
setFocusOnFilter({
|
|
27
|
-
should_focus_on_lot_filter: true
|
|
28
|
-
});
|
|
29
|
-
setTimeout(() => {
|
|
30
|
-
document.getElementById('lot_filter_search').focus();
|
|
31
|
-
}, 100);
|
|
32
|
-
}
|
|
33
|
-
}));
|
|
34
|
-
};
|
|
35
|
-
SearchLotsTextBox.propTypes = {};
|
|
36
|
-
export default /*#__PURE__*/React.memo(SearchLotsTextBox);
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
const TimelinePopUp = props => {
|
|
3
|
-
const {
|
|
4
|
-
res,
|
|
5
|
-
addNewResOnClick,
|
|
6
|
-
getTimeDifference,
|
|
7
|
-
showAddNewReservationButtonInPopup
|
|
8
|
-
} = props;
|
|
9
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, "some popup");
|
|
10
|
-
};
|
|
11
|
-
export default TimelinePopUp;
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
:root {
|
|
2
|
-
/* Colors */
|
|
3
|
-
--color-white: #fff;
|
|
4
|
-
--color-black: #000;
|
|
5
|
-
--color-border-lightgray: rgba(0, 0, 0, 0.16);
|
|
6
|
-
--color-lightgray: #f0f3f4;
|
|
7
|
-
--color-red: #d32f2f;
|
|
8
|
-
|
|
9
|
-
/* Dimensions */
|
|
10
|
-
--footer-menu-height: 60px;
|
|
11
|
-
}
|
|
12
|
-
/* Header */
|
|
13
|
-
.sticky {
|
|
14
|
-
position: -webkit-sticky; /* Safari */
|
|
15
|
-
position: sticky;
|
|
16
|
-
top: 0;
|
|
17
|
-
z-index: 2000;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
.react-calendar-timeline .rct-header-root {
|
|
22
|
-
border-bottom: none;
|
|
23
|
-
font-size: medium;
|
|
24
|
-
/* box-shadow: var(--color-border-lightgray) 0 0 1rem; */
|
|
25
|
-
-moz-box-shadow: 0 4px 4px rgba(0, 0, 0, 0.3);
|
|
26
|
-
-webkit-box-shadow: 0 4px 4px rgba(0, 0, 0, 0.3);
|
|
27
|
-
box-shadow: 0 4px 4px rgba(0, 0, 0, 0.3);
|
|
28
|
-
border: solid 1px var(--color-border-lightgray);
|
|
29
|
-
border-radius: 5px;
|
|
30
|
-
text-align: center;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.react-calendar-timeline .rct-header-root{
|
|
34
|
-
background-color: white;
|
|
35
|
-
}
|
|
36
|
-
.left-header{
|
|
37
|
-
background-color: white !important;
|
|
38
|
-
justify-items: center;
|
|
39
|
-
text-align: center;
|
|
40
|
-
margin:auto;
|
|
41
|
-
height: 100%;
|
|
42
|
-
display:inline-block;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
.react-calendar-timeline .rct-calendar-header {
|
|
46
|
-
border: none;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
.rct-header-root.undefined {
|
|
50
|
-
background-color: white;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
.react-calendar-timeline .rct-dateHeader {
|
|
54
|
-
position: relative;
|
|
55
|
-
pointer-events: none;
|
|
56
|
-
border: none;
|
|
57
|
-
/* border-right: dashed 1px rgb(175, 175, 175) !important; */
|
|
58
|
-
border-bottom:none;
|
|
59
|
-
border-right:none;
|
|
60
|
-
background: var(--color-white);
|
|
61
|
-
font-size: 0.9rem;
|
|
62
|
-
font-weight: 200;
|
|
63
|
-
padding-top: 15px;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/* creates the half line beside the dates */
|
|
67
|
-
.rct-dateHeader:after {
|
|
68
|
-
content : "";
|
|
69
|
-
position: absolute;
|
|
70
|
-
right : 0;
|
|
71
|
-
z-index: 100;
|
|
72
|
-
top : 40%;
|
|
73
|
-
width : 3px;
|
|
74
|
-
height : 100%; /* or 100px */
|
|
75
|
-
/* background: #555; */
|
|
76
|
-
border-right: dashed 1px rgb(189, 188, 188)!important
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
.react-calendar-timeline .rct-dateHeader-primary {
|
|
80
|
-
color: var(--color-black);
|
|
81
|
-
padding-right: 2.6rem;
|
|
82
|
-
text-transform: uppercase;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
/* Vertical lines */
|
|
86
|
-
.react-calendar-timeline .rct-vertical-lines .rct-vl {
|
|
87
|
-
border-left: dashed 1px #9292923a;
|
|
88
|
-
/* border-left: none; */
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
.react-calendar-timeline .rct-vertical-lines .rct-vl:nth-child(odd) {
|
|
92
|
-
/* background: var(--color-white); */
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
.react-calendar-timeline .rct-vertical-lines .rct-vl:nth-child(even) {
|
|
96
|
-
/* background: var(--color-lightgray); */
|
|
97
|
-
}
|
|
98
|
-
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
.blink {
|
|
3
|
-
border: solid 1px orangered;
|
|
4
|
-
color: orangered;
|
|
5
|
-
animation: blinker 1s cubic-bezier(0.5, 0, 1, 1) infinite alternate;
|
|
6
|
-
box-shadow: 0 2.8px 2.2px rgba(250, 104, 60, 0.034), 0 6.7px 5.3px rgba(250, 104, 60, 0.048), 0 12.5px 10px rgba(250, 104, 60, 0.06), 0 22.3px 17.9px rgba(250, 104, 60, 0.072), 0 41.8px 33.4px rgba(250, 104, 60, 0.086), 0 100px 80px rgba(250, 104, 60, 0.12);
|
|
7
|
-
}
|
|
8
|
-
@keyframes blinker {
|
|
9
|
-
from {
|
|
10
|
-
opacity: 1;
|
|
11
|
-
}
|
|
12
|
-
to {
|
|
13
|
-
opacity: 0;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
.rct-item {
|
|
17
|
-
border-radius: 20px;
|
|
18
|
-
border-color: rgba(0, 0, 0, 0.5) !important;
|
|
19
|
-
color: #000;
|
|
20
|
-
}
|
|
21
|
-
.item_collision .rct-item-content {
|
|
22
|
-
color: white !important;
|
|
23
|
-
font-weight: 900;
|
|
24
|
-
}
|
|
25
|
-
.item_collision {
|
|
26
|
-
background-size: auto auto;
|
|
27
|
-
background-color: rgba(193, 45, 45, 1);
|
|
28
|
-
background-image: repeating-linear-gradient(45deg, #f56f6f, #f56f6f 12px, rgba(236, 93, 93, 1) 12px, rgba(236, 93, 93, 1) 20px) !important;
|
|
29
|
-
}
|
|
30
|
-
.edit_res_id {
|
|
31
|
-
border: solid 2.5px #f79902 !important;
|
|
32
|
-
box-shadow: 0 2.8px 2.2px rgba(37, 37, 37, 0.044), 0 6.7px 5.3px rgba(37, 37, 37, 0.058), 0 12.5px 10px rgba(37, 37, 37, 0.16), 0 22.3px 17.9px rgba(37, 37, 37, 0.082), 0 41.8px 33.4px rgba(37, 37, 37, 0.096), 0 100px 80px rgba(37, 37, 37, 0.22);
|
|
33
|
-
}
|
|
34
|
-
.sidebar-group {
|
|
35
|
-
line-height: 1;
|
|
36
|
-
}
|
|
37
|
-
.rct-dateHeader {
|
|
38
|
-
font-size: 12pt !important;
|
|
39
|
-
}
|
|
40
|
-
.react-calendar-timeline .rct-vertical-lines .rct-vl.rct-day-6, .react-calendar-timeline .rct-vertical-lines .rct-vl.rct-day-0 {
|
|
41
|
-
background-color: rgba(248, 147, 31, 0.5);
|
|
42
|
-
}
|
|
43
|
-
.rct-item-content {
|
|
44
|
-
color: black;
|
|
45
|
-
}
|
|
46
|
-
.move-icon {
|
|
47
|
-
cursor: grab;
|
|
48
|
-
cursor: -moz-grab;
|
|
49
|
-
cursor: -webkit-grab;
|
|
50
|
-
height: 20px;
|
|
51
|
-
width: 20px;
|
|
52
|
-
background-color: rgba(255, 255, 255, 0.3);
|
|
53
|
-
border-radius: 50%;
|
|
54
|
-
position: absolute;
|
|
55
|
-
top: 5px;
|
|
56
|
-
left: 5px;
|
|
57
|
-
border: solid 1px;
|
|
58
|
-
border-color: rgba(0, 0, 0, 0.5) !important;
|
|
59
|
-
box-shadow: inset 0 5px 5px -5px rgba(0, 0, 0, 0.493);
|
|
60
|
-
}
|
|
61
|
-
.rct-item-handler {
|
|
62
|
-
cursor: col-resize !important;
|
|
63
|
-
display: flex;
|
|
64
|
-
align-items: center;
|
|
65
|
-
justify-content: center;
|
|
66
|
-
}
|
|
67
|
-
.rct-item-handler .handle-icon {
|
|
68
|
-
height: 35%;
|
|
69
|
-
position: relative;
|
|
70
|
-
pointer-events: none;
|
|
71
|
-
}
|
|
72
|
-
.rct-item-handler .handle-icon, .rct-item-handler .handle-icon:before, .rct-item-handler .handle-icon:after {
|
|
73
|
-
width: 1px;
|
|
74
|
-
background: rgba(54, 54, 54, 0.9);
|
|
75
|
-
}
|
|
76
|
-
.rct-item-handler .handle-icon:before, .rct-item-handler .handle-icon:after {
|
|
77
|
-
content: '';
|
|
78
|
-
height: 100%;
|
|
79
|
-
display: block;
|
|
80
|
-
position: absolute;
|
|
81
|
-
}
|
|
82
|
-
.rct-item-handler .handle-icon:before {
|
|
83
|
-
right: 4px;
|
|
84
|
-
}
|
|
85
|
-
.rct-item-handler .handle-icon:after {
|
|
86
|
-
left: 4px;
|
|
87
|
-
}
|
|
88
|
-
.rct-item-content {
|
|
89
|
-
line-height: 1.2;
|
|
90
|
-
margin-top: auto !important;
|
|
91
|
-
margin-bottom: auto !important;
|
|
92
|
-
max-height: 12px;
|
|
93
|
-
}
|
|
94
|
-
.rct-item-tooltip {
|
|
95
|
-
z-index: 2000;
|
|
96
|
-
margin-left: 5px;
|
|
97
|
-
display: flex;
|
|
98
|
-
align-items: center;
|
|
99
|
-
}
|
|
100
|
-
.rct-item-tooltip-content {
|
|
101
|
-
background: rgba(27, 25, 24, 0.726);
|
|
102
|
-
padding: 8px 16px;
|
|
103
|
-
white-space: nowrap;
|
|
104
|
-
font-size: 12px;
|
|
105
|
-
color: white;
|
|
106
|
-
border-radius: 5px;
|
|
107
|
-
}
|
|
108
|
-
.rct-item--is-selected .rct-item-content {
|
|
109
|
-
color: rgba(0, 0, 0, 0.8);
|
|
110
|
-
}
|
|
111
|
-
.rct-item--is-selected .rct-item {
|
|
112
|
-
border-color: rgba(0, 0, 0, 0.5) !important;
|
|
113
|
-
box-shadow: 0 8px 8px -8px black;
|
|
114
|
-
}
|
|
115
|
-
.rct-item-following-indicator {
|
|
116
|
-
opacity: 0;
|
|
117
|
-
transition: opacity 500ms ease;
|
|
118
|
-
}
|
|
119
|
-
.rct-item--is-resizing .rct-item-following-indicator {
|
|
120
|
-
opacity: 1;
|
|
121
|
-
}
|
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
.timeline-app {
|
|
2
|
-
font-family: sans-serif;
|
|
3
|
-
font-size: large;
|
|
4
|
-
text-align: center;
|
|
5
|
-
max-width: 100%;
|
|
6
|
-
max-height:90vh !important;
|
|
7
|
-
height:90vh !important;
|
|
8
|
-
padding: 0 16px;
|
|
9
|
-
overflow: scroll;
|
|
10
|
-
// margin: auto;
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
.blink{
|
|
17
|
-
border: solid 1px orangered;
|
|
18
|
-
color: orangered;
|
|
19
|
-
animation: blinker 1s cubic-bezier(.5, 0, 1, 1) infinite alternate;
|
|
20
|
-
box-shadow:
|
|
21
|
-
0 2.8px 2.2px rgba(250, 104, 60, 0.034),
|
|
22
|
-
0 6.7px 5.3px rgba(250, 104, 60, 0.048),
|
|
23
|
-
0 12.5px 10px rgba(250, 104, 60, 0.06),
|
|
24
|
-
0 22.3px 17.9px rgba(250, 104, 60, 0.072),
|
|
25
|
-
0 41.8px 33.4px rgba(250, 104, 60, 0.086),
|
|
26
|
-
0 100px 80px rgba(250, 104, 60, 0.12)
|
|
27
|
-
;
|
|
28
|
-
}
|
|
29
|
-
@keyframes blinker {
|
|
30
|
-
from { opacity: 1; }
|
|
31
|
-
to { opacity: 0; }
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
.rct-item{
|
|
38
|
-
border-radius:20px;
|
|
39
|
-
border-color: rgba(0, 0, 0, 0.5) !important;
|
|
40
|
-
color: #000000;
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
.item_collision .rct-item-content{
|
|
44
|
-
|
|
45
|
-
color:white !important;
|
|
46
|
-
font-weight: 900;
|
|
47
|
-
}
|
|
48
|
-
.item_collision{
|
|
49
|
-
|
|
50
|
-
background-size: auto auto;
|
|
51
|
-
background-color: rgba(193, 45, 45, 1);
|
|
52
|
-
background-image: repeating-linear-gradient(45deg, rgb(245, 111, 111), rgb(245, 111, 111) 12px, rgba(236, 93, 93, 1) 12px, rgba(236, 93, 93, 1) 20px ) !important;
|
|
53
|
-
// background-image: linear-gradient(38deg, #f58e8e 25%, #e67373 25%, #e67373 50%, #f58e8e 50%, #f58e8e 75%, #e67373 75%, #e67373 50%) !important;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
// In edit mode the reservation ID being edited will look different
|
|
58
|
-
.edit_res_id{
|
|
59
|
-
|
|
60
|
-
border: solid 2.5px rgb(247, 153, 2) !important;
|
|
61
|
-
box-shadow:
|
|
62
|
-
0 2.8px 2.2px rgba(37, 37, 37, 0.044),
|
|
63
|
-
0 6.7px 5.3px rgba(37, 37, 37, 0.058),
|
|
64
|
-
0 12.5px 10px rgba(37, 37, 37, 0.16),
|
|
65
|
-
0 22.3px 17.9px rgba(37, 37, 37, 0.082),
|
|
66
|
-
0 41.8px 33.4px rgba(37, 37, 37, 0.096),
|
|
67
|
-
0 100px 80px rgba(37, 37, 37, 0.22)
|
|
68
|
-
;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
.sidebar-group {
|
|
73
|
-
line-height: 1;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
.rct-dateHeader {
|
|
77
|
-
font-size: 12pt !important;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
.react-calendar-timeline .rct-horizontal-lines .rct-hl-even{
|
|
81
|
-
// border-color: solid 5px red;
|
|
82
|
-
// background-color:red;
|
|
83
|
-
}
|
|
84
|
-
.react-calendar-timeline .rct-horizontal-lines .rct-hl-odd{
|
|
85
|
-
// background-color:red;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
// Timeline styles overrides
|
|
89
|
-
$weekend: rgba(248, 147, 31, 0.5);
|
|
90
|
-
|
|
91
|
-
.react-calendar-timeline {
|
|
92
|
-
.rct-vertical-lines {
|
|
93
|
-
.rct-vl {
|
|
94
|
-
&.rct-day-6,
|
|
95
|
-
&.rct-day-0 {
|
|
96
|
-
background-color: $weekend;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
.rct-item-content{
|
|
103
|
-
color:black;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
$handle-color: rgba(54, 54, 54, 0.9);
|
|
108
|
-
|
|
109
|
-
//move icon
|
|
110
|
-
|
|
111
|
-
.move-icon{
|
|
112
|
-
// cursor: move; /* fallback if grab cursor is unsupported */
|
|
113
|
-
cursor: grab;
|
|
114
|
-
cursor: -moz-grab;
|
|
115
|
-
cursor: -webkit-grab;
|
|
116
|
-
|
|
117
|
-
height: 20px;
|
|
118
|
-
width: 20px;
|
|
119
|
-
background-color: rgba(255, 255, 255, 0.3);
|
|
120
|
-
border-radius: 50%;
|
|
121
|
-
position: absolute;
|
|
122
|
-
top: 8px; left: 5px;
|
|
123
|
-
border: solid 1px;
|
|
124
|
-
|
|
125
|
-
border-color:rgba(0, 0, 0, 0.5) !important;
|
|
126
|
-
box-shadow: inset 0 5px 5px -5px rgba(0, 0, 0, 0.493);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
// Handle
|
|
130
|
-
|
|
131
|
-
.rct-item-handler {
|
|
132
|
-
cursor: col-resize !important;
|
|
133
|
-
display: flex;
|
|
134
|
-
align-items: center;
|
|
135
|
-
justify-content: center;
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
.handle-icon {
|
|
139
|
-
height: 35%;
|
|
140
|
-
position: relative;
|
|
141
|
-
pointer-events: none;
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
&, &:before, &:after {
|
|
145
|
-
width: 1px;
|
|
146
|
-
background: $handle-color;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
&:before, &:after {
|
|
150
|
-
content: '';
|
|
151
|
-
height: 100%;
|
|
152
|
-
display: block;
|
|
153
|
-
position: absolute;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
// Controls th spacing between the grips handles
|
|
157
|
-
&:before {
|
|
158
|
-
right: 4px;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
&:after {
|
|
162
|
-
left: 4px;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
//controls the way the text appears in the timeline items...
|
|
168
|
-
.rct-item-content {
|
|
169
|
-
line-height:1.1;
|
|
170
|
-
// height:100%;
|
|
171
|
-
margin-top: 8px !important;
|
|
172
|
-
max-height: 10px;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
// Following tooltip
|
|
176
|
-
.rct-item-tooltip {
|
|
177
|
-
z-index: 2000;
|
|
178
|
-
margin-left: 5px;
|
|
179
|
-
display: flex;
|
|
180
|
-
align-items: center;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
.rct-item-tooltip-content {
|
|
184
|
-
background: rgba(27, 25, 24, 0.726);
|
|
185
|
-
padding: 8px 16px;
|
|
186
|
-
white-space: nowrap;
|
|
187
|
-
font-size: 12px;
|
|
188
|
-
color: white;
|
|
189
|
-
border-radius: 5px;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
.rct-item--is-selected .rct-item-content{
|
|
193
|
-
color: rgba(0, 0, 0, 0.8);
|
|
194
|
-
}
|
|
195
|
-
.rct-item--is-selected .rct-item{
|
|
196
|
-
border-color:rgba(0, 0, 0, 0.5) !important;
|
|
197
|
-
box-shadow: 0 8px 8px -8px black;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
.rct-item-following-indicator {
|
|
201
|
-
opacity: 0;
|
|
202
|
-
transition: opacity 500ms ease;
|
|
203
|
-
|
|
204
|
-
.rct-item--is-resizing & {
|
|
205
|
-
opacity: 1;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
|