mirror of
https://github.com/sotam0316/drawNET_test.git
synced 2026-04-25 12:08:37 +09:00
static 폴더 및 하위 파일 업로드
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
import { state } from '../../state.js';
|
||||
import { renderRichContent } from '../../graph/styles/utils.js';
|
||||
|
||||
export async function handleRichCardUpdate(cell, data) {
|
||||
const isNode = cell.isNode();
|
||||
if (!isNode) return;
|
||||
|
||||
const updates = {
|
||||
headerText: document.getElementById('prop-header-text')?.value,
|
||||
headerColor: document.getElementById('prop-header-color')?.value,
|
||||
headerAlign: document.getElementById('prop-header-align')?.value || 'left',
|
||||
cardType: document.getElementById('prop-card-type')?.value,
|
||||
contentAlign: document.getElementById('prop-content-align')?.value || 'left',
|
||||
content: document.getElementById('prop-card-content')?.value,
|
||||
locked: !!document.getElementById('prop-locked')?.checked
|
||||
};
|
||||
|
||||
// 1. Sync to X6 Attributes
|
||||
cell.attr('headerLabel/text', updates.headerText);
|
||||
cell.attr('header/fill', updates.headerColor);
|
||||
cell.attr('body/stroke', updates.headerColor);
|
||||
|
||||
// Apply header alignment
|
||||
const anchor = updates.headerAlign === 'center' ? 'middle' : (updates.headerAlign === 'right' ? 'end' : 'start');
|
||||
const x = updates.headerAlign === 'center' ? 0.5 : (updates.headerAlign === 'right' ? '100%' : 10);
|
||||
const x2 = updates.headerAlign === 'right' ? -10 : 0;
|
||||
|
||||
cell.attr('headerLabel/textAnchor', anchor);
|
||||
cell.attr('headerLabel/refX', x);
|
||||
cell.attr('headerLabel/refX2', x2);
|
||||
|
||||
// 2. Render Content via HTML inside ForeignObject
|
||||
renderRichContent(cell, updates);
|
||||
|
||||
// 3. Update Cell Data
|
||||
const currentData = cell.getData() || {};
|
||||
cell.setData({ ...currentData, ...updates });
|
||||
|
||||
// 4. Handle Lock State
|
||||
cell.setProp('movable', !updates.locked);
|
||||
cell.setProp('deletable', !updates.locked);
|
||||
|
||||
if (updates.locked) {
|
||||
cell.addTools([{ name: 'boundary', args: { attrs: { stroke: '#ef4444', 'stroke-dasharray': '5,5' } } }]);
|
||||
} else {
|
||||
cell.removeTools();
|
||||
}
|
||||
|
||||
import('/static/js/modules/persistence.js').then(m => m.markDirty());
|
||||
}
|
||||
Reference in New Issue
Block a user