@simplysm/sd-claude 14.0.47 → 14.0.49
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/{claude/references/sd-simplysm14/sd-claude/usage.md → README.md} +2 -2
- package/claude/rules/sd-claude-rules.md +25 -10
- package/claude/rules/sd-options.md +11 -6
- package/claude/sd-subagent-start.sh +6 -0
- package/claude/settings.json +1 -12
- package/claude/skills/sd-check/SKILL.md +43 -12
- package/claude/skills/sd-claude-docs/SKILL.md +30 -58
- package/claude/skills/sd-claude-docs/references/package-claudemd.md +12 -0
- package/claude/skills/sd-claude-docs/references/package-doc-gen.md +26 -13
- package/claude/skills/sd-commit/SKILL.md +1 -1
- package/claude/skills/sd-debug/SKILL.md +5 -3
- package/claude/skills/sd-deliverable/SKILL.md +1 -1
- package/claude/skills/sd-dev/SKILL.md +14 -9
- package/claude/skills/sd-doc-extract/SKILL.md +8 -10
- package/claude/skills/sd-doc-extract/_common.py +8 -1
- package/claude/skills/sd-doc-extract/_extract_docx.py +74 -34
- package/claude/skills/sd-doc-extract/_extract_pdf.py +12 -1
- package/claude/skills/sd-doc-extract/_extract_pptx.py +103 -23
- package/claude/skills/sd-doc-extract/_extract_xlsb.py +93 -4
- package/claude/skills/sd-doc-extract/_extract_xlsx.py +98 -36
- package/claude/skills/sd-doc-extract/extract.py +22 -3
- package/claude/skills/sd-inner-clarify/SKILL.md +78 -0
- package/claude/skills/sd-inner-debug/SKILL.md +1 -1
- package/claude/skills/sd-inner-review/SKILL.md +13 -0
- package/claude/skills/sd-issue/SKILL.md +1 -1
- package/claude/skills/sd-outlook/SKILL.md +1 -1
- package/claude/skills/sd-plan/SKILL.md +50 -17
- package/claude/skills/sd-prompt/SKILL.md +180 -178
- package/claude/skills/sd-prompt/references/eval-runner.md +5 -30
- package/claude/skills/sd-prompt/references/sd-eval-env-template.md +23 -0
- package/claude/skills/sd-refactor/SKILL.md +2 -2
- package/claude/skills/sd-tdd/SKILL.md +45 -16
- package/claude/skills/sd-use/SKILL.md +84 -80
- package/claude/skills/sd-wbs/SKILL.md +84 -27
- package/{claude/references/sd-simplysm14/sd-claude/docs → docs}/assets.md +2 -3
- package/{claude/references/sd-simplysm14/sd-claude/docs → docs}/hooks.md +7 -6
- package/{claude/references/sd-simplysm14/sd-claude/docs → docs}/scripts.md +1 -9
- package/package.json +3 -2
- package/scripts/sync.mjs +4 -2
- package/claude/references/sd-simplysm14/angular/docs/bootstrap.md +0 -48
- package/claude/references/sd-simplysm14/angular/docs/directives.md +0 -236
- package/claude/references/sd-simplysm14/angular/docs/features.md +0 -379
- package/claude/references/sd-simplysm14/angular/docs/pipes.md +0 -32
- package/claude/references/sd-simplysm14/angular/docs/plugins.md +0 -37
- package/claude/references/sd-simplysm14/angular/docs/provider-types.md +0 -283
- package/claude/references/sd-simplysm14/angular/docs/providers.md +0 -379
- package/claude/references/sd-simplysm14/angular/docs/styling.md +0 -222
- package/claude/references/sd-simplysm14/angular/docs/type-utilities.md +0 -250
- package/claude/references/sd-simplysm14/angular/docs/ui-data.md +0 -275
- package/claude/references/sd-simplysm14/angular/docs/ui-form.md +0 -490
- package/claude/references/sd-simplysm14/angular/docs/ui-layout.md +0 -140
- package/claude/references/sd-simplysm14/angular/docs/ui-navigation.md +0 -273
- package/claude/references/sd-simplysm14/angular/docs/ui-overlay.md +0 -157
- package/claude/references/sd-simplysm14/angular/docs/ui-visual.md +0 -127
- package/claude/references/sd-simplysm14/angular/docs/utils.md +0 -295
- package/claude/references/sd-simplysm14/angular/usage.md +0 -489
- package/claude/references/sd-simplysm14/capacitor-plugin-auto-update/usage.md +0 -182
- package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/file-operations.md +0 -154
- package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/permissions.md +0 -84
- package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/storage-paths.md +0 -107
- package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/types.md +0 -83
- package/claude/references/sd-simplysm14/capacitor-plugin-file-system/usage.md +0 -133
- package/claude/references/sd-simplysm14/capacitor-plugin-intent/usage.md +0 -203
- package/claude/references/sd-simplysm14/capacitor-plugin-usb-storage/usage.md +0 -258
- package/claude/references/sd-simplysm14/core-browser/usage.md +0 -306
- package/claude/references/sd-simplysm14/core-common/docs/errors.md +0 -82
- package/claude/references/sd-simplysm14/core-common/docs/extensions.md +0 -167
- package/claude/references/sd-simplysm14/core-common/docs/features.md +0 -136
- package/claude/references/sd-simplysm14/core-common/docs/types.md +0 -245
- package/claude/references/sd-simplysm14/core-common/docs/utils.md +0 -591
- package/claude/references/sd-simplysm14/core-common/usage.md +0 -255
- package/claude/references/sd-simplysm14/core-node/docs/child-process.md +0 -182
- package/claude/references/sd-simplysm14/core-node/docs/features.md +0 -214
- package/claude/references/sd-simplysm14/core-node/docs/file-system.md +0 -509
- package/claude/references/sd-simplysm14/core-node/docs/file-watching.md +0 -139
- package/claude/references/sd-simplysm14/core-node/docs/logging.md +0 -180
- package/claude/references/sd-simplysm14/core-node/docs/path.md +0 -176
- package/claude/references/sd-simplysm14/core-node/docs/utilities-cpx.md +0 -194
- package/claude/references/sd-simplysm14/core-node/docs/utilities-fsx.md +0 -469
- package/claude/references/sd-simplysm14/core-node/docs/utilities-pathx.md +0 -151
- package/claude/references/sd-simplysm14/core-node/docs/worker-threads.md +0 -334
- package/claude/references/sd-simplysm14/core-node/docs/worker.md +0 -205
- package/claude/references/sd-simplysm14/core-node/usage.md +0 -259
- package/claude/references/sd-simplysm14/excel/docs/core-classes.md +0 -453
- package/claude/references/sd-simplysm14/excel/docs/types.md +0 -459
- package/claude/references/sd-simplysm14/excel/docs/utilities.md +0 -194
- package/claude/references/sd-simplysm14/excel/docs/wrapper.md +0 -73
- package/claude/references/sd-simplysm14/excel/usage.md +0 -134
- package/claude/references/sd-simplysm14/lint/usage.md +0 -130
- package/claude/references/sd-simplysm14/orm-common/docs/core.md +0 -188
- package/claude/references/sd-simplysm14/orm-common/docs/expression.md +0 -190
- package/claude/references/sd-simplysm14/orm-common/docs/models.md +0 -17
- package/claude/references/sd-simplysm14/orm-common/docs/query-builder.md +0 -97
- package/claude/references/sd-simplysm14/orm-common/docs/queryable-executable.md +0 -250
- package/claude/references/sd-simplysm14/orm-common/docs/schema-builders.md +0 -364
- package/claude/references/sd-simplysm14/orm-common/docs/types.md +0 -522
- package/claude/references/sd-simplysm14/orm-common/usage.md +0 -229
- package/claude/references/sd-simplysm14/orm-node/docs/connections.md +0 -137
- package/claude/references/sd-simplysm14/orm-node/docs/core.md +0 -131
- package/claude/references/sd-simplysm14/orm-node/docs/types.md +0 -173
- package/claude/references/sd-simplysm14/orm-node/usage.md +0 -143
- package/claude/references/sd-simplysm14/sd-cli/usage.md +0 -782
- package/claude/references/sd-simplysm14/service-client/docs/features.md +0 -217
- package/claude/references/sd-simplysm14/service-client/docs/main.md +0 -148
- package/claude/references/sd-simplysm14/service-client/docs/protocol.md +0 -53
- package/claude/references/sd-simplysm14/service-client/docs/transport.md +0 -131
- package/claude/references/sd-simplysm14/service-client/docs/types.md +0 -129
- package/claude/references/sd-simplysm14/service-client/usage.md +0 -202
- package/claude/references/sd-simplysm14/service-common/docs/app-structure.md +0 -175
- package/claude/references/sd-simplysm14/service-common/docs/events.md +0 -64
- package/claude/references/sd-simplysm14/service-common/docs/protocol.md +0 -331
- package/claude/references/sd-simplysm14/service-common/docs/service-types.md +0 -90
- package/claude/references/sd-simplysm14/service-common/docs/types.md +0 -19
- package/claude/references/sd-simplysm14/service-common/usage.md +0 -154
- package/claude/references/sd-simplysm14/service-server/docs/auth.md +0 -64
- package/claude/references/sd-simplysm14/service-server/docs/core.md +0 -174
- package/claude/references/sd-simplysm14/service-server/docs/legacy.md +0 -25
- package/claude/references/sd-simplysm14/service-server/docs/main.md +0 -88
- package/claude/references/sd-simplysm14/service-server/docs/protocol.md +0 -33
- package/claude/references/sd-simplysm14/service-server/docs/services.md +0 -94
- package/claude/references/sd-simplysm14/service-server/docs/transport-http.md +0 -93
- package/claude/references/sd-simplysm14/service-server/docs/transport-socket.md +0 -119
- package/claude/references/sd-simplysm14/service-server/docs/types.md +0 -36
- package/claude/references/sd-simplysm14/service-server/docs/utils.md +0 -22
- package/claude/references/sd-simplysm14/service-server/usage.md +0 -171
- package/claude/references/sd-simplysm14/storage/usage.md +0 -301
- package/claude/references/sd-simplysm14.md +0 -35
- package/claude/rules/sd-clarify.md +0 -23
- package/claude/sd-session-start.sh +0 -10
- /package/{claude/references/sd-simplysm14/sd-claude/docs → docs}/cli.md +0 -0
|
@@ -1,295 +0,0 @@
|
|
|
1
|
-
# Utils & Setups
|
|
2
|
-
|
|
3
|
-
## Utility Functions
|
|
4
|
-
|
|
5
|
-
### `mark`
|
|
6
|
-
|
|
7
|
-
WritableSignal의 변경 알림을 수동으로 트리거한다. 배열/객체의 내부 변경(mutation) 후 consumer에게 변경을 알릴 때 사용. shallow copy로 새 참조를 생성하여 signal을 업데이트한다.
|
|
8
|
-
|
|
9
|
-
```typescript
|
|
10
|
-
function mark(sig: WritableSignal<any>): void
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
| Parameter | Type | Description |
|
|
14
|
-
|-----------|------|-------------|
|
|
15
|
-
| `sig` | `WritableSignal<any>` | 대상 signal. 배열이면 `[...v]`, 객체이면 `{...v}`로 shallow copy하여 update |
|
|
16
|
-
|
|
17
|
-
### `withBusy`
|
|
18
|
-
|
|
19
|
-
busy count를 증감시키면서 비동기 작업을 실행한다. finally에서 감소하므로 에러 시에도 안전.
|
|
20
|
-
|
|
21
|
-
```typescript
|
|
22
|
-
async function withBusy(
|
|
23
|
-
busyCount: WritableSignal<number>,
|
|
24
|
-
fn: () => Promise<void>,
|
|
25
|
-
): Promise<void>
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
### `injectParent`
|
|
29
|
-
|
|
30
|
-
ViewContainerRef injector chain을 순회하여 가장 가까운 부모 컴포넌트 인스턴스를 반환한다. Angular 내부 `_lView[8]` (CONTEXT slot) 사용.
|
|
31
|
-
|
|
32
|
-
```typescript
|
|
33
|
-
function injectParent<T = object>(): T;
|
|
34
|
-
function injectParent<T = object>(type: AbstractType<T>): T;
|
|
35
|
-
function injectParent<T = object>(type: AbstractType<T>, options: { optional: true }): T | undefined;
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
| Parameter | Type | Description |
|
|
39
|
-
|-----------|------|-------------|
|
|
40
|
-
| `type` | `AbstractType<T>` | 필터링할 부모 타입. 생략 시 가장 가까운 부모 반환 |
|
|
41
|
-
| `options.optional` | `true` | 부모를 찾지 못해도 에러 대신 undefined 반환 |
|
|
42
|
-
|
|
43
|
-
### `setSafeStyle`
|
|
44
|
-
|
|
45
|
-
Renderer2를 사용하여 여러 CSS 스타일을 일괄 적용한다.
|
|
46
|
-
|
|
47
|
-
```typescript
|
|
48
|
-
function setSafeStyle(
|
|
49
|
-
renderer: Renderer2,
|
|
50
|
-
el: HTMLElement,
|
|
51
|
-
style: Partial<CSSStyleDeclaration>,
|
|
52
|
-
): void
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
## Resource Functions
|
|
56
|
-
|
|
57
|
-
### `injectSdSystemConfigResource`
|
|
58
|
-
|
|
59
|
-
컴포넌트 태그명 기반 키로 시스템 설정을 읽고 쓰는 resource 래퍼. 생성자에서 호출.
|
|
60
|
-
|
|
61
|
-
```typescript
|
|
62
|
-
function injectSdSystemConfigResource<T>(options: {
|
|
63
|
-
key: Signal<string | undefined>;
|
|
64
|
-
}): {
|
|
65
|
-
value: Signal<T | undefined>;
|
|
66
|
-
isLoading: Signal<boolean>;
|
|
67
|
-
status: Signal<ResourceStatus>;
|
|
68
|
-
hasValue: () => boolean;
|
|
69
|
-
reload: () => void;
|
|
70
|
-
set(value: T | undefined): void;
|
|
71
|
-
update(fn: (prev: T | undefined) => T | undefined): void;
|
|
72
|
-
}
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
`set()`/`update()` 호출 시 signal을 즉시 업데이트하고, 비동기로 `SdSystemConfigProvider.setAsync()`를 호출하여 영속화한다.
|
|
76
|
-
|
|
77
|
-
## Page Code / View Signals
|
|
78
|
-
|
|
79
|
-
### `injectCurrentPageCodeSignal`
|
|
80
|
-
|
|
81
|
-
현재 활성 라우트의 경로 세그먼트를 `.`으로 연결한 코드 signal. `ActivatedRoute`가 없으면 undefined 반환.
|
|
82
|
-
|
|
83
|
-
```typescript
|
|
84
|
-
function injectCurrentPageCodeSignal(): Signal<string> | undefined
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
### `injectFullPageCodeSignal`
|
|
88
|
-
|
|
89
|
-
전체 URL 기반 페이지 코드 signal. `NavigationEnd` 이벤트를 구독하여 URL에서 코드를 추출한다.
|
|
90
|
-
|
|
91
|
-
```typescript
|
|
92
|
-
function injectFullPageCodeSignal(): Signal<string>
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### `injectViewTitleSignal`
|
|
96
|
-
|
|
97
|
-
현재 뷰의 타이틀 signal. 모달이면 모달 타이틀, 페이지이면 `SdAppStructureProvider`에서 조회.
|
|
98
|
-
|
|
99
|
-
```typescript
|
|
100
|
-
function injectViewTitleSignal(): Signal<string>
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### `injectViewTypeSignal`
|
|
104
|
-
|
|
105
|
-
현재 뷰의 타입 signal. 모달/페이지/컨트롤 중 하나를 반환한다.
|
|
106
|
-
|
|
107
|
-
```typescript
|
|
108
|
-
function injectViewTypeSignal(getComp: () => object): Signal<SdViewType>
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
| Parameter | Type | Description |
|
|
112
|
-
|-----------|------|-------------|
|
|
113
|
-
| `getComp` | `() => object` | 현재 컴포넌트 인스턴스 반환 함수 (보통 `() => this`) |
|
|
114
|
-
|
|
115
|
-
반환값: `"modal"` (SdActivatedModalProvider 존재), `"page"` (라우트 컴포넌트이고 fullPageCode === currPageCode), `"control"` (그 외)
|
|
116
|
-
|
|
117
|
-
## Manager Functions
|
|
118
|
-
|
|
119
|
-
### `useSelectionManager`
|
|
120
|
-
|
|
121
|
-
선택 관리 composable. single/multi 모드를 지원한다.
|
|
122
|
-
|
|
123
|
-
```typescript
|
|
124
|
-
function useSelectionManager<T>(options: {
|
|
125
|
-
displayItems: Signal<T[]>;
|
|
126
|
-
selectedItems: WritableSignal<T[]>;
|
|
127
|
-
selectMode: Signal<"single" | "multi" | undefined>;
|
|
128
|
-
getItemSelectableFn: Signal<((item: T) => boolean | string) | undefined>;
|
|
129
|
-
}): {
|
|
130
|
-
hasSelectable: Signal<boolean>;
|
|
131
|
-
isAllSelected: Signal<boolean>;
|
|
132
|
-
getSelectable(item: T): true | string | undefined;
|
|
133
|
-
getCanChangeFn(item: T): () => boolean;
|
|
134
|
-
select(item: T): void;
|
|
135
|
-
deselect(item: T): void;
|
|
136
|
-
toggle(item: T): void;
|
|
137
|
-
toggleAll(): void;
|
|
138
|
-
isSelected(item: T): boolean;
|
|
139
|
-
}
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
| Return | Type | Description |
|
|
143
|
-
|--------|------|-------------|
|
|
144
|
-
| `hasSelectable` | `Signal<boolean>` | selectMode가 설정되어 있는지 여부 |
|
|
145
|
-
| `isAllSelected` | `Signal<boolean>` | 모든 선택 가능 항목이 선택되었는지 |
|
|
146
|
-
| `getSelectable(item)` | `true \| string \| undefined` | 선택 가능 여부. string은 불가 사유 |
|
|
147
|
-
| `getCanChangeFn(item)` | `() => boolean` | 선택 변경 가능 여부 함수 |
|
|
148
|
-
| `select(item)` | `void` | 항목 선택 (single이면 교체) |
|
|
149
|
-
| `deselect(item)` | `void` | 항목 선택 해제 |
|
|
150
|
-
| `toggle(item)` | `void` | 항목 토글 |
|
|
151
|
-
| `toggleAll()` | `void` | 전체 선택/해제 토글 |
|
|
152
|
-
| `isSelected(item)` | `boolean` | 선택 여부 |
|
|
153
|
-
|
|
154
|
-
### `useSortingManager`
|
|
155
|
-
|
|
156
|
-
정렬 관리 composable.
|
|
157
|
-
|
|
158
|
-
```typescript
|
|
159
|
-
function useSortingManager(options: {
|
|
160
|
-
sorts: WritableSignal<SortingDef[]>;
|
|
161
|
-
}): {
|
|
162
|
-
defMap: Signal<Map<string, { indexText?: string; desc: boolean }>>;
|
|
163
|
-
toggle(key: string, multiple: boolean): void;
|
|
164
|
-
sort<T>(items: T[]): T[];
|
|
165
|
-
}
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
| Return | Type | Description |
|
|
169
|
-
|--------|------|-------------|
|
|
170
|
-
| `defMap` | `Signal<Map<string, ...>>` | 키별 정렬 정의 (인덱스 텍스트, 방향) |
|
|
171
|
-
| `toggle(key, multiple)` | `void` | 정렬 토글. `multiple=true`면 멀티 소트, `false`면 단일 소트. 3단계: asc -> desc -> 없음 |
|
|
172
|
-
| `sort(items)` | `T[]` | 정렬 적용. 원본 배열은 변경하지 않음 |
|
|
173
|
-
|
|
174
|
-
### `useExpandingManager`
|
|
175
|
-
|
|
176
|
-
트리 확장/축소 관리 composable.
|
|
177
|
-
|
|
178
|
-
```typescript
|
|
179
|
-
function useExpandingManager<T>(binding: {
|
|
180
|
-
items: Signal<T[]>;
|
|
181
|
-
expandedItems: WritableSignal<T[]>;
|
|
182
|
-
getChildrenFn: Signal<((item: T, index: number) => T[] | undefined) | undefined>;
|
|
183
|
-
sort: (items: T[]) => T[];
|
|
184
|
-
}): {
|
|
185
|
-
displayItems: Signal<T[]>;
|
|
186
|
-
hasExpandable: Signal<boolean>;
|
|
187
|
-
isAllExpanded: Signal<boolean>;
|
|
188
|
-
toggle(item: T): void;
|
|
189
|
-
toggleAll(): void;
|
|
190
|
-
isVisible(item: T): boolean;
|
|
191
|
-
def(item: T): ExpandItemDef<T>;
|
|
192
|
-
}
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
| Return | Type | Description |
|
|
196
|
-
|--------|------|-------------|
|
|
197
|
-
| `displayItems` | `Signal<T[]>` | 트리를 평탄화한 전체 항목 (숨김 포함) |
|
|
198
|
-
| `hasExpandable` | `Signal<boolean>` | 확장 가능한 항목 존재 여부 |
|
|
199
|
-
| `isAllExpanded` | `Signal<boolean>` | 모든 확장 가능 항목이 펼쳐졌는지 |
|
|
200
|
-
| `toggle(item)` | `void` | 항목 확장/축소 토글 |
|
|
201
|
-
| `toggleAll()` | `void` | 전체 확장/축소 토글 |
|
|
202
|
-
| `isVisible(item)` | `boolean` | 부모 체인이 모두 펼쳐져 항목이 보이는지 |
|
|
203
|
-
| `def(item)` | `ExpandItemDef<T>` | 항목의 트리 정의 (depth, parentDef 등) |
|
|
204
|
-
|
|
205
|
-
## Setup Functions
|
|
206
|
-
|
|
207
|
-
생성자에서 호출하는 설정 함수들. `inject()`, `effect()`, `DestroyRef.onDestroy()`를 사용하여 수명주기를 관리한다.
|
|
208
|
-
|
|
209
|
-
### `setupBgTheme`
|
|
210
|
-
|
|
211
|
-
body 배경 테마 색상을 설정한다. 파괴 시 자동 복원.
|
|
212
|
-
|
|
213
|
-
```typescript
|
|
214
|
-
function setupBgTheme(options?: {
|
|
215
|
-
theme?: "primary" | "secondary" | "info" | "success" | "warning" | "danger" | "gray" | "blue-gray";
|
|
216
|
-
lightness?: "lightest" | "lighter";
|
|
217
|
-
}): void
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
### `setupRipple`
|
|
221
|
-
|
|
222
|
-
호스트 요소에 리플 효과를 설정한다. pointer 이벤트 기반.
|
|
223
|
-
|
|
224
|
-
```typescript
|
|
225
|
-
function setupRipple(enableFn?: () => boolean): void
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
### `setupRevealOnShow`
|
|
229
|
-
|
|
230
|
-
뷰포트 진입 시 reveal 애니메이션을 설정한다. IntersectionObserver 사용.
|
|
231
|
-
|
|
232
|
-
```typescript
|
|
233
|
-
function setupRevealOnShow(optFn?: () => {
|
|
234
|
-
type?: "l2r" | "t2b";
|
|
235
|
-
enabled?: boolean;
|
|
236
|
-
}): void
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
### `setupInvalid`
|
|
240
|
-
|
|
241
|
-
유효성 검증 표시기를 설정한다. 빨간 점 indicator + hidden input으로 구현.
|
|
242
|
-
|
|
243
|
-
```typescript
|
|
244
|
-
function setupInvalid(getInvalidMessage: () => string): void
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
빈 문자열이면 유효, 비어있지 않으면 무효.
|
|
248
|
-
|
|
249
|
-
### `setupModelHook`
|
|
250
|
-
|
|
251
|
-
model signal의 `set`/`update`를 가드 함수로 래핑한다. 가드 함수가 `false`를 반환하면 값 변경을 차단.
|
|
252
|
-
|
|
253
|
-
```typescript
|
|
254
|
-
function setupModelHook<T, S extends WritableSignal<T>>(
|
|
255
|
-
model: S,
|
|
256
|
-
canFn: Signal<(item: T) => boolean | Promise<boolean>>,
|
|
257
|
-
): void
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
### `setupCanDeactivate`
|
|
261
|
-
|
|
262
|
-
모달 또는 라우트에 canDeactivate 가드를 설정한다.
|
|
263
|
-
|
|
264
|
-
```typescript
|
|
265
|
-
function setupCanDeactivate(fn: () => boolean): void
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
모달 내부이면 `SdActivatedModalProvider.canDeactivateFn`에 설정, 라우트 내부이면 `routeConfig.canDeactivate`에 추가.
|
|
269
|
-
|
|
270
|
-
### `setupCumulateSelectedKeys`
|
|
271
|
-
|
|
272
|
-
items 변경 시 selectedItems 동기화, selectedItems 변경 시 selectedItemKeys 갱신.
|
|
273
|
-
|
|
274
|
-
```typescript
|
|
275
|
-
function setupCumulateSelectedKeys<TItem, TKey>(options: {
|
|
276
|
-
items: Signal<TItem[]>;
|
|
277
|
-
selectedItems: WritableSignal<TItem[]>;
|
|
278
|
-
selectedItemKeys: WritableSignal<TKey[]>;
|
|
279
|
-
selectMode: () => "single" | "multi" | undefined;
|
|
280
|
-
keySelectorFn: (item: TItem) => TKey | undefined;
|
|
281
|
-
}): void
|
|
282
|
-
```
|
|
283
|
-
|
|
284
|
-
### `setupCloserWhenSingleSelectionChange`
|
|
285
|
-
|
|
286
|
-
단일 선택 모드에서 선택이 변경되면 모달을 자동으로 닫는다.
|
|
287
|
-
|
|
288
|
-
```typescript
|
|
289
|
-
function setupCloserWhenSingleSelectionChange<TItem, TKey>(options: {
|
|
290
|
-
selectedItemKeys: Signal<TKey[]>;
|
|
291
|
-
selectedItems: Signal<TItem[]>;
|
|
292
|
-
selectMode: () => "single" | "multi" | undefined;
|
|
293
|
-
close: OutputEmitterRef<SelectModalOutputResult<TItem>>;
|
|
294
|
-
}): void
|
|
295
|
-
```
|