mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-09-18 06:49:47 +02:00
configure weekends start day
This commit is contained in:
@@ -1281,6 +1281,11 @@ export interface GanttDiagramConfig extends BaseDiagramConfig {
|
||||
*
|
||||
*/
|
||||
weekday?: 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';
|
||||
/**
|
||||
* On which day a weekend interval should start
|
||||
*
|
||||
*/
|
||||
weekend?: 'friday' | 'saturday';
|
||||
}
|
||||
/**
|
||||
* The object containing configurations specific for sequence diagrams
|
||||
|
@@ -21,6 +21,7 @@ dayjs.extend(dayjsIsoWeek);
|
||||
dayjs.extend(dayjsCustomParseFormat);
|
||||
dayjs.extend(dayjsAdvancedFormat);
|
||||
|
||||
const WEEKEND_START_DAY = { friday: 5, saturday: 6 };
|
||||
let dateFormat = '';
|
||||
let axisFormat = '';
|
||||
let tickInterval = undefined;
|
||||
@@ -37,6 +38,7 @@ let funs = [];
|
||||
let inclusiveEndDates = false;
|
||||
let topAxis = false;
|
||||
let weekday = 'sunday';
|
||||
let weekend = 'saturday';
|
||||
|
||||
// The serial order of the task in the script
|
||||
let lastOrder = 0;
|
||||
@@ -63,6 +65,7 @@ export const clear = function () {
|
||||
links = {};
|
||||
commonClear();
|
||||
weekday = 'sunday';
|
||||
weekend = 'saturday';
|
||||
};
|
||||
|
||||
export const setAxisFormat = function (txt) {
|
||||
@@ -167,7 +170,11 @@ export const isInvalidDate = function (date, dateFormat, excludes, includes) {
|
||||
if (includes.includes(date.format(dateFormat.trim()))) {
|
||||
return false;
|
||||
}
|
||||
if (date.isoWeekday() >= 6 && excludes.includes('weekends')) {
|
||||
if (
|
||||
excludes.includes('weekends') &&
|
||||
(date.isoWeekday() == WEEKEND_START_DAY[weekend] ||
|
||||
date.isoWeekday() == WEEKEND_START_DAY[weekend] + 1)
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
if (excludes.includes(date.format('dddd').toLowerCase())) {
|
||||
@@ -184,6 +191,14 @@ export const getWeekday = function () {
|
||||
return weekday;
|
||||
};
|
||||
|
||||
export const setWeekend = function (startDay) {
|
||||
weekend = startDay;
|
||||
};
|
||||
|
||||
export const getWeekend = function () {
|
||||
return weekend;
|
||||
};
|
||||
|
||||
/**
|
||||
* TODO: fully document what this function does and what types it accepts
|
||||
*
|
||||
@@ -781,6 +796,8 @@ export default {
|
||||
isInvalidDate,
|
||||
setWeekday,
|
||||
getWeekday,
|
||||
setWeekend,
|
||||
getWeekend,
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -84,6 +84,8 @@ weekday\s+thursday return 'weekday_thursday'
|
||||
weekday\s+friday return 'weekday_friday'
|
||||
weekday\s+saturday return 'weekday_saturday'
|
||||
weekday\s+sunday return 'weekday_sunday'
|
||||
weekend\s+friday return 'weekend_friday'
|
||||
weekend\s+saturday return 'weekend_saturday'
|
||||
\d\d\d\d"-"\d\d"-"\d\d return 'date';
|
||||
"title"\s[^\n]+ return 'title';
|
||||
"accDescription"\s[^#\n;]+ return 'accDescription'
|
||||
@@ -128,6 +130,11 @@ weekday
|
||||
| weekday_sunday { yy.setWeekday("sunday");}
|
||||
;
|
||||
|
||||
weekend
|
||||
: weekend_friday { yy.setWeekend("friday");}
|
||||
| weekend_saturday { yy.setWeekend("saturday");}
|
||||
;
|
||||
|
||||
statement
|
||||
: dateFormat {yy.setDateFormat($1.substr(11));$$=$1.substr(11);}
|
||||
| inclusiveEndDates {yy.enableInclusiveEndDates();$$=$1.substr(18);}
|
||||
@@ -138,6 +145,7 @@ statement
|
||||
| includes {yy.setIncludes($1.substr(9));$$=$1.substr(9);}
|
||||
| todayMarker {yy.setTodayMarker($1.substr(12));$$=$1.substr(12);}
|
||||
| weekday
|
||||
| weekend
|
||||
| title {yy.setDiagramTitle($1.substr(6));$$=$1.substr(6);}
|
||||
| acc_title acc_title_value { $$=$2.trim();yy.setAccTitle($$); }
|
||||
| acc_descr acc_descr_value { $$=$2.trim();yy.setAccDescription($$); }
|
||||
|
Reference in New Issue
Block a user