@keenaioc/data-view 0.2.0-alpha.10 → 0.2.0-alpha.11
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/CHANGELOG.md +12 -0
- package/INTEGRATION.md +40 -0
- package/KNOWN-LIMITATIONS.md +14 -0
- package/README.md +6 -2
- package/dist/column-actions.d.ts +47 -0
- package/dist/column-actions.d.ts.map +1 -0
- package/dist/column-actions.js +92 -0
- package/dist/column-actions.js.map +1 -0
- package/dist/column-menu.d.ts +25 -0
- package/dist/column-menu.d.ts.map +1 -0
- package/dist/column-menu.js +64 -0
- package/dist/column-menu.js.map +1 -0
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +2 -1
- package/dist/contracts.js.map +1 -1
- package/dist/data-view.d.ts.map +1 -1
- package/dist/data-view.js +62 -23
- package/dist/data-view.js.map +1 -1
- package/dist/engine.d.ts +1 -0
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +9 -1
- package/dist/engine.js.map +1 -1
- package/dist/group-order.d.ts +8 -0
- package/dist/group-order.d.ts.map +1 -0
- package/dist/group-order.js +24 -0
- package/dist/group-order.js.map +1 -0
- package/dist/group-settings.d.ts +17 -0
- package/dist/group-settings.d.ts.map +1 -0
- package/dist/group-settings.js +44 -0
- package/dist/group-settings.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/style.css +25 -0
- package/dist/types.d.ts +3 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/v2-panels.d.ts.map +1 -1
- package/dist/v2-panels.js +3 -4
- package/dist/v2-panels.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
歷史紀錄保留當時版本資訊;部分舊版已下架,歷史安裝/回退指令不代表仍可下載。alpha.8 的回退基準為 alpha.7。
|
|
4
4
|
|
|
5
|
+
## 0.2.0-alpha.11 — 2026-09-07(Alpha)
|
|
6
|
+
|
|
7
|
+
- 新增:表格與甘特左表的欄位表頭提供操作選單;滑鼠懸浮/鍵盤聚焦顯示入口,觸控裝置常駐。提供重新命名、複製欄位與值、隱藏、固定、排序、篩選、分組、整體欄位設定及確認刪除。
|
|
8
|
+
- 權限:結構修改沿用 `onFieldChange`、`canManageFields`、`canChangeField`;受保護欄位與未接回呼的操作停用,不放寬 host 權限。隱藏/固定僅改目前電腦視圖,手機設定保留。可用 `features.columnMenu: false` 關閉新入口。
|
|
9
|
+
- 新增:分組設定顯示各組清單,可拖曳到另一組前方、上移/下移、移到最上/最下、還原預設。支援空白分組、長標籤與捲動清單;單組/空清單具邊界保護,原生按鈕提供鍵盤及可讀名稱。
|
|
10
|
+
- 新增:`GroupRule.valueOrder?: string[]` 保存目前視圖各層的分組值鍵順序。最多三層各自設定,同層套用所有父組;暫時缺席的分組鍵保留,新的未排序組接在已排序組後方。
|
|
11
|
+
- 相容:不改原資料、組內排序、欄寬/隱藏/釘選、收合鍵、其他視圖或手機欄位;仍使用既有 view callbacks。省略 valueOrder 沿用 field.groupOrder/選項/名稱預設順序,schemaVersion 仍為 1。
|
|
12
|
+
- 修正:只改分組顯示顺序不改 `createDataViewQuery` 輸出,不因此重新載入遠端資料或清掉選取;重新選擇現有甘特分組欄位時保留該欄的自訂順序。
|
|
13
|
+
- 升級:`npm install --save-exact @keenaioc/data-view@0.2.0-alpha.11`,提交 dependency 與 lockfile,沿用套件 CSS。Host 保存 groups 時需保留可選 valueOrder。
|
|
14
|
+
- 回退:還原精確 alpha.10 dependency/lockfile 並重建。原資料無遷移;alpha.10 不讀取 valueOrder 並可能在保存時移除,回退前備份視圖設定。
|
|
15
|
+
- 驗收限制:程式與來源紀錄列明實際驗證範圍;本輪未完成瀏覽器/真機拖曳與鍵盤驗收,不宣稱全流程已驗收。
|
|
16
|
+
|
|
5
17
|
## 0.2.0-alpha.10 — 2026-09-06(Alpha)
|
|
6
18
|
|
|
7
19
|
- 新增:電腦表格欄位與手機顯示欄位清單提供「移到最上」「移到最下」,保留逐格上移/下移及電腦既有拖曳;頂底、單欄與空清單具邊界保護。按鈕使用原生 keyboard 操作、可讀名稱與提示。
|
package/INTEGRATION.md
CHANGED
|
@@ -216,3 +216,43 @@ const relationField = {
|
|
|
216
216
|
// 在既有 onCellCommit/onBatchCommit adapter 中將 nextValue?.id ?? null
|
|
217
217
|
// 對應到 host 的關聯欄位,成功後重新提供該 row;不在套件內決定資料表或欄名。
|
|
218
218
|
```
|
|
219
|
+
|
|
220
|
+
## alpha.11 分組順序(精確版 0.2.0-alpha.11)
|
|
221
|
+
|
|
222
|
+
分組設定中的各層現在都有分組值清單,可以拖曳到另一組前方、使用上/下/頂/底按鈕,或還原預設。空白組是清單中的一組,可主動移到最後。長清單在面板內捲動,長名稱換行;按鈕支援原生 Tab、Enter/Space,首末及單组不可越界。
|
|
223
|
+
|
|
224
|
+
分組新增的可選設定為 `view.groups[index].valueOrder: string[]`,不增加必要 props 或 schema 版本:
|
|
225
|
+
|
|
226
|
+
```ts
|
|
227
|
+
const nextView = {
|
|
228
|
+
...view,
|
|
229
|
+
groups: view.groups.map(rule => rule.fieldId === categoryFieldId
|
|
230
|
+
? { ...rule, valueOrder: ["sample-c", "sample-a", "sample-b", "__empty__"] }
|
|
231
|
+
: rule),
|
|
232
|
+
};
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
- 內容必須是分組引擎的 **valueKey**,不含 `fieldId:` 路徑前綴,也不是顯示名稱。可由 `buildGroupTree(rows, fields, view.groups)` 的 node.valueKey 取得。預設單值使用 `encodeURIComponent(值/關聯 ID)`;多值使用去重排序 ID 陣列 JSON 再編碼;空白為 `__empty__`。自訂 groupValue 則沿用其 key。不可用顯示名称推算關聯 ID。
|
|
236
|
+
- 優先序:目前視圖 valueOrder → field.groupOrder/選項定義順序 → 名稱排序。valueOrder 中的已排序組先顯示;未列出的新組在後方沿用預設順序。省略或還原 valueOrder 時使用原行為。空白的位置也由清單決定;新組不會自動插到已保存的空白組之前。
|
|
237
|
+
- 設定面板使用目前已載入且可讀的資料組別,包含本機篩選暫時隱藏的組。遠端尚未載入的組不會憑空產生;先前保存但暫時缺席的鍵仍保留,改其他組順序不會刪掉它們。沒有可讀名稱的缺席組不在面板顯示其 ID。
|
|
238
|
+
- 最多三層各自保存,同層規則適用所有父組。這次不提供每個父組分別排序,也不新增零筆數分組、遠端 group catalog 或全量資料載入機制。
|
|
239
|
+
- 僅改組別的呈現順序,不改原資料、組內 sorts、filters、columns、mobile、collapsedGroups 或其他視圖。表格及使用共用分組樹的甘特左表沿用相同規則;行事曆日期格維持日期排列。
|
|
240
|
+
- 使用既有 `onViewChange`/`onViewChangeDetail`/命名視圖的 `onViewsChange` callbacks 寫入。Host 必須完整保存 groups 中的 valueOrder;不要白名單僅保留 fieldId。保存後回傳受控 view;換頁與重新載入從相同視圖設定還原。
|
|
241
|
+
- 只改 valueOrder 不影響 `createDataViewQuery(view)` 的輸出與 query key;不觸發遠端重新查詢或自動載入。Host 若自行組 query,不應把這個純版面偏好當成資料查詢條件。
|
|
242
|
+
- alpha.10 以前 normalize 會移除新欄位。升級前後可保留設定備份;回退只影響這個排序偏好,不涉及資料轉換。個別專案的預設排序由專案端明確套用,不在公開共用套件內寫死。
|
|
243
|
+
|
|
244
|
+
驗收:指定順序含空白、按鈕/拖曳、單組/零組、多層、同名不同 ID、組名變更、篩選後還原、未完整載入後續補齊、保存失敗/衝突、切視圖/重新載入及唯讀權限。自訂參考值仍以永久 ID 辨識。
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
## alpha.11 欄位表頭操作
|
|
248
|
+
|
|
249
|
+
表格與甘特左表的表頭右側預留 24px 下拉按鈕,滑鼠懸浮或 Tab 聚焦時顯示;觸控裝置在表格呈現下常駐。Enter/Space 或向下鍵開啟,方向鍵/Home/End 選擇可用項目,Escape 關閉並回到原表頭,Tab 離開選單。原有「更多 → 電腦表格欄位」保留,用於整體管理與重新顯示隱藏欄位。卡片呈現沒有表頭,仍使用既有設定入口。
|
|
250
|
+
|
|
251
|
+
- **視圖操作**:隱藏、固定左/右/取消固定、升冪/降冪/取消此欄排序、篩選、分組。沿用既有 view callbacks;不改原資料。最後一個顯示欄位不能隱藏;排序將此欄放為第一順位,其他排序規則保留;新分組加在最後一層,最多三層,已分組欄位則開啟分組設定。篩選先編輯此欄第一個既有條件,或建立一個新條件,按「套用篩選」才生效,保留 AND/OR 及其他条件,總數最多二十個。
|
|
252
|
+
- **欄位結構**:重新命名、複製欄位與值、刪除,使用既有 `FieldChange`,沒有新的寫入協定。必須同時提供 `onFieldChange` 及 `permissions.canManageFields: true`;各欄/各動作再受 `canChangeField` 限制。系統、internal、action 或不可刪除的欄位不能修改結構;逐列受讀取限制的欄位不提供複製。未接回呼的操作停用並提供原因,不假裝修改成功。
|
|
253
|
+
- 重新命名與複製先填名稱再確認;複製傳出永久 `sourceFieldId` 及新欄位 ID,host 負責依原值建立副本,成功後回傳新的 `fields`/`rows`。刪除先顯示獨立確認視窗;host 負責實際刪除、資料保留與稽核,套件依新 `fields` 清理失效視圖引用。結構修改不納入資料格 undo。失敗/衝突保留表單並顯示結果。
|
|
254
|
+
- 隱藏及固定只調整目前 `view.columns`,不覆蓋 `view.mobile.fieldIds`。欄位結構改動則作用於共用的 fields,所有引用該欄位的視圖都會反映;不是單一視圖的顯示名稱覆寫。既有自訂分組 `valueOrder` 與其他偏好保留。
|
|
255
|
+
- 既有 `canConfigureView`、`canSort`、`canFilter` 及對應 features 仍有效。新增選填 `features.columnMenu?: boolean`,省略為開啟,設為 false 可回到原入口。没有新增必要 props、peer dependency 或 schema 版本。
|
|
256
|
+
- 使用原生 Popover 顶層避免固定欄/捲動容器裁切;不支援 Popover 時改用既有原生 dialog。外部點擊、Escape、表格/頁面捲動及尺寸變更會關閉浮動選單;選單本身可捲動。不支援欄位說明、整欄手動填色、通知自動化、左右插入或由此建立看板等額外功能。
|
|
257
|
+
|
|
258
|
+
接入時升級精確 `@keenaioc/data-view@0.2.0-alpha.11` 並載入相同版本 `@keenaioc/data-view/style.css`,不需要 host 覆蓋套件 CSS。驗收長欄名、窄欄、固定欄、橫向/縱向捲動、觸控表格、鍵盤、唯讀權限與結構回呼成功/失敗/衝突。程式與 SSR 檢查不等同瀏覽器實測。
|
package/KNOWN-LIMITATIONS.md
CHANGED
|
@@ -47,3 +47,17 @@
|
|
|
47
47
|
|
|
48
48
|
- alpha.10 的直接關聯選擇使用原生 select,展開樣式與鍵盤行為依瀏覽器/作業系統;支援原生輸入定位,沒有新增遠端搜尋或無限載入。選項與權限由 host 提供;自訂 renderer/editor/quick view/action 不會被原生選單覆蓋。
|
|
49
49
|
- 本輪自動測試及建置可驗證程式契約;本機瀏覽器操作遭安全政策阻擋,尚未完成頂底/拖曳/鍵盤、圖示尺寸與原生選單的實際畫面驗收。接入端保存、重新載入與真機操作仍須驗收。
|
|
50
|
+
|
|
51
|
+
## alpha.11 分組順序
|
|
52
|
+
|
|
53
|
+
- GroupRule 新增可選 valueOrder;Host 若保存時只取 fieldId,重新載入會遺失自訂順序。必須保存完整 groups 設定。
|
|
54
|
+
- 同一層在所有父組共用順序;目前不提供父組個別排序。面板僅列已載入的可讀組,暫時缺席的已存鍵保留但不顯示其 ID。
|
|
55
|
+
- 新組接在已排序組後;空白不是強制固定底部,可以主動移動。還原預設沿用欄位設定/選項順序/名稱排序。
|
|
56
|
+
- 程式驗證不取代瀏覽器或手機拖曳驗收。前輪本機瀏覽器受 URL 安全政策阻擋,本輪未重試同一路徑;鍵盤使用原生按鈕,行動裝置可用逐格及頂底按鈕。
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
## alpha.11 欄位表頭選單
|
|
60
|
+
|
|
61
|
+
表頭選單與確認表單已加入程式與 SSR 測試,但本輪沒有完成真實瀏覽器懸浮、焦點、Popover/dialog fallback、固定欄裁切、拖曳干擾及觸控驗收。既有瀏覽器 URL 政策限制仍適用。卡片呈現沒有表頭,使用既有設定入口。
|
|
62
|
+
|
|
63
|
+
重命名/複製/刪除需要 host 開放管理權限並實作 onFieldChange;這些入口不能代替後端欄位管理與資料保存。刪除與複製的真實值處理、交易、稽核與衝突由 host 驗收。表頭快捷篩選一次只編輯此欄第一個條件;完整條件仍在篩選面板。欄位說明、任意整欄填色、通知、自動化、左右插入與建立看板未包含於本次。
|
package/README.md
CHANGED
|
@@ -4,14 +4,14 @@ HomeYa 共用資料視圖引擎。以 既有工作台的既有表格成果為主
|
|
|
4
4
|
|
|
5
5
|
套件不包含資料庫、業務流程、報價公式、使用者帳號或專案資料。接入專案透過 `DataView` 的 callbacks 處理讀取、寫入、附件、權限與稽核。
|
|
6
6
|
|
|
7
|
-
本文件版本:**`0.2.0-alpha.
|
|
7
|
+
本文件版本:**`0.2.0-alpha.11`(公開 Alpha 測試版)**。新增欄位表頭操作選單與分組自訂順序;保留電腦/手機各自設定及既有欄位移動。程式、型別、建置及打包檢查已通過;修正後瀏覽器操作驗收尚未完成,接入時須重測。
|
|
8
8
|
|
|
9
9
|
既有基底:整合 T01~T19:工作台密度與 renderer、權限及狀態分離、資料列拖曳、並行寫入、手機獨立版面、排程空值、無分頁與遠端查詢契約。原先規劃的 alpha.6/alpha.7 合併為本版;alpha.6 未另行發布。
|
|
10
10
|
|
|
11
11
|
本版保留 Alpha 限制:自動測試與建置通過,完整桌機/手機操作驗收尚未完成。先在測試專案接入,再決定是否升級正式系統。
|
|
12
12
|
|
|
13
13
|
```sh
|
|
14
|
-
npm install --save-exact @keenaioc/data-view@0.2.0-alpha.
|
|
14
|
+
npm install --save-exact @keenaioc/data-view@0.2.0-alpha.11
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
必須固定精確版本;不要使用無版本安裝、`latest`、`next` 或範圍版本。
|
|
@@ -73,3 +73,7 @@ export function ProjectView({ rows }: { rows: Project[] }) {
|
|
|
73
73
|
不要求第一欄為特殊主欄位,不新增公式引擎。一般欄位仍可依既有規則固定、拖曳或隱藏。
|
|
74
74
|
|
|
75
75
|
alpha.10 同時提供附件迴紋針入口與預設單一關聯的直接選單;選項、永久 ID 與保存由 host adapter 提供,詳見 INTEGRATION.md。
|
|
76
|
+
|
|
77
|
+
alpha.11 加入依視圖保存的分組順序:拖曳、逐格或頂底移動、還原預設;空白分組也可移動。詳見 INTEGRATION.md。
|
|
78
|
+
|
|
79
|
+
alpha.11 的表頭懸浮選單可直接重新命名、複製、隱藏、固定、排序、篩選、分組與確認刪除。結構修改需要 host 的 `onFieldChange` 與管理權限;可用 `features.columnMenu: false` 關閉入口。
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { DataViewConfig, DataViewFeatures, DataViewPermissions, FieldChange, FieldDefinition, FilterGroup, FilterRule } from "./types.js";
|
|
2
|
+
export type FieldAction = "rename" | "copy" | "delete";
|
|
3
|
+
export type HeaderAction = FieldAction | "hide" | "pin-left" | "pin-right" | "unpin" | "sort-asc" | "sort-desc" | "clear-sort" | "group" | "filter" | "columns";
|
|
4
|
+
export type HeaderItem = {
|
|
5
|
+
action: HeaderAction;
|
|
6
|
+
label: string;
|
|
7
|
+
icon: string;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
reason?: string;
|
|
10
|
+
danger?: boolean;
|
|
11
|
+
separator?: boolean;
|
|
12
|
+
};
|
|
13
|
+
export declare function copyFieldChange<Row>(source: FieldDefinition<Row>, label?: string): FieldChange<Row> & {
|
|
14
|
+
action: "copy";
|
|
15
|
+
};
|
|
16
|
+
export declare function headerItems<Row>({ field, fields, view, permissions, features, hasFieldCallback, busy }: {
|
|
17
|
+
field: FieldDefinition<Row>;
|
|
18
|
+
fields: FieldDefinition<Row>[];
|
|
19
|
+
view: DataViewConfig;
|
|
20
|
+
permissions?: DataViewPermissions<Row>;
|
|
21
|
+
features?: DataViewFeatures;
|
|
22
|
+
hasFieldCallback: boolean;
|
|
23
|
+
busy: boolean;
|
|
24
|
+
}): HeaderItem[];
|
|
25
|
+
export declare function changeHeaderView(view: DataViewConfig, fieldId: string, action: HeaderAction): DataViewConfig;
|
|
26
|
+
export declare function FieldActionForm<Row>({ action, field, fields, permissions, busy, onApply, onCancel }: {
|
|
27
|
+
action: FieldAction;
|
|
28
|
+
field: FieldDefinition<Row>;
|
|
29
|
+
fields: FieldDefinition<Row>[];
|
|
30
|
+
permissions?: DataViewPermissions<Row>;
|
|
31
|
+
busy: boolean;
|
|
32
|
+
onApply: (change: FieldChange<Row>) => Promise<boolean>;
|
|
33
|
+
onCancel: () => void;
|
|
34
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
export declare function FilterValueInput<Row>({ field, rule, onChange }: {
|
|
36
|
+
field: FieldDefinition<Row>;
|
|
37
|
+
rule: FilterRule;
|
|
38
|
+
onChange: (value: unknown) => void;
|
|
39
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
export declare function ColumnFilterForm<Row>({ field, filters, disabled, onApply, onCancel }: {
|
|
41
|
+
field: FieldDefinition<Row>;
|
|
42
|
+
filters: FilterGroup;
|
|
43
|
+
disabled?: boolean;
|
|
44
|
+
onApply: (rule: FilterRule) => void;
|
|
45
|
+
onCancel: () => void;
|
|
46
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
47
|
+
//# sourceMappingURL=column-actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column-actions.d.ts","sourceRoot":"","sources":["../src/column-actions.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useRef, useState } from "react";
|
|
3
|
+
import { getFieldTypeDefinition, FILTER_OPERATOR_LABELS } from "./registry.js";
|
|
4
|
+
import { newOperationId, validateFieldChange } from "./operations.js";
|
|
5
|
+
export function copyFieldChange(source, label = `${source.label}(副本)`) {
|
|
6
|
+
const { getValue: _getValue, ...definition } = source;
|
|
7
|
+
return { action: "copy", sourceFieldId: source.id, field: { ...definition, id: `field_${newOperationId()}`, label, pinned: null, required: false, options: source.options?.map((option) => ({ ...option })) } };
|
|
8
|
+
}
|
|
9
|
+
export function headerItems({ field, fields, view, permissions, features = {}, hasFieldCallback, busy }) {
|
|
10
|
+
const configurable = permissions?.canConfigureView !== false;
|
|
11
|
+
const column = view.columns.find((item) => item.fieldId === field.id);
|
|
12
|
+
const visibleCount = view.columns.filter((item) => item.visible && fields.some((f) => f.id === item.fieldId && !f.internal)).length;
|
|
13
|
+
const structural = (action) => !hasFieldCallback ? "此專案未開放欄位結構修改" : validateFieldChange(fields, action === "copy" ? copyFieldChange(field) : action === "rename" ? { action, fieldId: field.id, label: field.label } : { action, fieldId: field.id }, permissions) ?? undefined;
|
|
14
|
+
const items = [
|
|
15
|
+
{ action: "rename", label: "重新命名欄位…", icon: "✎", reason: structural("rename") },
|
|
16
|
+
{ action: "copy", label: "複製欄位與值…", icon: "⧉", reason: structural("copy") },
|
|
17
|
+
{ action: "hide", label: "隱藏欄位", icon: "−", reason: !configurable || features.columns === false ? "沒有調整欄位顯示的權限" : visibleCount <= 1 ? "至少保留一個顯示欄位" : undefined },
|
|
18
|
+
{ action: "pin-left", label: "固定在左側", icon: "⇤", separator: true, reason: !configurable || features.columns === false ? "沒有調整欄位位置的權限" : column?.pinned === "left" ? "已固定在左側" : undefined },
|
|
19
|
+
{ action: "pin-right", label: "固定在右側", icon: "⇥", reason: !configurable || features.columns === false ? "沒有調整欄位位置的權限" : column?.pinned === "right" ? "已固定在右側" : undefined },
|
|
20
|
+
{ action: "unpin", label: "取消固定", icon: "↔", reason: !configurable || features.columns === false ? "沒有調整欄位位置的權限" : !column?.pinned ? "此欄位未固定" : undefined },
|
|
21
|
+
{ action: "sort-asc", label: "依此欄升冪排序", icon: "↑", separator: true, reason: !(permissions?.canSort ?? configurable) || features.sort === false ? "未開放排序" : undefined },
|
|
22
|
+
{ action: "sort-desc", label: "依此欄降冪排序", icon: "↓", reason: !(permissions?.canSort ?? configurable) || features.sort === false ? "未開放排序" : undefined },
|
|
23
|
+
{ action: "clear-sort", label: "取消此欄排序", icon: "↕", reason: !(permissions?.canSort ?? configurable) || features.sort === false ? "未開放排序" : !view.sorts.some((item) => item.fieldId === field.id) ? "此欄位未設定排序" : undefined },
|
|
24
|
+
{ action: "filter", label: "篩選此欄…", icon: "▽", reason: !(permissions?.canFilter ?? configurable) || features.filter === false ? "未開放篩選" : view.filters.rules.length >= 20 && !view.filters.rules.some((rule) => rule.fieldId === field.id) ? "最多二十個篩選條件" : undefined },
|
|
25
|
+
{ action: "group", label: view.groups.some((item) => item.fieldId === field.id) ? "調整此欄分組…" : "依此欄分組", icon: "▤", reason: !configurable || features.group === false ? "未開放分組" : view.groups.length >= 3 && !view.groups.some((item) => item.fieldId === field.id) ? "最多三層分組" : undefined },
|
|
26
|
+
{ action: "columns", label: "電腦表格欄位…", icon: "▥", separator: true, reason: !configurable || features.columns === false ? "未開放欄位設定" : undefined },
|
|
27
|
+
{ action: "delete", label: "刪除欄位…", icon: "×", danger: true, reason: structural("delete") },
|
|
28
|
+
];
|
|
29
|
+
return items.map((item) => ({ ...item, disabled: busy || !!item.reason, reason: busy ? "正在儲存,請稍候" : item.reason }));
|
|
30
|
+
}
|
|
31
|
+
export function changeHeaderView(view, fieldId, action) {
|
|
32
|
+
if (!view.columns.some((column) => column.fieldId === fieldId))
|
|
33
|
+
return view;
|
|
34
|
+
if (action === "hide") {
|
|
35
|
+
if (view.columns.filter((column) => column.visible).length <= 1)
|
|
36
|
+
return view;
|
|
37
|
+
return { ...view, columns: view.columns.map((column) => column.fieldId === fieldId ? { ...column, visible: false } : column) };
|
|
38
|
+
}
|
|
39
|
+
if (action === "pin-left" || action === "pin-right" || action === "unpin")
|
|
40
|
+
return { ...view, columns: view.columns.map((column) => column.fieldId === fieldId ? { ...column, pinned: action === "pin-left" ? "left" : action === "pin-right" ? "right" : null } : column) };
|
|
41
|
+
if (action === "sort-asc" || action === "sort-desc")
|
|
42
|
+
return { ...view, sorts: [{ fieldId, direction: action === "sort-asc" ? "asc" : "desc" }, ...view.sorts.filter((rule) => rule.fieldId !== fieldId)] };
|
|
43
|
+
if (action === "clear-sort")
|
|
44
|
+
return { ...view, sorts: view.sorts.filter((rule) => rule.fieldId !== fieldId) };
|
|
45
|
+
if (action === "group" && view.groups.length < 3 && !view.groups.some((rule) => rule.fieldId === fieldId))
|
|
46
|
+
return { ...view, groups: [...view.groups, { fieldId }] };
|
|
47
|
+
return view;
|
|
48
|
+
}
|
|
49
|
+
export function FieldActionForm({ action, field, fields, permissions, busy, onApply, onCancel }) {
|
|
50
|
+
const [label, setLabel] = useState(action === "copy" ? `${field.label}(副本)` : field.label);
|
|
51
|
+
const [message, setMessage] = useState("");
|
|
52
|
+
const submitting = useRef(false);
|
|
53
|
+
async function submit() {
|
|
54
|
+
if (busy || submitting.current)
|
|
55
|
+
return;
|
|
56
|
+
const change = action === "copy" ? copyFieldChange(field, label.trim()) : action === "rename" ? { action, fieldId: field.id, label: label.trim() } : { action, fieldId: field.id };
|
|
57
|
+
const error = validateFieldChange(fields, change, permissions);
|
|
58
|
+
if (error) {
|
|
59
|
+
setMessage(error);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
submitting.current = true;
|
|
63
|
+
try {
|
|
64
|
+
if (await onApply(change))
|
|
65
|
+
onCancel();
|
|
66
|
+
else
|
|
67
|
+
setMessage("未完成,請查看儲存提示後重試。");
|
|
68
|
+
}
|
|
69
|
+
finally {
|
|
70
|
+
submitting.current = false;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return _jsxs("form", { className: "hy-dv-form", onSubmit: (event) => { event.preventDefault(); void submit(); }, children: [_jsxs("fieldset", { disabled: busy || permissions?.canManageFields !== true, children: [_jsx("legend", { children: field.label }), action === "delete" ? _jsxs("p", { children: ["\u78BA\u8A8D\u522A\u9664\u300C", field.label, "\u300D\uFF1F\u5F15\u7528\u5B83\u7684\u7BE9\u9078\u3001\u6392\u5E8F\u3001\u586B\u8272\u8207\u8996\u5716\u6620\u5C04\u5C07\u88AB\u6E05\u9664\u3002\u8CC7\u6599\u4FDD\u7559\u65B9\u5F0F\u7531\u5C08\u6848\u6C7A\u5B9A\uFF0C\u6B64\u64CD\u4F5C\u4E0D\u5728\u8CC7\u6599\u5FA9\u539F\u7BC4\u570D\u5167\u3002"] }) : _jsxs("label", { children: [action === "copy" ? "新欄位名稱" : "欄位名稱", _jsx("input", { autoFocus: true, required: true, maxLength: 80, value: label, onChange: (event) => setLabel(event.target.value) })] }), action === "copy" && _jsx("p", { children: "\u5C07\u5EFA\u7ACB\u65B0\u6B04\u4F4D\uFF0C\u4E26\u8907\u88FD\u539F\u6B04\u4F4D\u7684\u8CC7\u6599\u503C\u3002" }), _jsxs("div", { className: "hy-dv-actions", children: [_jsx("button", { type: "button", autoFocus: action === "delete", onClick: onCancel, children: "\u53D6\u6D88" }), _jsx("button", { type: "submit", className: action === "delete" ? "hy-dv-danger" : "hy-dv-primary", disabled: action !== "delete" && (!label.trim() || action === "rename" && label.trim() === field.label), children: action === "delete" ? "確認刪除欄位" : action === "copy" ? "確認複製" : "儲存名稱" })] })] }), message && _jsx("p", { role: "alert", children: message })] });
|
|
74
|
+
}
|
|
75
|
+
export function FilterValueInput({ field, rule, onChange }) {
|
|
76
|
+
if (["isEmpty", "isNotEmpty", "isTrue", "isFalse"].includes(rule.operator))
|
|
77
|
+
return _jsx("span", { className: "hy-dv-no-value", children: "\u4E0D\u9700\u586B\u503C" });
|
|
78
|
+
if (field.options?.length)
|
|
79
|
+
return _jsxs("select", { value: String(rule.value ?? ""), onChange: (event) => onChange(event.target.value), children: [_jsx("option", { value: "", children: "\u8ACB\u9078\u64C7" }), field.options.map((option) => _jsx("option", { value: option.value, children: option.label }, option.value))] });
|
|
80
|
+
if (["number", "currency", "percentage", "autoNumber"].includes(field.type))
|
|
81
|
+
return _jsx("input", { type: "number", value: String(rule.value ?? ""), onChange: (event) => onChange(event.target.value === "" ? undefined : Number(event.target.value)) });
|
|
82
|
+
if (["date", "dateTime", "createdAt", "updatedAt"].includes(field.type))
|
|
83
|
+
return _jsx("input", { type: "date", value: String(rule.value ?? "").slice(0, 10), onChange: (event) => onChange(event.target.value) });
|
|
84
|
+
return _jsx("input", { value: String(rule.value ?? ""), onChange: (event) => onChange(event.target.value), placeholder: "\u8F38\u5165\u689D\u4EF6" });
|
|
85
|
+
}
|
|
86
|
+
export function ColumnFilterForm({ field, filters, disabled = false, onApply, onCancel }) {
|
|
87
|
+
const operators = getFieldTypeDefinition(field.type).operators;
|
|
88
|
+
const [rule, setRule] = useState(() => filters.rules.find((item) => item.fieldId === field.id) ?? { id: newOperationId(), fieldId: field.id, operator: operators[0] });
|
|
89
|
+
return _jsx("form", { className: "hy-dv-form", onSubmit: (event) => { event.preventDefault(); if (!disabled)
|
|
90
|
+
onApply(rule); }, children: _jsxs("fieldset", { disabled: disabled, children: [_jsx("legend", { children: field.label }), _jsxs("label", { children: ["\u689D\u4EF6", _jsx("select", { autoFocus: true, value: rule.operator, onChange: (event) => setRule({ ...rule, operator: event.target.value, value: undefined }), children: operators.map((operator) => _jsx("option", { value: operator, children: FILTER_OPERATOR_LABELS[operator] }, operator)) })] }), _jsxs("label", { children: ["\u689D\u4EF6\u503C", _jsx(FilterValueInput, { field: field, rule: rule, onChange: (value) => setRule({ ...rule, value }) })] }), _jsxs("div", { className: "hy-dv-actions", children: [_jsx("button", { type: "button", onClick: onCancel, children: "\u53D6\u6D88" }), _jsx("button", { type: "submit", children: "\u5957\u7528\u7BE9\u9078" })] })] }) });
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=column-actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column-actions.js","sourceRoot":"","sources":["../src/column-actions.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { HeaderAction, HeaderItem } from "./column-actions.js";
|
|
2
|
+
export declare function columnMenuPosition(anchor: {
|
|
3
|
+
left: number;
|
|
4
|
+
right: number;
|
|
5
|
+
top: number;
|
|
6
|
+
bottom: number;
|
|
7
|
+
}, menu: {
|
|
8
|
+
width: number;
|
|
9
|
+
height: number;
|
|
10
|
+
}, viewport: {
|
|
11
|
+
width: number;
|
|
12
|
+
height: number;
|
|
13
|
+
}): {
|
|
14
|
+
left: number;
|
|
15
|
+
top: number;
|
|
16
|
+
};
|
|
17
|
+
export declare function ColumnMenu({ id, label, anchor, items, onChoose, onClose }: {
|
|
18
|
+
id: string;
|
|
19
|
+
label: string;
|
|
20
|
+
anchor: HTMLButtonElement;
|
|
21
|
+
items: HeaderItem[];
|
|
22
|
+
onChoose: (action: HeaderAction) => void;
|
|
23
|
+
onClose: () => void;
|
|
24
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
//# sourceMappingURL=column-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column-menu.d.ts","sourceRoot":"","sources":["../src/column-menu.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEpE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,QAAQ,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;;;EAE5L;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,UAAU,EAAE,CAAC;IAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,2CAkCvN"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useRef, useState } from "react";
|
|
3
|
+
import { DataViewDialog } from "./v2-panels.js";
|
|
4
|
+
export function columnMenuPosition(anchor, menu, viewport) {
|
|
5
|
+
return { left: Math.max(8, Math.min(anchor.right - menu.width, viewport.width - menu.width - 8)), top: Math.max(8, Math.min(anchor.bottom + 4 + menu.height <= viewport.height - 8 ? anchor.bottom + 4 : anchor.top - menu.height - 4, viewport.height - menu.height - 8)) };
|
|
6
|
+
}
|
|
7
|
+
export function ColumnMenu({ id, label, anchor, items, onChoose, onClose }) {
|
|
8
|
+
const ref = useRef(null);
|
|
9
|
+
const close = useRef(onClose);
|
|
10
|
+
close.current = onClose;
|
|
11
|
+
const [fallback, setFallback] = useState(false);
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
const menu = ref.current;
|
|
14
|
+
if (!menu)
|
|
15
|
+
return;
|
|
16
|
+
if (typeof menu.showPopover !== "function") {
|
|
17
|
+
setFallback(true);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const dismiss = (event) => { if (event.newState === "closed")
|
|
21
|
+
close.current(); };
|
|
22
|
+
const moved = (event) => { if (!(event.target instanceof Node) || !menu.contains(event.target))
|
|
23
|
+
close.current(); };
|
|
24
|
+
menu.addEventListener("toggle", dismiss);
|
|
25
|
+
menu.showPopover();
|
|
26
|
+
const position = columnMenuPosition(anchor.getBoundingClientRect(), menu.getBoundingClientRect(), { width: window.innerWidth, height: window.innerHeight });
|
|
27
|
+
menu.style.left = `${position.left}px`;
|
|
28
|
+
menu.style.top = `${position.top}px`;
|
|
29
|
+
(menu.querySelector("button:not(:disabled)") ?? menu).focus();
|
|
30
|
+
window.addEventListener("scroll", moved, true);
|
|
31
|
+
window.addEventListener("resize", moved);
|
|
32
|
+
return () => { menu.removeEventListener("toggle", dismiss); window.removeEventListener("scroll", moved, true); window.removeEventListener("resize", moved); if (menu.matches(":popover-open"))
|
|
33
|
+
menu.hidePopover(); };
|
|
34
|
+
}, [anchor]);
|
|
35
|
+
function keyDown(event) {
|
|
36
|
+
const menu = event.currentTarget;
|
|
37
|
+
if (event.key === "Tab" && !fallback) {
|
|
38
|
+
anchor.focus();
|
|
39
|
+
onClose();
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (event.key === "Escape") {
|
|
43
|
+
event.preventDefault();
|
|
44
|
+
event.stopPropagation();
|
|
45
|
+
anchor.focus();
|
|
46
|
+
onClose();
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const buttons = [...menu.querySelectorAll("button:not(:disabled)")];
|
|
50
|
+
if (!buttons.length || !["ArrowDown", "ArrowUp", "Home", "End"].includes(event.key))
|
|
51
|
+
return;
|
|
52
|
+
event.preventDefault();
|
|
53
|
+
event.stopPropagation();
|
|
54
|
+
const index = buttons.indexOf(document.activeElement);
|
|
55
|
+
const target = event.key === "Home" ? 0 : event.key === "End" ? buttons.length - 1 : (index + (event.key === "ArrowDown" ? 1 : -1) + buttons.length) % buttons.length;
|
|
56
|
+
buttons[target].focus();
|
|
57
|
+
}
|
|
58
|
+
const body = _jsx("div", { id: fallback ? id : undefined, role: fallback ? "menu" : undefined, "aria-label": fallback ? `${label}欄位操作` : undefined, onKeyDown: keyDown, children: items.map((item) => _jsxs("button", { type: "button", role: "menuitem", tabIndex: fallback ? 0 : -1, disabled: item.disabled, title: item.reason, className: `${item.danger ? "hy-dv-danger" : ""} ${item.separator ? "has-separator" : ""}`, onClick: () => { anchor.focus(); onChoose(item.action); }, children: [_jsx("span", { "aria-hidden": "true", children: item.icon }), _jsx("span", { children: item.label })] }, item.action)) });
|
|
59
|
+
if (fallback)
|
|
60
|
+
return _jsx(DataViewDialog, { title: `${label}欄位操作`, onClose: () => { anchor.focus(); onClose(); }, children: _jsx("div", { className: "hy-dv-header-menu-fallback", children: body }) });
|
|
61
|
+
return _jsx("div", { id: id, ref: ref, popover: "auto", role: "menu", tabIndex: -1, "aria-label": `${label}欄位操作`, className: "hy-dv-header-menu", onBlur: (event) => { if (event.relatedTarget instanceof Node && event.relatedTarget !== anchor && !event.currentTarget.contains(event.relatedTarget))
|
|
62
|
+
onClose(); }, children: body });
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=column-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column-menu.js","sourceRoot":"","sources":["../src/column-menu.tsx"],"names":[],"mappings":"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"}
|
package/dist/contracts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEpH,eAAO,MAAM,iBAAiB,EAAE,eAK/B,CAAC;AACF,wBAAgB,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAQpH;AACD,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,CAG1G;AACD,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,cAAc,CAEjG;AACD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEpH,eAAO,MAAM,iBAAiB,EAAE,eAK/B,CAAC;AACF,wBAAgB,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAQpH;AACD,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,CAG1G;AACD,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,cAAc,CAEjG;AACD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,aAAa,CAGvE;AACD,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,UAAmC;AAExF,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC;UAEpE,MAAM;cAAY,MAAM;aAAW,MAAM;IAO3E;AAED,2FAA2F;AAC3F,wBAAgB,gBAAgB;;;QAOxB,CAAC,aAAa,MAAM,EAAE,UAAU,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;EAUxE;AAED,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,SAAI;;;;;;;EAM3F"}
|
package/dist/contracts.js
CHANGED
|
@@ -22,7 +22,8 @@ export function mergeViewState(layout, runtime) {
|
|
|
22
22
|
return { ...layout, ...runtime, location: { ...layout.location, ...runtime?.location } };
|
|
23
23
|
}
|
|
24
24
|
export function createDataViewQuery(view) {
|
|
25
|
-
|
|
25
|
+
// Group display order is a local layout preference, not a remote data query change.
|
|
26
|
+
return { version: 1, search: view.location?.search ?? "", filters: view.filters, sorts: view.sorts, groups: view.groups.map(({ fieldId }) => ({ fieldId })) };
|
|
26
27
|
}
|
|
27
28
|
/** JSON-safe canonical key: callers must reset remote rows whenever this changes. */
|
|
28
29
|
export function dataViewQueryKey(query) { return JSON.stringify(query); }
|
package/dist/contracts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAAoB;IAChD,SAAS,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC;IAChF,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;IACxE,iBAAiB,EAAE,CAAC,EAAE,kBAAkB,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE;IACjF,WAAW,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE;CAC7F,CAAC;AACF,MAAM,UAAU,cAAc,CAAC,OAAkC,EAAE,KAAgC;IACjG,MAAM,IAAI,GAAG,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,EAAE,SAAS,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;IAC5O,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IACxB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAiC,EAAE,CAAC;QACpE,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,GAAG;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACtI,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AACD,MAAM,UAAU,cAAc,CAAC,IAAoB;IACjD,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IACtD,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,CAAC;AAChG,CAAC;AACD,MAAM,UAAU,cAAc,CAAC,MAAsB,EAAE,OAA0B;IAC/E,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC;AAC3F,CAAC;AACD,MAAM,UAAU,mBAAmB,CAAC,IAAoB;IACtD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"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"}
|
package/dist/data-view.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-view.d.ts","sourceRoot":"","sources":["../src/data-view.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data-view.d.ts","sourceRoot":"","sources":["../src/data-view.tsx"],"names":[],"mappings":"AA8CA,OAAO,KAAK,EAIV,aAAa,EAWd,MAAM,YAAY,CAAC;AAQpB,wBAAgB,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,2CAEtD"}
|