diff --git a/cypress/integration/rendering/gantt.spec.js b/cypress/integration/rendering/gantt.spec.js index c0156eee3..eebfdc18f 100644 --- a/cypress/integration/rendering/gantt.spec.js +++ b/cypress/integration/rendering/gantt.spec.js @@ -2,7 +2,7 @@ import { imgSnapshotTest, renderGraph } from '../../helpers/util.js'; describe('Gantt diagram', () => { beforeEach(() => { - cy.clock(new Date('1010-10-10').getTime()); + cy.clock(new Date('2010-10-10').getTime()); }); it('should render a gantt chart', () => { imgSnapshotTest( @@ -435,4 +435,37 @@ describe('Gantt diagram', () => { { gantt: { topAxis: true } } ); }); + + it('should render when compact is true', () => { + imgSnapshotTest( + ` + gantt + title GANTT compact + dateFormat HH:mm:ss + axisFormat %Hh%M + compact + + section DB Clean + Clean: 12:00:00, 10m + Clean: 12:30:00, 12m + Clean: 13:00:00, 8m + Clean: 13:30:00, 9m + Clean: 14:00:00, 13m + Clean: 14:30:00, 10m + Clean: 15:00:00, 11m + + section Sessions + A: 12:00:00, 63m + B: 12:30:00, 12m + C: 13:05:00, 12m + D: 13:06:00, 33m + E: 13:15:00, 55m + F: 13:20:00, 12m + G: 13:32:00, 18m + H: 13:50:00, 20m + I: 14:10:00, 10m + `, + {} + ); + }); }); diff --git a/demos/gantt.html b/demos/gantt.html index 62f30badb..862bd2f66 100644 --- a/demos/gantt.html +++ b/demos/gantt.html @@ -167,31 +167,31 @@
-      gantt
-        title GANTT compact
-        dateFormat  HH:mm:ss
-        axisFormat  %Hh%M
-        compact
+    gantt
+    title GANTT compact
+    dateFormat  HH:mm:ss
+    axisFormat  %Hh%M
+    compact
 
-        section DB Clean
-        Clean: 12:00:00, 10m
-        Clean: 12:30:00, 12m
-        Clean: 13:00:00, 8m
-        Clean: 13:30:00, 9m
-        Clean: 14:00:00, 13m
-        Clean: 14:30:00, 10m
-        Clean: 15:00:00, 11m
+    section DB Clean
+    Clean: 12:00:00, 10m
+    Clean: 12:30:00, 12m
+    Clean: 13:00:00, 8m
+    Clean: 13:30:00, 9m
+    Clean: 14:00:00, 13m
+    Clean: 14:30:00, 10m
+    Clean: 15:00:00, 11m
 
-        section Sessions
-        A: 12:00:00, 63m
-        B: 12:30:00, 12m
-        C: 13:05:00, 12m
-        D: 13:06:00, 33m
-        E: 13:15:00, 55m
-        F: 13:20:00, 12m
-        G: 13:32:00, 18m
-        H: 13:50:00, 20m
-        I: 14:10:00, 10m
+    section Sessions
+    A: 12:00:00, 63m
+    B: 12:30:00, 12m
+    C: 13:05:00, 12m
+    D: 13:06:00, 33m
+    E: 13:15:00, 55m
+    F: 13:20:00, 12m
+    G: 13:32:00, 18m
+    H: 13:50:00, 20m
+    I: 14:10:00, 10m
     

diff --git a/docs/config/setup/modules/mermaidAPI.md b/docs/config/setup/modules/mermaidAPI.md index 4b8f57bd7..35097bc63 100644 --- a/docs/config/setup/modules/mermaidAPI.md +++ b/docs/config/setup/modules/mermaidAPI.md @@ -88,6 +88,7 @@ const config = { numberSectionStyles: 4, axisFormat: '%Y-%m-%d', topAxis: false, + compact: false, }, }; mermaid.initialize(config); @@ -95,7 +96,7 @@ mermaid.initialize(config); #### Defined in -[mermaidAPI.ts:659](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L659) +[mermaidAPI.ts:660](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L660) ## Functions diff --git a/packages/mermaid/src/defaultConfig.ts b/packages/mermaid/src/defaultConfig.ts index c429cbe22..de4a56f5b 100644 --- a/packages/mermaid/src/defaultConfig.ts +++ b/packages/mermaid/src/defaultConfig.ts @@ -688,7 +688,7 @@ const config: Partial = { /** * | Parameter | Description | Type | Required | Values | * | --------- | ------------------------- | ------- | -------- | ----------- | - * | compact | displays in compact mode | boolean | Optional | true, false | + * | compact | displays in compact mode | boolean | 4 | True, False | * * **Notes:** * diff --git a/packages/mermaid/src/diagrams/gantt/ganttDb.js b/packages/mermaid/src/diagrams/gantt/ganttDb.js index 807a0ee81..9bcac2259 100644 --- a/packages/mermaid/src/diagrams/gantt/ganttDb.js +++ b/packages/mermaid/src/diagrams/gantt/ganttDb.js @@ -25,7 +25,6 @@ dayjs.extend(dayjsAdvancedFormat); let dateFormat = ''; let axisFormat = ''; let tickInterval = undefined; -let compact = false; let todayMarker = ''; let includes = []; let excludes = []; @@ -37,6 +36,7 @@ const tags = ['active', 'done', 'crit', 'milestone']; let funs = []; let inclusiveEndDates = false; let topAxis = false; +let compact = false; // The serial order of the task in the script let lastOrder = 0; @@ -57,12 +57,12 @@ export const clear = function () { dateFormat = ''; axisFormat = ''; tickInterval = undefined; - compact = false; todayMarker = ''; includes = []; excludes = []; inclusiveEndDates = false; topAxis = false; + compact = false; lastOrder = 0; links = {}; commonClear(); @@ -84,14 +84,6 @@ export const getTickInterval = function () { return tickInterval; }; -export const enableCompact = function () { - compact = true; -}; - -export const compactEnabled = function () { - return compact; -}; - export const setTodayMarker = function (txt) { todayMarker = txt; }; @@ -120,6 +112,14 @@ export const topAxisEnabled = function () { return topAxis; }; +export const enableCompact = function () { + compact = true; +}; + +export const compactEnabled = function () { + return compact; +}; + export const getDateFormat = function () { return dateFormat; }; diff --git a/packages/mermaid/src/diagrams/gantt/ganttRenderer.js b/packages/mermaid/src/diagrams/gantt/ganttRenderer.js index f4b606d89..c9bf1b362 100644 --- a/packages/mermaid/src/diagrams/gantt/ganttRenderer.js +++ b/packages/mermaid/src/diagrams/gantt/ganttRenderer.js @@ -97,7 +97,7 @@ export const draw = function (text, id, version, diagObj) { const categoryHeights = {}; let h = 2 * conf.topPadding; - if (diagObj.db.compactEnabled()) { + if (diagObj.db.compactEnabled() || conf.compact) { const categoryElements = {}; for (const element of taskArray) { if (categoryElements[element.section] === undefined) { diff --git a/packages/mermaid/src/diagrams/gantt/parser/gantt.spec.js b/packages/mermaid/src/diagrams/gantt/parser/gantt.spec.js index 9a1401cad..e2eb7df6a 100644 --- a/packages/mermaid/src/diagrams/gantt/parser/gantt.spec.js +++ b/packages/mermaid/src/diagrams/gantt/parser/gantt.spec.js @@ -37,6 +37,12 @@ describe('when parsing a gantt diagram it', function () { expect(parserFnConstructor(str)).not.toThrow(); }); + it('should handle a compact definition', function () { + const str = + 'gantt\ndateFormat yyyy-mm-dd\ntitle Adding gantt diagram functionality to mermaid\ncompact\nexcludes weekdays 2019-02-01'; + + expect(parserFnConstructor(str)).not.toThrow(); + }); it('should handle a todayMarker definition', function () { spyOn(ganttDb, 'setTodayMarker'); const str = diff --git a/packages/mermaid/src/mermaidAPI.ts b/packages/mermaid/src/mermaidAPI.ts index 1b440672a..6cfebfd90 100644 --- a/packages/mermaid/src/mermaidAPI.ts +++ b/packages/mermaid/src/mermaidAPI.ts @@ -650,6 +650,7 @@ function addA11yInfo( * numberSectionStyles: 4, * axisFormat: '%Y-%m-%d', * topAxis: false, + * compact: false, * }, * }; * mermaid.initialize(config);