@nexia/sdk 0.8.16 → 0.8.18
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 +20 -2
- package/changelog/0.8.17/en.md +11 -0
- package/changelog/0.8.17/ko.md +11 -0
- package/changelog/0.8.18/en.md +9 -0
- package/changelog/0.8.18/ko.md +9 -0
- package/dist/resources/resource-transfer.d.ts +7 -0
- package/dist/shell.d.ts +15 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -103,8 +103,8 @@ in multiple-selection mode it is ignored so checking a row never closes the dial
|
|
|
103
103
|
Use `NxLookupField` from `@nexia/sdk/host` for a field that opens a record lookup.
|
|
104
104
|
`NxCombobox` now owns only popover list selection. The earlier draft
|
|
105
105
|
`NxCombobox presentation="dialog"` API and its lookup-only props are removed.
|
|
106
|
-
|
|
107
|
-
|
|
106
|
+
Use React SDK 0.8.13 and Core 0.8.152 or later together before adopting this
|
|
107
|
+
field. Migrate the earlier dialog-only combobox props as shown below.
|
|
108
108
|
|
|
109
109
|
`NxLookupField` displays the applied value and opens the shared `NxLookupDialog`.
|
|
110
110
|
It supports typed string/number values, single/multiple selection, create
|
|
@@ -149,3 +149,21 @@ SDK and Core host; omitting this optional prop retains the existing picker.
|
|
|
149
149
|
|
|
150
150
|
`NxLookupDialog` remains available for composition that already owns its trigger.
|
|
151
151
|
Current-page select-all never means every matching record on the server.
|
|
152
|
+
|
|
153
|
+
## Released host options
|
|
154
|
+
|
|
155
|
+
Use the [frontend host guide](https://developers.nexia.to/en/docs/app-sdk-frontend-host-contracts)
|
|
156
|
+
for the complete procedure and current host prerequisites. Existing optional
|
|
157
|
+
props can remain omitted; new options require a compatible Core host.
|
|
158
|
+
|
|
159
|
+
| React SDK | Capability | Core support |
|
|
160
|
+
| --- | --- | --- |
|
|
161
|
+
| 0.8.14 | Operating-unit lookup, `kind: "dateRange"`, `exportKey` | 0.8.159 |
|
|
162
|
+
| 0.8.15 | `submissionId` and `recordPrint` | 0.8.173 with matching runtime |
|
|
163
|
+
| 0.8.16 | `NEXIA_READ_ONLY_HEADER` | 0.8.167 |
|
|
164
|
+
| 0.8.17 | Toolbar `moreItems`, `export_restricted_columns` | 0.8.170 |
|
|
165
|
+
|
|
166
|
+
Import `NEXIA_READ_ONLY_HEADER` from `@nexia/sdk` or `@nexia/sdk/host` and
|
|
167
|
+
send `{ [NEXIA_READ_ONLY_HEADER]: 'true' }` only for nonmutating POST queries.
|
|
168
|
+
Never mark a save as read-only. A `submissionId` is an accepted request, not
|
|
169
|
+
proof that a case exists. Keep denied rows/fields excluded from print/export.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: published
|
|
3
|
+
version: 0.8.17
|
|
4
|
+
date: 2026-10-29
|
|
5
|
+
title: Table menu commands and export restrictions
|
|
6
|
+
description: Extend the shared table menu and describe permission-excluded export columns.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
React SDK 0.8.17 adds optional `ResourceListToolbarConfig.moreItems` commands to the standard table menu while retaining export, print and column controls. Transfer metadata can declare `export_restricted_columns` as `{ key, label }` entries so the host explains permission exclusions. Existing callers remain compatible; use the matching Core host and keep row/field authorization in the App export source.
|
|
10
|
+
|
|
11
|
+
See the [frontend host guide](https://developers.nexia.to/docs/app-sdk-frontend-host-contracts) and the [package artifact](https://www.npmjs.com/package/@nexia/sdk/v/0.8.17).
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: published
|
|
3
|
+
version: 0.8.17
|
|
4
|
+
date: 2026-10-29
|
|
5
|
+
title: 표 메뉴 작업과 내보내기 권한 안내
|
|
6
|
+
description: 공통 표 메뉴에 작업을 추가하고 권한으로 제외한 내보내기 열을 안내합니다.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
React SDK 0.8.17은 선택 항목 `ResourceListToolbarConfig.moreItems`로 기본 내보내기·인쇄·열 설정 메뉴에 앱 작업을 추가합니다. 전송 메타데이터의 `export_restricted_columns`에 `{ key, label }` 항목을 전달하면 호스트가 권한으로 제외된 열을 안내합니다. 기존 호출도 호환됩니다. 대응하는 Core 호스트를 함께 적용하고 앱의 내보내기 조회에서 행·필드 권한을 계속 확인하세요.
|
|
10
|
+
|
|
11
|
+
[프런트엔드 호스트 가이드](https://developers.nexia.to/docs/app-sdk-frontend-host-contracts)와 [패키지 산출물](https://www.npmjs.com/package/@nexia/sdk/v/0.8.17)을 확인하세요.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: published
|
|
3
|
+
version: 0.8.18
|
|
4
|
+
date: 2026-10-30
|
|
5
|
+
title: Lookup selection and visible columns
|
|
6
|
+
description: Select all authorized lookup results and observe visible table columns.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
React SDK 0.8.18 adds `NxLookupField.selectAllOptions`, `NxLookupDialog.selectAllRows` and `ResourceTable.onVisibleColumnsChange`. Selection loaders must return all authorized results for the current query, honor cancellation and reject partial results. Apply/Cancel behavior remains unchanged. Visible columns may guide server search but never replace authorization before pagination. Adopt the matching Core host. See the [UI component guide](https://developers.nexia.to/docs/app-sdk-ui-components) and [package artifact](https://www.npmjs.com/package/@nexia/sdk/v/0.8.18).
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: published
|
|
3
|
+
version: 0.8.18
|
|
4
|
+
date: 2026-10-30
|
|
5
|
+
title: 조회 결과 전체 선택과 표시 열
|
|
6
|
+
description: 권한이 있는 조회 결과를 전체 선택하고 표의 표시 열 변경을 받습니다.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
React SDK 0.8.18은 `NxLookupField.selectAllOptions`, `NxLookupDialog.selectAllRows`, `ResourceTable.onVisibleColumnsChange`를 추가합니다. 선택 로더는 현재 검색 조건에서 권한이 있는 전체 결과를 반환하고 취소 요청을 처리하며 불완전한 결과를 거부해야 합니다. 적용·취소 동작은 유지됩니다. 표시 열은 서버 검색 범위에 활용할 수 있지만 페이지 분할 전 권한 검사를 대체하지 않습니다. 대응 Core 호스트를 함께 적용하세요. [UI 컴포넌트 안내](https://developers.nexia.to/docs/app-sdk-ui-components)와 [패키지](https://www.npmjs.com/package/@nexia/sdk/v/0.8.18)를 참고하세요.
|
|
@@ -25,6 +25,11 @@ export interface ResourceTransferMeta {
|
|
|
25
25
|
}>;
|
|
26
26
|
};
|
|
27
27
|
schema_hash: string;
|
|
28
|
+
/** Declared export fields omitted from schema.columns by column permissions. */
|
|
29
|
+
export_restricted_columns?: Array<{
|
|
30
|
+
key: string;
|
|
31
|
+
label: string;
|
|
32
|
+
}>;
|
|
28
33
|
formats: ResourceTransferFormat[];
|
|
29
34
|
export_formats?: ResourceTransferFormat[];
|
|
30
35
|
import_formats?: ResourceTransferFormat[];
|
|
@@ -208,6 +213,8 @@ export interface NxDatasetImportWorkspaceProps {
|
|
|
208
213
|
onChange: (key: string, value: string) => void;
|
|
209
214
|
busy: boolean;
|
|
210
215
|
previewIsCurrent: boolean;
|
|
216
|
+
/** Mark changed reference setup as needing review without starting a job. */
|
|
217
|
+
invalidatePreview: () => void;
|
|
211
218
|
/** Reanalyze the uploaded file with the current App rules. */
|
|
212
219
|
recheck: () => void;
|
|
213
220
|
}) => ReactNode;
|
package/dist/shell.d.ts
CHANGED
|
@@ -382,6 +382,8 @@ export interface ResourceListToolbarConfig {
|
|
|
382
382
|
filters?: ReactNode;
|
|
383
383
|
refresh?: ReactNode;
|
|
384
384
|
more?: ReactNode;
|
|
385
|
+
/** Commands appended to the standard export/print menu. */
|
|
386
|
+
moreItems?: NxDropdownMenuItem[];
|
|
385
387
|
testId?: string;
|
|
386
388
|
}
|
|
387
389
|
export interface ResourceListRefreshConfig {
|
|
@@ -443,6 +445,8 @@ export interface ResourceTableProps<T> {
|
|
|
443
445
|
labelTooltip?: ReactNode;
|
|
444
446
|
rows: T[];
|
|
445
447
|
columns: ResourceTableColumn<T>[];
|
|
448
|
+
/** Effective data columns after saved preferences, including host-added columns. */
|
|
449
|
+
onVisibleColumnsChange?: (keys: string[]) => void;
|
|
446
450
|
/** Opt in to the host's card presentation. Omit for table-only list semantics. */
|
|
447
451
|
renderCard?: (row: T, index: number) => ReactNode;
|
|
448
452
|
/** Initial view when no actor-scoped table preference has been saved. */
|
|
@@ -1453,6 +1457,12 @@ interface NxLookupFieldBaseProps<TValue extends string | number> {
|
|
|
1453
1457
|
options: readonly NxLookupOption<TValue>[];
|
|
1454
1458
|
/** Supply applied choices that are absent from the current server page. */
|
|
1455
1459
|
selectedOptions?: readonly NxLookupOption<TValue>[];
|
|
1460
|
+
/** Complete authorized results for the current search/filters. Change scopeKey when that scope changes.
|
|
1461
|
+
* Must reject on failure; never return a partial collection. Disabled options are excluded by the host. */
|
|
1462
|
+
selectAllOptions?: {
|
|
1463
|
+
scopeKey: string;
|
|
1464
|
+
load: (signal: AbortSignal) => Promise<readonly NxLookupOption<TValue>[]>;
|
|
1465
|
+
};
|
|
1456
1466
|
placeholder: ReactNode;
|
|
1457
1467
|
ariaLabel: string;
|
|
1458
1468
|
description?: string;
|
|
@@ -1533,6 +1543,11 @@ export interface NxLookupDialogProps {
|
|
|
1533
1543
|
value: readonly NxLookupRow[];
|
|
1534
1544
|
onApply: (rows: NxLookupRow[]) => void;
|
|
1535
1545
|
rows: readonly NxLookupRow[];
|
|
1546
|
+
/** Optional complete authorized result loader; selection remains a draft until Apply. */
|
|
1547
|
+
selectAllRows?: {
|
|
1548
|
+
scopeKey: string;
|
|
1549
|
+
load: (signal: AbortSignal) => Promise<readonly NxLookupRow[]>;
|
|
1550
|
+
};
|
|
1536
1551
|
columns: readonly {
|
|
1537
1552
|
key: string;
|
|
1538
1553
|
label: string;
|