@g1cloud/entity-modeler-next 5.0.0-beta.8 → 5.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/README.md +19 -5
- package/dist/adapter/diagramAdapter.d.ts +6 -0
- package/dist/adapter/healBackfill.d.ts +38 -0
- package/dist/agent/resolver.d.ts +219 -7
- package/dist/agent/symbolicOp.d.ts +53 -4
- package/dist/command/op.d.ts +35 -1
- package/dist/command/opSync.d.ts +11 -1
- package/dist/command/stack.d.ts +11 -1
- package/dist/core/associationNav.d.ts +14 -0
- package/dist/core/columnResolve.d.ts +36 -0
- package/dist/core/embedSlots.d.ts +18 -0
- package/dist/core/entityPackage.d.ts +24 -0
- package/dist/core/fkDerived.d.ts +22 -2
- package/dist/core/indexCleanup.d.ts +16 -0
- package/dist/core/indexColumnRef.d.ts +27 -0
- package/dist/core/javaTypes.d.ts +5 -0
- package/dist/core/opSubject.d.ts +54 -0
- package/dist/core/projectActionLog.d.ts +7 -10
- package/dist/core/projectSeqDiff.d.ts +41 -0
- package/dist/core/propagation.d.ts +33 -2
- package/dist/core/quickFix.d.ts +9 -4
- package/dist/core/resolve.d.ts +0 -3
- package/dist/core/scaffoldJava.d.ts +30 -1
- package/dist/core/text.d.ts +2 -1
- package/dist/core/validation.d.ts +1 -13
- package/dist/editor/association.d.ts +18 -0
- package/dist/editor/attribute.d.ts +25 -0
- package/dist/editor/clipboardImport.d.ts +23 -0
- package/dist/editor/commandPlans.d.ts +111 -0
- package/dist/editor/controller.d.ts +61 -20
- package/dist/editor/entity.d.ts +19 -0
- package/dist/editor/group.d.ts +22 -0
- package/dist/editor/hostSync.d.ts +30 -0
- package/dist/editor/note.d.ts +11 -0
- package/dist/editor/selection.d.ts +22 -0
- package/dist/entity-modeler-next.css +1 -1
- package/dist/entity-modeler.js +16844 -13760
- package/dist/entity-modeler.umd.cjs +33 -29
- package/dist/i18n/ko.d.ts +64 -2
- package/dist/index.d.ts +26 -23
- package/dist/view/ColumnLangSelect.vue.d.ts +16 -0
- package/dist/view/DiagramCanvas.vue.d.ts +9 -0
- package/dist/view/DiagramExplorer.vue.d.ts +7 -2
- package/dist/view/HistoryPanel.vue.d.ts +3 -0
- package/dist/view/MultiLangTextField.vue.d.ts +7 -0
- package/dist/view/columnResolution.d.ts +91 -0
- package/dist/view/diffOverlay.d.ts +14 -0
- package/dist/view/embedSlotCollapse.d.ts +36 -0
- package/dist/view/nodeInternals.d.ts +15 -0
- package/dist/view/opConflictNotice.d.ts +8 -6
- package/dist/view/swatches.d.ts +3 -2
- package/dist/view/useAttributeEditing.d.ts +82 -0
- package/dist/view/useTreeCollapse.d.ts +16 -0
- package/package.json +9 -6
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { ComputedRef } from 'vue';
|
|
2
|
+
import { EditorController } from '../editor/controller';
|
|
3
|
+
import { Attribute, EmbeddableCatalogEntry, Entity, GroupCodeValue, MultiLangText } from '../core/types';
|
|
4
|
+
import { JavaTypeDef } from '../core/javaTypes';
|
|
5
|
+
export declare function useAttributeEditing(c: EditorController, entityId: () => string): {
|
|
6
|
+
entity: ComputedRef<Entity | null>;
|
|
7
|
+
isEmbeddable: ComputedRef<boolean>;
|
|
8
|
+
focusedAttrIds: ComputedRef<Set<string>>;
|
|
9
|
+
personalInfoItems: string[];
|
|
10
|
+
piiLabel: (v: string) => string;
|
|
11
|
+
idn: <T>(s: T) => T;
|
|
12
|
+
setAttr: (a: Attribute, patch: Partial<Attribute>) => void;
|
|
13
|
+
isManagedFk: (a: Attribute) => boolean;
|
|
14
|
+
setNaturalId: (a: Attribute, v: boolean) => void;
|
|
15
|
+
clearNaturalIdPatch: () => Partial<Attribute>;
|
|
16
|
+
setIdentifier: (a: Attribute, v: boolean) => void;
|
|
17
|
+
setTransient: (a: Attribute, v: boolean) => void;
|
|
18
|
+
dbLocked: (a: Attribute) => boolean;
|
|
19
|
+
fkDerived: (a: Attribute) => boolean;
|
|
20
|
+
fkOriginPhysical: (a: Attribute, i?: number) => string | undefined;
|
|
21
|
+
typeValueOf: (t: JavaTypeDef) => string;
|
|
22
|
+
typeLabelOf: (t: JavaTypeDef) => string;
|
|
23
|
+
setAttrType: (a: Attribute, v: string | undefined) => void;
|
|
24
|
+
setAttrCustomType: (a: Attribute, v: string) => void;
|
|
25
|
+
setDb: (a: Attribute, patch: Record<string, unknown>) => void;
|
|
26
|
+
scaleApplicable: (a: Attribute) => boolean;
|
|
27
|
+
scaleHint: (a: Attribute) => string | undefined;
|
|
28
|
+
setDbLogical: (a: Attribute, value: MultiLangText) => void;
|
|
29
|
+
setAttrDescription: (a: Attribute, value: MultiLangText) => void;
|
|
30
|
+
attrPiiValue: (a: Attribute) => string;
|
|
31
|
+
setAttrPii: (a: Attribute, v: string) => void;
|
|
32
|
+
predefinedCustomTypeCatalog: ComputedRef<import('..').PredefinedCustomTypeCatalog>;
|
|
33
|
+
embeddableCatalog: ComputedRef<import('..').EmbeddableCatalog>;
|
|
34
|
+
predefinedLabel: (e: EmbeddableCatalogEntry) => string;
|
|
35
|
+
groupCodeCatalog: ComputedRef<import('..').GroupCodeCatalog>;
|
|
36
|
+
attrGroupCodes: (a: Attribute) => GroupCodeValue[];
|
|
37
|
+
attrCodeItems: (a: Attribute) => (GroupCodeValue | "none")[];
|
|
38
|
+
codeValueOf: (v: GroupCodeValue | "none") => string;
|
|
39
|
+
codeLabelOf: (v: GroupCodeValue | "none") => string;
|
|
40
|
+
setAttrGroupCode: (a: Attribute, v: string | undefined) => void;
|
|
41
|
+
setAttrCode: (a: Attribute, v: string) => void;
|
|
42
|
+
setAttrDefaultValue: (a: Attribute, v: string) => void;
|
|
43
|
+
isEmbedExpanded: (a: Attribute) => boolean;
|
|
44
|
+
setDbAt: (a: Attribute, i: number, patch: Record<string, unknown>) => void;
|
|
45
|
+
setDbLogicalAt: (a: Attribute, i: number, value: MultiLangText) => void;
|
|
46
|
+
embedColMeta: (a: Attribute, i: number) => {
|
|
47
|
+
name?: string;
|
|
48
|
+
physicalName?: string;
|
|
49
|
+
dataType?: string;
|
|
50
|
+
length?: number;
|
|
51
|
+
scale?: number;
|
|
52
|
+
shareable?: boolean;
|
|
53
|
+
logicalName?: MultiLangText;
|
|
54
|
+
} | undefined;
|
|
55
|
+
fixedDataType: (a: Attribute, i: number) => string;
|
|
56
|
+
fixedLength: (a: Attribute, i: number) => number | undefined;
|
|
57
|
+
fixedScale: (a: Attribute, i: number) => number | undefined;
|
|
58
|
+
updatableItems: string[];
|
|
59
|
+
updatableLabel: (v: string) => string;
|
|
60
|
+
updatableValue: (col: Attribute["dbAttrs"][number] | undefined) => string;
|
|
61
|
+
setUpdatableAt: (a: Attribute, i: number, v: string) => void;
|
|
62
|
+
setUpdatable: (a: Attribute, v: string) => void;
|
|
63
|
+
insertableItems: string[];
|
|
64
|
+
insertableLabel: (v: string) => string;
|
|
65
|
+
insertableValue: (col: Attribute["dbAttrs"][number] | undefined) => string;
|
|
66
|
+
setInsertableAt: (a: Attribute, i: number, v: string) => void;
|
|
67
|
+
setInsertable: (a: Attribute, v: string) => void;
|
|
68
|
+
scopeEntities: ComputedRef<Entity[]>;
|
|
69
|
+
columnsById: ComputedRef<Map<string, import('..').DbColumn>>;
|
|
70
|
+
sharedCandidates: ComputedRef<{
|
|
71
|
+
modelId: string;
|
|
72
|
+
physical: string;
|
|
73
|
+
isCurrency: boolean;
|
|
74
|
+
ownerName: string | undefined;
|
|
75
|
+
}[]>;
|
|
76
|
+
sharedItems: () => string[];
|
|
77
|
+
sharedLabel: (v: string) => string;
|
|
78
|
+
sharedValue: (col: Attribute["dbAttrs"][number] | undefined) => string;
|
|
79
|
+
setSharedAt: (a: Attribute, i: number, v: string) => void;
|
|
80
|
+
isShared: (col: Attribute["dbAttrs"][number] | undefined) => boolean;
|
|
81
|
+
sharedPhysical: (col: Attribute["dbAttrs"][number]) => string;
|
|
82
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface TreeCollapseOptions {
|
|
2
|
+
/** 접기 가능한(=자식 있는) 노드 키 — `toggleAll`·`allExpanded` 계산 입력. */
|
|
3
|
+
expandableKeys: () => readonly string[];
|
|
4
|
+
/** 명시 토글이 없을 때의 기본 접힘 여부. 키의 순수 함수여야 한다. */
|
|
5
|
+
defaultCollapsed: (key: string) => boolean;
|
|
6
|
+
/** sessionStorage 보존 키. 생략 시 보존하지 않음. */
|
|
7
|
+
storageKey?: string;
|
|
8
|
+
/** 보존 슬롯 스코프(다이어그램 id 등). 바뀌면 다른 슬롯을 읽는다. */
|
|
9
|
+
scope?: () => string;
|
|
10
|
+
}
|
|
11
|
+
export declare function useTreeCollapse(opts: TreeCollapseOptions): {
|
|
12
|
+
isCollapsed: (key: string) => boolean;
|
|
13
|
+
toggle: (key: string) => void;
|
|
14
|
+
toggleAll: () => void;
|
|
15
|
+
allExpanded: import('vue').ComputedRef<boolean>;
|
|
16
|
+
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@g1cloud/entity-modeler-next",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "5.0.0
|
|
4
|
+
"version": "5.0.0",
|
|
5
5
|
"description": "Vue 3 visual entity-modeling / class-diagram editor",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"files": [
|
|
@@ -31,21 +31,21 @@
|
|
|
31
31
|
"@vue-flow/background": "^1.3.2",
|
|
32
32
|
"@vue-flow/controls": "^1.1.2",
|
|
33
33
|
"@vue-flow/core": "^1.42.1",
|
|
34
|
-
"@vue-flow/minimap": "^1.5.2"
|
|
35
|
-
"pinia": "^2.2.0"
|
|
34
|
+
"@vue-flow/minimap": "^1.5.2"
|
|
36
35
|
},
|
|
37
36
|
"devDependencies": {
|
|
38
37
|
"@g1cloud/open-bluesea-core": "1.0.0-alpha.9",
|
|
39
38
|
"@tailwindcss/vite": "^4.1.0",
|
|
40
39
|
"@types/node": "^25.9.2",
|
|
41
40
|
"@vitejs/plugin-vue": "^5.2.0",
|
|
41
|
+
"@vitest/coverage-v8": "3.2.7",
|
|
42
42
|
"jsdom": "^25.0.0",
|
|
43
43
|
"playwright": "^1.60.0",
|
|
44
44
|
"tailwindcss": "^4.1.0",
|
|
45
45
|
"typescript": "^5.6.0",
|
|
46
46
|
"vite": "^6.0.0",
|
|
47
47
|
"vite-plugin-dts": "^5.0.3",
|
|
48
|
-
"vitest": "^
|
|
48
|
+
"vitest": "^3.0.0",
|
|
49
49
|
"vue": "^3.5.0",
|
|
50
50
|
"vue-tsc": "^2.1.0"
|
|
51
51
|
},
|
|
@@ -55,7 +55,10 @@
|
|
|
55
55
|
"preview": "vite preview",
|
|
56
56
|
"test": "vitest run",
|
|
57
57
|
"test:watch": "vitest",
|
|
58
|
-
"
|
|
59
|
-
"
|
|
58
|
+
"test:coverage": "vitest run --coverage",
|
|
59
|
+
"verify": "node scripts/verify-all.mjs",
|
|
60
|
+
"verify:floor": "node scripts/verify-all.mjs --update-floor",
|
|
61
|
+
"typecheck": "vue-tsc --noEmit",
|
|
62
|
+
"check": "pnpm run test && pnpm run build"
|
|
60
63
|
}
|
|
61
64
|
}
|