@grafloria/element 0.2.0 → 0.3.1
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/README.md +30 -0
- package/package.json +2 -2
- package/src/index.d.ts +1 -1
- package/src/index.js.map +1 -1
- package/src/lib/dashboard-kit/index.d.ts +1 -1
- package/src/lib/dashboard-kit/index.js.map +1 -1
- package/src/lib/grafloria.d.ts +2 -1
- package/src/lib/grafloria.js +3 -1
- package/src/lib/grafloria.js.map +1 -1
- package/esm/src/index.js +0 -284
- package/esm/src/index.js.map +0 -1
- package/esm/src/lib/dashboard-kit/dashboard.js +0 -590
- package/esm/src/lib/dashboard-kit/dashboard.js.map +0 -1
- package/esm/src/lib/dashboard-kit/grid-binder.js +0 -1632
- package/esm/src/lib/dashboard-kit/grid-binder.js.map +0 -1
- package/esm/src/lib/dashboard-kit/grid-mapping.js +0 -164
- package/esm/src/lib/dashboard-kit/grid-mapping.js.map +0 -1
- package/esm/src/lib/dashboard-kit/index.js +0 -8
- package/esm/src/lib/dashboard-kit/index.js.map +0 -1
- package/esm/src/lib/dashboard-kit/styles.js +0 -199
- package/esm/src/lib/dashboard-kit/styles.js.map +0 -1
- package/esm/src/lib/dashboard-kit/widgets.js +0 -379
- package/esm/src/lib/dashboard-kit/widgets.js.map +0 -1
- package/esm/src/lib/diagram-kit/card.js +0 -199
- package/esm/src/lib/diagram-kit/card.js.map +0 -1
- package/esm/src/lib/diagram-kit/editing.js +0 -286
- package/esm/src/lib/diagram-kit/editing.js.map +0 -1
- package/esm/src/lib/diagram-kit/er.js +0 -160
- package/esm/src/lib/diagram-kit/er.js.map +0 -1
- package/esm/src/lib/diagram-kit/handles.js +0 -312
- package/esm/src/lib/diagram-kit/handles.js.map +0 -1
- package/esm/src/lib/diagram-kit/index.js +0 -9
- package/esm/src/lib/diagram-kit/index.js.map +0 -1
- package/esm/src/lib/diagram-kit/rows.js +0 -144
- package/esm/src/lib/diagram-kit/rows.js.map +0 -1
- package/esm/src/lib/diagram-kit/styles.js +0 -110
- package/esm/src/lib/diagram-kit/styles.js.map +0 -1
- package/esm/src/lib/diagram-kit/uml.js +0 -135
- package/esm/src/lib/diagram-kit/uml.js.map +0 -1
- package/esm/src/lib/diagram-kit/update.js +0 -244
- package/esm/src/lib/diagram-kit/update.js.map +0 -1
- package/esm/src/lib/grafloria-flow-element.js +0 -266
- package/esm/src/lib/grafloria-flow-element.js.map +0 -1
- package/esm/src/lib/grafloria.js +0 -67
- package/esm/src/lib/grafloria.js.map +0 -1
- package/esm/src/lib/load.js +0 -252
- package/esm/src/lib/load.js.map +0 -1
- package/esm/src/lib/node-type-registry.js +0 -42
- package/esm/src/lib/node-type-registry.js.map +0 -1
|
@@ -1,312 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { updateEntity, updateClass } from './update';
|
|
3
|
-
const deep = (v) => JSON.parse(JSON.stringify(v));
|
|
4
|
-
// ---------------------------------------------------------------------------
|
|
5
|
-
// Base
|
|
6
|
-
// ---------------------------------------------------------------------------
|
|
7
|
-
export class CardHandle {
|
|
8
|
-
constructor(api, id) {
|
|
9
|
-
this.api = api;
|
|
10
|
-
this.id = id;
|
|
11
|
-
}
|
|
12
|
-
/** The live node, or undefined once deleted. Handles never cache it. */
|
|
13
|
-
liveNode() {
|
|
14
|
-
return this.api.getModel().getNode(this.id);
|
|
15
|
-
}
|
|
16
|
-
get exists() {
|
|
17
|
-
return this.liveNode() !== undefined;
|
|
18
|
-
}
|
|
19
|
-
/** Escape hatch to the underlying NodeModel (typed loosely on purpose). */
|
|
20
|
-
get node() {
|
|
21
|
-
return this.liveNode();
|
|
22
|
-
}
|
|
23
|
-
get width() {
|
|
24
|
-
var _a, _b;
|
|
25
|
-
return (_b = (_a = this.liveNode()) === null || _a === void 0 ? void 0 : _a.size.width) !== null && _b !== void 0 ? _b : 0;
|
|
26
|
-
}
|
|
27
|
-
get height() {
|
|
28
|
-
var _a, _b;
|
|
29
|
-
return (_b = (_a = this.liveNode()) === null || _a === void 0 ? void 0 : _a.size.height) !== null && _b !== void 0 ? _b : 0;
|
|
30
|
-
}
|
|
31
|
-
select() {
|
|
32
|
-
var _a, _b, _c;
|
|
33
|
-
const model = this.api.getModel();
|
|
34
|
-
const node = model.getNode(this.id);
|
|
35
|
-
if (node)
|
|
36
|
-
(_a = model.selectNode) === null || _a === void 0 ? void 0 : _a.call(model, node);
|
|
37
|
-
(_c = (_b = this.api).renderNow) === null || _c === void 0 ? void 0 : _c.call(_b);
|
|
38
|
-
}
|
|
39
|
-
undo() {
|
|
40
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
-
var _a, _b, _c, _d, _e;
|
|
42
|
-
yield ((_c = (_b = (_a = this.api).getEngine) === null || _b === void 0 ? void 0 : _b.call(_a)) === null || _c === void 0 ? void 0 : _c.undo());
|
|
43
|
-
(_e = (_d = this.api).renderNow) === null || _e === void 0 ? void 0 : _e.call(_d);
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
redo() {
|
|
47
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
-
var _a, _b, _c, _d, _e;
|
|
49
|
-
yield ((_c = (_b = (_a = this.api).getEngine) === null || _b === void 0 ? void 0 : _b.call(_a)) === null || _c === void 0 ? void 0 : _c.redo());
|
|
50
|
-
(_e = (_d = this.api).renderNow) === null || _e === void 0 ? void 0 : _e.call(_d);
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Row-selection events for THIS card only (the kit's `axk:row-select`,
|
|
55
|
-
* filtered). ER cards resolve the selection to a typed {@link ErField} when
|
|
56
|
-
* possible. Returns an unbind function.
|
|
57
|
-
*/
|
|
58
|
-
onRowSelect(cb) {
|
|
59
|
-
const handler = (event) => {
|
|
60
|
-
var _a, _b, _c;
|
|
61
|
-
const selected = (_b = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.selected) !== null && _b !== void 0 ? _b : null;
|
|
62
|
-
if (selected && selected.nodeId !== this.id)
|
|
63
|
-
return; // another card
|
|
64
|
-
if (!selected) {
|
|
65
|
-
cb({ field: null, selected: null });
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
const field = this instanceof ErTable && selected.name !== undefined
|
|
69
|
-
? ((_c = this.columns.get(selected.name)) !== null && _c !== void 0 ? _c : null)
|
|
70
|
-
: null;
|
|
71
|
-
cb({ field, selected });
|
|
72
|
-
};
|
|
73
|
-
this.api.container.addEventListener('axk:row-select', handler);
|
|
74
|
-
return () => this.api.container.removeEventListener('axk:row-select', handler);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
// ---------------------------------------------------------------------------
|
|
78
|
-
// ER
|
|
79
|
-
// ---------------------------------------------------------------------------
|
|
80
|
-
/** A column of an {@link ErTable} — itself just (table, name): stateless. */
|
|
81
|
-
export class ErField {
|
|
82
|
-
constructor(table, columnName) {
|
|
83
|
-
this.table = table;
|
|
84
|
-
this.columnName = columnName;
|
|
85
|
-
}
|
|
86
|
-
col() {
|
|
87
|
-
return this.table.spec.columns.find((c) => c.name === this.columnName);
|
|
88
|
-
}
|
|
89
|
-
get exists() {
|
|
90
|
-
return this.col() !== undefined;
|
|
91
|
-
}
|
|
92
|
-
get name() {
|
|
93
|
-
return this.columnName;
|
|
94
|
-
}
|
|
95
|
-
get index() {
|
|
96
|
-
return this.table.spec.columns.findIndex((c) => c.name === this.columnName);
|
|
97
|
-
}
|
|
98
|
-
get type() {
|
|
99
|
-
var _a;
|
|
100
|
-
return (_a = this.col()) === null || _a === void 0 ? void 0 : _a.type;
|
|
101
|
-
}
|
|
102
|
-
get pk() {
|
|
103
|
-
var _a;
|
|
104
|
-
return ((_a = this.col()) === null || _a === void 0 ? void 0 : _a.pk) === true;
|
|
105
|
-
}
|
|
106
|
-
get fk() {
|
|
107
|
-
var _a;
|
|
108
|
-
return ((_a = this.col()) === null || _a === void 0 ? void 0 : _a.fk) === true;
|
|
109
|
-
}
|
|
110
|
-
/** Rename — the field port keeps its id, so attached edges stay glued. */
|
|
111
|
-
rename(name) {
|
|
112
|
-
return this.table.columns.renameAt(this.index, name);
|
|
113
|
-
}
|
|
114
|
-
setType(type) {
|
|
115
|
-
return this.table.columns.patchAt(this.index, { type });
|
|
116
|
-
}
|
|
117
|
-
setKeys(keys) {
|
|
118
|
-
return this.table.columns.patchAt(this.index, keys);
|
|
119
|
-
}
|
|
120
|
-
/** Remove this column (its ports and attached edges are dropped). */
|
|
121
|
-
remove() {
|
|
122
|
-
return this.table.columns.removeAt(this.index);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
/** The columns collection of an {@link ErTable}. Iterable of {@link ErField}. */
|
|
126
|
-
export class ErColumnList {
|
|
127
|
-
constructor(table) {
|
|
128
|
-
this.table = table;
|
|
129
|
-
}
|
|
130
|
-
cols() {
|
|
131
|
-
return this.table.spec.columns;
|
|
132
|
-
}
|
|
133
|
-
get length() {
|
|
134
|
-
return this.cols().length;
|
|
135
|
-
}
|
|
136
|
-
names() {
|
|
137
|
-
return this.cols().map((c) => c.name);
|
|
138
|
-
}
|
|
139
|
-
at(index) {
|
|
140
|
-
const c = this.cols()[index];
|
|
141
|
-
return c ? new ErField(this.table, c.name) : undefined;
|
|
142
|
-
}
|
|
143
|
-
get(name) {
|
|
144
|
-
return this.cols().some((c) => c.name === name) ? new ErField(this.table, name) : undefined;
|
|
145
|
-
}
|
|
146
|
-
[Symbol.iterator]() {
|
|
147
|
-
return this.cols()
|
|
148
|
-
.map((c) => new ErField(this.table, c.name))[Symbol.iterator]();
|
|
149
|
-
}
|
|
150
|
-
add(column, opts = {}) {
|
|
151
|
-
var _a;
|
|
152
|
-
const next = [...this.cols()];
|
|
153
|
-
next.splice((_a = opts.at) !== null && _a !== void 0 ? _a : next.length, 0, Object.assign({}, column));
|
|
154
|
-
return this.table.update({ columns: next });
|
|
155
|
-
}
|
|
156
|
-
removeAt(index) {
|
|
157
|
-
const next = this.cols().filter((_, i) => i !== index);
|
|
158
|
-
return this.table.update({ columns: next });
|
|
159
|
-
}
|
|
160
|
-
renameAt(index, name) {
|
|
161
|
-
return this.patchAt(index, { name });
|
|
162
|
-
}
|
|
163
|
-
patchAt(index, patch) {
|
|
164
|
-
const next = this.cols().map((c, i) => (i === index ? Object.assign(Object.assign({}, c), patch) : c));
|
|
165
|
-
return this.table.update({ columns: next });
|
|
166
|
-
}
|
|
167
|
-
move(from, to) {
|
|
168
|
-
const next = [...this.cols()];
|
|
169
|
-
const [c] = next.splice(from, 1);
|
|
170
|
-
next.splice(to, 0, c);
|
|
171
|
-
return this.table.update({ columns: next });
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
export class ErTable extends CardHandle {
|
|
175
|
-
constructor() {
|
|
176
|
-
super(...arguments);
|
|
177
|
-
this.columns = new ErColumnList(this);
|
|
178
|
-
}
|
|
179
|
-
/** A deep COPY of the stored entity spec — never a live reference. */
|
|
180
|
-
get spec() {
|
|
181
|
-
var _a, _b;
|
|
182
|
-
const raw = (_b = (_a = this.liveNode()) === null || _a === void 0 ? void 0 : _a.getMetadata) === null || _b === void 0 ? void 0 : _b.call(_a, 'kitEntity');
|
|
183
|
-
if (!raw)
|
|
184
|
-
throw new Error(`erTable('${this.id}'): the node is gone`);
|
|
185
|
-
return deep(raw);
|
|
186
|
-
}
|
|
187
|
-
get name() {
|
|
188
|
-
var _a;
|
|
189
|
-
return (_a = this.spec.name) !== null && _a !== void 0 ? _a : this.id;
|
|
190
|
-
}
|
|
191
|
-
rename(name) {
|
|
192
|
-
return this.update({ name });
|
|
193
|
-
}
|
|
194
|
-
resize(size) {
|
|
195
|
-
return this.update(size);
|
|
196
|
-
}
|
|
197
|
-
/** The raw delta path — everything above funnels through here. */
|
|
198
|
-
update(delta) {
|
|
199
|
-
return updateEntity(this.api, this.id, delta);
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
// ---------------------------------------------------------------------------
|
|
203
|
-
// UML
|
|
204
|
-
// ---------------------------------------------------------------------------
|
|
205
|
-
/** attributes / methods of a {@link UmlClass} (members are plain strings). */
|
|
206
|
-
export class UmlMemberList {
|
|
207
|
-
constructor(cls, kind) {
|
|
208
|
-
this.cls = cls;
|
|
209
|
-
this.kind = kind;
|
|
210
|
-
}
|
|
211
|
-
list() {
|
|
212
|
-
var _a;
|
|
213
|
-
return (_a = this.cls.spec[this.kind]) !== null && _a !== void 0 ? _a : [];
|
|
214
|
-
}
|
|
215
|
-
get length() {
|
|
216
|
-
return this.list().length;
|
|
217
|
-
}
|
|
218
|
-
at(index) {
|
|
219
|
-
return this.list()[index];
|
|
220
|
-
}
|
|
221
|
-
add(member, opts = {}) {
|
|
222
|
-
var _a;
|
|
223
|
-
const next = [...this.list()];
|
|
224
|
-
next.splice((_a = opts.at) !== null && _a !== void 0 ? _a : next.length, 0, member);
|
|
225
|
-
return this.cls.update({ [this.kind]: next });
|
|
226
|
-
}
|
|
227
|
-
removeAt(index) {
|
|
228
|
-
return this.cls.update({ [this.kind]: this.list().filter((_, i) => i !== index) });
|
|
229
|
-
}
|
|
230
|
-
renameAt(index, member) {
|
|
231
|
-
return this.cls.update({ [this.kind]: this.list().map((m, i) => (i === index ? member : m)) });
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
export class UmlClass extends CardHandle {
|
|
235
|
-
constructor() {
|
|
236
|
-
super(...arguments);
|
|
237
|
-
this.attributes = new UmlMemberList(this, 'attributes');
|
|
238
|
-
this.methods = new UmlMemberList(this, 'methods');
|
|
239
|
-
}
|
|
240
|
-
/** A deep COPY of the stored class spec — never a live reference. */
|
|
241
|
-
get spec() {
|
|
242
|
-
var _a, _b;
|
|
243
|
-
const raw = (_b = (_a = this.liveNode()) === null || _a === void 0 ? void 0 : _a.getMetadata) === null || _b === void 0 ? void 0 : _b.call(_a, 'kitClass');
|
|
244
|
-
if (!raw)
|
|
245
|
-
throw new Error(`umlClass('${this.id}'): the node is gone`);
|
|
246
|
-
return deep(raw);
|
|
247
|
-
}
|
|
248
|
-
get name() {
|
|
249
|
-
var _a;
|
|
250
|
-
return (_a = this.spec.name) !== null && _a !== void 0 ? _a : this.id;
|
|
251
|
-
}
|
|
252
|
-
get abstract() {
|
|
253
|
-
return this.spec.abstract === true;
|
|
254
|
-
}
|
|
255
|
-
get stereotype() {
|
|
256
|
-
return this.spec.stereotype;
|
|
257
|
-
}
|
|
258
|
-
rename(name) {
|
|
259
|
-
return this.update({ name });
|
|
260
|
-
}
|
|
261
|
-
resize(size) {
|
|
262
|
-
return this.update(size);
|
|
263
|
-
}
|
|
264
|
-
setAbstract(abstract) {
|
|
265
|
-
return this.update({ abstract });
|
|
266
|
-
}
|
|
267
|
-
setStereotype(stereotype) {
|
|
268
|
-
return this.update({ stereotype });
|
|
269
|
-
}
|
|
270
|
-
update(delta) {
|
|
271
|
-
return updateClass(this.api, this.id, delta);
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
// ---------------------------------------------------------------------------
|
|
275
|
-
// Factories
|
|
276
|
-
// ---------------------------------------------------------------------------
|
|
277
|
-
function requireKit(api, id, key, what) {
|
|
278
|
-
var _a;
|
|
279
|
-
const node = api.getModel().getNode(id);
|
|
280
|
-
if (!node)
|
|
281
|
-
throw new Error(`${what}('${id}'): no node with that id`);
|
|
282
|
-
if (!((_a = node.getMetadata) === null || _a === void 0 ? void 0 : _a.call(node, key))) {
|
|
283
|
-
throw new Error(`${what}('${id}'): that node is not an ${what === 'erTable' ? 'ER table' : 'UML class'} (missing metadata.${key})`);
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
/** Typed handle for a kit ER table. Throws for unknown ids / non-kit nodes. */
|
|
287
|
-
export function erTable(api, id) {
|
|
288
|
-
requireKit(api, id, 'kitEntity', 'erTable');
|
|
289
|
-
return new ErTable(api, id);
|
|
290
|
-
}
|
|
291
|
-
/** Typed handle for a kit UML class. Throws for unknown ids / non-kit nodes. */
|
|
292
|
-
export function umlClass(api, id) {
|
|
293
|
-
requireKit(api, id, 'kitClass', 'umlClass');
|
|
294
|
-
return new UmlClass(api, id);
|
|
295
|
-
}
|
|
296
|
-
/** Every kit ER table in the diagram, as handles. */
|
|
297
|
-
export function erTables(api) {
|
|
298
|
-
var _a, _b;
|
|
299
|
-
const model = api.getModel();
|
|
300
|
-
return ((_b = (_a = model.getNodes) === null || _a === void 0 ? void 0 : _a.call(model)) !== null && _b !== void 0 ? _b : [])
|
|
301
|
-
.filter((n) => { var _a; return (_a = n.getMetadata) === null || _a === void 0 ? void 0 : _a.call(n, 'kitEntity'); })
|
|
302
|
-
.map((n) => new ErTable(api, n.id));
|
|
303
|
-
}
|
|
304
|
-
/** Every kit UML class in the diagram, as handles. */
|
|
305
|
-
export function umlClasses(api) {
|
|
306
|
-
var _a, _b;
|
|
307
|
-
const model = api.getModel();
|
|
308
|
-
return ((_b = (_a = model.getNodes) === null || _a === void 0 ? void 0 : _a.call(model)) !== null && _b !== void 0 ? _b : [])
|
|
309
|
-
.filter((n) => { var _a; return (_a = n.getMetadata) === null || _a === void 0 ? void 0 : _a.call(n, 'kitClass'); })
|
|
310
|
-
.map((n) => new UmlClass(api, n.id));
|
|
311
|
-
}
|
|
312
|
-
//# sourceMappingURL=handles.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handles.js","sourceRoot":"","sources":["../../../../../../../libs/element/src/lib/diagram-kit/handles.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export { erDiagram, erRowCenterY, ER_ROW_H, ER_HEAD_H, } from './er';
|
|
2
|
-
export { umlDiagram, } from './uml';
|
|
3
|
-
export { ensureDiagramKitStyles, DIAGRAM_KIT_STYLE_ID } from './styles';
|
|
4
|
-
export { bindRowInteractions } from './rows';
|
|
5
|
-
export { updateEntity, updateClass, addColumnAt, removeColumnAt, renameColumnAt, } from './update';
|
|
6
|
-
export { bindCardEditing } from './editing';
|
|
7
|
-
export { matchColumns, rowIndexFromY } from './card';
|
|
8
|
-
export { erTable, umlClass, erTables, umlClasses, CardHandle, ErTable, ErField, ErColumnList, UmlClass, UmlMemberList, } from './handles';
|
|
9
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/element/src/lib/diagram-kit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,SAAS,GAOV,MAAM,MAAM,CAAC;AACd,OAAO,EACL,UAAU,GAMX,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAA2C,MAAM,QAAQ,CAAC;AACtF,OAAO,EACL,YAAY,EACZ,WAAW,EACX,WAAW,EACX,cAAc,EACd,cAAc,GAGf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,eAAe,EAA0B,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,UAAU,EACV,OAAO,EACP,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,aAAa,GAEd,MAAM,WAAW,CAAC"}
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Row interactions — "select a column / field" on kit cards (P1 of the
|
|
3
|
-
* ER/UML editing track).
|
|
4
|
-
*
|
|
5
|
-
* Kit cards are `interactive: true` (their rows are real DOM targets — the
|
|
6
|
-
* binder's node click/drag resolution is geometric, so dragging and selecting
|
|
7
|
-
* the TABLE keeps working; proven live before this was built). This module is
|
|
8
|
-
* the runtime the kit's `finalize(api)` binds once per diagram:
|
|
9
|
-
*
|
|
10
|
-
* - click a row → it becomes THE selected row (one per diagram), painted with
|
|
11
|
-
* `.axk-row-selected`; click again or click anywhere else → deselected;
|
|
12
|
-
* - every row click dispatches `axk:row-click` on the container, and every
|
|
13
|
-
* selection CHANGE dispatches `axk:row-select` — both bubbling
|
|
14
|
-
* CustomEvents, matching the element package's "DOM events out" contract;
|
|
15
|
-
* - the selected row survives card re-renders: the renderer keys the
|
|
16
|
-
* foreignObject by content hash, so an html edit swaps the subtree and
|
|
17
|
-
* drops the class — a MutationObserver re-applies it by (nodeId, rowIndex);
|
|
18
|
-
* - selection is EPHEMERAL view state, exactly like node selection: never
|
|
19
|
-
* serialized, never in the op log, not undoable.
|
|
20
|
-
*
|
|
21
|
-
* Row identity: `rowIndex` is the position among the card's rows (ER columns,
|
|
22
|
-
* or UML members across both compartments); `name` resolves from the spec the
|
|
23
|
-
* kit stored in node metadata (`kitEntity` / `kitClass`), falling back to the
|
|
24
|
-
* row's text.
|
|
25
|
-
*/
|
|
26
|
-
const ROW_SELECTOR = '.axk-row, .axk-member';
|
|
27
|
-
const SELECTED_CLASS = 'axk-row-selected';
|
|
28
|
-
/** One binding per container — rebinding disposes the previous one. */
|
|
29
|
-
const bindings = new WeakMap();
|
|
30
|
-
function rowsOfNode(container, nodeId) {
|
|
31
|
-
const esc = (window.CSS && CSS.escape) ? CSS.escape(nodeId) : nodeId.replace(/"/g, '\\"');
|
|
32
|
-
const group = container.querySelector(`[data-node-id="${esc}"]`);
|
|
33
|
-
return group ? Array.from(group.querySelectorAll(ROW_SELECTOR)) : [];
|
|
34
|
-
}
|
|
35
|
-
function resolveRef(container, api, rowEl) {
|
|
36
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
37
|
-
const group = rowEl.closest('[data-node-id]');
|
|
38
|
-
if (!group)
|
|
39
|
-
return null;
|
|
40
|
-
const nodeId = group.getAttribute('data-node-id');
|
|
41
|
-
const rows = Array.from(group.querySelectorAll(ROW_SELECTOR));
|
|
42
|
-
const rowIndex = rows.indexOf(rowEl);
|
|
43
|
-
if (rowIndex === -1)
|
|
44
|
-
return null;
|
|
45
|
-
const kind = rowEl.classList.contains('axk-member') ? 'uml' : 'er';
|
|
46
|
-
const node = (_c = (_a = api.getModel) === null || _a === void 0 ? void 0 : (_b = _a.call(api)).getNode) === null || _c === void 0 ? void 0 : _c.call(_b, nodeId);
|
|
47
|
-
const meta = (key) => { var _a; return (_a = node === null || node === void 0 ? void 0 : node.getMetadata) === null || _a === void 0 ? void 0 : _a.call(node, key); };
|
|
48
|
-
if (kind === 'er') {
|
|
49
|
-
const entity = meta('kitEntity');
|
|
50
|
-
const name = (_h = (_f = (_e = (_d = entity === null || entity === void 0 ? void 0 : entity.columns) === null || _d === void 0 ? void 0 : _d[rowIndex]) === null || _e === void 0 ? void 0 : _e.name) !== null && _f !== void 0 ? _f : (_g = rowEl.querySelector('.axk-col')) === null || _g === void 0 ? void 0 : _g.textContent) !== null && _h !== void 0 ? _h : undefined;
|
|
51
|
-
return { nodeId, rowIndex, name: name !== null && name !== void 0 ? name : undefined, kind };
|
|
52
|
-
}
|
|
53
|
-
const cls = meta('kitClass');
|
|
54
|
-
const attrCount = (_k = (_j = cls === null || cls === void 0 ? void 0 : cls.attributes) === null || _j === void 0 ? void 0 : _j.length) !== null && _k !== void 0 ? _k : countFirstCompartment(rowEl);
|
|
55
|
-
const section = rowIndex < attrCount ? 'attributes' : 'methods';
|
|
56
|
-
const name = (_q = (_o = (section === 'attributes' ? (_l = cls === null || cls === void 0 ? void 0 : cls.attributes) === null || _l === void 0 ? void 0 : _l[rowIndex] : (_m = cls === null || cls === void 0 ? void 0 : cls.methods) === null || _m === void 0 ? void 0 : _m[rowIndex - attrCount])) !== null && _o !== void 0 ? _o : (_p = rowEl.textContent) === null || _p === void 0 ? void 0 : _p.trim()) !== null && _q !== void 0 ? _q : undefined;
|
|
57
|
-
return { nodeId, rowIndex, name, kind, section };
|
|
58
|
-
}
|
|
59
|
-
/** Without spec metadata, the first compartment's member count splits sections. */
|
|
60
|
-
function countFirstCompartment(rowEl) {
|
|
61
|
-
const card = rowEl.closest('.axk-uml');
|
|
62
|
-
const firstComp = card === null || card === void 0 ? void 0 : card.querySelector('.axk-uml-comp');
|
|
63
|
-
return firstComp ? firstComp.querySelectorAll('.axk-member').length : Number.MAX_SAFE_INTEGER;
|
|
64
|
-
}
|
|
65
|
-
export function bindRowInteractions(api) {
|
|
66
|
-
var _a;
|
|
67
|
-
const container = api.container;
|
|
68
|
-
(_a = bindings.get(container)) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
69
|
-
let selected = null;
|
|
70
|
-
const paint = () => {
|
|
71
|
-
var _a;
|
|
72
|
-
for (const el of Array.from(container.querySelectorAll(`.${SELECTED_CLASS}`))) {
|
|
73
|
-
el.classList.remove(SELECTED_CLASS);
|
|
74
|
-
}
|
|
75
|
-
if (selected)
|
|
76
|
-
(_a = rowsOfNode(container, selected.nodeId)[selected.rowIndex]) === null || _a === void 0 ? void 0 : _a.classList.add(SELECTED_CLASS);
|
|
77
|
-
};
|
|
78
|
-
const emitSelect = () => {
|
|
79
|
-
container.dispatchEvent(new CustomEvent('axk:row-select', { bubbles: true, detail: { selected } }));
|
|
80
|
-
};
|
|
81
|
-
const setSelected = (next) => {
|
|
82
|
-
const same = (next === null && selected === null) ||
|
|
83
|
-
(next !== null && selected !== null && next.nodeId === selected.nodeId && next.rowIndex === selected.rowIndex);
|
|
84
|
-
if (same)
|
|
85
|
-
return;
|
|
86
|
-
selected = next;
|
|
87
|
-
paint();
|
|
88
|
-
emitSelect();
|
|
89
|
-
};
|
|
90
|
-
const onClick = (event) => {
|
|
91
|
-
var _a;
|
|
92
|
-
const target = event.target instanceof Element ? event.target : null;
|
|
93
|
-
const rowEl = (_a = target === null || target === void 0 ? void 0 : target.closest) === null || _a === void 0 ? void 0 : _a.call(target, ROW_SELECTOR);
|
|
94
|
-
if (!rowEl || !container.contains(rowEl)) {
|
|
95
|
-
setSelected(null);
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
const ref = resolveRef(container, api, rowEl);
|
|
99
|
-
if (!ref)
|
|
100
|
-
return;
|
|
101
|
-
container.dispatchEvent(new CustomEvent('axk:row-click', { bubbles: true, detail: Object.assign({}, ref) }));
|
|
102
|
-
const isReclick = selected && selected.nodeId === ref.nodeId && selected.rowIndex === ref.rowIndex;
|
|
103
|
-
setSelected(isReclick ? null : ref);
|
|
104
|
-
};
|
|
105
|
-
// Card re-renders replace the foreignObject subtree (content-hash keyed) and
|
|
106
|
-
// lose the class — re-apply whenever the selected row's paint went missing.
|
|
107
|
-
const observer = new MutationObserver(() => {
|
|
108
|
-
if (!selected)
|
|
109
|
-
return;
|
|
110
|
-
const el = rowsOfNode(container, selected.nodeId)[selected.rowIndex];
|
|
111
|
-
if (el && !el.classList.contains(SELECTED_CLASS))
|
|
112
|
-
paint();
|
|
113
|
-
else if (!el) {
|
|
114
|
-
// The row (or its node) is gone — the selection dies with it.
|
|
115
|
-
setSelected(null);
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
container.addEventListener('click', onClick);
|
|
119
|
-
observer.observe(container, { childList: true, subtree: true });
|
|
120
|
-
const handle = {
|
|
121
|
-
getSelected: () => (selected ? Object.assign({}, selected) : null),
|
|
122
|
-
select: (ref) => {
|
|
123
|
-
if (ref === null) {
|
|
124
|
-
setSelected(null);
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
const el = rowsOfNode(container, ref.nodeId)[ref.rowIndex];
|
|
128
|
-
if (!el)
|
|
129
|
-
return;
|
|
130
|
-
const resolved = resolveRef(container, api, el);
|
|
131
|
-
if (resolved)
|
|
132
|
-
setSelected(resolved);
|
|
133
|
-
},
|
|
134
|
-
dispose: () => {
|
|
135
|
-
container.removeEventListener('click', onClick);
|
|
136
|
-
observer.disconnect();
|
|
137
|
-
if (bindings.get(container) === handle)
|
|
138
|
-
bindings.delete(container);
|
|
139
|
-
},
|
|
140
|
-
};
|
|
141
|
-
bindings.set(container, handle);
|
|
142
|
-
return handle;
|
|
143
|
-
}
|
|
144
|
-
//# sourceMappingURL=rows.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rows.js","sourceRoot":"","sources":["../../../../../../../libs/element/src/lib/diagram-kit/rows.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Diagram-kit stylesheet — injected once, on first use of any kit builder.
|
|
3
|
-
*
|
|
4
|
-
* Everything is prefixed `axk-` and the selection overrides are scoped with
|
|
5
|
-
* `:has(...)` to kit cards only, so embedding the kit can never restyle a
|
|
6
|
-
* host's own nodes. The rules encode the lessons the diagrams/* demos learned
|
|
7
|
-
* the hard way:
|
|
8
|
-
* - the card fills the node and draws the ONLY border (the node's own rect is
|
|
9
|
-
* hidden by the builders, and suppressed again on selection because the
|
|
10
|
-
* theme paints `.selected` with an accent stroke that overrides inline
|
|
11
|
-
* transparency);
|
|
12
|
-
* - the default `.selection-highlight` outline (a dashed rect a few px
|
|
13
|
-
* OUTSIDE the node) reads as a second floating box around a bordered card —
|
|
14
|
-
* the kit hides it and rings the card itself instead.
|
|
15
|
-
*/
|
|
16
|
-
export const DIAGRAM_KIT_STYLE_ID = 'grafloria-diagram-kit-styles';
|
|
17
|
-
const CSS = `
|
|
18
|
-
/* ===== ER entity (table) cards ===== */
|
|
19
|
-
.axk-entity { font: 12px/1.5 system-ui, sans-serif; border: 1px solid #64748b;
|
|
20
|
-
border-radius: 6px; overflow: hidden; background: #fff;
|
|
21
|
-
width: 100%; height: 100%; box-sizing: border-box;
|
|
22
|
-
display: flex; flex-direction: column; }
|
|
23
|
-
.axk-entity-body { flex: 1; min-height: 0; overflow-y: hidden; }
|
|
24
|
-
.axk-entity-body.axk-scroll { overflow-y: auto; scrollbar-width: thin; }
|
|
25
|
-
.axk-entity-head { background: #334155; color: #fff; font-weight: 600;
|
|
26
|
-
letter-spacing: .3px; padding: 5px 10px; text-transform: uppercase; font-size: 11px; }
|
|
27
|
-
.axk-row { display: flex; align-items: center; gap: 8px; padding: 3px 10px;
|
|
28
|
-
border-top: 1px solid #e2e8f0; }
|
|
29
|
-
.axk-key { width: 22px; font-size: 9px; font-weight: 700; color: #b45309; }
|
|
30
|
-
.axk-key.axk-fk { color: #6d28d9; }
|
|
31
|
-
.axk-col { flex: 1; color: #0f172a; }
|
|
32
|
-
.axk-ty { color: #64748b; font-size: 11px; }
|
|
33
|
-
.axk-row.axk-pk .axk-col { font-weight: 600; }
|
|
34
|
-
|
|
35
|
-
/* ===== UML class cards ===== */
|
|
36
|
-
.axk-uml { font: 12px/1.5 system-ui, sans-serif; border: 1px solid #475569;
|
|
37
|
-
border-radius: 4px; overflow: hidden; background: #fff;
|
|
38
|
-
width: 100%; height: 100%; box-sizing: border-box;
|
|
39
|
-
display: flex; flex-direction: column; }
|
|
40
|
-
.axk-uml-body { flex: 1; min-height: 0; overflow-y: hidden; }
|
|
41
|
-
.axk-uml-body.axk-scroll { overflow-y: auto; scrollbar-width: thin; }
|
|
42
|
-
.axk-uml-name { text-align: center; font-weight: 700; padding: 5px 10px;
|
|
43
|
-
background: #eef2ff; color: #1e1b4b; }
|
|
44
|
-
.axk-uml-name.axk-abstract { font-style: italic; }
|
|
45
|
-
.axk-uml-stereo { display: block; font-size: 10px; font-weight: 500; opacity: .8; }
|
|
46
|
-
.axk-uml-comp { border-top: 1px solid #475569; padding: 3px 0; }
|
|
47
|
-
.axk-uml-comp.axk-empty { min-height: 8px; }
|
|
48
|
-
.axk-member { padding: 1px 10px; font: 11px/1.5 ui-monospace, Menlo, monospace;
|
|
49
|
-
color: #0f172a; white-space: nowrap; }
|
|
50
|
-
|
|
51
|
-
/* ===== Row interactivity (cards are interactive; drag stays geometric) ===== */
|
|
52
|
-
.axk-entity, .axk-uml { user-select: none; -webkit-user-select: none; }
|
|
53
|
-
.axk-row:hover { background: rgba(37, 99, 235, .07); }
|
|
54
|
-
.axk-member:hover { background: rgba(79, 70, 229, .07); }
|
|
55
|
-
.axk-row-selected, .axk-row-selected:hover { background: rgba(37, 99, 235, .16);
|
|
56
|
-
box-shadow: inset 2px 0 0 #2563eb; }
|
|
57
|
-
.axk-member.axk-row-selected, .axk-member.axk-row-selected:hover {
|
|
58
|
-
background: rgba(79, 70, 229, .16); box-shadow: inset 2px 0 0 #4f46e5; }
|
|
59
|
-
|
|
60
|
-
/* ===== Selection: ring the CARD, never a detached rectangle ===== */
|
|
61
|
-
g.node-group:has(.axk-entity) .selection-highlight,
|
|
62
|
-
g.node-group:has(.axk-uml) .selection-highlight { display: none; }
|
|
63
|
-
g.node-group[data-selected="true"] .axk-entity {
|
|
64
|
-
border-color: #2563eb; box-shadow: 0 0 0 2px rgba(37, 99, 235, .45); }
|
|
65
|
-
g.node-group[data-selected="true"] .axk-uml {
|
|
66
|
-
border-color: #4f46e5; box-shadow: 0 0 0 2px rgba(79, 70, 229, .45); }
|
|
67
|
-
g.node-group[data-selected="true"]:has(.axk-entity) rect.diagram-node,
|
|
68
|
-
g.node-group[data-selected="true"]:has(.axk-uml) rect.diagram-node {
|
|
69
|
-
stroke: transparent !important; fill: none !important; }
|
|
70
|
-
|
|
71
|
-
/* ===== In-canvas editing chrome (only present when editable) ===== */
|
|
72
|
-
.axk-col-del { width: 14px; text-align: center; color: #94a3b8; cursor: pointer;
|
|
73
|
-
font-weight: 700; opacity: 0; transition: opacity .1s; flex: 0 0 auto; }
|
|
74
|
-
.axk-row:hover .axk-col-del, .axk-member:hover .axk-col-del { opacity: 1; }
|
|
75
|
-
.axk-col-del:hover { color: #dc2626; }
|
|
76
|
-
/* Only editable members (which wrap their text in .axk-mtext) go flex — a
|
|
77
|
-
read-only member stays a plain text div, so its golden never shifts. */
|
|
78
|
-
.axk-member:has(.axk-mtext) { display: flex; align-items: center; }
|
|
79
|
-
.axk-member .axk-mtext { flex: 1; }
|
|
80
|
-
.axk-entity-add, .axk-uml-add { padding: 3px 10px; font-size: 11px; font-weight: 600;
|
|
81
|
-
color: #2563eb; cursor: pointer; border-top: 1px dashed #cbd5e1; user-select: none; }
|
|
82
|
-
.axk-uml-add { color: #4f46e5; border-top: 1px dashed #c7d2fe; text-align: left; }
|
|
83
|
-
.axk-entity-add:hover, .axk-uml-add:hover { background: rgba(37, 99, 235, .08); }
|
|
84
|
-
.axk-edit-input { font: 12px/1.4 system-ui, sans-serif; box-sizing: border-box;
|
|
85
|
-
border: 1px solid #2563eb; border-radius: 3px; padding: 1px 6px; margin: 0;
|
|
86
|
-
background: #fff; color: #0f172a; outline: none; box-shadow: 0 1px 4px rgba(0,0,0,.2); }
|
|
87
|
-
|
|
88
|
-
/* ===== Dark mode ===== */
|
|
89
|
-
@media (prefers-color-scheme: dark) {
|
|
90
|
-
.axk-entity { background: #1e293b; border-color: #475569; }
|
|
91
|
-
.axk-row { border-top-color: #334155; }
|
|
92
|
-
.axk-col { color: #e2e8f0; }
|
|
93
|
-
.axk-uml { background: #1e293b; border-color: #64748b; }
|
|
94
|
-
.axk-uml-name { background: #312e81; color: #e0e7ff; }
|
|
95
|
-
.axk-uml-comp { border-top-color: #64748b; }
|
|
96
|
-
.axk-member { color: #e2e8f0; }
|
|
97
|
-
}
|
|
98
|
-
`;
|
|
99
|
-
/** Inject the kit stylesheet once. Safe to call repeatedly and in SSR. */
|
|
100
|
-
export function ensureDiagramKitStyles(doc = typeof document !== 'undefined' ? document : undefined) {
|
|
101
|
-
if (!doc)
|
|
102
|
-
return;
|
|
103
|
-
if (doc.getElementById(DIAGRAM_KIT_STYLE_ID))
|
|
104
|
-
return;
|
|
105
|
-
const style = doc.createElement('style');
|
|
106
|
-
style.id = DIAGRAM_KIT_STYLE_ID;
|
|
107
|
-
style.textContent = CSS;
|
|
108
|
-
doc.head.appendChild(style);
|
|
109
|
-
}
|
|
110
|
-
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../../../../libs/element/src/lib/diagram-kit/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,8BAA8B,CAAC;AAEnE,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiFX,CAAC;AAEF,0EAA0E;AAC1E,MAAM,UAAU,sBAAsB,CAAC,MAA4B,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;IACvH,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,IAAI,GAAG,CAAC,cAAc,CAAC,oBAAoB,CAAC;QAAE,OAAO;IACrD,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,GAAG,oBAAoB,CAAC;IAChC,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC;IACxB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC"}
|