@diagrammo/dgmo 0.46.0 → 0.47.0

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.
Files changed (232) hide show
  1. package/dist/advanced.d.cts +3 -855
  2. package/dist/advanced.d.ts +3 -855
  3. package/dist/advanced.js +541 -70107
  4. package/dist/analyzer-UYKBXAKR.js +15 -0
  5. package/dist/auto.cjs +1 -1
  6. package/dist/auto.js +1 -1
  7. package/dist/auto.mjs +1 -1
  8. package/dist/block.js +83 -69417
  9. package/dist/calculator-LDYQCDDY.js +11 -0
  10. package/dist/charts-d3-QOZHKTCT.js +25 -0
  11. package/dist/chunk-2DXMZRWJ.js +800 -0
  12. package/dist/chunk-2LACINWN.js +786 -0
  13. package/dist/chunk-33LCUH4H.js +893 -0
  14. package/dist/chunk-3CIOJ5YJ.js +35 -0
  15. package/dist/chunk-3HDBAXF5.js +86 -0
  16. package/dist/chunk-3JLKYGBQ.js +290 -0
  17. package/dist/chunk-3MQQNXPD.js +415 -0
  18. package/dist/chunk-3R5POCTZ.js +967 -0
  19. package/dist/chunk-3SMGIJDD.js +112 -0
  20. package/dist/chunk-44CM72SQ.js +409 -0
  21. package/dist/chunk-4GRI7MEB.js +1604 -0
  22. package/dist/chunk-4OHACBGX.js +606 -0
  23. package/dist/chunk-5DH3KYFH.js +21 -0
  24. package/dist/chunk-5MLYVTYM.js +76 -0
  25. package/dist/chunk-5QXL4NYS.js +553 -0
  26. package/dist/chunk-5WRI5ZAA.js +31 -0
  27. package/dist/chunk-6EK55ART.js +117 -0
  28. package/dist/chunk-6FZYCKXB.js +2065 -0
  29. package/dist/chunk-6HO5ZTXK.js +277 -0
  30. package/dist/chunk-6KFWC4CO.js +7 -0
  31. package/dist/chunk-6MTWIQVO.js +121 -0
  32. package/dist/chunk-6NYWYNBI.js +329 -0
  33. package/dist/chunk-6SM5NJQH.js +620 -0
  34. package/dist/chunk-725LDASD.js +422 -0
  35. package/dist/chunk-76OWZ3BA.js +130 -0
  36. package/dist/chunk-7JEGTRLD.js +338 -0
  37. package/dist/chunk-A44USUV7.js +923 -0
  38. package/dist/chunk-A4GOY3PE.js +25 -0
  39. package/dist/chunk-A4VFQH5G.js +251 -0
  40. package/dist/chunk-AELOBFW5.js +375 -0
  41. package/dist/chunk-AN2MOO5T.js +522 -0
  42. package/dist/chunk-BMR4CIEO.js +41 -0
  43. package/dist/chunk-BS7SV7C3.js +51 -0
  44. package/dist/chunk-BUPDIHML.js +613 -0
  45. package/dist/chunk-BUVJFRPY.js +887 -0
  46. package/dist/chunk-C3Z4DX3V.js +112 -0
  47. package/dist/chunk-CI2G3OEB.js +1818 -0
  48. package/dist/chunk-CKNVO24D.js +54 -0
  49. package/dist/chunk-CUVHQHZ7.js +391 -0
  50. package/dist/chunk-CXK4DZH3.js +114 -0
  51. package/dist/chunk-DKEPS5LH.js +315 -0
  52. package/dist/chunk-DU7W62N5.js +487 -0
  53. package/dist/chunk-DZAQBW35.js +751 -0
  54. package/dist/chunk-EB6FPQUP.js +316 -0
  55. package/dist/chunk-EMS2SK26.js +376 -0
  56. package/dist/chunk-ERLBPDGU.js +510 -0
  57. package/dist/chunk-EVCVDTXE.js +732 -0
  58. package/dist/chunk-FCIIHT24.js +384 -0
  59. package/dist/chunk-FFUN5D66.js +97 -0
  60. package/dist/chunk-FITOLXSX.js +714 -0
  61. package/dist/chunk-FMDSF3OV.js +68 -0
  62. package/dist/chunk-FNB3PNGF.js +410 -0
  63. package/dist/chunk-G2H74XJZ.js +2104 -0
  64. package/dist/chunk-GMR5MFHJ.js +339 -0
  65. package/dist/chunk-H6PI3KJT.js +305 -0
  66. package/dist/chunk-I46X5VUA.js +59 -0
  67. package/dist/chunk-I5IGB56C.js +255 -0
  68. package/dist/chunk-IH6ZMVQ5.js +3950 -0
  69. package/dist/chunk-IJZFN3HM.js +463 -0
  70. package/dist/chunk-IPWPWM6R.js +3079 -0
  71. package/dist/chunk-IYULMRBE.js +23 -0
  72. package/dist/chunk-IZMRON6C.js +167 -0
  73. package/dist/chunk-J5FIXQRT.js +813 -0
  74. package/dist/chunk-JED6ZDEE.js +73 -0
  75. package/dist/chunk-JEUJOX5X.js +136 -0
  76. package/dist/chunk-JM4LEPY3.js +436 -0
  77. package/dist/chunk-L3UHP6TD.js +101 -0
  78. package/dist/chunk-L66GEFB6.js +524 -0
  79. package/dist/chunk-LIOHW36Z.js +469 -0
  80. package/dist/chunk-LP7EC4MI.js +16 -0
  81. package/dist/chunk-MITI6NOL.js +548 -0
  82. package/dist/chunk-MO5YHHMQ.js +168 -0
  83. package/dist/chunk-MZSBFAPJ.js +885 -0
  84. package/dist/chunk-NNAAJVBU.js +9 -0
  85. package/dist/chunk-NOTA6TEI.js +47 -0
  86. package/dist/chunk-NURGB5Z4.js +335 -0
  87. package/dist/chunk-NX4EQS3U.js +1062 -0
  88. package/dist/chunk-NXMESY4J.js +1 -0
  89. package/dist/chunk-OJR3MQYV.js +1458 -0
  90. package/dist/chunk-OURHMODR.js +454 -0
  91. package/dist/chunk-P235SVAH.js +1057 -0
  92. package/dist/chunk-P4RH4OSP.js +1038 -0
  93. package/dist/chunk-P6T66CCZ.js +226 -0
  94. package/dist/chunk-PBAHEPLQ.js +223 -0
  95. package/dist/chunk-PBHE5UG6.js +1530 -0
  96. package/dist/chunk-PDKUANDZ.js +35 -0
  97. package/dist/chunk-PWIHZ6NJ.js +296 -0
  98. package/dist/chunk-QEBUY5NY.js +1685 -0
  99. package/dist/chunk-QLCCJEJI.js +253 -0
  100. package/dist/chunk-QOOUC2J5.js +52 -0
  101. package/dist/chunk-QYTPPDAO.js +402 -0
  102. package/dist/chunk-R3XI2VC7.js +801 -0
  103. package/dist/chunk-RCERWOJR.js +154 -0
  104. package/dist/chunk-RJE5JTVK.js +362 -0
  105. package/dist/chunk-RTLBSQ3G.js +1155 -0
  106. package/dist/chunk-RUNNI6VE.js +448 -0
  107. package/dist/chunk-RVMRZAPB.js +354 -0
  108. package/dist/chunk-RYEGFMUO.js +955 -0
  109. package/dist/chunk-RZCF2VVM.js +528 -0
  110. package/dist/chunk-SML67VPV.js +1025 -0
  111. package/dist/chunk-SQ7IY53Q.js +44 -0
  112. package/dist/chunk-SQAG3UXH.js +161 -0
  113. package/dist/chunk-SRTU6HMQ.js +1851 -0
  114. package/dist/chunk-T2OE3YQB.js +550 -0
  115. package/dist/chunk-T3UBLACL.js +299 -0
  116. package/dist/chunk-TLVIHFRO.js +296 -0
  117. package/dist/chunk-TYS6CSS5.js +52 -0
  118. package/dist/chunk-U6EQI3U6.js +130 -0
  119. package/dist/chunk-UJ4FJLBF.js +86 -0
  120. package/dist/chunk-ULOEATBZ.js +347 -0
  121. package/dist/chunk-UNCCZ3NU.js +127 -0
  122. package/dist/chunk-USZW2HHU.js +197 -0
  123. package/dist/chunk-UWN33VNX.js +1610 -0
  124. package/dist/chunk-UZ7EZW3B.js +40 -0
  125. package/dist/chunk-VOKGH627.js +37 -0
  126. package/dist/chunk-WBRZJOEC.js +204 -0
  127. package/dist/chunk-WCSOJFU3.js +380 -0
  128. package/dist/chunk-WCT3NYCV.js +160 -0
  129. package/dist/chunk-WVAJFAIA.js +529 -0
  130. package/dist/chunk-X5LCYCL5.js +394 -0
  131. package/dist/chunk-XAKEUMEJ.js +1256 -0
  132. package/dist/chunk-Y2ZE3MSG.js +590 -0
  133. package/dist/chunk-Y3J7VR52.js +646 -0
  134. package/dist/chunk-Y5QGVTVC.js +33 -0
  135. package/dist/chunk-YAA6IID3.js +548 -0
  136. package/dist/chunk-YGJTDXVR.js +692 -0
  137. package/dist/chunk-YRYKTYMQ.js +186 -0
  138. package/dist/chunk-YYVTBZZC.js +61 -0
  139. package/dist/chunk-Z5CGSFJB.js +647 -0
  140. package/dist/chunk-Z72XRXD4.js +787 -0
  141. package/dist/chunk-ZGR7ULFJ.js +978 -0
  142. package/dist/chunk-ZJEL4H2R.js +851 -0
  143. package/dist/chunk-ZO27FGJS.js +554 -0
  144. package/dist/collapse-CLPJD2RL.js +11 -0
  145. package/dist/collapse-SLINJQW6.js +9 -0
  146. package/dist/collapse-ZWUFFCK2.js +9 -0
  147. package/dist/compute-G55RG53N.js +8 -0
  148. package/dist/dgmo-router-DZCIDUO5.js +73 -0
  149. package/dist/dimensions-J3FHIMJ6.js +22 -0
  150. package/dist/element.cjs +1 -1
  151. package/dist/element.js +1 -1
  152. package/dist/element.mjs +1 -1
  153. package/dist/flowchart-parser-ZNSKIBVR.js +21 -0
  154. package/dist/flowchart-renderer-ZAEOL4DX.js +35 -0
  155. package/dist/index.cjs +3 -3
  156. package/dist/index.d.cts +3 -469
  157. package/dist/index.d.ts +3 -469
  158. package/dist/index.js +137 -69685
  159. package/dist/layout-46N4JJYK.js +17 -0
  160. package/dist/layout-5RA6QWR6.js +26 -0
  161. package/dist/layout-5T6RH5M6.js +14 -0
  162. package/dist/layout-7QXCNOVS.js +13 -0
  163. package/dist/layout-EE6GE46Y.js +17 -0
  164. package/dist/layout-G23F7LDH.js +9 -0
  165. package/dist/layout-HRBZPFCN.js +23 -0
  166. package/dist/layout-HWDSRX5E.js +20 -0
  167. package/dist/layout-HYZPWAK5.js +18 -0
  168. package/dist/layout-N76NR4ZO.js +19 -0
  169. package/dist/layout-OB3RI63S.js +14 -0
  170. package/dist/layout-S2QBYSK2.js +15 -0
  171. package/dist/layout-UM5F4DJB.js +15 -0
  172. package/dist/layout-search-OYV77HHS.js +1655 -0
  173. package/dist/load-data-EHDDZ5ZS.js +8 -0
  174. package/dist/palettes-PRJ2RI6D.js +56 -0
  175. package/dist/parser-2MFP2H2E.js +11 -0
  176. package/dist/parser-3STE62GB.js +21 -0
  177. package/dist/parser-4FL2CMDG.js +18 -0
  178. package/dist/parser-4OGOBJJ4.js +13 -0
  179. package/dist/parser-6BTRLKRZ.js +15 -0
  180. package/dist/parser-AQETEVRW.js +21 -0
  181. package/dist/parser-CFZD5IBL.js +12 -0
  182. package/dist/parser-FUSKFGZN.js +16 -0
  183. package/dist/parser-I6KXEYFK.js +13 -0
  184. package/dist/parser-IXSZZQHY.js +18 -0
  185. package/dist/parser-JAL2HD4I.js +13 -0
  186. package/dist/parser-KNSQSKQO.js +20 -0
  187. package/dist/parser-N5O4IHUN.js +13 -0
  188. package/dist/parser-NGU3ETO6.js +16 -0
  189. package/dist/parser-NRAI6O25.js +19 -0
  190. package/dist/parser-O5J4VBII.js +11 -0
  191. package/dist/parser-OV7NOBW6.js +21 -0
  192. package/dist/parser-PQ3POX45.js +23 -0
  193. package/dist/parser-TFZFBVWN.js +11 -0
  194. package/dist/parser-TRTHDFPP.js +18 -0
  195. package/dist/parser-VQP2UJ6W.js +11 -0
  196. package/dist/parser-XDVELHRK.js +13 -0
  197. package/dist/parser-XKRP7QKP.js +11 -0
  198. package/dist/parser-Y6WTBU76.js +14 -0
  199. package/dist/parser-ZSDPZYQP.js +12 -0
  200. package/dist/renderer-2XQQQ6QR.js +28 -0
  201. package/dist/renderer-5NDVNDAZ.js +26 -0
  202. package/dist/renderer-6EEZHMH4.js +26 -0
  203. package/dist/renderer-6W5462RB.js +43 -0
  204. package/dist/renderer-7MVLWWQD.js +22 -0
  205. package/dist/renderer-AWWAF6XD.js +33 -0
  206. package/dist/renderer-BYCNMBF7.js +34 -0
  207. package/dist/renderer-CLJHQPBJ.js +29 -0
  208. package/dist/renderer-GHPZMFU2.js +15 -0
  209. package/dist/renderer-JGBKUCZD.js +16 -0
  210. package/dist/renderer-KQB7UGDS.js +19 -0
  211. package/dist/renderer-PGX2TKVS.js +24 -0
  212. package/dist/renderer-QIWVHWZO.js +15 -0
  213. package/dist/renderer-RPOA5YPZ.js +35 -0
  214. package/dist/renderer-SMIBCRVB.js +24 -0
  215. package/dist/renderer-T7YKC5VP.js +28 -0
  216. package/dist/renderer-TOCOVLHS.js +37 -0
  217. package/dist/renderer-UWA5XS74.js +39 -0
  218. package/dist/renderer-VACVQYML.js +25 -0
  219. package/dist/renderer-W4M6QLIJ.js +37 -0
  220. package/dist/renderer-WZRREQ2P.js +23 -0
  221. package/dist/renderer-YY2OSF6E.js +27 -0
  222. package/dist/renderer-Z7I3W2PP.js +24 -0
  223. package/dist/renderer-ZGNTUWC4.js +22 -0
  224. package/dist/renderer-ZTR3DER3.js +19 -0
  225. package/dist/renderer-radial-C32GPJQ7.js +21 -0
  226. package/dist/resolver-NOAA7ID7.js +13 -0
  227. package/dist/state-collapse-HCGD6IVJ.js +8 -0
  228. package/dist/state-parser-Z2V23ATR.js +18 -0
  229. package/dist/state-renderer-RFYHSP4K.js +34 -0
  230. package/dist/themes-1-CuKpeH.d.cts +908 -0
  231. package/dist/themes-1-CuKpeH.d.ts +908 -0
  232. package/package.json +1 -1
