@design.estate/dees-catalog 12.4.0 → 13.0.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.
- package/dist_bundle/bundle.js +2603 -1201
- package/dist_bundle/bundle.js.map +1 -1
- package/dist_ts_web/00_commitinfo_data.js +3 -3
- package/dist_ts_web/elements/00group-chart/dees-chart-area/component.d.ts +26 -16
- package/dist_ts_web/elements/00group-chart/dees-chart-area/component.js +161 -72
- package/dist_ts_web/elements/00group-chart/dees-chart-area/realtime-updates.d.ts +2 -1
- package/dist_ts_web/elements/00group-chart/dees-chart-area/realtime-updates.js +3 -2
- package/dist_ts_web/elements/00group-chart/dees-chart-area/template.js +4 -3
- package/dist_ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown-popup.d.ts +13 -0
- package/dist_ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown-popup.js +76 -7
- package/dist_ts_web/elements/00group-input/dees-input-reference/dees-input-reference.d.ts +42 -0
- package/dist_ts_web/elements/00group-input/dees-input-reference/dees-input-reference.demo.d.ts +1 -0
- package/dist_ts_web/elements/00group-input/dees-input-reference/dees-input-reference.demo.js +8 -0
- package/dist_ts_web/elements/00group-input/dees-input-reference/dees-input-reference.js +347 -0
- package/dist_ts_web/elements/00group-input/dees-input-reference/document.d.ts +5 -0
- package/dist_ts_web/elements/00group-input/dees-input-reference/document.js +45 -0
- package/dist_ts_web/elements/00group-input/dees-input-reference/index.d.ts +2 -0
- package/dist_ts_web/elements/00group-input/dees-input-reference/index.js +3 -0
- package/dist_ts_web/elements/00group-input/dees-input-reference/interfaces.d.ts +16 -0
- package/dist_ts_web/elements/00group-input/dees-input-reference/interfaces.js +2 -0
- package/dist_ts_web/elements/00group-input/index.d.ts +1 -0
- package/dist_ts_web/elements/00group-input/index.js +2 -1
- package/dist_ts_web/elements/00group-kanban/dees-kanban/dees-kanban.d.ts +58 -0
- package/dist_ts_web/elements/00group-kanban/dees-kanban/dees-kanban.demo.d.ts +1 -0
- package/dist_ts_web/elements/00group-kanban/dees-kanban/dees-kanban.demo.js +9 -0
- package/dist_ts_web/elements/00group-kanban/dees-kanban/dees-kanban.js +536 -0
- package/dist_ts_web/elements/00group-kanban/dees-kanban-card/dees-kanban-card.d.ts +20 -0
- package/dist_ts_web/elements/00group-kanban/dees-kanban-card/dees-kanban-card.js +157 -0
- package/dist_ts_web/elements/00group-kanban/dees-kanban-column/dees-kanban-column.d.ts +23 -0
- package/dist_ts_web/elements/00group-kanban/dees-kanban-column/dees-kanban-column.js +192 -0
- package/dist_ts_web/elements/00group-kanban/dees-kanban-discussion/dees-kanban-discussion.d.ts +24 -0
- package/dist_ts_web/elements/00group-kanban/dees-kanban-discussion/dees-kanban-discussion.js +211 -0
- package/dist_ts_web/elements/00group-kanban/dees-kanban-ticket-detail/dees-kanban-ticket-detail.d.ts +35 -0
- package/dist_ts_web/elements/00group-kanban/dees-kanban-ticket-detail/dees-kanban-ticket-detail.js +269 -0
- package/dist_ts_web/elements/00group-kanban/index.d.ts +6 -0
- package/dist_ts_web/elements/00group-kanban/index.js +7 -0
- package/dist_ts_web/elements/00group-kanban/interfaces.d.ts +84 -0
- package/dist_ts_web/elements/00group-kanban/interfaces.js +2 -0
- package/dist_ts_web/elements/00group-kanban/kanban.demodata.d.ts +7 -0
- package/dist_ts_web/elements/00group-kanban/kanban.demodata.js +60 -0
- package/dist_ts_web/elements/00group-kanban/kanban.helpers.d.ts +6 -0
- package/dist_ts_web/elements/00group-kanban/kanban.helpers.js +11 -0
- package/dist_ts_web/elements/00group-kanban/kanban.styles.d.ts +1 -0
- package/dist_ts_web/elements/00group-kanban/kanban.styles.js +18 -0
- package/dist_ts_web/elements/index.d.ts +1 -0
- package/dist_ts_web/elements/index.js +2 -1
- package/dist_ts_web/services/DeesServiceLibLoader.d.ts +1 -0
- package/dist_ts_web/services/DeesServiceLibLoader.js +2 -1
- package/package.json +1 -1
- package/readme.md +165 -1
- package/scripts/check-packed-consumer.mjs +1 -1
- package/ts_web/00_commitinfo_data.ts +3 -3
- package/ts_web/elements/00group-chart/dees-chart-area/component.ts +195 -79
- package/ts_web/elements/00group-chart/dees-chart-area/realtime-updates.ts +4 -2
- package/ts_web/elements/00group-chart/dees-chart-area/template.ts +3 -2
- package/ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown-popup.ts +40 -5
- package/ts_web/elements/00group-input/dees-input-reference/dees-input-reference.demo.ts +9 -0
- package/ts_web/elements/00group-input/dees-input-reference/dees-input-reference.ts +221 -0
- package/ts_web/elements/00group-input/dees-input-reference/document.ts +38 -0
- package/ts_web/elements/00group-input/dees-input-reference/index.ts +2 -0
- package/ts_web/elements/00group-input/dees-input-reference/interfaces.ts +8 -0
- package/ts_web/elements/00group-input/index.ts +1 -0
- package/ts_web/elements/00group-kanban/dees-kanban/dees-kanban.demo.ts +9 -0
- package/ts_web/elements/00group-kanban/dees-kanban/dees-kanban.ts +315 -0
- package/ts_web/elements/00group-kanban/dees-kanban-card/dees-kanban-card.ts +58 -0
- package/ts_web/elements/00group-kanban/dees-kanban-column/dees-kanban-column.ts +60 -0
- package/ts_web/elements/00group-kanban/dees-kanban-discussion/dees-kanban-discussion.ts +81 -0
- package/ts_web/elements/00group-kanban/dees-kanban-ticket-detail/dees-kanban-ticket-detail.ts +114 -0
- package/ts_web/elements/00group-kanban/index.ts +6 -0
- package/ts_web/elements/00group-kanban/interfaces.ts +67 -0
- package/ts_web/elements/00group-kanban/kanban.demodata.ts +56 -0
- package/ts_web/elements/00group-kanban/kanban.helpers.ts +13 -0
- package/ts_web/elements/00group-kanban/kanban.styles.ts +18 -0
- package/ts_web/elements/index.ts +1 -0
- package/ts_web/services/DeesServiceLibLoader.ts +2 -0
|
@@ -0,0 +1,536 @@
|
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
27
|
+
};
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
34
|
+
};
|
|
35
|
+
import { DeesElement, customElement, property, state, html, css } from '@design.estate/dees-element';
|
|
36
|
+
import { DeesModal } from '../../00group-overlay/dees-modal/dees-modal.js';
|
|
37
|
+
import { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';
|
|
38
|
+
import { DeesKanbanTicketDetail } from '../dees-kanban-ticket-detail/dees-kanban-ticket-detail.js';
|
|
39
|
+
import { kanbanStyles } from '../kanban.styles.js';
|
|
40
|
+
import { kanbanError, kanbanEvent, sortKanbanTickets, ticketLabel } from '../kanban.helpers.js';
|
|
41
|
+
import { demoFunc } from './dees-kanban.demo.js';
|
|
42
|
+
import '../dees-kanban-column/dees-kanban-column.js';
|
|
43
|
+
const interactionEvents = ['kanban-ticket-open', 'kanban-ticket-move', 'kanban-ticket-create', 'kanban-move-menu',
|
|
44
|
+
'kanban-ticket-save', 'kanban-ticket-draft', 'kanban-comment-draft', 'kanban-comment-added', 'kanban-comments-refresh',
|
|
45
|
+
'kanban-detail-back', 'kanban-drag-start', 'kanban-drag-end'];
|
|
46
|
+
let DeesKanban = (() => {
|
|
47
|
+
let _classDecorators = [customElement('dees-kanban')];
|
|
48
|
+
let _classDescriptor;
|
|
49
|
+
let _classExtraInitializers = [];
|
|
50
|
+
let _classThis;
|
|
51
|
+
let _classSuper = DeesElement;
|
|
52
|
+
let _heading_decorators;
|
|
53
|
+
let _heading_initializers = [];
|
|
54
|
+
let _heading_extraInitializers = [];
|
|
55
|
+
let _tickets_decorators;
|
|
56
|
+
let _tickets_initializers = [];
|
|
57
|
+
let _tickets_extraInitializers = [];
|
|
58
|
+
let _columns_decorators;
|
|
59
|
+
let _columns_initializers = [];
|
|
60
|
+
let _columns_extraInitializers = [];
|
|
61
|
+
let _people_decorators;
|
|
62
|
+
let _people_initializers = [];
|
|
63
|
+
let _people_extraInitializers = [];
|
|
64
|
+
let _provider_decorators;
|
|
65
|
+
let _provider_initializers = [];
|
|
66
|
+
let _provider_extraInitializers = [];
|
|
67
|
+
let _loading_decorators;
|
|
68
|
+
let _loading_initializers = [];
|
|
69
|
+
let _loading_extraInitializers = [];
|
|
70
|
+
let _error_decorators;
|
|
71
|
+
let _error_initializers = [];
|
|
72
|
+
let _error_extraInitializers = [];
|
|
73
|
+
let _query_decorators;
|
|
74
|
+
let _query_initializers = [];
|
|
75
|
+
let _query_extraInitializers = [];
|
|
76
|
+
let _epicId_decorators;
|
|
77
|
+
let _epicId_initializers = [];
|
|
78
|
+
let _epicId_extraInitializers = [];
|
|
79
|
+
let _operationError_decorators;
|
|
80
|
+
let _operationError_initializers = [];
|
|
81
|
+
let _operationError_extraInitializers = [];
|
|
82
|
+
let _pendingTicketId_decorators;
|
|
83
|
+
let _pendingTicketId_initializers = [];
|
|
84
|
+
let _pendingTicketId_extraInitializers = [];
|
|
85
|
+
let _draggingTicketId_decorators;
|
|
86
|
+
let _draggingTicketId_initializers = [];
|
|
87
|
+
let _draggingTicketId_extraInitializers = [];
|
|
88
|
+
let _openingTicket_decorators;
|
|
89
|
+
let _openingTicket_initializers = [];
|
|
90
|
+
let _openingTicket_extraInitializers = [];
|
|
91
|
+
var DeesKanban = class extends _classSuper {
|
|
92
|
+
static { _classThis = this; }
|
|
93
|
+
static {
|
|
94
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
95
|
+
_heading_decorators = [property({ type: String })];
|
|
96
|
+
_tickets_decorators = [property({ attribute: false })];
|
|
97
|
+
_columns_decorators = [property({ attribute: false })];
|
|
98
|
+
_people_decorators = [property({ attribute: false })];
|
|
99
|
+
_provider_decorators = [property({ attribute: false })];
|
|
100
|
+
_loading_decorators = [property({ type: Boolean })];
|
|
101
|
+
_error_decorators = [property({ type: String })];
|
|
102
|
+
_query_decorators = [state()];
|
|
103
|
+
_epicId_decorators = [state()];
|
|
104
|
+
_operationError_decorators = [state()];
|
|
105
|
+
_pendingTicketId_decorators = [state()];
|
|
106
|
+
_draggingTicketId_decorators = [state()];
|
|
107
|
+
_openingTicket_decorators = [state()];
|
|
108
|
+
__esDecorate(this, null, _heading_decorators, { kind: "accessor", name: "heading", static: false, private: false, access: { has: obj => "heading" in obj, get: obj => obj.heading, set: (obj, value) => { obj.heading = value; } }, metadata: _metadata }, _heading_initializers, _heading_extraInitializers);
|
|
109
|
+
__esDecorate(this, null, _tickets_decorators, { kind: "accessor", name: "tickets", static: false, private: false, access: { has: obj => "tickets" in obj, get: obj => obj.tickets, set: (obj, value) => { obj.tickets = value; } }, metadata: _metadata }, _tickets_initializers, _tickets_extraInitializers);
|
|
110
|
+
__esDecorate(this, null, _columns_decorators, { kind: "accessor", name: "columns", static: false, private: false, access: { has: obj => "columns" in obj, get: obj => obj.columns, set: (obj, value) => { obj.columns = value; } }, metadata: _metadata }, _columns_initializers, _columns_extraInitializers);
|
|
111
|
+
__esDecorate(this, null, _people_decorators, { kind: "accessor", name: "people", static: false, private: false, access: { has: obj => "people" in obj, get: obj => obj.people, set: (obj, value) => { obj.people = value; } }, metadata: _metadata }, _people_initializers, _people_extraInitializers);
|
|
112
|
+
__esDecorate(this, null, _provider_decorators, { kind: "accessor", name: "provider", static: false, private: false, access: { has: obj => "provider" in obj, get: obj => obj.provider, set: (obj, value) => { obj.provider = value; } }, metadata: _metadata }, _provider_initializers, _provider_extraInitializers);
|
|
113
|
+
__esDecorate(this, null, _loading_decorators, { kind: "accessor", name: "loading", static: false, private: false, access: { has: obj => "loading" in obj, get: obj => obj.loading, set: (obj, value) => { obj.loading = value; } }, metadata: _metadata }, _loading_initializers, _loading_extraInitializers);
|
|
114
|
+
__esDecorate(this, null, _error_decorators, { kind: "accessor", name: "error", static: false, private: false, access: { has: obj => "error" in obj, get: obj => obj.error, set: (obj, value) => { obj.error = value; } }, metadata: _metadata }, _error_initializers, _error_extraInitializers);
|
|
115
|
+
__esDecorate(this, null, _query_decorators, { kind: "accessor", name: "query", static: false, private: false, access: { has: obj => "query" in obj, get: obj => obj.query, set: (obj, value) => { obj.query = value; } }, metadata: _metadata }, _query_initializers, _query_extraInitializers);
|
|
116
|
+
__esDecorate(this, null, _epicId_decorators, { kind: "accessor", name: "epicId", static: false, private: false, access: { has: obj => "epicId" in obj, get: obj => obj.epicId, set: (obj, value) => { obj.epicId = value; } }, metadata: _metadata }, _epicId_initializers, _epicId_extraInitializers);
|
|
117
|
+
__esDecorate(this, null, _operationError_decorators, { kind: "accessor", name: "operationError", static: false, private: false, access: { has: obj => "operationError" in obj, get: obj => obj.operationError, set: (obj, value) => { obj.operationError = value; } }, metadata: _metadata }, _operationError_initializers, _operationError_extraInitializers);
|
|
118
|
+
__esDecorate(this, null, _pendingTicketId_decorators, { kind: "accessor", name: "pendingTicketId", static: false, private: false, access: { has: obj => "pendingTicketId" in obj, get: obj => obj.pendingTicketId, set: (obj, value) => { obj.pendingTicketId = value; } }, metadata: _metadata }, _pendingTicketId_initializers, _pendingTicketId_extraInitializers);
|
|
119
|
+
__esDecorate(this, null, _draggingTicketId_decorators, { kind: "accessor", name: "draggingTicketId", static: false, private: false, access: { has: obj => "draggingTicketId" in obj, get: obj => obj.draggingTicketId, set: (obj, value) => { obj.draggingTicketId = value; } }, metadata: _metadata }, _draggingTicketId_initializers, _draggingTicketId_extraInitializers);
|
|
120
|
+
__esDecorate(this, null, _openingTicket_decorators, { kind: "accessor", name: "openingTicket", static: false, private: false, access: { has: obj => "openingTicket" in obj, get: obj => obj.openingTicket, set: (obj, value) => { obj.openingTicket = value; } }, metadata: _metadata }, _openingTicket_initializers, _openingTicket_extraInitializers);
|
|
121
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
122
|
+
DeesKanban = _classThis = _classDescriptor.value;
|
|
123
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
124
|
+
}
|
|
125
|
+
static demo = demoFunc;
|
|
126
|
+
static demoGroups = ['Kanban'];
|
|
127
|
+
#heading_accessor_storage = __runInitializers(this, _heading_initializers, 'Board');
|
|
128
|
+
get heading() { return this.#heading_accessor_storage; }
|
|
129
|
+
set heading(value) { this.#heading_accessor_storage = value; }
|
|
130
|
+
#tickets_accessor_storage = (__runInitializers(this, _heading_extraInitializers), __runInitializers(this, _tickets_initializers, []));
|
|
131
|
+
get tickets() { return this.#tickets_accessor_storage; }
|
|
132
|
+
set tickets(value) { this.#tickets_accessor_storage = value; }
|
|
133
|
+
#columns_accessor_storage = (__runInitializers(this, _tickets_extraInitializers), __runInitializers(this, _columns_initializers, []));
|
|
134
|
+
get columns() { return this.#columns_accessor_storage; }
|
|
135
|
+
set columns(value) { this.#columns_accessor_storage = value; }
|
|
136
|
+
#people_accessor_storage = (__runInitializers(this, _columns_extraInitializers), __runInitializers(this, _people_initializers, []));
|
|
137
|
+
get people() { return this.#people_accessor_storage; }
|
|
138
|
+
set people(value) { this.#people_accessor_storage = value; }
|
|
139
|
+
#provider_accessor_storage = (__runInitializers(this, _people_extraInitializers), __runInitializers(this, _provider_initializers, {}));
|
|
140
|
+
get provider() { return this.#provider_accessor_storage; }
|
|
141
|
+
set provider(value) { this.#provider_accessor_storage = value; }
|
|
142
|
+
#loading_accessor_storage = (__runInitializers(this, _provider_extraInitializers), __runInitializers(this, _loading_initializers, false));
|
|
143
|
+
get loading() { return this.#loading_accessor_storage; }
|
|
144
|
+
set loading(value) { this.#loading_accessor_storage = value; }
|
|
145
|
+
#error_accessor_storage = (__runInitializers(this, _loading_extraInitializers), __runInitializers(this, _error_initializers, ''));
|
|
146
|
+
get error() { return this.#error_accessor_storage; }
|
|
147
|
+
set error(value) { this.#error_accessor_storage = value; }
|
|
148
|
+
#query_accessor_storage = (__runInitializers(this, _error_extraInitializers), __runInitializers(this, _query_initializers, ''));
|
|
149
|
+
get query() { return this.#query_accessor_storage; }
|
|
150
|
+
set query(value) { this.#query_accessor_storage = value; }
|
|
151
|
+
#epicId_accessor_storage = (__runInitializers(this, _query_extraInitializers), __runInitializers(this, _epicId_initializers, ''));
|
|
152
|
+
get epicId() { return this.#epicId_accessor_storage; }
|
|
153
|
+
set epicId(value) { this.#epicId_accessor_storage = value; }
|
|
154
|
+
#operationError_accessor_storage = (__runInitializers(this, _epicId_extraInitializers), __runInitializers(this, _operationError_initializers, ''));
|
|
155
|
+
get operationError() { return this.#operationError_accessor_storage; }
|
|
156
|
+
set operationError(value) { this.#operationError_accessor_storage = value; }
|
|
157
|
+
#pendingTicketId_accessor_storage = (__runInitializers(this, _operationError_extraInitializers), __runInitializers(this, _pendingTicketId_initializers, ''));
|
|
158
|
+
get pendingTicketId() { return this.#pendingTicketId_accessor_storage; }
|
|
159
|
+
set pendingTicketId(value) { this.#pendingTicketId_accessor_storage = value; }
|
|
160
|
+
#draggingTicketId_accessor_storage = (__runInitializers(this, _pendingTicketId_extraInitializers), __runInitializers(this, _draggingTicketId_initializers, ''));
|
|
161
|
+
get draggingTicketId() { return this.#draggingTicketId_accessor_storage; }
|
|
162
|
+
set draggingTicketId(value) { this.#draggingTicketId_accessor_storage = value; }
|
|
163
|
+
#openingTicket_accessor_storage = (__runInitializers(this, _draggingTicketId_extraInitializers), __runInitializers(this, _openingTicket_initializers, false));
|
|
164
|
+
get openingTicket() { return this.#openingTicket_accessor_storage; }
|
|
165
|
+
set openingTicket(value) { this.#openingTicket_accessor_storage = value; }
|
|
166
|
+
modal = __runInitializers(this, _openingTicket_extraInitializers);
|
|
167
|
+
modalOpening;
|
|
168
|
+
detail;
|
|
169
|
+
selectedId = '';
|
|
170
|
+
history = [];
|
|
171
|
+
openAbort;
|
|
172
|
+
commentsAbort;
|
|
173
|
+
commentCache = new Map();
|
|
174
|
+
commentRevisions = new Map();
|
|
175
|
+
commentDrafts = new Map();
|
|
176
|
+
ticketDrafts = new Map();
|
|
177
|
+
resolvedTickets = new Map();
|
|
178
|
+
static styles = [...kanbanStyles, css `
|
|
179
|
+
:host { padding: 24px; background: var(--dees-color-bg-canvas); min-height: 100%; }
|
|
180
|
+
.heading { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 20px; }
|
|
181
|
+
h2 { font-size: var(--dees-font-title1-size); font-weight: 650; letter-spacing: -.02em; }
|
|
182
|
+
.filters { display: flex; align-items: end; gap: 16px; flex-wrap: wrap; margin-bottom: 24px; }
|
|
183
|
+
.filters dees-input-text { flex: 1; min-width: 200px; max-width: 360px; }
|
|
184
|
+
.filters dees-input-dropdown { min-width: 200px; max-width: 320px; flex: 1; }
|
|
185
|
+
.columns { display: flex; gap: 16px; overflow-x: auto; padding: 3px 3px 16px; align-items: stretch; }
|
|
186
|
+
@media (max-width: 600px) { :host { padding: 16px; } .filters { gap: 10px; } .columns { scroll-snap-type: x proximity; } dees-kanban-column { scroll-snap-align: start; flex-basis: 85vw; } }
|
|
187
|
+
`];
|
|
188
|
+
async connectedCallback() {
|
|
189
|
+
const connection = super.connectedCallback();
|
|
190
|
+
for (const name of interactionEvents)
|
|
191
|
+
this.addEventListener(name, this.handleInteraction);
|
|
192
|
+
await connection;
|
|
193
|
+
}
|
|
194
|
+
updated() { this.syncDetail(); }
|
|
195
|
+
render() {
|
|
196
|
+
const epics = sortKanbanTickets(this.tickets.filter(ticket => ticket.kind === 'epic'));
|
|
197
|
+
const query = this.query.trim().toLocaleLowerCase();
|
|
198
|
+
const tasks = this.tickets.filter(ticket => ticket.kind === 'task' && (!this.epicId || ticket.parentId === this.epicId) &&
|
|
199
|
+
(!query || [ticket.key, ticket.title, ticket.assignee?.name, ...ticket.labels ?? [],
|
|
200
|
+
...this.tickets.filter(child => child.parentId === ticket.id).map(child => `${child.key} ${child.title}`)].join(' ').toLocaleLowerCase().includes(query)));
|
|
201
|
+
const epic = epics.find(ticket => ticket.id === this.epicId);
|
|
202
|
+
return html `<header class="heading"><h2>${this.heading}</h2><span class="caption">${tasks.length} tasks · ${epics.length} epics</span><span class="spacer"></span>
|
|
203
|
+
${this.provider.createTicket ? html `<dees-button type="ghost" size="sm" text="New epic" .disabled=${!this.columns.length}
|
|
204
|
+
@clicked=${() => { void this.createTicket({ kind: 'epic', columnId: this.columns[0].id }); }}></dees-button>
|
|
205
|
+
<dees-button type="accent" size="sm" icon="lucide:Plus" text="New task" .disabled=${!this.columns.length}
|
|
206
|
+
@clicked=${() => { void this.createTicket({ kind: 'task', columnId: this.columns[0].id, parentId: this.epicId || undefined }); }}></dees-button>` : ''}</header>
|
|
207
|
+
<div class="filters"><dees-input-text label="Search tickets" placeholder="Title, ticket number, assignee…" .value=${this.query}
|
|
208
|
+
@input=${(event) => { this.query = String(event.currentTarget.value ?? ''); }}></dees-input-text>
|
|
209
|
+
<dees-input-dropdown label="Epic" .value=${{ key: this.epicId, option: epic?.title ?? 'All epics' }}
|
|
210
|
+
.options=${[{ key: '', option: 'All epics' }, ...epics.map(ticket => ({ key: ticket.id, option: ticket.title }))]}
|
|
211
|
+
@selectedOption=${(event) => { this.epicId = event.detail.key; }}></dees-input-dropdown>
|
|
212
|
+
${epic ? html `<dees-button type="ghost" size="sm" text="Open epic" @clicked=${() => { void this.openTicket(epic.id); }}></dees-button>` : ''}
|
|
213
|
+
</div>
|
|
214
|
+
${this.loading || this.openingTicket ? html `<p class="caption" role="status">${this.loading ? 'Loading board…' : 'Opening ticket…'}</p>` : ''}
|
|
215
|
+
${this.error || this.operationError ? html `<p class="error" role="alert">${this.error || this.operationError}</p>` : ''}
|
|
216
|
+
${!this.columns.length ? html `<p class="empty">No columns configured.</p>` : html `<div class="columns" aria-label=${this.heading}>
|
|
217
|
+
${this.columns.map(column => html `<dees-kanban-column .column=${column} .columns=${this.columns}
|
|
218
|
+
.tickets=${tasks.filter(ticket => ticket.columnId === column.id)} .allTickets=${this.tickets}
|
|
219
|
+
.movable=${Boolean(this.provider.moveTicket) && !this.pendingTicketId} .canCreate=${Boolean(this.provider.createTicket)}
|
|
220
|
+
.pendingTicketId=${this.pendingTicketId} .draggingTicketId=${this.draggingTicketId}></dees-kanban-column>`)}</div>`}`;
|
|
221
|
+
}
|
|
222
|
+
findTicket(id) { return this.tickets.find(ticket => ticket.id === id) ?? this.resolvedTickets.get(id); }
|
|
223
|
+
searchTickets = async (query, signal) => {
|
|
224
|
+
const tickets = this.provider.searchTickets ? await this.provider.searchTickets(query, signal) :
|
|
225
|
+
this.tickets.filter(ticket => ticketLabel(ticket).toLocaleLowerCase().includes(query.toLocaleLowerCase()));
|
|
226
|
+
if (!signal.aborted)
|
|
227
|
+
for (const ticket of tickets)
|
|
228
|
+
this.resolvedTickets.set(ticket.id, ticket);
|
|
229
|
+
return tickets.map(ticket => ({ id: ticket.id, label: ticketLabel(ticket) }));
|
|
230
|
+
};
|
|
231
|
+
/** Open a task, epic, subtask or remotely resolved linked ticket in the board's detail modal. */
|
|
232
|
+
async openTicket(id, addHistory = true) {
|
|
233
|
+
this.openAbort?.abort();
|
|
234
|
+
const controller = this.openAbort = new AbortController();
|
|
235
|
+
this.openingTicket = true;
|
|
236
|
+
this.operationError = '';
|
|
237
|
+
try {
|
|
238
|
+
const ticket = this.provider.getTicket ? await this.provider.getTicket(id, controller.signal) : this.findTicket(id);
|
|
239
|
+
if (controller.signal.aborted || !this.isConnected)
|
|
240
|
+
return;
|
|
241
|
+
if (!ticket || ticket.id !== id)
|
|
242
|
+
throw new Error('This ticket is unavailable or you do not have access.');
|
|
243
|
+
this.resolvedTickets.set(ticket.id, ticket);
|
|
244
|
+
this.tickets = this.tickets.map(item => item.id === ticket.id ? ticket : item);
|
|
245
|
+
if (addHistory && this.selectedId && this.selectedId !== id && this.modal)
|
|
246
|
+
this.history.push(this.selectedId);
|
|
247
|
+
this.selectedId = id;
|
|
248
|
+
if (!this.detail) {
|
|
249
|
+
this.detail = new DeesKanbanTicketDetail();
|
|
250
|
+
for (const name of interactionEvents)
|
|
251
|
+
this.detail.addEventListener(name, this.handleInteraction);
|
|
252
|
+
}
|
|
253
|
+
this.detail.ticket = ticket;
|
|
254
|
+
this.detail.error = '';
|
|
255
|
+
this.syncDetail();
|
|
256
|
+
if (!this.modal && !this.modalOpening) {
|
|
257
|
+
this.modalOpening = DeesModal.createAndShow({ heading: ticket.key, width: 1000, maxWidth: 1040,
|
|
258
|
+
mobileFullscreen: true, content: html `${this.detail}`, menuOptions: [] });
|
|
259
|
+
const modal = await this.modalOpening;
|
|
260
|
+
this.modalOpening = undefined;
|
|
261
|
+
if (!this.isConnected) {
|
|
262
|
+
await modal.destroy();
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
this.modal = modal;
|
|
266
|
+
modal.addEventListener('modal-close', () => {
|
|
267
|
+
if (this.modal !== modal)
|
|
268
|
+
return;
|
|
269
|
+
this.modal = undefined;
|
|
270
|
+
this.selectedId = '';
|
|
271
|
+
this.history = [];
|
|
272
|
+
this.commentsAbort?.abort();
|
|
273
|
+
this.openAbort?.abort();
|
|
274
|
+
}, { once: true });
|
|
275
|
+
}
|
|
276
|
+
else if (this.modalOpening)
|
|
277
|
+
await this.modalOpening;
|
|
278
|
+
this.syncDetail();
|
|
279
|
+
if (controller.signal.aborted)
|
|
280
|
+
return;
|
|
281
|
+
kanbanEvent(this, 'kanban-ticket-opened', { ticketId: id });
|
|
282
|
+
await this.refreshComments(id);
|
|
283
|
+
}
|
|
284
|
+
catch (error) {
|
|
285
|
+
if (!controller.signal.aborted)
|
|
286
|
+
this.reportError(error);
|
|
287
|
+
}
|
|
288
|
+
finally {
|
|
289
|
+
if (this.openAbort === controller)
|
|
290
|
+
this.openingTicket = false;
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
syncDetail() {
|
|
294
|
+
if (!this.detail || !this.selectedId)
|
|
295
|
+
return;
|
|
296
|
+
const ticket = this.resolvedTickets.get(this.selectedId) ?? this.findTicket(this.selectedId);
|
|
297
|
+
if (!ticket)
|
|
298
|
+
return;
|
|
299
|
+
// Host-fed updates take precedence for records on this board.
|
|
300
|
+
this.detail.ticket = this.tickets.find(item => item.id === this.selectedId) ?? ticket;
|
|
301
|
+
this.detail.tickets = [...this.tickets, ...[...this.resolvedTickets.values()].filter(item => !this.tickets.some(known => known.id === item.id))];
|
|
302
|
+
this.detail.columns = this.columns;
|
|
303
|
+
this.detail.people = this.people;
|
|
304
|
+
this.detail.provider = this.provider;
|
|
305
|
+
this.detail.searchTickets = this.searchTickets;
|
|
306
|
+
this.detail.comments = this.commentCache.get(this.selectedId) ?? [];
|
|
307
|
+
this.detail.commentDraft = this.commentDrafts.get(this.selectedId) ?? [];
|
|
308
|
+
this.detail.draft = this.ticketDrafts.get(this.selectedId);
|
|
309
|
+
this.detail.canGoBack = this.history.length > 0;
|
|
310
|
+
this.detail.saving = this.pendingTicketId === this.selectedId;
|
|
311
|
+
if (this.modal)
|
|
312
|
+
this.modal.heading = this.detail.ticket.key;
|
|
313
|
+
}
|
|
314
|
+
/** Replace a ticket's discussion with an authoritative snapshot (for realtime updates). */
|
|
315
|
+
setComments(ticketId, comments) {
|
|
316
|
+
if (comments.some(comment => comment.ticketId !== ticketId))
|
|
317
|
+
throw new Error('Comment ticket IDs must match.');
|
|
318
|
+
this.commentCache.set(ticketId, [...comments]);
|
|
319
|
+
this.commentRevisions.set(ticketId, (this.commentRevisions.get(ticketId) ?? 0) + 1);
|
|
320
|
+
this.syncDetail();
|
|
321
|
+
}
|
|
322
|
+
async refreshComments(ticketId = this.selectedId) {
|
|
323
|
+
this.commentsAbort?.abort();
|
|
324
|
+
const controller = this.commentsAbort = new AbortController();
|
|
325
|
+
if (!ticketId || !this.provider.loadComments) {
|
|
326
|
+
if (this.detail) {
|
|
327
|
+
this.detail.loadingComments = false;
|
|
328
|
+
this.detail.commentsError = '';
|
|
329
|
+
}
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
const revision = this.commentRevisions.get(ticketId) ?? 0;
|
|
333
|
+
const existingIds = new Set((this.commentCache.get(ticketId) ?? []).map(comment => comment.id));
|
|
334
|
+
if (this.detail && ticketId === this.selectedId) {
|
|
335
|
+
this.detail.loadingComments = true;
|
|
336
|
+
this.detail.commentsError = '';
|
|
337
|
+
}
|
|
338
|
+
try {
|
|
339
|
+
const comments = await this.provider.loadComments(ticketId, controller.signal);
|
|
340
|
+
if (!controller.signal.aborted && (this.commentRevisions.get(ticketId) ?? 0) === revision) {
|
|
341
|
+
const postedWhileLoading = (this.commentCache.get(ticketId) ?? []).filter(comment => !existingIds.has(comment.id) && !comments.some(item => item.id === comment.id));
|
|
342
|
+
this.setComments(ticketId, [...comments, ...postedWhileLoading]);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
catch (error) {
|
|
346
|
+
if (!controller.signal.aborted && this.detail && ticketId === this.selectedId)
|
|
347
|
+
this.detail.commentsError = kanbanError(error);
|
|
348
|
+
}
|
|
349
|
+
finally {
|
|
350
|
+
if (!controller.signal.aborted && this.detail && ticketId === this.selectedId)
|
|
351
|
+
this.detail.loadingComments = false;
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
mergeTickets(tickets, addToBoard = false) {
|
|
355
|
+
for (const ticket of tickets)
|
|
356
|
+
this.resolvedTickets.set(ticket.id, ticket);
|
|
357
|
+
this.tickets = this.tickets.map(ticket => tickets.find(item => item.id === ticket.id) ?? ticket);
|
|
358
|
+
if (addToBoard)
|
|
359
|
+
this.tickets = [...this.tickets, ...tickets.filter(ticket => !this.tickets.some(item => item.id === ticket.id))];
|
|
360
|
+
this.syncDetail();
|
|
361
|
+
kanbanEvent(this, 'kanban-change', { tickets });
|
|
362
|
+
}
|
|
363
|
+
/** Provider commits the move and supplies the new ordering. Hierarchy is never part of a move request. */
|
|
364
|
+
async moveTicket(input) {
|
|
365
|
+
const ticket = this.findTicket(input.ticketId);
|
|
366
|
+
if (!ticket || !this.provider.moveTicket || ticket.permissions?.move === false || this.pendingTicketId || input.beforeTicketId === ticket.id)
|
|
367
|
+
return;
|
|
368
|
+
if (!this.columns.some(column => column.id === input.columnId)) {
|
|
369
|
+
this.reportError(new Error('Unknown destination column.'));
|
|
370
|
+
return;
|
|
371
|
+
}
|
|
372
|
+
const before = input.beforeTicketId ? this.findTicket(input.beforeTicketId) : undefined;
|
|
373
|
+
if (input.beforeTicketId && (!before || before.columnId !== input.columnId || before.kind !== ticket.kind)) {
|
|
374
|
+
this.reportError(new Error('Invalid insertion target.'));
|
|
375
|
+
return;
|
|
376
|
+
}
|
|
377
|
+
this.pendingTicketId = ticket.id;
|
|
378
|
+
this.operationError = '';
|
|
379
|
+
this.draggingTicketId = '';
|
|
380
|
+
try {
|
|
381
|
+
const changed = await this.provider.moveTicket(input);
|
|
382
|
+
if (!changed.some(item => item.id === ticket.id))
|
|
383
|
+
throw new Error('The move provider did not return the moved ticket.');
|
|
384
|
+
this.mergeTickets(changed);
|
|
385
|
+
}
|
|
386
|
+
catch (error) {
|
|
387
|
+
this.reportError(error);
|
|
388
|
+
}
|
|
389
|
+
finally {
|
|
390
|
+
this.pendingTicketId = '';
|
|
391
|
+
this.syncDetail();
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
async saveTicket(ticketId, draft) {
|
|
395
|
+
const ticket = this.findTicket(ticketId);
|
|
396
|
+
if (!ticket || !this.provider.updateTicket || ticket.permissions?.edit === false || this.pendingTicketId || !draft.title.trim())
|
|
397
|
+
return;
|
|
398
|
+
const parent = draft.parentId ? this.findTicket(draft.parentId) : undefined;
|
|
399
|
+
if ((ticket.kind === 'subtask' && parent?.kind !== 'task') || (ticket.kind === 'task' && draft.parentId && parent?.kind !== 'epic')) {
|
|
400
|
+
this.reportError(new Error('Choose a valid parent ticket.'));
|
|
401
|
+
return;
|
|
402
|
+
}
|
|
403
|
+
const assignee = this.people.find(person => person.id === draft.assigneeId) ?? (ticket.assignee?.id === draft.assigneeId ? ticket.assignee : undefined);
|
|
404
|
+
if (draft.assigneeId && !assignee) {
|
|
405
|
+
this.reportError(new Error('Choose an available assignee.'));
|
|
406
|
+
return;
|
|
407
|
+
}
|
|
408
|
+
this.pendingTicketId = ticketId;
|
|
409
|
+
this.operationError = '';
|
|
410
|
+
if (this.detail)
|
|
411
|
+
this.detail.error = '';
|
|
412
|
+
try {
|
|
413
|
+
const saved = await this.provider.updateTicket({ ticketId, changes: { title: draft.title.trim(), description: draft.description,
|
|
414
|
+
priority: draft.priority, assignee: assignee ?? null, parentId: ticket.kind === 'epic' ? null : draft.parentId || null } });
|
|
415
|
+
if (saved.id !== ticketId)
|
|
416
|
+
throw new Error('The update provider returned a different ticket.');
|
|
417
|
+
this.ticketDrafts.delete(ticketId);
|
|
418
|
+
this.mergeTickets([saved]);
|
|
419
|
+
if (this.selectedId === ticketId)
|
|
420
|
+
this.detail?.finishEditing();
|
|
421
|
+
}
|
|
422
|
+
catch (error) {
|
|
423
|
+
this.reportError(error);
|
|
424
|
+
}
|
|
425
|
+
finally {
|
|
426
|
+
this.pendingTicketId = '';
|
|
427
|
+
this.syncDetail();
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
async createTicket(input) {
|
|
431
|
+
if (!this.provider.createTicket || !this.columns.some(column => column.id === input.columnId))
|
|
432
|
+
return;
|
|
433
|
+
const parent = input.parentId ? this.findTicket(input.parentId) : undefined;
|
|
434
|
+
if (parent?.permissions?.createChild === false)
|
|
435
|
+
return;
|
|
436
|
+
if ((input.kind === 'subtask' && parent?.kind !== 'task') || (input.kind === 'task' && parent && parent.kind !== 'epic'))
|
|
437
|
+
return;
|
|
438
|
+
const parentId = input.parentId ?? (input.kind === 'task' ? this.epicId || undefined : undefined);
|
|
439
|
+
await DeesModal.prompt({ heading: `New ${input.kind}`, label: 'Title', confirmLabel: 'Create', onConfirm: async (title) => {
|
|
440
|
+
const ticket = await this.provider.createTicket({ ...input, parentId, title });
|
|
441
|
+
this.mergeTickets([ticket], true);
|
|
442
|
+
} });
|
|
443
|
+
}
|
|
444
|
+
async openMoveMenu(ticketId, anchor) {
|
|
445
|
+
const ticket = this.findTicket(ticketId);
|
|
446
|
+
if (!ticket || !this.provider.moveTicket || ticket.permissions?.move === false || this.pendingTicketId)
|
|
447
|
+
return;
|
|
448
|
+
const siblings = sortKanbanTickets(this.tickets.filter(item => item.columnId === ticket.columnId && item.kind === ticket.kind));
|
|
449
|
+
const index = siblings.findIndex(item => item.id === ticket.id);
|
|
450
|
+
const rect = anchor.getBoundingClientRect();
|
|
451
|
+
await DeesContextmenu.openContextMenuWithOptions(new MouseEvent('click', { clientX: rect.right, clientY: rect.bottom }), [
|
|
452
|
+
{ name: 'Move up', disabled: index <= 0, action: async () => { if (index > 0)
|
|
453
|
+
await this.moveTicket({ ticketId, columnId: ticket.columnId, beforeTicketId: siblings[index - 1].id }); } },
|
|
454
|
+
{ name: 'Move down', disabled: index < 0 || index >= siblings.length - 1, action: async () => { if (index >= 0 && index < siblings.length - 1)
|
|
455
|
+
await this.moveTicket({ ticketId, columnId: ticket.columnId, beforeTicketId: siblings[index + 2]?.id }); } },
|
|
456
|
+
{ divider: true }, ...this.columns.filter(column => column.id !== ticket.columnId).map(column => ({ name: `Move to ${column.title}`, action: async () => { await this.moveTicket({ ticketId, columnId: column.id }); } })),
|
|
457
|
+
], { ownerElement: anchor });
|
|
458
|
+
}
|
|
459
|
+
reportError(error) {
|
|
460
|
+
this.operationError = kanbanError(error);
|
|
461
|
+
if (this.detail && this.modal)
|
|
462
|
+
this.detail.error = this.operationError;
|
|
463
|
+
kanbanEvent(this, 'kanban-error', { error, message: this.operationError });
|
|
464
|
+
}
|
|
465
|
+
handleInteraction = (event) => {
|
|
466
|
+
event.stopPropagation();
|
|
467
|
+
const { type, detail } = event;
|
|
468
|
+
switch (type) {
|
|
469
|
+
case 'kanban-ticket-open':
|
|
470
|
+
void this.openTicket(detail.ticketId);
|
|
471
|
+
break;
|
|
472
|
+
case 'kanban-ticket-move':
|
|
473
|
+
void this.moveTicket(detail);
|
|
474
|
+
break;
|
|
475
|
+
case 'kanban-ticket-create':
|
|
476
|
+
void this.createTicket(detail).catch(error => this.reportError(error));
|
|
477
|
+
break;
|
|
478
|
+
case 'kanban-move-menu':
|
|
479
|
+
void this.openMoveMenu(detail.ticketId, detail.anchor).catch(error => this.reportError(error));
|
|
480
|
+
break;
|
|
481
|
+
case 'kanban-ticket-save':
|
|
482
|
+
void this.saveTicket(detail.ticketId, detail.draft);
|
|
483
|
+
break;
|
|
484
|
+
case 'kanban-ticket-draft':
|
|
485
|
+
if (detail.draft)
|
|
486
|
+
this.ticketDrafts.set(detail.ticketId, detail.draft);
|
|
487
|
+
else
|
|
488
|
+
this.ticketDrafts.delete(detail.ticketId);
|
|
489
|
+
this.syncDetail();
|
|
490
|
+
break;
|
|
491
|
+
case 'kanban-comment-draft':
|
|
492
|
+
this.commentDrafts.set(detail.ticketId, detail.body);
|
|
493
|
+
break;
|
|
494
|
+
case 'kanban-comment-added': {
|
|
495
|
+
const { comment, submittedBody } = detail;
|
|
496
|
+
const comments = this.commentCache.get(comment.ticketId) ?? [];
|
|
497
|
+
this.commentCache.set(comment.ticketId, [...comments.filter(item => item.id !== comment.id), comment]);
|
|
498
|
+
if (JSON.stringify(this.commentDrafts.get(comment.ticketId) ?? []) === JSON.stringify(submittedBody))
|
|
499
|
+
this.commentDrafts.delete(comment.ticketId);
|
|
500
|
+
this.syncDetail();
|
|
501
|
+
kanbanEvent(this, 'kanban-comment-saved', { comment });
|
|
502
|
+
break;
|
|
503
|
+
}
|
|
504
|
+
case 'kanban-comments-refresh':
|
|
505
|
+
void this.refreshComments(detail.ticketId);
|
|
506
|
+
break;
|
|
507
|
+
case 'kanban-detail-back': {
|
|
508
|
+
const previous = this.history.pop();
|
|
509
|
+
if (previous)
|
|
510
|
+
void this.openTicket(previous, false);
|
|
511
|
+
break;
|
|
512
|
+
}
|
|
513
|
+
case 'kanban-drag-start':
|
|
514
|
+
this.draggingTicketId = detail.ticketId;
|
|
515
|
+
break;
|
|
516
|
+
case 'kanban-drag-end':
|
|
517
|
+
this.draggingTicketId = '';
|
|
518
|
+
break;
|
|
519
|
+
}
|
|
520
|
+
};
|
|
521
|
+
async disconnectedCallback() {
|
|
522
|
+
for (const name of interactionEvents)
|
|
523
|
+
this.removeEventListener(name, this.handleInteraction);
|
|
524
|
+
this.openAbort?.abort();
|
|
525
|
+
this.commentsAbort?.abort();
|
|
526
|
+
void this.modal?.destroy();
|
|
527
|
+
await super.disconnectedCallback();
|
|
528
|
+
}
|
|
529
|
+
static {
|
|
530
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
531
|
+
}
|
|
532
|
+
};
|
|
533
|
+
return DeesKanban = _classThis;
|
|
534
|
+
})();
|
|
535
|
+
export { DeesKanban };
|
|
536
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1rYW5iYW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC1rYW5iYW4vZGVlcy1rYW5iYW4vZGVlcy1rYW5iYW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBSXJHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDN0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDbkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLDZDQUE2QyxDQUFDO0FBSXJELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxzQkFBc0IsRUFBRSxrQkFBa0I7SUFDL0csb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUseUJBQXlCO0lBQ3RILG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixDQUFVLENBQUM7SUFtQjVELFVBQVU7NEJBRHRCLGFBQWEsQ0FBQyxhQUFhLENBQUM7Ozs7c0JBQ0csV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzswQkFBbkIsU0FBUSxXQUFXOzs7O21DQUd4QyxR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
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { DeesElement } from '@design.estate/dees-element';
|
|
2
|
+
import type { IKanbanTicket, IKanbanColumn } from '../interfaces.js';
|
|
3
|
+
import '../../00group-button/dees-button/dees-button.js';
|
|
4
|
+
import '../../00group-utility/dees-icon/dees-icon.js';
|
|
5
|
+
declare global {
|
|
6
|
+
interface HTMLElementTagNameMap {
|
|
7
|
+
'dees-kanban-card': DeesKanbanCard;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export declare class DeesKanbanCard extends DeesElement {
|
|
11
|
+
accessor ticket: IKanbanTicket | undefined;
|
|
12
|
+
accessor epic: IKanbanTicket | undefined;
|
|
13
|
+
accessor subtasks: IKanbanTicket[];
|
|
14
|
+
accessor columns: IKanbanColumn[];
|
|
15
|
+
accessor movable: boolean;
|
|
16
|
+
accessor pending: boolean;
|
|
17
|
+
static styles: import("@design.estate/dees-element").CSSResult[];
|
|
18
|
+
private open;
|
|
19
|
+
render(): import("@design.estate/dees-element").TemplateResult<1>;
|
|
20
|
+
}
|