@sme.up/ketchup 10.1.2 → 10.1.5
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/cjs/ketchup.cjs.js +1 -1
- package/dist/cjs/kup-custom-task-list-header_4.cjs.entry.js +195 -22
- package/dist/cjs/kup-gantt_10.cjs.entry.js +19 -17
- package/dist/cjs/{kup-planner-declarations-7291d01c.js → kup-planner-declarations-959110da.js} +1 -1
- package/dist/cjs/kup-planner-renderer.cjs.entry.js +3 -3
- package/dist/cjs/kup-planner.cjs.entry.js +112 -4
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/assets/index.js +4 -0
- package/dist/collection/assets/planner-example-7.js +370 -0
- package/dist/collection/components/kup-planner/kup-planner-declarations.js +1 -1
- package/dist/collection/components/kup-planner/kup-planner.js +153 -3
- package/dist/collection/components/kup-planner/utils/custom-task-list-table.js +30 -12
- package/dist/collection/components/kup-planner/utils/kup-gantt/kup-gantt.js +31 -7
- package/dist/collection/components/kup-planner/utils/kup-grid-renderer/kup-grid-renderer.js +181 -4
- package/dist/collection/components/kup-planner/utils/kup-planner-renderer.js +2 -2
- package/dist/collection/components/kup-planner/utils/kup-task-gantt/kup-task-gantt.js +4 -4
- package/dist/collection/components/kup-planner/utils/kup-task-list/kup-task-list.css +1 -0
- package/dist/components/kup-custom-task-list-table.js +1 -1
- package/dist/components/kup-gantt.js +1 -1
- package/dist/components/kup-grid-renderer.js +1 -1
- package/dist/components/kup-planner-renderer.js +1 -1
- package/dist/components/kup-planner.js +122 -12
- package/dist/components/kup-task-gantt.js +1 -1
- package/dist/components/kup-task-list-header.js +1 -1
- package/dist/components/kup-task-list-table.js +1 -1
- package/dist/components/kup-task-list.js +1 -1
- package/dist/components/{p-76c4c708.js → p-26d3e5b2.js} +1 -1
- package/dist/components/{p-2fff7268.js → p-45cdd2a4.js} +10 -10
- package/dist/components/{p-a0eeacbd.js → p-4edc1bd0.js} +1 -1
- package/dist/components/{p-9da8cd93.js → p-5cbf86c3.js} +13 -10
- package/dist/components/{p-53e38c4a.js → p-90c212d2.js} +1 -1
- package/dist/components/{p-0e6c0355.js → p-9c8c4e2e.js} +30 -12
- package/dist/components/{p-5517e8e8.js → p-c2b9b4ba.js} +4 -4
- package/dist/components/{p-4efa19a7.js → p-c8302548.js} +3 -3
- package/dist/components/{p-c43d08ab.js → p-d72814f5.js} +161 -5
- package/dist/esm/ketchup.js +1 -1
- package/dist/esm/kup-custom-task-list-header_4.entry.js +191 -18
- package/dist/esm/kup-gantt_10.entry.js +14 -12
- package/dist/esm/{kup-planner-declarations-0704bc6c.js → kup-planner-declarations-5981474b.js} +1 -1
- package/dist/esm/kup-planner-renderer.entry.js +3 -3
- package/dist/esm/kup-planner.entry.js +112 -4
- package/dist/esm/loader.js +1 -1
- package/dist/ketchup/ketchup.esm.js +1 -1
- package/dist/ketchup/p-088e2f23.entry.js +1 -0
- package/dist/ketchup/p-58bc7c00.entry.js +1 -0
- package/dist/ketchup/{p-54ebe3bd.entry.js → p-6aec24be.entry.js} +1 -1
- package/dist/ketchup/p-78c0ff1b.js +1 -0
- package/dist/ketchup/p-ca9ec047.entry.js +16 -0
- package/dist/types/components/kup-planner/kup-planner-declarations.d.ts +19 -0
- package/dist/types/components/kup-planner/kup-planner.d.ts +12 -1
- package/dist/types/components/kup-planner/utils/kup-gantt/kup-gantt.d.ts +2 -1
- package/dist/types/components/kup-planner/utils/kup-grid-renderer/kup-grid-renderer.d.ts +7 -0
- package/dist/types/components.d.ts +24 -2
- package/package.json +1 -1
- package/dist/ketchup/p-008bdcdc.js +0 -1
- package/dist/ketchup/p-792e9244.entry.js +0 -1
- package/dist/ketchup/p-e8823224.entry.js +0 -1
- package/dist/ketchup/p-f38c2d0e.entry.js +0 -16
- package/dist/cjs/{bar.helpers-c481a535.js → other.helpers-8782a839.js} +46 -46
- package/dist/esm/{bar.helpers-23a51579.js → other.helpers-83e3225b.js} +46 -46
- /package/dist/ketchup/{p-cd3a7d53.js → p-17c9ef50.js} +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { r as registerInstance, h, F as Fragment } from './index-c9246a86.js';
|
|
2
2
|
import { a as KupDates, c as commonjsGlobal } from './kup-dates-da19044e.js';
|
|
3
|
-
import { d as createArrayFromNum, i as isKeyboardEvent, g as getProgressPoint, h as handleTaskBySVGMouseEvent } from './
|
|
3
|
+
import { d as createArrayFromNum, i as isKeyboardEvent, g as getProgressPoint, h as handleTaskBySVGMouseEvent } from './other.helpers-83e3225b.js';
|
|
4
4
|
import { d as defaultDateTimeFormatters, a as getDaysInMonth, b as getCachedDateTimeFormat, c as getLocalDayOfWeek, e as getLocaleMonth } from './kup-planner-time-formatter-ddf84f9b.js';
|
|
5
|
-
import { d as defaultStylingOptions } from './kup-planner-declarations-
|
|
5
|
+
import { d as defaultStylingOptions } from './kup-planner-declarations-5981474b.js';
|
|
6
6
|
|
|
7
7
|
const customTaskListHeaderModuleCss = ".kup-body-compact-01{font-family:var(--kup-font-family);font-size:var(--kup-body-compact-01-font-size, 14px);line-height:18px;font-weight:400;letter-spacing:0.16px}.kup-body-01{font-family:var(--kup-font-family);font-size:var(--kup-body-01-font-size, 14px);line-height:20px;font-weight:400;letter-spacing:0.16px}.kup-code-01{font-family:var(--kup-font-family-monospace);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-label-01{font-family:var(--kup-font-family);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-caption-02{font-family:var(--kup-font-family);font-size:12px;line-height:15px;font-weight:500;letter-spacing:1px}.kup-caption-01{font-family:var(--kup-font-family);font-size:10px;line-height:13px;font-weight:400;letter-spacing:1px}.kup-small-label-01{font-family:var(--kup-font-family);font-size:6px;line-height:9px;font-weight:400;letter-spacing:1px}.kup-heading-compact-01{font-family:var(--kup-font-family);font-size:14px;line-height:18px;font-weight:600;letter-spacing:0.16px}.kup-heading-01{font-family:var(--kup-font-family);font-size:14px;line-height:20px;font-weight:600;letter-spacing:0.16px}.kup-heading-02{font-family:var(--kup-font-family);font-size:16px;line-height:24px;font-weight:500;letter-spacing:0}.kup-heading-03{font-family:var(--kup-font-family);font-size:20px;line-height:28px;font-weight:400;letter-spacing:0}.kup-heading-04{font-family:var(--kup-font-family);font-size:28px;line-height:36px;font-weight:400;letter-spacing:0}.kup-heading-05{font-family:var(--kup-font-family);font-size:32px;line-height:40px;font-weight:300;letter-spacing:0}.kup-heading-06{font-family:var(--kup-font-family);font-size:42px;line-height:50px;font-weight:300;letter-spacing:0}.kup-heading-07{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:300;letter-spacing:0}.kup-heading-08{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:600;letter-spacing:0}.custom-task-list-wrapper{display:flex;justify-content:space-around;max-width:330px;place-items:\"center\";text-align:center;align-items:center}.title{font-weight:bold;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toggler{max-width:max-content;padding:0 4px;text-align:right}.switch{position:relative;display:inline-block;width:30px;height:17px}.input{opacity:0;width:0;height:0}.input:checked+.slider{background-color:#003b77}.input:checked+.slider:before{-webkit-transform:translateX(13px);-ms-transform:translateX(13px);transform:translateX(13px)}.input:focus+.slider{box-shadow:0 0 1px #003b77}.slider{-webkit-transition:0.4s;cursor:pointer;background-color:#ccc;bottom:0;border-radius:17px;left:0;position:absolute;right:0;top:0;transition:0.4s}.slider:before{-webkit-transition:0.1s;background-color:white;border-radius:50%;bottom:2px;content:\"\";height:13px;left:2px;position:absolute;transition:0.1s;width:13px}.label{font-size:12px;padding:6px}.filter{font-size:12px}";
|
|
8
8
|
const KupCustomTaskListHeaderStyle0 = customTaskListHeaderModuleCss;
|
|
@@ -56,17 +56,25 @@ const KupCustomTaskListTable = class {
|
|
|
56
56
|
}
|
|
57
57
|
updateTaskListScroll() {
|
|
58
58
|
this.projectWrapperRef &&
|
|
59
|
-
(this.projectWrapperRef.parentElement.scrollLeft =
|
|
59
|
+
(this.projectWrapperRef.parentElement.scrollLeft =
|
|
60
|
+
this.taskListScrollX);
|
|
60
61
|
}
|
|
61
62
|
render() {
|
|
63
|
+
var _a;
|
|
62
64
|
const kupDates = new KupDates();
|
|
63
65
|
const scrollableStyle = {};
|
|
64
66
|
if (this.scrollableTaskList) {
|
|
65
67
|
scrollableStyle['width'] = this.rowWidth;
|
|
66
68
|
}
|
|
67
|
-
const spansToShow = this.tasks.
|
|
68
|
-
|
|
69
|
-
|
|
69
|
+
const spansToShow = this.tasks && this.tasks.length > 0
|
|
70
|
+
? ((_a = this.tasks.reduce((prev, curr) => {
|
|
71
|
+
var _a, _b;
|
|
72
|
+
return ((_a = prev.valuesToShow) === null || _a === void 0 ? void 0 : _a.length) >
|
|
73
|
+
((_b = curr.valuesToShow) === null || _b === void 0 ? void 0 : _b.length)
|
|
74
|
+
? prev
|
|
75
|
+
: curr;
|
|
76
|
+
}).valuesToShow) === null || _a === void 0 ? void 0 : _a.length) + 1 || 1
|
|
77
|
+
: 1;
|
|
70
78
|
return (h("div", { class: `container ${this.scrollableTaskList ? 'scrollable' : ''}`, style: scrollableStyle }, h("div", { class: "project-wrapper", ref: (el) => (this.projectWrapperRef = el) }, this.tasks.map((task) => {
|
|
71
79
|
var _a, _b, _c, _d;
|
|
72
80
|
return (h(Fragment, null, task.type === 'project' ? (h("div", { class: "project", style: {
|
|
@@ -90,10 +98,14 @@ const KupCustomTaskListTable = class {
|
|
|
90
98
|
? kupDates.formatToLocaleSimple(task.start)
|
|
91
99
|
: v === '#END#'
|
|
92
100
|
? kupDates.formatToLocaleSimple(task.end)
|
|
93
|
-
: v))), this.scrollableTaskList &&
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
101
|
+
: v))), this.scrollableTaskList &&
|
|
102
|
+
spansToShow >
|
|
103
|
+
task.valuesToShow.length &&
|
|
104
|
+
(() => {
|
|
105
|
+
const spansToIterate = createArrayFromNum(spansToShow -
|
|
106
|
+
task.valuesToShow.length);
|
|
107
|
+
return spansToIterate.map((element) => (h("span", { key: element })));
|
|
108
|
+
})())) : task.type === 'task' ? (h("div", { class: "subrow", style: {
|
|
97
109
|
height: `${this.rowHeight}px`,
|
|
98
110
|
width: this.rowWidth,
|
|
99
111
|
fontFamily: this.fontFamily,
|
|
@@ -125,10 +137,16 @@ const KupCustomTaskListTable = class {
|
|
|
125
137
|
? kupDates.formatToLocaleSimple(task.start)
|
|
126
138
|
: v === '#END#'
|
|
127
139
|
? kupDates.formatToLocaleSimple(task.end)
|
|
128
|
-
: v))), this.scrollableTaskList &&
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
140
|
+
: v))), this.scrollableTaskList &&
|
|
141
|
+
spansToShow >
|
|
142
|
+
task.valuesToShow.length &&
|
|
143
|
+
(() => {
|
|
144
|
+
const spansToIterate = createArrayFromNum(spansToShow -
|
|
145
|
+
task.valuesToShow
|
|
146
|
+
.length -
|
|
147
|
+
1);
|
|
148
|
+
return spansToIterate.map((element) => (h("span", { key: element })));
|
|
149
|
+
})())) : ((() => {
|
|
132
150
|
var _a;
|
|
133
151
|
let str = '';
|
|
134
152
|
for (let i = 0; i < task.valuesToShow.length; i++) {
|
|
@@ -959,6 +977,7 @@ const KupGridRenderer = class {
|
|
|
959
977
|
this.currentDateIndicator = undefined;
|
|
960
978
|
this.projection = undefined;
|
|
961
979
|
this.readOnly = false;
|
|
980
|
+
this.dependencies = [];
|
|
962
981
|
this.gridProps = undefined;
|
|
963
982
|
this.dateChange = undefined;
|
|
964
983
|
this.progressChange = undefined;
|
|
@@ -1355,6 +1374,159 @@ const KupGridRenderer = class {
|
|
|
1355
1374
|
: this.drownPathAndTriangle(task, this.tasks[child.index], this.rowHeight, this.taskHeight, this.arrowIndent);
|
|
1356
1375
|
return (h("g", { class: "arrow" }, h("path", { "stroke-width": "1.5", d: path, fill: "none" }), h("polygon", { points: trianglePoints })));
|
|
1357
1376
|
}
|
|
1377
|
+
/**
|
|
1378
|
+
* Render dependencies passed as structured data. Supports multiple dependencies
|
|
1379
|
+
* between the same pair by offsetting paths.
|
|
1380
|
+
*/
|
|
1381
|
+
renderDependencies() {
|
|
1382
|
+
var _a, _b, _c;
|
|
1383
|
+
if (!this.dependencies || this.dependencies.length === 0)
|
|
1384
|
+
return null;
|
|
1385
|
+
// Build a map of task id -> KupPlannerBarTask for quick lookup
|
|
1386
|
+
const taskById = new Map();
|
|
1387
|
+
for (const t of this.tasks)
|
|
1388
|
+
taskById.set(t.id, t);
|
|
1389
|
+
// Group dependencies by pair key (source__target)
|
|
1390
|
+
const groups = new Map();
|
|
1391
|
+
for (const dep of this.dependencies) {
|
|
1392
|
+
const key = `${dep.sourceId}__${dep.targetId}`;
|
|
1393
|
+
const arr = (_a = groups.get(key)) !== null && _a !== void 0 ? _a : [];
|
|
1394
|
+
arr.push(dep);
|
|
1395
|
+
groups.set(key, arr);
|
|
1396
|
+
}
|
|
1397
|
+
// Also group by target to handle multiple different sources pointing to the same target.
|
|
1398
|
+
const byTarget = new Map(); // targetId -> array of pair keys
|
|
1399
|
+
for (const key of groups.keys()) {
|
|
1400
|
+
const [, targetId] = key.split('__');
|
|
1401
|
+
const arr = (_b = byTarget.get(targetId)) !== null && _b !== void 0 ? _b : [];
|
|
1402
|
+
arr.push(key);
|
|
1403
|
+
byTarget.set(targetId, arr);
|
|
1404
|
+
}
|
|
1405
|
+
const rendered = [];
|
|
1406
|
+
const OFFSET_STEP = 8; // px
|
|
1407
|
+
// For each target that has multiple source groups, compute a per-group vertical offset
|
|
1408
|
+
// so the groups themselves are arranged and then individual deps inside each group are
|
|
1409
|
+
// offset relative to their group's offset.
|
|
1410
|
+
const groupOffsets = new Map(); // pairKey -> base offset
|
|
1411
|
+
for (const [targetId, pairKeys] of byTarget.entries()) {
|
|
1412
|
+
if (pairKeys.length === 1)
|
|
1413
|
+
continue;
|
|
1414
|
+
// center the groups around 0
|
|
1415
|
+
const totalGroups = pairKeys.length;
|
|
1416
|
+
for (let i = 0; i < pairKeys.length; i++) {
|
|
1417
|
+
const pk = pairKeys[i];
|
|
1418
|
+
const baseOffset = (i - (totalGroups - 1) / 2) * (OFFSET_STEP * 3);
|
|
1419
|
+
groupOffsets.set(pk, baseOffset);
|
|
1420
|
+
}
|
|
1421
|
+
}
|
|
1422
|
+
for (const [key, deps] of groups.entries()) {
|
|
1423
|
+
const [sourceId, targetId] = key.split('__');
|
|
1424
|
+
// tolerate different id formats: exact, trimmed, and taskId_phaseId (with padded phase ids)
|
|
1425
|
+
let sourceTask = taskById.get(sourceId) ||
|
|
1426
|
+
this.tasks.find((t) => t.id && t.id.trim() === (sourceId + '').trim());
|
|
1427
|
+
// try exact match first
|
|
1428
|
+
let targetTask = taskById.get(targetId) ||
|
|
1429
|
+
this.tasks.find((t) => t.id && t.id.trim() === (targetId + '').trim());
|
|
1430
|
+
// if not found, try combined formats like <taskId>_<phaseId> (with possible padding)
|
|
1431
|
+
if (!targetTask && sourceTask) {
|
|
1432
|
+
const candidate1 = `${sourceTask.id}_${targetId}`;
|
|
1433
|
+
const candidate2 = `${sourceTask.id}_${(targetId + '').trim()}`;
|
|
1434
|
+
targetTask =
|
|
1435
|
+
taskById.get(candidate1) ||
|
|
1436
|
+
taskById.get(candidate2) ||
|
|
1437
|
+
this.tasks.find((t) => t.id &&
|
|
1438
|
+
(t.id === candidate1 ||
|
|
1439
|
+
t.id === candidate2 ||
|
|
1440
|
+
t.id.trim() === candidate2.trim()));
|
|
1441
|
+
}
|
|
1442
|
+
// as a last resort try matching by trimming both sides against all tasks
|
|
1443
|
+
if (!sourceTask || !targetTask) {
|
|
1444
|
+
const trimmedSource = (sourceId + '').trim();
|
|
1445
|
+
const trimmedTarget = (targetId + '').trim();
|
|
1446
|
+
if (!sourceTask) {
|
|
1447
|
+
sourceTask = this.tasks.find((t) => t.id && t.id.trim() === trimmedSource);
|
|
1448
|
+
}
|
|
1449
|
+
if (!targetTask) {
|
|
1450
|
+
targetTask = this.tasks.find((t) => t.id && t.id.trim() === trimmedTarget);
|
|
1451
|
+
}
|
|
1452
|
+
// Extra fallback: some dependency definitions use the original row id
|
|
1453
|
+
// (taskRowId) or row-based ids like '1_P410'. Try to resolve those to
|
|
1454
|
+
// the runtime task objects using taskRowId / phaseRowId mappings.
|
|
1455
|
+
try {
|
|
1456
|
+
// If source is still not found, try to match by taskRowId or taskRow.id
|
|
1457
|
+
if (!sourceTask) {
|
|
1458
|
+
sourceTask = this.tasks.find((t) => {
|
|
1459
|
+
var _a;
|
|
1460
|
+
return t.taskRowId == sourceId ||
|
|
1461
|
+
((_a = t.taskRow) === null || _a === void 0 ? void 0 : _a.id) == sourceId ||
|
|
1462
|
+
t.phaseRowId == sourceId;
|
|
1463
|
+
});
|
|
1464
|
+
}
|
|
1465
|
+
// If target is not found, handle cases like '1_P410' where the left
|
|
1466
|
+
// part is the taskRowId and the right part is the phase code. We'll
|
|
1467
|
+
// try to find a phase whose taskRowId matches the left part and
|
|
1468
|
+
// whose id ends with the phase suffix.
|
|
1469
|
+
if (!targetTask) {
|
|
1470
|
+
const parts = trimmedTarget.split('_');
|
|
1471
|
+
if (parts.length > 1) {
|
|
1472
|
+
const left = parts[0];
|
|
1473
|
+
const right = parts.slice(1).join('_');
|
|
1474
|
+
targetTask = this.tasks.find((t) => {
|
|
1475
|
+
var _a;
|
|
1476
|
+
return (t.taskRowId == left &&
|
|
1477
|
+
t.id &&
|
|
1478
|
+
t.id.endsWith('_' + right)) ||
|
|
1479
|
+
(((_a = t.taskRow) === null || _a === void 0 ? void 0 : _a.id) == left &&
|
|
1480
|
+
t.id &&
|
|
1481
|
+
t.id.endsWith('_' + right));
|
|
1482
|
+
});
|
|
1483
|
+
}
|
|
1484
|
+
// also try matching target by row id directly
|
|
1485
|
+
if (!targetTask) {
|
|
1486
|
+
targetTask = this.tasks.find((t) => {
|
|
1487
|
+
var _a;
|
|
1488
|
+
return t.taskRowId == targetId ||
|
|
1489
|
+
((_a = t.taskRow) === null || _a === void 0 ? void 0 : _a.id) == targetId ||
|
|
1490
|
+
t.phaseRowId == targetId;
|
|
1491
|
+
});
|
|
1492
|
+
}
|
|
1493
|
+
}
|
|
1494
|
+
}
|
|
1495
|
+
catch (e) {
|
|
1496
|
+
// ignore matching errors
|
|
1497
|
+
}
|
|
1498
|
+
}
|
|
1499
|
+
if (!sourceTask || !targetTask) {
|
|
1500
|
+
continue;
|
|
1501
|
+
}
|
|
1502
|
+
const total = deps.length;
|
|
1503
|
+
// base offset for this pair (if groups were arranged around the target)
|
|
1504
|
+
const base = (_c = groupOffsets.get(key)) !== null && _c !== void 0 ? _c : 0;
|
|
1505
|
+
deps.forEach((dep, idx) => {
|
|
1506
|
+
// compute offset: center the stack around 0 and add group base offset
|
|
1507
|
+
const intraOffset = (idx - (total - 1) / 2) * OFFSET_STEP;
|
|
1508
|
+
const offset = base + intraOffset;
|
|
1509
|
+
// we will re-use drownPathAndTriangle but need temporary synthetic tasks shifted by offset
|
|
1510
|
+
const shiftedFrom = Object.assign({}, sourceTask);
|
|
1511
|
+
const shiftedTo = Object.assign({}, targetTask);
|
|
1512
|
+
// shift vertically
|
|
1513
|
+
shiftedFrom.y = sourceTask.y + offset;
|
|
1514
|
+
shiftedTo.y = targetTask.y + offset;
|
|
1515
|
+
const [path, trianglePoints] = this.rtl
|
|
1516
|
+
? this.drownPathAndTriangleRTL(shiftedFrom, shiftedTo, this.rowHeight, this.taskHeight, this.arrowIndent)
|
|
1517
|
+
: this.drownPathAndTriangle(shiftedFrom, shiftedTo, this.rowHeight, this.taskHeight, this.arrowIndent);
|
|
1518
|
+
// pick a color for the connector: prefer the source task's color,
|
|
1519
|
+
// then component arrowColor prop, and finally a neutral grey
|
|
1520
|
+
const sourceColor = (sourceTask &&
|
|
1521
|
+
sourceTask.styles &&
|
|
1522
|
+
sourceTask.styles.backgroundColor) ||
|
|
1523
|
+
this.arrowColor ||
|
|
1524
|
+
'#9e9e9e';
|
|
1525
|
+
rendered.push(h("g", { class: "arrow dependency", "data-dep-id": dep.id }, h("path", { stroke: sourceColor, "stroke-width": "2", d: path, fill: "none" }), h("polygon", { points: trianglePoints, fill: sourceColor, stroke: sourceColor })));
|
|
1526
|
+
});
|
|
1527
|
+
}
|
|
1528
|
+
return rendered;
|
|
1529
|
+
}
|
|
1358
1530
|
drownPathAndTriangle(taskFrom, taskTo, rowHeight, taskHeight, arrowIndent) {
|
|
1359
1531
|
const indexCompare = taskFrom.index > taskTo.index ? -1 : 1;
|
|
1360
1532
|
const taskToEndPosition = taskTo.y + taskHeight / 2;
|
|
@@ -1445,13 +1617,14 @@ const KupGridRenderer = class {
|
|
|
1445
1617
|
// }
|
|
1446
1618
|
tickX += this.columnWidth;
|
|
1447
1619
|
}
|
|
1448
|
-
return (h("svg", { key: '
|
|
1620
|
+
return (h("svg", { key: '22b83f3b4155e51f56ff19c43e1e935e5b17bf46', xmlns: "http://www.w3.org/2000/svg", width: this.gridProps.svgWidth, height: `${this.rowHeight * this.tasks.length}px`, "font-family": this.fontFamily, ref: (el) => (this.svg = el) }, h("g", { key: '0dc7cb819de38e2defa4e676a3bdf0d9272d681e', class: "grid" }, h("g", { key: 'ec2bcc141732416498c70f20ab7f0ddba112ceeb', class: "rows" }, gridRows), h("g", { key: 'b73233f161cb1fe8289a37e5ab3354d7c8b4e1b3', class: "rowLines" }, rowLines), h("g", { key: '03770a3bebf0d3ba72e4a03b78765a2270cb6b00', class: "ticks" }, ticks)), h("g", { key: '49cc1fec67c34cef6c35ffb78b0485d7a28b021d', class: "content" }, this.currentDateIndicator && (h("rect", { key: '7fc33e726bf3e02336148501d70909093f596946', fill: this.currentDateIndicator.color, x: this.currentDateIndicator.x + 1.5, y: "0", width: "2", height: "100%" })), this.projection && (h("rect", { key: 'c4cb014710c018b196829c84963d10f4e1456dde', fill: this.projection.color, x: this.projection.x0, y: "0", width: this.projection.xf - this.projection.x0, height: "100%", "fill-opacity": "0.35" })), h("g", { key: '5afa927eb4fb8442c95651d0945ae10249ad962e', class: "arrows", fill: this.arrowColor, stroke: this.arrowColor }, this.renderDependencies(), this.tasks.map((task) => {
|
|
1449
1621
|
return task.barChildren.map((child) => {
|
|
1450
1622
|
if (task.type !== 'timeline') {
|
|
1451
|
-
this.renderKupArrow(task, child);
|
|
1623
|
+
return this.renderKupArrow(task, child);
|
|
1452
1624
|
}
|
|
1625
|
+
return null;
|
|
1453
1626
|
});
|
|
1454
|
-
})), h("g", { key: '
|
|
1627
|
+
})), h("g", { key: '44f3505a327201ebd848dad424b36f9f2efabcde', class: "bar", "font-family": this.fontFamily, "font-size": this.fontSize }, this.tasks.map((task) => {
|
|
1455
1628
|
const forbidResize = task.type === 'project';
|
|
1456
1629
|
return (h("g", { onKeyDown: (e) => {
|
|
1457
1630
|
switch (e.key) {
|
|
@@ -1511,7 +1684,7 @@ const KupGridRenderer = class {
|
|
|
1511
1684
|
return this.renderKupBar(task, props.isSelected, isDateResizable, isProgressChangeable);
|
|
1512
1685
|
}
|
|
1513
1686
|
})()));
|
|
1514
|
-
}), this.currentTarget && this.ganttEvent.changedTask && (h("g", { key: '
|
|
1687
|
+
}), this.currentTarget && this.ganttEvent.changedTask && (h("g", { key: '91675894e3ba24a00fa9ef59e8c3af0dc03b3e4c', class: "task-wrapper" }, this.renderKupBar(this.ganttEvent.changedTask, false, false, false)))))));
|
|
1515
1688
|
}
|
|
1516
1689
|
static get watchers() { return {
|
|
1517
1690
|
"columnWidth": ["updateXStep"],
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as registerInstance, h, f as forceUpdate, d as getElement, F as Fragment } from './index-c9246a86.js';
|
|
2
|
+
import { r as removeHiddenTasks, s as sortTasks, c as convertToBarTasks, a as calculateCurrentDateCalculator, b as calculateProjection } from './other.helpers-83e3225b.js';
|
|
2
3
|
import { f as ganttDateRangeFromTask, s as seedDates, g as getPhaseById, b as getProjectById } from './kup-planner-renderer-helper-4952d0a1.js';
|
|
3
|
-
import {
|
|
4
|
-
import { e as KUP_PLANNER_MAIN_GANTT_ID } from './kup-planner-declarations-0704bc6c.js';
|
|
4
|
+
import { e as KUP_PLANNER_MAIN_GANTT_ID } from './kup-planner-declarations-5981474b.js';
|
|
5
5
|
import './kup-dates-da19044e.js';
|
|
6
6
|
|
|
7
7
|
const kupGanttCss = ".kup-body-compact-01{font-family:var(--kup-font-family);font-size:var(--kup-body-compact-01-font-size, 14px);line-height:18px;font-weight:400;letter-spacing:0.16px}.kup-body-01{font-family:var(--kup-font-family);font-size:var(--kup-body-01-font-size, 14px);line-height:20px;font-weight:400;letter-spacing:0.16px}.kup-code-01{font-family:var(--kup-font-family-monospace);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-label-01{font-family:var(--kup-font-family);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-caption-02{font-family:var(--kup-font-family);font-size:12px;line-height:15px;font-weight:500;letter-spacing:1px}.kup-caption-01{font-family:var(--kup-font-family);font-size:10px;line-height:13px;font-weight:400;letter-spacing:1px}.kup-small-label-01{font-family:var(--kup-font-family);font-size:6px;line-height:9px;font-weight:400;letter-spacing:1px}.kup-heading-compact-01{font-family:var(--kup-font-family);font-size:14px;line-height:18px;font-weight:600;letter-spacing:0.16px}.kup-heading-01{font-family:var(--kup-font-family);font-size:14px;line-height:20px;font-weight:600;letter-spacing:0.16px}.kup-heading-02{font-family:var(--kup-font-family);font-size:16px;line-height:24px;font-weight:500;letter-spacing:0}.kup-heading-03{font-family:var(--kup-font-family);font-size:20px;line-height:28px;font-weight:400;letter-spacing:0}.kup-heading-04{font-family:var(--kup-font-family);font-size:28px;line-height:36px;font-weight:400;letter-spacing:0}.kup-heading-05{font-family:var(--kup-font-family);font-size:32px;line-height:40px;font-weight:300;letter-spacing:0}.kup-heading-06{font-family:var(--kup-font-family);font-size:42px;line-height:50px;font-weight:300;letter-spacing:0}.kup-heading-07{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:300;letter-spacing:0}.kup-heading-08{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:600;letter-spacing:0}.wrapper{display:flex;padding:0;margin:0;list-style:none;outline:none;position:relative}.ganttContainer{background:var(--kup-layer-2);border-radius:var(--kup-radius-00);overflow:hidden;padding:var(--kup-space-05)}.ganttVerticalContainer{overflow:hidden;font-size:0;margin:0;padding:0}.horizontalContainer{margin:0;padding:0;overflow:hidden}.horizontalContainerScrollable{overflow:auto !important;scrollbar-width:0}.horizontalContainerScrollable::-webkit-scrollbar{width:0;height:0}.task-gantt{overflow:hidden}";
|
|
@@ -51,6 +51,7 @@ const KupGantt = class {
|
|
|
51
51
|
this.hideLabel = false;
|
|
52
52
|
this.showSecondaryDates = false;
|
|
53
53
|
this.hideDependencies = false;
|
|
54
|
+
this.dependencies = [];
|
|
54
55
|
this.projection = undefined;
|
|
55
56
|
this.displayedStartDate = undefined;
|
|
56
57
|
this.displayedEndDate = undefined;
|
|
@@ -538,6 +539,7 @@ const KupGantt = class {
|
|
|
538
539
|
currentDateIndicator: this.currentDateIndicatorContent,
|
|
539
540
|
projection: this.projectionContent,
|
|
540
541
|
readOnly: this.readOnly,
|
|
542
|
+
dependencies: this.dependencies,
|
|
541
543
|
setGanttEvent: this.setGanttEvent.bind(this),
|
|
542
544
|
setFailedTask: this.setFailedTask.bind(this),
|
|
543
545
|
setSelectedTask: this.handleSelectedTask.bind(this),
|
|
@@ -548,7 +550,7 @@ const KupGantt = class {
|
|
|
548
550
|
barDblClick: this.barDblClick,
|
|
549
551
|
barContextMenu: this.barContextMenu,
|
|
550
552
|
delete: this.delete,
|
|
551
|
-
phaseDrop: this.phaseDrop
|
|
553
|
+
phaseDrop: this.phaseDrop,
|
|
552
554
|
};
|
|
553
555
|
const tableProps = {
|
|
554
556
|
rowHeight: this.rowHeight,
|
|
@@ -567,11 +569,11 @@ const KupGantt = class {
|
|
|
567
569
|
setSelectedTask: this.handleSelectedTask.bind(this),
|
|
568
570
|
expanderClick: this.handleExpanderClick.bind(this),
|
|
569
571
|
TaskListHeader: this.TaskListHeader,
|
|
570
|
-
TaskListTable: this.TaskListTable
|
|
572
|
+
TaskListTable: this.TaskListTable,
|
|
571
573
|
};
|
|
572
|
-
return (h("div", { key: '
|
|
574
|
+
return (h("div", { key: '121b1b2857d26033d74411289b05d0090556801b', class: "gannt-wrapper-main" }, h("div", { key: '7b775dcf04e33e317ff526186c2bc4905fcb4812', class: "wrapper", onKeyDown: this.handleKeyDown.bind(this), tabIndex: 0, ref: (el) => (this.wrapperRef = el) }, this.listCellWidth && (h("kup-task-list", Object.assign({ key: '898db18e0d258874ce7651c2925af28f35b04823', currentTasks: this.currentTasks, handleClick: this.handleClick, handleDblClick: this.handleDblClick, handleContextMenu: this.handleContextMenu, ganttOnClick: this.ganttOnClick, ganttOnDblClick: this.ganttOnDblClick, ganttonOnContextMenu: this.ganttonOnContextMenu, label: this.label, doubleView: this.doubleView, setDoubleView: this.setDoubleView }, tableProps, { class: "tasks", scrollableTaskList: this.scrollableTaskList, updateTaskListScrollX: this.ignoreScrollEvent, ontaskListScrollWidth: (width) => {
|
|
573
575
|
this.taskListScrollWidth = width;
|
|
574
|
-
}, taskListScrollX: this.taskListScrollX, ref: (el) => (this.taskListTrueRef = el) }))), h("kup-task-gantt", { key: '
|
|
576
|
+
}, taskListScrollX: this.taskListScrollX, ref: (el) => (this.taskListTrueRef = el) }))), h("kup-task-gantt", { key: '80670fd1bca1243258feab7fcda294ddb6b9e972', gridProps: gridProps, calendarProps: calendarProps, barProps: barProps, ganttHeight: this.ganttHeight, taskGanttRef: this.taskGanttRef, scrollY: this.scrollY, scrollX: this.scrollX, phaseDragScroll: this.handlePhaseDragScroll.bind(this), class: "ganttContainer" }), this.ganttEvent.changedTask && (h("kup-tooltip", { key: 'b81a3b3c980124ebdd668ead2bb81ba30fd1bedb', arrowIndent: this.arrowIndent, rowHeight: this.rowHeight, svgContainerHeight: this.svgContainerHeight, svgContainerWidth: this.svgContainerWidth, fontFamily: this.fontFamily, fontSize: this.fontSize, scrollX: this.scrollX, scrollY: this.scrollY, task: this.ganttEvent.changedTask, headerHeight: this.headerHeight, taskListWidth: this.taskListWidth, TooltipContent: this.TooltipContent, rtl: this.rtl, svgWidth: this.svgWidth })), h("kup-vertical-scroll", { key: '646408c0efc5eb955686c9ad4b45c12d61eb1db6', ganttFullHeight: this.ganttFullHeight, ganttHeight: this.ganttHeight, headerHeight: this.headerHeight, scrollNumber: this.scrollY, verticalScroll: this.handleScrollY.bind(this), rtl: this.rtl })), this.taskGanttRef && (h("kup-horizontal-scroll", { key: 'd8eb8d2ea2a7d3b9cbfa9c79aa608dfdac4786f7', svgWidth: this.svgWidth, taskListTrueRef: this.taskListTrueRef, taskListWidth: this.taskListWidth, scrollNumber: this.scrollX, rtl: this.rtl, horizontalScroll: this.handleScrollX.bind(this), horizontalTaskListScroll: this.handleTaskListScrollX.bind(this), listCellWidth: this.listCellWidth, scrollableTaskList: this.scrollableTaskList, taskListScrollWidth: this.taskListScrollWidth, taskListScrollNumber: this.taskListScrollX }))));
|
|
575
577
|
}
|
|
576
578
|
get rootElement() { return getElement(this); }
|
|
577
579
|
static get watchers() { return {
|
|
@@ -785,13 +787,13 @@ const TaskGantt = class {
|
|
|
785
787
|
}, 75);
|
|
786
788
|
}
|
|
787
789
|
render() {
|
|
788
|
-
const newBarProps = Object.assign(Object.assign({}, this.barProps), { gridProps: this.gridProps, phaseDragScroll: this.phaseDragScroll });
|
|
789
|
-
return (h("div", { key: '
|
|
790
|
+
const newBarProps = Object.assign(Object.assign({}, this.barProps), { gridProps: this.gridProps, phaseDragScroll: this.phaseDragScroll, dependencies: this.barProps.dependencies || [] });
|
|
791
|
+
return (h("div", { key: 'f171a1dc93bb1bee342dc2384c5eda5a0a1670a5', class: "ganttVerticalContainer", ref: (el) => (this.verticalGanttContainerRef = el), dir: "ltr" }, h("kup-gantt-calendar", { key: '8df97b74146bc84af4a20d704efeb5d17202bfee', dateSetup: this.calendarProps.dateSetup, locale: this.calendarProps.locale, rtl: this.calendarProps.rtl, headerHeight: this.calendarProps.headerHeight, columnWidth: this.calendarProps.columnWidth, fontFamily: this.calendarProps.fontFamily, fontSize: this.calendarProps.fontSize, dateTimeFormatters: this.calendarProps.dateTimeFormatters, singleLineHeader: this.calendarProps.singleLineHeader, currentDateIndicator: this.calendarProps.currentDateIndicator, svgWidth: this.gridProps.svgWidth }), h("div", { key: '1295b8511846e0de6f45d13f765124ec750ededb', ref: (el) => (this.horizontalContainerRef = el), class: "horizontalContainer", style: this.ganttHeight
|
|
790
792
|
? {
|
|
791
793
|
height: `${this.ganttHeight}px`,
|
|
792
794
|
width: `${this.gridProps.svgWidth}px`,
|
|
793
795
|
}
|
|
794
|
-
: { width: `${this.gridProps.svgWidth}px` } }, h("kup-grid-renderer", Object.assign({ key: '
|
|
796
|
+
: { width: `${this.gridProps.svgWidth}px` } }, h("kup-grid-renderer", Object.assign({ key: '7a35e55a9dff2cef220055a55d71eccf6a1e0801' }, newBarProps)))));
|
|
795
797
|
}
|
|
796
798
|
get rootElement() { return getElement(this); }
|
|
797
799
|
static get watchers() { return {
|
|
@@ -802,7 +804,7 @@ const TaskGantt = class {
|
|
|
802
804
|
}; }
|
|
803
805
|
};
|
|
804
806
|
|
|
805
|
-
const kupTaskListCss$2 = ".kup-body-compact-01{font-family:var(--kup-font-family);font-size:var(--kup-body-compact-01-font-size, 14px);line-height:18px;font-weight:400;letter-spacing:0.16px}.kup-body-01{font-family:var(--kup-font-family);font-size:var(--kup-body-01-font-size, 14px);line-height:20px;font-weight:400;letter-spacing:0.16px}.kup-code-01{font-family:var(--kup-font-family-monospace);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-label-01{font-family:var(--kup-font-family);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-caption-02{font-family:var(--kup-font-family);font-size:12px;line-height:15px;font-weight:500;letter-spacing:1px}.kup-caption-01{font-family:var(--kup-font-family);font-size:10px;line-height:13px;font-weight:400;letter-spacing:1px}.kup-small-label-01{font-family:var(--kup-font-family);font-size:6px;line-height:9px;font-weight:400;letter-spacing:1px}.kup-heading-compact-01{font-family:var(--kup-font-family);font-size:14px;line-height:18px;font-weight:600;letter-spacing:0.16px}.kup-heading-01{font-family:var(--kup-font-family);font-size:14px;line-height:20px;font-weight:600;letter-spacing:0.16px}.kup-heading-02{font-family:var(--kup-font-family);font-size:16px;line-height:24px;font-weight:500;letter-spacing:0}.kup-heading-03{font-family:var(--kup-font-family);font-size:20px;line-height:28px;font-weight:400;letter-spacing:0}.kup-heading-04{font-family:var(--kup-font-family);font-size:28px;line-height:36px;font-weight:400;letter-spacing:0}.kup-heading-05{font-family:var(--kup-font-family);font-size:32px;line-height:40px;font-weight:300;letter-spacing:0}.kup-heading-06{font-family:var(--kup-font-family);font-size:42px;line-height:50px;font-weight:300;letter-spacing:0}.kup-heading-07{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:300;letter-spacing:0}.kup-heading-08{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:600;letter-spacing:0}.tasks{background:var(--kup-layer-2);border-radius:var(--kup-radius-00);padding:var(--kup-space-05);margin-right:var(--kup-space-05)}.taskListWrapper{display:table;border-bottom:#e6e4e4 1px solid;border-left:#e6e4e4 1px solid}.taskListTableRow{display:table-row;text-overflow:ellipsis}.taskListCell{display:table-cell;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.taskListNameWrapper{display:flex}.taskListExpander{color:rgb(86, 86, 86);font-size:0.6rem;padding:0.15rem 0.2rem 0 0.2rem;user-select:none;cursor:pointer}.taskListEmptyExpander{font-size:0.6rem;padding-left:1rem;user-select:none}.ganttTable{display:table;border-bottom:#e6e4e4 1px solid;border-top:#e6e4e4 1px solid;border-left:#e6e4e4 1px solid}.ganttTable_Header{display:table-row;list-style:none}.ganttTable_HeaderSeparator{border-right:1px solid rgb(196, 196, 196);opacity:1;margin-left:-2px}.ganttTable_HeaderItem{display:table-cell;vertical-align:-webkit-baseline-middle;vertical-align:middle}";
|
|
807
|
+
const kupTaskListCss$2 = ".kup-body-compact-01{font-family:var(--kup-font-family);font-size:var(--kup-body-compact-01-font-size, 14px);line-height:18px;font-weight:400;letter-spacing:0.16px}.kup-body-01{font-family:var(--kup-font-family);font-size:var(--kup-body-01-font-size, 14px);line-height:20px;font-weight:400;letter-spacing:0.16px}.kup-code-01{font-family:var(--kup-font-family-monospace);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-label-01{font-family:var(--kup-font-family);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-caption-02{font-family:var(--kup-font-family);font-size:12px;line-height:15px;font-weight:500;letter-spacing:1px}.kup-caption-01{font-family:var(--kup-font-family);font-size:10px;line-height:13px;font-weight:400;letter-spacing:1px}.kup-small-label-01{font-family:var(--kup-font-family);font-size:6px;line-height:9px;font-weight:400;letter-spacing:1px}.kup-heading-compact-01{font-family:var(--kup-font-family);font-size:14px;line-height:18px;font-weight:600;letter-spacing:0.16px}.kup-heading-01{font-family:var(--kup-font-family);font-size:14px;line-height:20px;font-weight:600;letter-spacing:0.16px}.kup-heading-02{font-family:var(--kup-font-family);font-size:16px;line-height:24px;font-weight:500;letter-spacing:0}.kup-heading-03{font-family:var(--kup-font-family);font-size:20px;line-height:28px;font-weight:400;letter-spacing:0}.kup-heading-04{font-family:var(--kup-font-family);font-size:28px;line-height:36px;font-weight:400;letter-spacing:0}.kup-heading-05{font-family:var(--kup-font-family);font-size:32px;line-height:40px;font-weight:300;letter-spacing:0}.kup-heading-06{font-family:var(--kup-font-family);font-size:42px;line-height:50px;font-weight:300;letter-spacing:0}.kup-heading-07{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:300;letter-spacing:0}.kup-heading-08{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:600;letter-spacing:0}.tasks{background:var(--kup-layer-2);border-radius:var(--kup-radius-00);padding:var(--kup-space-05);margin-right:var(--kup-space-05);min-width:25%}.taskListWrapper{display:table;border-bottom:#e6e4e4 1px solid;border-left:#e6e4e4 1px solid}.taskListTableRow{display:table-row;text-overflow:ellipsis}.taskListCell{display:table-cell;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.taskListNameWrapper{display:flex}.taskListExpander{color:rgb(86, 86, 86);font-size:0.6rem;padding:0.15rem 0.2rem 0 0.2rem;user-select:none;cursor:pointer}.taskListEmptyExpander{font-size:0.6rem;padding-left:1rem;user-select:none}.ganttTable{display:table;border-bottom:#e6e4e4 1px solid;border-top:#e6e4e4 1px solid;border-left:#e6e4e4 1px solid}.ganttTable_Header{display:table-row;list-style:none}.ganttTable_HeaderSeparator{border-right:1px solid rgb(196, 196, 196);opacity:1;margin-left:-2px}.ganttTable_HeaderItem{display:table-cell;vertical-align:-webkit-baseline-middle;vertical-align:middle}";
|
|
806
808
|
const KupTaskListStyle0 = kupTaskListCss$2;
|
|
807
809
|
|
|
808
810
|
const TaskList = class {
|
|
@@ -928,7 +930,7 @@ const TaskList = class {
|
|
|
928
930
|
};
|
|
929
931
|
TaskList.style = KupTaskListStyle0;
|
|
930
932
|
|
|
931
|
-
const kupTaskListCss$1 = ".kup-body-compact-01{font-family:var(--kup-font-family);font-size:var(--kup-body-compact-01-font-size, 14px);line-height:18px;font-weight:400;letter-spacing:0.16px}.kup-body-01{font-family:var(--kup-font-family);font-size:var(--kup-body-01-font-size, 14px);line-height:20px;font-weight:400;letter-spacing:0.16px}.kup-code-01{font-family:var(--kup-font-family-monospace);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-label-01{font-family:var(--kup-font-family);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-caption-02{font-family:var(--kup-font-family);font-size:12px;line-height:15px;font-weight:500;letter-spacing:1px}.kup-caption-01{font-family:var(--kup-font-family);font-size:10px;line-height:13px;font-weight:400;letter-spacing:1px}.kup-small-label-01{font-family:var(--kup-font-family);font-size:6px;line-height:9px;font-weight:400;letter-spacing:1px}.kup-heading-compact-01{font-family:var(--kup-font-family);font-size:14px;line-height:18px;font-weight:600;letter-spacing:0.16px}.kup-heading-01{font-family:var(--kup-font-family);font-size:14px;line-height:20px;font-weight:600;letter-spacing:0.16px}.kup-heading-02{font-family:var(--kup-font-family);font-size:16px;line-height:24px;font-weight:500;letter-spacing:0}.kup-heading-03{font-family:var(--kup-font-family);font-size:20px;line-height:28px;font-weight:400;letter-spacing:0}.kup-heading-04{font-family:var(--kup-font-family);font-size:28px;line-height:36px;font-weight:400;letter-spacing:0}.kup-heading-05{font-family:var(--kup-font-family);font-size:32px;line-height:40px;font-weight:300;letter-spacing:0}.kup-heading-06{font-family:var(--kup-font-family);font-size:42px;line-height:50px;font-weight:300;letter-spacing:0}.kup-heading-07{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:300;letter-spacing:0}.kup-heading-08{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:600;letter-spacing:0}.tasks{background:var(--kup-layer-2);border-radius:var(--kup-radius-00);padding:var(--kup-space-05);margin-right:var(--kup-space-05)}.taskListWrapper{display:table;border-bottom:#e6e4e4 1px solid;border-left:#e6e4e4 1px solid}.taskListTableRow{display:table-row;text-overflow:ellipsis}.taskListCell{display:table-cell;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.taskListNameWrapper{display:flex}.taskListExpander{color:rgb(86, 86, 86);font-size:0.6rem;padding:0.15rem 0.2rem 0 0.2rem;user-select:none;cursor:pointer}.taskListEmptyExpander{font-size:0.6rem;padding-left:1rem;user-select:none}.ganttTable{display:table;border-bottom:#e6e4e4 1px solid;border-top:#e6e4e4 1px solid;border-left:#e6e4e4 1px solid}.ganttTable_Header{display:table-row;list-style:none}.ganttTable_HeaderSeparator{border-right:1px solid rgb(196, 196, 196);opacity:1;margin-left:-2px}.ganttTable_HeaderItem{display:table-cell;vertical-align:-webkit-baseline-middle;vertical-align:middle}";
|
|
933
|
+
const kupTaskListCss$1 = ".kup-body-compact-01{font-family:var(--kup-font-family);font-size:var(--kup-body-compact-01-font-size, 14px);line-height:18px;font-weight:400;letter-spacing:0.16px}.kup-body-01{font-family:var(--kup-font-family);font-size:var(--kup-body-01-font-size, 14px);line-height:20px;font-weight:400;letter-spacing:0.16px}.kup-code-01{font-family:var(--kup-font-family-monospace);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-label-01{font-family:var(--kup-font-family);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-caption-02{font-family:var(--kup-font-family);font-size:12px;line-height:15px;font-weight:500;letter-spacing:1px}.kup-caption-01{font-family:var(--kup-font-family);font-size:10px;line-height:13px;font-weight:400;letter-spacing:1px}.kup-small-label-01{font-family:var(--kup-font-family);font-size:6px;line-height:9px;font-weight:400;letter-spacing:1px}.kup-heading-compact-01{font-family:var(--kup-font-family);font-size:14px;line-height:18px;font-weight:600;letter-spacing:0.16px}.kup-heading-01{font-family:var(--kup-font-family);font-size:14px;line-height:20px;font-weight:600;letter-spacing:0.16px}.kup-heading-02{font-family:var(--kup-font-family);font-size:16px;line-height:24px;font-weight:500;letter-spacing:0}.kup-heading-03{font-family:var(--kup-font-family);font-size:20px;line-height:28px;font-weight:400;letter-spacing:0}.kup-heading-04{font-family:var(--kup-font-family);font-size:28px;line-height:36px;font-weight:400;letter-spacing:0}.kup-heading-05{font-family:var(--kup-font-family);font-size:32px;line-height:40px;font-weight:300;letter-spacing:0}.kup-heading-06{font-family:var(--kup-font-family);font-size:42px;line-height:50px;font-weight:300;letter-spacing:0}.kup-heading-07{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:300;letter-spacing:0}.kup-heading-08{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:600;letter-spacing:0}.tasks{background:var(--kup-layer-2);border-radius:var(--kup-radius-00);padding:var(--kup-space-05);margin-right:var(--kup-space-05);min-width:25%}.taskListWrapper{display:table;border-bottom:#e6e4e4 1px solid;border-left:#e6e4e4 1px solid}.taskListTableRow{display:table-row;text-overflow:ellipsis}.taskListCell{display:table-cell;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.taskListNameWrapper{display:flex}.taskListExpander{color:rgb(86, 86, 86);font-size:0.6rem;padding:0.15rem 0.2rem 0 0.2rem;user-select:none;cursor:pointer}.taskListEmptyExpander{font-size:0.6rem;padding-left:1rem;user-select:none}.ganttTable{display:table;border-bottom:#e6e4e4 1px solid;border-top:#e6e4e4 1px solid;border-left:#e6e4e4 1px solid}.ganttTable_Header{display:table-row;list-style:none}.ganttTable_HeaderSeparator{border-right:1px solid rgb(196, 196, 196);opacity:1;margin-left:-2px}.ganttTable_HeaderItem{display:table-cell;vertical-align:-webkit-baseline-middle;vertical-align:middle}";
|
|
932
934
|
const KupTaskListHeaderStyle0 = kupTaskListCss$1;
|
|
933
935
|
|
|
934
936
|
const KupTaskListHeader = class {
|
|
@@ -962,7 +964,7 @@ const KupTaskListHeader = class {
|
|
|
962
964
|
};
|
|
963
965
|
KupTaskListHeader.style = KupTaskListHeaderStyle0;
|
|
964
966
|
|
|
965
|
-
const kupTaskListCss = ".kup-body-compact-01{font-family:var(--kup-font-family);font-size:var(--kup-body-compact-01-font-size, 14px);line-height:18px;font-weight:400;letter-spacing:0.16px}.kup-body-01{font-family:var(--kup-font-family);font-size:var(--kup-body-01-font-size, 14px);line-height:20px;font-weight:400;letter-spacing:0.16px}.kup-code-01{font-family:var(--kup-font-family-monospace);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-label-01{font-family:var(--kup-font-family);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-caption-02{font-family:var(--kup-font-family);font-size:12px;line-height:15px;font-weight:500;letter-spacing:1px}.kup-caption-01{font-family:var(--kup-font-family);font-size:10px;line-height:13px;font-weight:400;letter-spacing:1px}.kup-small-label-01{font-family:var(--kup-font-family);font-size:6px;line-height:9px;font-weight:400;letter-spacing:1px}.kup-heading-compact-01{font-family:var(--kup-font-family);font-size:14px;line-height:18px;font-weight:600;letter-spacing:0.16px}.kup-heading-01{font-family:var(--kup-font-family);font-size:14px;line-height:20px;font-weight:600;letter-spacing:0.16px}.kup-heading-02{font-family:var(--kup-font-family);font-size:16px;line-height:24px;font-weight:500;letter-spacing:0}.kup-heading-03{font-family:var(--kup-font-family);font-size:20px;line-height:28px;font-weight:400;letter-spacing:0}.kup-heading-04{font-family:var(--kup-font-family);font-size:28px;line-height:36px;font-weight:400;letter-spacing:0}.kup-heading-05{font-family:var(--kup-font-family);font-size:32px;line-height:40px;font-weight:300;letter-spacing:0}.kup-heading-06{font-family:var(--kup-font-family);font-size:42px;line-height:50px;font-weight:300;letter-spacing:0}.kup-heading-07{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:300;letter-spacing:0}.kup-heading-08{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:600;letter-spacing:0}.tasks{background:var(--kup-layer-2);border-radius:var(--kup-radius-00);padding:var(--kup-space-05);margin-right:var(--kup-space-05)}.taskListWrapper{display:table;border-bottom:#e6e4e4 1px solid;border-left:#e6e4e4 1px solid}.taskListTableRow{display:table-row;text-overflow:ellipsis}.taskListCell{display:table-cell;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.taskListNameWrapper{display:flex}.taskListExpander{color:rgb(86, 86, 86);font-size:0.6rem;padding:0.15rem 0.2rem 0 0.2rem;user-select:none;cursor:pointer}.taskListEmptyExpander{font-size:0.6rem;padding-left:1rem;user-select:none}.ganttTable{display:table;border-bottom:#e6e4e4 1px solid;border-top:#e6e4e4 1px solid;border-left:#e6e4e4 1px solid}.ganttTable_Header{display:table-row;list-style:none}.ganttTable_HeaderSeparator{border-right:1px solid rgb(196, 196, 196);opacity:1;margin-left:-2px}.ganttTable_HeaderItem{display:table-cell;vertical-align:-webkit-baseline-middle;vertical-align:middle}";
|
|
967
|
+
const kupTaskListCss = ".kup-body-compact-01{font-family:var(--kup-font-family);font-size:var(--kup-body-compact-01-font-size, 14px);line-height:18px;font-weight:400;letter-spacing:0.16px}.kup-body-01{font-family:var(--kup-font-family);font-size:var(--kup-body-01-font-size, 14px);line-height:20px;font-weight:400;letter-spacing:0.16px}.kup-code-01{font-family:var(--kup-font-family-monospace);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-label-01{font-family:var(--kup-font-family);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-caption-02{font-family:var(--kup-font-family);font-size:12px;line-height:15px;font-weight:500;letter-spacing:1px}.kup-caption-01{font-family:var(--kup-font-family);font-size:10px;line-height:13px;font-weight:400;letter-spacing:1px}.kup-small-label-01{font-family:var(--kup-font-family);font-size:6px;line-height:9px;font-weight:400;letter-spacing:1px}.kup-heading-compact-01{font-family:var(--kup-font-family);font-size:14px;line-height:18px;font-weight:600;letter-spacing:0.16px}.kup-heading-01{font-family:var(--kup-font-family);font-size:14px;line-height:20px;font-weight:600;letter-spacing:0.16px}.kup-heading-02{font-family:var(--kup-font-family);font-size:16px;line-height:24px;font-weight:500;letter-spacing:0}.kup-heading-03{font-family:var(--kup-font-family);font-size:20px;line-height:28px;font-weight:400;letter-spacing:0}.kup-heading-04{font-family:var(--kup-font-family);font-size:28px;line-height:36px;font-weight:400;letter-spacing:0}.kup-heading-05{font-family:var(--kup-font-family);font-size:32px;line-height:40px;font-weight:300;letter-spacing:0}.kup-heading-06{font-family:var(--kup-font-family);font-size:42px;line-height:50px;font-weight:300;letter-spacing:0}.kup-heading-07{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:300;letter-spacing:0}.kup-heading-08{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:600;letter-spacing:0}.tasks{background:var(--kup-layer-2);border-radius:var(--kup-radius-00);padding:var(--kup-space-05);margin-right:var(--kup-space-05);min-width:25%}.taskListWrapper{display:table;border-bottom:#e6e4e4 1px solid;border-left:#e6e4e4 1px solid}.taskListTableRow{display:table-row;text-overflow:ellipsis}.taskListCell{display:table-cell;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.taskListNameWrapper{display:flex}.taskListExpander{color:rgb(86, 86, 86);font-size:0.6rem;padding:0.15rem 0.2rem 0 0.2rem;user-select:none;cursor:pointer}.taskListEmptyExpander{font-size:0.6rem;padding-left:1rem;user-select:none}.ganttTable{display:table;border-bottom:#e6e4e4 1px solid;border-top:#e6e4e4 1px solid;border-left:#e6e4e4 1px solid}.ganttTable_Header{display:table-row;list-style:none}.ganttTable_HeaderSeparator{border-right:1px solid rgb(196, 196, 196);opacity:1;margin-left:-2px}.ganttTable_HeaderItem{display:table-cell;vertical-align:-webkit-baseline-middle;vertical-align:middle}";
|
|
966
968
|
const KupTaskListTableStyle0 = kupTaskListCss;
|
|
967
969
|
|
|
968
970
|
const TaskListTableDefault = class {
|
package/dist/esm/{kup-planner-declarations-0704bc6c.js → kup-planner-declarations-5981474b.js}
RENAMED
|
@@ -83,7 +83,7 @@ const defaultStylingOptions = {
|
|
|
83
83
|
barProgressSelectedColor: '#A2A415',
|
|
84
84
|
barBackgroundColor: '#A2A415',
|
|
85
85
|
barBackgroundSelectedColor: '#A2A415',
|
|
86
|
-
barDropZoneColor: '#4d9f0240'
|
|
86
|
+
barDropZoneColor: '#4d9f0240',
|
|
87
87
|
};
|
|
88
88
|
const KUP_PLANNER_MAIN_GANTT_ID = 'main';
|
|
89
89
|
const KUP_PLANNER_SECONDARY_GANTT_ID = 'secondary';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { h, r as registerInstance, d as getElement } from './index-c9246a86.js';
|
|
2
2
|
import { c as calculateDisplayedDateRange, a as convertProjectToTasks, g as getPhaseById, m as mergeTaskIntoProjects, b as getProjectById, d as mergeTaskIntoPhases, e as columnWidthForTimeUnit } from './kup-planner-renderer-helper-4952d0a1.js';
|
|
3
|
-
import { e as KUP_PLANNER_MAIN_GANTT_ID, f as KUP_PLANNER_SECONDARY_GANTT_ID } from './kup-planner-declarations-
|
|
3
|
+
import { e as KUP_PLANNER_MAIN_GANTT_ID, f as KUP_PLANNER_SECONDARY_GANTT_ID } from './kup-planner-declarations-5981474b.js';
|
|
4
4
|
import { a as KupDates } from './kup-dates-da19044e.js';
|
|
5
5
|
import { g as ganttDateTimeFormatters } from './kup-planner-time-formatter-ddf84f9b.js';
|
|
6
6
|
|
|
@@ -235,7 +235,7 @@ const KupPlannerRenderer = class {
|
|
|
235
235
|
} }), this.props && (h("div", { key: 'a07185cd6be444510aef8c07eef0a9afe72d9fd6', style: {
|
|
236
236
|
display: 'flex',
|
|
237
237
|
flexDirection: 'column',
|
|
238
|
-
} }, h("kup-gantt", Object.assign({ ref: (el) => (this.mainGantt = el), ganttId: KUP_PLANNER_MAIN_GANTT_ID, key: KUP_PLANNER_MAIN_GANTT_ID, filter: this.props.mainGantt.filter, hideLabel: this.props.mainGantt.hideLabel, showSecondaryDates: this.mainGanttDoubleView, hideDependencies: this.props.mainGantt.hideDependencies, ganttHeight: this.props.mainGantt.ganttHeight, displayedStartDate: this.displayedDates.displayedStartDate, displayedEndDate: this.displayedDates.displayedEndDate, viewDate: this.viewDate, tasks: this.tasks, columnWidth: columnWidthForTimeUnit(this.timeUnit), viewMode: this.timeUnit }, this.props.mainGantt.stylingOptions, { TaskListHeader: this.props.mainGantt.taskListHeaderProject, TaskListTable: this.props.mainGantt.taskListTableProject, TooltipContent: (_a = this.props.mainGantt.tooltipContent) !== null && _a !== void 0 ? _a : CustomTooltipHOC(), barClick: (task) => {
|
|
238
|
+
} }, h("kup-gantt", Object.assign({ ref: (el) => (this.mainGantt = el), ganttId: KUP_PLANNER_MAIN_GANTT_ID, key: KUP_PLANNER_MAIN_GANTT_ID, filter: this.props.mainGantt.filter, hideLabel: this.props.mainGantt.hideLabel, showSecondaryDates: this.mainGanttDoubleView, hideDependencies: this.props.mainGantt.hideDependencies, ganttHeight: this.props.mainGantt.ganttHeight, displayedStartDate: this.displayedDates.displayedStartDate, displayedEndDate: this.displayedDates.displayedEndDate, viewDate: this.viewDate, tasks: this.tasks, columnWidth: columnWidthForTimeUnit(this.timeUnit), viewMode: this.timeUnit, dependencies: this.props.mainGantt.dependencies }, this.props.mainGantt.stylingOptions, { TaskListHeader: this.props.mainGantt.taskListHeaderProject, TaskListTable: this.props.mainGantt.taskListTableProject, TooltipContent: (_a = this.props.mainGantt.tooltipContent) !== null && _a !== void 0 ? _a : CustomTooltipHOC(), barClick: (task) => {
|
|
239
239
|
let row = getProjectById(task.id, this.currentTasks);
|
|
240
240
|
if (!row) {
|
|
241
241
|
row = getPhaseById(task.id, this.currentTasks);
|
|
@@ -267,7 +267,7 @@ const KupPlannerRenderer = class {
|
|
|
267
267
|
this.handlePhaseDrop(originalPhase,
|
|
268
268
|
// originalTask,
|
|
269
269
|
finalPhaseData, destinationTask, this.props.mainGantt.onPhaseDrop);
|
|
270
|
-
} })), this.props.secondaryGantt && (h("kup-gantt", Object.assign({ ref: (el) => (this.secondaryGantt = el), ganttId: KUP_PLANNER_SECONDARY_GANTT_ID, key: KUP_PLANNER_SECONDARY_GANTT_ID, filter: this.props.secondaryGantt.filter, hideLabel: this.props.secondaryGantt.hideLabel, showSecondaryDates: this.mainGanttDoubleView, hideDependencies: this.props.secondaryGantt.hideDependencies, ganttHeight: this.props.secondaryGantt.ganttHeight, displayedStartDate: this.displayedDates.displayedStartDate, displayedEndDate: this.displayedDates.displayedEndDate, viewDate: this.viewDate, tasks: this.details, columnWidth: columnWidthForTimeUnit(this.timeUnit), viewMode: this.timeUnit }, this.props.secondaryGantt.stylingOptions, { TaskListHeader: this.props.secondaryGantt
|
|
270
|
+
} })), this.props.secondaryGantt && (h("kup-gantt", Object.assign({ ref: (el) => (this.secondaryGantt = el), ganttId: KUP_PLANNER_SECONDARY_GANTT_ID, key: KUP_PLANNER_SECONDARY_GANTT_ID, filter: this.props.secondaryGantt.filter, hideLabel: this.props.secondaryGantt.hideLabel, showSecondaryDates: this.mainGanttDoubleView, hideDependencies: this.props.secondaryGantt.hideDependencies, ganttHeight: this.props.secondaryGantt.ganttHeight, displayedStartDate: this.displayedDates.displayedStartDate, displayedEndDate: this.displayedDates.displayedEndDate, viewDate: this.viewDate, tasks: this.details, columnWidth: columnWidthForTimeUnit(this.timeUnit), viewMode: this.timeUnit, dependencies: this.props.secondaryGantt.dependencies }, this.props.secondaryGantt.stylingOptions, { TaskListHeader: this.props.secondaryGantt
|
|
271
271
|
.taskListHeaderProject, TaskListTable: this.props.secondaryGantt
|
|
272
272
|
.taskListTableProject, TooltipContent: (_c = this.props.secondaryGantt.tooltipContent) !== null && _c !== void 0 ? _c : CustomTooltipHOC(), projection: this.projection, barClick: (task) => {
|
|
273
273
|
if (this.props.secondaryGantt) {
|