@@ -0,0 +1,197 @@
1
+ // src/utils/duration.ts
2
+ var JS_DAY_TO_WEEKDAY = [
3
+ "sun",
4
+ "mon",
5
+ "tue",
6
+ "wed",
7
+ "thu",
8
+ "fri",
9
+ "sat"
10
+ ];
11
+ function isWorkday(date, workweek, holidaySet) {
12
+ const dayName = JS_DAY_TO_WEEKDAY[date.getDay()];
13
+ if (!workweek.includes(dayName)) return false;
14
+ if (holidaySet.has(formatDateKey(date))) return false;
15
+ return true;
16
+ }
17
+ function formatDateKey(date) {
18
+ const y = date.getFullYear();
19
+ const m = String(date.getMonth() + 1).padStart(2, "0");
20
+ const d = String(date.getDate()).padStart(2, "0");
21
+ return `${y}-${m}-${d}`;
22
+ }
23
+ function buildHolidaySet(holidays) {
24
+ const set = /* @__PURE__ */ new Set();
25
+ for (const h of holidays.dates) {
26
+ set.add(h.date);
27
+ }
28
+ for (const range of holidays.ranges) {
29
+ const start = /* @__PURE__ */ new Date(range.startDate + "T00:00:00");
30
+ const end = /* @__PURE__ */ new Date(range.endDate + "T00:00:00");
31
+ const current = new Date(start);
32
+ while (current <= end) {
33
+ set.add(formatDateKey(current));
34
+ current.setDate(current.getDate() + 1);
35
+ }
36
+ }
37
+ return set;
38
+ }
39
+ function addBusinessDays(startDate, count, workweek, holidaySet, direction = 1) {
40
+ const days = Math.round(Math.abs(count));
41
+ if (days === 0) return new Date(startDate);
42
+ if (Number.isNaN(startDate.getTime())) return new Date(startDate);
43
+ const current = new Date(startDate);
44
+ let remaining = days;
45
+ let safety = days * 14 + 14;
46
+ while (remaining > 0 && safety-- > 0) {
47
+ current.setDate(current.getDate() + direction);
48
+ if (isWorkday(current, workweek, holidaySet)) {
49
+ remaining--;
50
+ }
51
+ }
52
+ return current;
53
+ }
54
+ function addGanttDuration(startDate, duration, holidays, holidaySet, direction = 1, opts) {
55
+ const { amount, unit } = duration;
56
+ switch (unit) {
57
+ case "bd":
58
+ return addBusinessDays(
59
+ startDate,
60
+ amount,
61
+ holidays.workweek,
62
+ holidaySet,
63
+ direction
64
+ );
65
+ case "d": {
66
+ const result = new Date(startDate);
67
+ result.setDate(result.getDate() + Math.round(amount) * direction);
68
+ return result;
69
+ }
70
+ case "w": {
71
+ const result = new Date(startDate);
72
+ result.setDate(result.getDate() + Math.round(amount * 7) * direction);
73
+ return result;
74
+ }
75
+ case "m": {
76
+ const result = new Date(startDate);
77
+ const wholeMonths = direction === -1 ? Math.round(amount) : Math.floor(amount);
78
+ const fractionalDays = direction === -1 ? 0 : Math.round((amount - wholeMonths) * 30);
79
+ result.setMonth(result.getMonth() + wholeMonths * direction);
80
+ if (fractionalDays > 0) {
81
+ result.setDate(result.getDate() + fractionalDays * direction);
82
+ }
83
+ return result;
84
+ }
85
+ case "q": {
86
+ const result = new Date(startDate);
87
+ const totalMonths = amount * 3;
88
+ const wholeMonths = direction === -1 ? Math.round(totalMonths) : Math.floor(totalMonths);
89
+ const fractionalDays = direction === -1 ? 0 : Math.round((totalMonths - wholeMonths) * 30);
90
+ result.setMonth(result.getMonth() + wholeMonths * direction);
91
+ if (fractionalDays > 0) {
92
+ result.setDate(result.getDate() + fractionalDays * direction);
93
+ }
94
+ return result;
95
+ }
96
+ case "y": {
97
+ const result = new Date(startDate);
98
+ const wholeYears = direction === -1 ? Math.round(amount) : Math.floor(amount);
99
+ const fractionalMonths = direction === -1 ? 0 : Math.round((amount - wholeYears) * 12);
100
+ result.setFullYear(result.getFullYear() + wholeYears * direction);
101
+ if (fractionalMonths > 0) {
102
+ result.setMonth(result.getMonth() + fractionalMonths * direction);
103
+ }
104
+ return result;
105
+ }
106
+ case "h": {
107
+ const result = new Date(startDate);
108
+ result.setTime(result.getTime() + amount * 36e5 * direction);
109
+ return result;
110
+ }
111
+ case "min": {
112
+ const result = new Date(startDate);
113
+ result.setTime(result.getTime() + amount * 6e4 * direction);
114
+ return result;
115
+ }
116
+ case "s": {
117
+ if (!opts?.sprintLength) {
118
+ throw new Error(
119
+ 'Sprint duration unit "s" requires sprintLength configuration'
120
+ );
121
+ }
122
+ const sl = opts.sprintLength;
123
+ const totalDays = amount * sl.amount * (sl.unit === "w" ? 7 : 1);
124
+ const result = new Date(startDate);
125
+ result.setDate(result.getDate() + Math.round(totalDays) * direction);
126
+ return result;
127
+ }
128
+ }
129
+ }
130
+ function parseDuration(s) {
131
+ const match = s.trim().match(/^(\d+(?:\.\d+)?)(min|bd|d|w|m|q|y|h|s)$/);
132
+ if (!match) return null;
133
+ return { amount: parseFloat(match[1]), unit: match[2] };
134
+ }
135
+ function parseOffset(value) {
136
+ const trimmed = value.trim();
137
+ let direction = 1;
138
+ let remainder = trimmed;
139
+ if (trimmed.startsWith("-")) {
140
+ direction = -1;
141
+ remainder = trimmed.slice(1);
142
+ } else if (trimmed.startsWith("+")) {
143
+ return null;
144
+ }
145
+ const duration = parseDuration(remainder);
146
+ if (!duration) return null;
147
+ return { duration, direction };
148
+ }
149
+ function parseOffsetPrefix(value) {
150
+ const trimmed = value.trim();
151
+ let direction = 1;
152
+ let remainder = trimmed;
153
+ if (trimmed.startsWith("+")) {
154
+ remainder = trimmed.slice(1);
155
+ } else if (trimmed.startsWith("-")) {
156
+ direction = -1;
157
+ remainder = trimmed.slice(1);
158
+ }
159
+ const duration = parseDuration(remainder);
160
+ if (!duration) return null;
161
+ return { duration, direction };
162
+ }
163
+ function parseGanttDate(s) {
164
+ const spaceIdx = s.indexOf(" ");
165
+ let datePart = s;
166
+ let hour = 0;
167
+ let minute = 0;
168
+ if (spaceIdx !== -1) {
169
+ datePart = s.slice(0, spaceIdx);
170
+ const timePart = s.slice(spaceIdx + 1);
171
+ const timeParts = timePart.split(":");
172
+ if (timeParts.length === 2) {
173
+ const h = parseInt(timeParts[0], 10);
174
+ const m = parseInt(timeParts[1], 10);
175
+ if (h >= 0 && h <= 23 && m >= 0 && m <= 59) {
176
+ hour = h;
177
+ minute = m;
178
+ }
179
+ }
180
+ }
181
+ const parts = datePart.split("-").map((p) => parseInt(p, 10));
182
+ const year = parts[0];
183
+ const month = parts.length >= 2 ? parts[1] - 1 : 0;
184
+ const day = parts.length >= 3 ? parts[2] : 1;
185
+ return new Date(year, month, day, hour, minute);
186
+ }
187
+
188
+ export {
189
+ formatDateKey,
190
+ buildHolidaySet,
191
+ addGanttDuration,
192
+ parseDuration,
193
+ parseOffset,
194
+ parseOffsetPrefix,
195
+ parseGanttDate
196
+ };
197
+ //# sourceMappingURL=chunk-USZW2HHU.js.map