@proteinjs/db-ui 1.8.4 → 1.9.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.
Files changed (41) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/generated/index.js +1 -1
  3. package/dist/generated/index.js.map +1 -1
  4. package/dist/src/pages/HashGeneratorPage.d.ts.map +1 -1
  5. package/dist/src/pages/HashGeneratorPage.js +0 -1
  6. package/dist/src/pages/HashGeneratorPage.js.map +1 -1
  7. package/dist/src/pages/RecordFormPage.d.ts.map +1 -1
  8. package/dist/src/pages/RecordFormPage.js +13 -6
  9. package/dist/src/pages/RecordFormPage.js.map +1 -1
  10. package/dist/src/pages/RecordTablePage.d.ts.map +1 -1
  11. package/dist/src/pages/RecordTablePage.js +9 -6
  12. package/dist/src/pages/RecordTablePage.js.map +1 -1
  13. package/dist/src/pages/TablesPage.d.ts.map +1 -1
  14. package/dist/src/pages/TablesPage.js +0 -1
  15. package/dist/src/pages/TablesPage.js.map +1 -1
  16. package/dist/src/pages/UuidGeneratorPage.d.ts.map +1 -1
  17. package/dist/src/pages/UuidGeneratorPage.js +0 -1
  18. package/dist/src/pages/UuidGeneratorPage.js.map +1 -1
  19. package/dist/src/table/QueryCursorLoader.d.ts +10 -14
  20. package/dist/src/table/QueryCursorLoader.d.ts.map +1 -1
  21. package/dist/src/table/QueryCursorLoader.js +20 -41
  22. package/dist/src/table/QueryCursorLoader.js.map +1 -1
  23. package/dist/test/QueryCursorLoader.test.d.ts +1 -1
  24. package/dist/test/QueryCursorLoader.test.d.ts.map +1 -1
  25. package/dist/test/QueryCursorLoader.test.js +122 -95
  26. package/dist/test/QueryCursorLoader.test.js.map +1 -1
  27. package/dist/test/recordPageErrorStates.test.d.ts +2 -0
  28. package/dist/test/recordPageErrorStates.test.d.ts.map +1 -0
  29. package/dist/test/recordPageErrorStates.test.js +37 -0
  30. package/dist/test/recordPageErrorStates.test.js.map +1 -0
  31. package/generated/index.ts +1 -1
  32. package/jest.config.js +8 -0
  33. package/package.json +4 -3
  34. package/src/pages/HashGeneratorPage.tsx +0 -1
  35. package/src/pages/RecordFormPage.tsx +13 -7
  36. package/src/pages/RecordTablePage.tsx +14 -11
  37. package/src/pages/TablesPage.tsx +0 -1
  38. package/src/pages/UuidGeneratorPage.tsx +0 -1
  39. package/src/table/QueryCursorLoader.ts +23 -43
  40. package/test/QueryCursorLoader.test.ts +87 -94
  41. package/test/recordPageErrorStates.test.tsx +35 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,28 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.9.0](https://github.com/proteinjs/db/compare/@proteinjs/db-ui@1.8.5...@proteinjs/db-ui@1.9.0) (2026-08-14)
7
+
8
+
9
+ ### Features
10
+
11
+ * cursor-window paging owner; RecordIterator migrated off offset paging ([453c4a2](https://github.com/proteinjs/db/commit/453c4a2a5f87bd7b58b0042185100bcf9ae0e183))
12
+
13
+
14
+
15
+
16
+
17
+ ## [1.8.5](https://github.com/proteinjs/db/compare/@proteinjs/db-ui@1.8.4...@proteinjs/db-ui@1.8.5) (2026-08-14)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * record table/form page error states + drop 100vh page pins ([6c6aca2](https://github.com/proteinjs/db/commit/6c6aca2cca754e8201011694da893dba2bbd6898))
23
+
24
+
25
+
26
+
27
+
6
28
  ## [1.8.4](https://github.com/proteinjs/db/compare/@proteinjs/db-ui@1.8.3...@proteinjs/db-ui@1.8.4) (2026-08-14)
7
29
 
8
30
  **Note:** Version bump only for package @proteinjs/db-ui
@@ -28,7 +28,7 @@ require("react");
28
28
  require("string");
29
29
  require("uuid");
30
30
  /** Generate Source Graph */
31
- var sourceGraph = "{\"options\":{\"directed\":true,\"multigraph\":false,\"compound\":false},\"nodes\":[{\"v\":\"@proteinjs/db-ui/QueryCursorLoader\",\"value\":{\"packageName\":\"@proteinjs/db-ui\",\"name\":\"QueryCursorLoader\",\"filePath\":\"/home/runner/work/db/db/packages/ui/src/table/QueryCursorLoader.ts\",\"qualifiedName\":\"@proteinjs/db-ui/QueryCursorLoader\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"reactQueryKeys\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"ReactQueryKeys\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/ReactQueryKeys\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"sort\",\"type\":{\"packageName\":\"\",\"name\":\"SortCriteria<T>[]\",\"filePath\":null,\"qualifiedName\":\"/SortCriteria<T>[]\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"},{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<T>\",\"filePath\":null,\"qualifiedName\":\"/Table<T>\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"},{\"name\":\"createQuery\",\"type\":{\"packageName\":\"\",\"name\":\"() => QueryBuilder<T>\",\"filePath\":null,\"qualifiedName\":\"/() => QueryBuilder<T>\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"},{\"name\":\"queryOptions\",\"type\":{\"packageName\":\"\",\"name\":\"QueryOptions<T>\",\"filePath\":null,\"qualifiedName\":\"/QueryOptions<T>\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":true,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"}],\"methods\":[{\"name\":\"loadWindow\",\"returnType\":{\"packageName\":\"\",\"name\":\"Promise<CursorWindow<T>>\",\"filePath\":null,\"qualifiedName\":\"/Promise<CursorWindow<T>>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":true,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"cursor\",\"type\":{\"packageName\":\"\",\"name\":\"CursorValue | null\",\"filePath\":null,\"qualifiedName\":\"/CursorValue | null\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"windowSize\",\"type\":{\"packageName\":\"\",\"name\":\"number\",\"filePath\":null,\"qualifiedName\":\"/number\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"buildWindowQuery\",\"returnType\":{\"packageName\":\"\",\"name\":\"QueryBuilder<T>\",\"filePath\":null,\"qualifiedName\":\"/QueryBuilder<T>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\",\"parameters\":[{\"name\":\"cursor\",\"type\":{\"packageName\":\"\",\"name\":\"CursorValue | null\",\"filePath\":null,\"qualifiedName\":\"/CursorValue | null\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"windowSize\",\"type\":{\"packageName\":\"\",\"name\":\"number\",\"filePath\":null,\"qualifiedName\":\"/number\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"deriveNextCursor\",\"returnType\":{\"packageName\":\"\",\"name\":\"CursorValue | null\",\"filePath\":null,\"qualifiedName\":\"/CursorValue | null\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\",\"parameters\":[{\"name\":\"rows\",\"type\":{\"packageName\":\"\",\"name\":\"T[]\",\"filePath\":null,\"qualifiedName\":\"/T[]\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"windowSize\",\"type\":{\"packageName\":\"\",\"name\":\"number\",\"filePath\":null,\"qualifiedName\":\"/number\",\"typeParameters\":null,\"directParents\":null}}]}],\"typeParameters\":[\"/T extends Record\"],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"CursorLoader\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/CursorLoader\",\"properties\":[],\"methods\":[],\"typeParameters\":[\"/T\"],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/ui/CursorLoader\"},{\"v\":\"@proteinjs/db-ui/QueryTableLoader\",\"value\":{\"packageName\":\"@proteinjs/db-ui\",\"name\":\"QueryTableLoader\",\"filePath\":\"/home/runner/work/db/db/packages/ui/src/table/QueryTableLoader.ts\",\"qualifiedName\":\"@proteinjs/db-ui/QueryTableLoader\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"rowCountQb\",\"type\":{\"packageName\":\"\",\"name\":\"QueryBuilder<T>\",\"filePath\":null,\"qualifiedName\":\"/QueryBuilder<T>\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":true,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"},{\"name\":\"paginationQb\",\"type\":{\"packageName\":\"\",\"name\":\"QueryBuilder<T>\",\"filePath\":null,\"qualifiedName\":\"/QueryBuilder<T>\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":true,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"},{\"name\":\"reactQueryKeys\",\"type\":{\"packageName\":\"\",\"name\":\"TableLoader<T>['reactQueryKeys']\",\"filePath\":null,\"qualifiedName\":\"/TableLoader<T>['reactQueryKeys']\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<T>\",\"filePath\":null,\"qualifiedName\":\"/Table<T>\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"},{\"name\":\"query\",\"type\":{\"packageName\":\"\",\"name\":\"Query<T>\",\"filePath\":null,\"qualifiedName\":\"/Query<T>\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":true,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"},{\"name\":\"sort\",\"type\":{\"packageName\":\"\",\"name\":\"SortCriteria<T>[]\",\"filePath\":null,\"qualifiedName\":\"/SortCriteria<T>[]\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":true,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"},{\"name\":\"queryOptions\",\"type\":{\"packageName\":\"\",\"name\":\"QueryOptions<T>\",\"filePath\":null,\"qualifiedName\":\"/QueryOptions<T>\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":true,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"}],\"methods\":[{\"name\":\"load\",\"returnType\":{\"packageName\":\"\",\"name\":\"Promise<RowWindow<T>>\",\"filePath\":null,\"qualifiedName\":\"/Promise<RowWindow<T>>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":true,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"startIndex\",\"type\":{\"packageName\":\"\",\"name\":\"number\",\"filePath\":null,\"qualifiedName\":\"/number\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"endIndex\",\"type\":{\"packageName\":\"\",\"name\":\"number\",\"filePath\":null,\"qualifiedName\":\"/number\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"skipRowCount\",\"type\":{\"packageName\":\"\",\"name\":\"boolean\",\"filePath\":null,\"qualifiedName\":\"/boolean\",\"typeParameters\":null,\"directParents\":null}}]}],\"typeParameters\":[\"/T extends Record\"],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"TableLoader\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/TableLoader\",\"properties\":[],\"methods\":[],\"typeParameters\":[\"/T\"],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/ui/TableLoader\"},{\"v\":\"@proteinjs/db-ui/RecordFormCustomization\",\"value\":{\"packageName\":\"@proteinjs/db-ui\",\"name\":\"RecordFormCustomization\",\"filePath\":\"/home/runner/work/db/db/packages/ui/src/form/RecordFormCustomization.tsx\",\"qualifiedName\":\"@proteinjs/db-ui/RecordFormCustomization\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<any>\",\"filePath\":null,\"qualifiedName\":\"/Table<any>\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[{\"name\":\"getFormButtons\",\"returnType\":{\"packageName\":\"\",\"name\":\"FormButtons<any>\",\"filePath\":null,\"qualifiedName\":\"/FormButtons<any>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"record\",\"type\":{\"packageName\":\"\",\"name\":\"any\",\"filePath\":null,\"qualifiedName\":\"/any\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"defaultFormButtons\",\"type\":{\"packageName\":\"\",\"name\":\"FormButtons<any>\",\"filePath\":null,\"qualifiedName\":\"/FormButtons<any>\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"getFieldLayout\",\"returnType\":{\"packageName\":\"\",\"name\":\"string[] | string[][]\",\"filePath\":null,\"qualifiedName\":\"/string[] | string[][]\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"record\",\"type\":{\"packageName\":\"\",\"name\":\"any\",\"filePath\":null,\"qualifiedName\":\"/any\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"defaultFieldLayout\",\"type\":{\"packageName\":\"\",\"name\":\"string[] | string[][]\",\"filePath\":null,\"qualifiedName\":\"/string[] | string[][]\",\"typeParameters\":null,\"directParents\":null}}]}],\"typeParameters\":[],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/reflection\",\"name\":\"Loadable\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/reflection/Loadable\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/reflection/Loadable\"},{\"v\":\"@proteinjs/db-ui/hashGeneratorPage\",\"value\":{\"packageName\":\"@proteinjs/db-ui\",\"name\":\"hashGeneratorPage\",\"filePath\":\"/home/runner/work/db/db/packages/ui/src/pages/HashGeneratorPage.tsx\",\"qualifiedName\":\"@proteinjs/db-ui/hashGeneratorPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/ui/Page\"},{\"v\":\"@proteinjs/db-ui/recordFormPage\",\"value\":{\"packageName\":\"@proteinjs/db-ui\",\"name\":\"recordFormPage\",\"filePath\":\"/home/runner/work/db/db/packages/ui/src/pages/RecordFormPage.tsx\",\"qualifiedName\":\"@proteinjs/db-ui/recordFormPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/db-ui/recordTablePage\",\"value\":{\"packageName\":\"@proteinjs/db-ui\",\"name\":\"recordTablePage\",\"filePath\":\"/home/runner/work/db/db/packages/ui/src/pages/RecordTablePage.tsx\",\"qualifiedName\":\"@proteinjs/db-ui/recordTablePage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/db-ui/tablesPage\",\"value\":{\"packageName\":\"@proteinjs/db-ui\",\"name\":\"tablesPage\",\"filePath\":\"/home/runner/work/db/db/packages/ui/src/pages/TablesPage.tsx\",\"qualifiedName\":\"@proteinjs/db-ui/tablesPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/db-ui/uuidGeneratorPage\",\"value\":{\"packageName\":\"@proteinjs/db-ui\",\"name\":\"uuidGeneratorPage\",\"filePath\":\"/home/runner/work/db/db/packages/ui/src/pages/UuidGeneratorPage.tsx\",\"qualifiedName\":\"@proteinjs/db-ui/uuidGeneratorPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/db-ui/SpecificTableProps\"},{\"v\":\"@proteinjs/db-ui/MigrationRecordFormCustomization\",\"value\":{\"packageName\":\"@proteinjs/db-ui\",\"name\":\"MigrationRecordFormCustomization\",\"filePath\":\"/home/runner/work/db/db/packages/ui/src/form/customizations/MigrationRecordFormCustomization.tsx\",\"qualifiedName\":\"@proteinjs/db-ui/MigrationRecordFormCustomization\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"table\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[{\"name\":\"getFormButtons\",\"returnType\":{\"packageName\":\"\",\"name\":\"FormButtons<any>\",\"filePath\":null,\"qualifiedName\":\"/FormButtons<any>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"migration\",\"type\":{\"packageName\":\"@proteinjs/db\",\"name\":\"Migration\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/Migration\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"defaultFormButtons\",\"type\":{\"packageName\":\"\",\"name\":\"FormButtons<any>\",\"filePath\":null,\"qualifiedName\":\"/FormButtons<any>\",\"typeParameters\":null,\"directParents\":null}}]}],\"typeParameters\":[],\"directParentInterfaces\":[],\"directParentClasses\":[{\"packageName\":\"@proteinjs/db-ui\",\"name\":\"RecordFormCustomization\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db-ui/RecordFormCustomization\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParentInterfaces\":[],\"directParentClasses\":[]}],\"sourceType\":2}}],\"edges\":[{\"v\":\"@proteinjs/db-ui/QueryCursorLoader\",\"w\":\"@proteinjs/ui/CursorLoader\",\"value\":\"implements interface\"},{\"v\":\"@proteinjs/db-ui/QueryTableLoader\",\"w\":\"@proteinjs/ui/TableLoader\",\"value\":\"implements interface\"},{\"v\":\"@proteinjs/db-ui/RecordFormCustomization\",\"w\":\"@proteinjs/reflection/Loadable\",\"value\":\"implements interface\"},{\"v\":\"@proteinjs/db-ui/hashGeneratorPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/db-ui/recordFormPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/db-ui/recordTablePage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/db-ui/tablesPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/db-ui/uuidGeneratorPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/db-ui/MigrationRecordFormCustomization\",\"w\":\"@proteinjs/db-ui/RecordFormCustomization\",\"value\":\"extends class\"}]}";
31
+ var sourceGraph = "{\"options\":{\"directed\":true,\"multigraph\":false,\"compound\":false},\"nodes\":[{\"v\":\"@proteinjs/db-ui/QueryCursorLoader\",\"value\":{\"packageName\":\"@proteinjs/db-ui\",\"name\":\"QueryCursorLoader\",\"filePath\":\"/home/runner/work/db/db/packages/ui/src/table/QueryCursorLoader.ts\",\"qualifiedName\":\"@proteinjs/db-ui/QueryCursorLoader\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"reactQueryKeys\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"ReactQueryKeys\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/ReactQueryKeys\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"pager\",\"type\":{\"packageName\":\"\",\"name\":\"CursorWindowPager<T>\",\"filePath\":null,\"qualifiedName\":\"/CursorWindowPager<T>\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"}],\"methods\":[{\"name\":\"loadWindow\",\"returnType\":{\"packageName\":\"\",\"name\":\"Promise<CursorWindow<T>>\",\"filePath\":null,\"qualifiedName\":\"/Promise<CursorWindow<T>>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":true,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"cursor\",\"type\":{\"packageName\":\"\",\"name\":\"CursorValue | null\",\"filePath\":null,\"qualifiedName\":\"/CursorValue | null\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"windowSize\",\"type\":{\"packageName\":\"\",\"name\":\"number\",\"filePath\":null,\"qualifiedName\":\"/number\",\"typeParameters\":null,\"directParents\":null}}]}],\"typeParameters\":[\"/T extends Record\"],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"CursorLoader\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/CursorLoader\",\"properties\":[],\"methods\":[],\"typeParameters\":[\"/T\"],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/ui/CursorLoader\"},{\"v\":\"@proteinjs/db-ui/QueryTableLoader\",\"value\":{\"packageName\":\"@proteinjs/db-ui\",\"name\":\"QueryTableLoader\",\"filePath\":\"/home/runner/work/db/db/packages/ui/src/table/QueryTableLoader.ts\",\"qualifiedName\":\"@proteinjs/db-ui/QueryTableLoader\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"rowCountQb\",\"type\":{\"packageName\":\"\",\"name\":\"QueryBuilder<T>\",\"filePath\":null,\"qualifiedName\":\"/QueryBuilder<T>\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":true,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"},{\"name\":\"paginationQb\",\"type\":{\"packageName\":\"\",\"name\":\"QueryBuilder<T>\",\"filePath\":null,\"qualifiedName\":\"/QueryBuilder<T>\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":true,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"},{\"name\":\"reactQueryKeys\",\"type\":{\"packageName\":\"\",\"name\":\"TableLoader<T>['reactQueryKeys']\",\"filePath\":null,\"qualifiedName\":\"/TableLoader<T>['reactQueryKeys']\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"},{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<T>\",\"filePath\":null,\"qualifiedName\":\"/Table<T>\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"},{\"name\":\"query\",\"type\":{\"packageName\":\"\",\"name\":\"Query<T>\",\"filePath\":null,\"qualifiedName\":\"/Query<T>\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":true,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"},{\"name\":\"sort\",\"type\":{\"packageName\":\"\",\"name\":\"SortCriteria<T>[]\",\"filePath\":null,\"qualifiedName\":\"/SortCriteria<T>[]\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":true,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"},{\"name\":\"queryOptions\",\"type\":{\"packageName\":\"\",\"name\":\"QueryOptions<T>\",\"filePath\":null,\"qualifiedName\":\"/QueryOptions<T>\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":true,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"private\"}],\"methods\":[{\"name\":\"load\",\"returnType\":{\"packageName\":\"\",\"name\":\"Promise<RowWindow<T>>\",\"filePath\":null,\"qualifiedName\":\"/Promise<RowWindow<T>>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":true,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"startIndex\",\"type\":{\"packageName\":\"\",\"name\":\"number\",\"filePath\":null,\"qualifiedName\":\"/number\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"endIndex\",\"type\":{\"packageName\":\"\",\"name\":\"number\",\"filePath\":null,\"qualifiedName\":\"/number\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"skipRowCount\",\"type\":{\"packageName\":\"\",\"name\":\"boolean\",\"filePath\":null,\"qualifiedName\":\"/boolean\",\"typeParameters\":null,\"directParents\":null}}]}],\"typeParameters\":[\"/T extends Record\"],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"TableLoader\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/TableLoader\",\"properties\":[],\"methods\":[],\"typeParameters\":[\"/T\"],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/ui/TableLoader\"},{\"v\":\"@proteinjs/db-ui/RecordFormCustomization\",\"value\":{\"packageName\":\"@proteinjs/db-ui\",\"name\":\"RecordFormCustomization\",\"filePath\":\"/home/runner/work/db/db/packages/ui/src/form/RecordFormCustomization.tsx\",\"qualifiedName\":\"@proteinjs/db-ui/RecordFormCustomization\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"table\",\"type\":{\"packageName\":\"\",\"name\":\"Table<any>\",\"filePath\":null,\"qualifiedName\":\"/Table<any>\",\"typeParameters\":null,\"directParents\":null},\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[{\"name\":\"getFormButtons\",\"returnType\":{\"packageName\":\"\",\"name\":\"FormButtons<any>\",\"filePath\":null,\"qualifiedName\":\"/FormButtons<any>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"record\",\"type\":{\"packageName\":\"\",\"name\":\"any\",\"filePath\":null,\"qualifiedName\":\"/any\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"defaultFormButtons\",\"type\":{\"packageName\":\"\",\"name\":\"FormButtons<any>\",\"filePath\":null,\"qualifiedName\":\"/FormButtons<any>\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"getFieldLayout\",\"returnType\":{\"packageName\":\"\",\"name\":\"string[] | string[][]\",\"filePath\":null,\"qualifiedName\":\"/string[] | string[][]\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"record\",\"type\":{\"packageName\":\"\",\"name\":\"any\",\"filePath\":null,\"qualifiedName\":\"/any\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"defaultFieldLayout\",\"type\":{\"packageName\":\"\",\"name\":\"string[] | string[][]\",\"filePath\":null,\"qualifiedName\":\"/string[] | string[][]\",\"typeParameters\":null,\"directParents\":null}}]}],\"typeParameters\":[],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/reflection\",\"name\":\"Loadable\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/reflection/Loadable\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/reflection/Loadable\"},{\"v\":\"@proteinjs/db-ui/hashGeneratorPage\",\"value\":{\"packageName\":\"@proteinjs/db-ui\",\"name\":\"hashGeneratorPage\",\"filePath\":\"/home/runner/work/db/db/packages/ui/src/pages/HashGeneratorPage.tsx\",\"qualifiedName\":\"@proteinjs/db-ui/hashGeneratorPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/ui/Page\"},{\"v\":\"@proteinjs/db-ui/recordFormPage\",\"value\":{\"packageName\":\"@proteinjs/db-ui\",\"name\":\"recordFormPage\",\"filePath\":\"/home/runner/work/db/db/packages/ui/src/pages/RecordFormPage.tsx\",\"qualifiedName\":\"@proteinjs/db-ui/recordFormPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/db-ui/recordTablePage\",\"value\":{\"packageName\":\"@proteinjs/db-ui\",\"name\":\"recordTablePage\",\"filePath\":\"/home/runner/work/db/db/packages/ui/src/pages/RecordTablePage.tsx\",\"qualifiedName\":\"@proteinjs/db-ui/recordTablePage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/db-ui/tablesPage\",\"value\":{\"packageName\":\"@proteinjs/db-ui\",\"name\":\"tablesPage\",\"filePath\":\"/home/runner/work/db/db/packages/ui/src/pages/TablesPage.tsx\",\"qualifiedName\":\"@proteinjs/db-ui/tablesPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/db-ui/uuidGeneratorPage\",\"value\":{\"packageName\":\"@proteinjs/db-ui\",\"name\":\"uuidGeneratorPage\",\"filePath\":\"/home/runner/work/db/db/packages/ui/src/pages/UuidGeneratorPage.tsx\",\"qualifiedName\":\"@proteinjs/db-ui/uuidGeneratorPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/db-ui/SpecificTableProps\"},{\"v\":\"@proteinjs/db-ui/MigrationRecordFormCustomization\",\"value\":{\"packageName\":\"@proteinjs/db-ui\",\"name\":\"MigrationRecordFormCustomization\",\"filePath\":\"/home/runner/work/db/db/packages/ui/src/form/customizations/MigrationRecordFormCustomization.tsx\",\"qualifiedName\":\"@proteinjs/db-ui/MigrationRecordFormCustomization\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"table\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[{\"name\":\"getFormButtons\",\"returnType\":{\"packageName\":\"\",\"name\":\"FormButtons<any>\",\"filePath\":null,\"qualifiedName\":\"/FormButtons<any>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"migration\",\"type\":{\"packageName\":\"@proteinjs/db\",\"name\":\"Migration\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db/Migration\",\"typeParameters\":null,\"directParents\":null}},{\"name\":\"defaultFormButtons\",\"type\":{\"packageName\":\"\",\"name\":\"FormButtons<any>\",\"filePath\":null,\"qualifiedName\":\"/FormButtons<any>\",\"typeParameters\":null,\"directParents\":null}}]}],\"typeParameters\":[],\"directParentInterfaces\":[],\"directParentClasses\":[{\"packageName\":\"@proteinjs/db-ui\",\"name\":\"RecordFormCustomization\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db-ui/RecordFormCustomization\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParentInterfaces\":[],\"directParentClasses\":[]}],\"sourceType\":2}}],\"edges\":[{\"v\":\"@proteinjs/db-ui/QueryCursorLoader\",\"w\":\"@proteinjs/ui/CursorLoader\",\"value\":\"implements interface\"},{\"v\":\"@proteinjs/db-ui/QueryTableLoader\",\"w\":\"@proteinjs/ui/TableLoader\",\"value\":\"implements interface\"},{\"v\":\"@proteinjs/db-ui/RecordFormCustomization\",\"w\":\"@proteinjs/reflection/Loadable\",\"value\":\"implements interface\"},{\"v\":\"@proteinjs/db-ui/hashGeneratorPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/db-ui/recordFormPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/db-ui/recordTablePage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/db-ui/tablesPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/db-ui/uuidGeneratorPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/db-ui/MigrationRecordFormCustomization\",\"w\":\"@proteinjs/db-ui/RecordFormCustomization\",\"value\":\"extends class\"}]}";
32
32
  /** Generate Source Links */
33
33
  var QueryCursorLoader_1 = require("../src/table/QueryCursorLoader");
34
34
  var QueryTableLoader_1 = require("../src/table/QueryTableLoader");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../generated/index.ts"],"names":[],"mappings":";AAAA,oCAAoC;;;;;;;;;;;;;;;;AAEpC,0BAAwB;AACxB,2BAAyB;AACzB,+BAA6B;AAC7B,yBAAuB;AACvB,yBAAuB;AACvB,iCAA+B;AAC/B,yBAAuB;AACvB,2BAAyB;AACzB,kBAAgB;AAChB,iBAAe;AACf,kBAAgB;AAChB,gBAAc;AAGd,4BAA4B;AAE5B,IAAM,WAAW,GAAG,+zfAA+zf,CAAC;AAGp1f,4BAA4B;AAE5B,oEAAmE;AACnE,kEAAiE;AACjE,+EAA8E;AAC9E,oEAAmE;AACnE,8DAA6D;AAC7D,gEAA+D;AAC/D,sDAAqD;AACrD,oEAAmE;AACnE,gHAA+G;AAE/G,IAAM,WAAW,GAAG;IACnB,oCAAoC,EAAE,qCAAiB;IACvD,mCAAmC,EAAE,mCAAgB;IACrD,0CAA0C,EAAE,iDAAuB;IACnE,oCAAoC,EAAE,qCAAiB;IACvD,iCAAiC,EAAE,+BAAc;IACjD,kCAAkC,EAAE,iCAAe;IACnD,6BAA6B,EAAE,uBAAU;IACzC,oCAAoC,EAAE,qCAAiB;IACvD,mDAAmD,EAAE,mEAAgC;CACrF,CAAC;AAGF,kCAAkC;AAElC,oDAAyD;AACzD,6BAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAGjD,2CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../generated/index.ts"],"names":[],"mappings":";AAAA,oCAAoC;;;;;;;;;;;;;;;;AAEpC,0BAAwB;AACxB,2BAAyB;AACzB,+BAA6B;AAC7B,yBAAuB;AACvB,yBAAuB;AACvB,iCAA+B;AAC/B,yBAAuB;AACvB,2BAAyB;AACzB,kBAAgB;AAChB,iBAAe;AACf,kBAAgB;AAChB,gBAAc;AAGd,4BAA4B;AAE5B,IAAM,WAAW,GAAG,wrbAAwrb,CAAC;AAG7sb,4BAA4B;AAE5B,oEAAmE;AACnE,kEAAiE;AACjE,+EAA8E;AAC9E,oEAAmE;AACnE,8DAA6D;AAC7D,gEAA+D;AAC/D,sDAAqD;AACrD,oEAAmE;AACnE,gHAA+G;AAE/G,IAAM,WAAW,GAAG;IACnB,oCAAoC,EAAE,qCAAiB;IACvD,mCAAmC,EAAE,mCAAgB;IACrD,0CAA0C,EAAE,iDAAuB;IACnE,oCAAoC,EAAE,qCAAiB;IACvD,iCAAiC,EAAE,+BAAc;IACjD,kCAAkC,EAAE,iCAAe;IACnD,6BAA6B,EAAE,uBAAU;IACzC,oCAAoC,EAAE,qCAAiB;IACvD,mDAAmD,EAAE,mEAAgC;CACrF,CAAC;AAGF,kCAAkC;AAElC,oDAAyD;AACzD,6BAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAGjD,2CAAyB"}
@@ -1 +1 @@
1
- {"version":3,"file":"HashGeneratorPage.d.ts","sourceRoot":"","sources":["../../../src/pages/HashGeneratorPage.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,IAAI,EAAwC,MAAM,eAAe,CAAC;AAGrF,eAAO,MAAM,iBAAiB,EAAE,IAqB/B,CAAC"}
1
+ {"version":3,"file":"HashGeneratorPage.d.ts","sourceRoot":"","sources":["../../../src/pages/HashGeneratorPage.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,IAAI,EAAwC,MAAM,eAAe,CAAC;AAGrF,eAAO,MAAM,iBAAiB,EAAE,IAoB/B,CAAC"}
@@ -64,7 +64,6 @@ exports.hashGeneratorPage = {
64
64
  auth: { permission: 'dev' },
65
65
  pageContainerSxProps: function (theme) {
66
66
  return {
67
- height: '100vh',
68
67
  backgroundColor: theme.palette.background.default,
69
68
  };
70
69
  },
@@ -1 +1 @@
1
- {"version":3,"file":"HashGeneratorPage.js","sourceRoot":"","sources":["../../../src/pages/HashGeneratorPage.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,oCAAqF;AAGxE,QAAA,iBAAiB,GAAS;IACrC,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,gBAAgB;IACtB,mGAAmG;IACnG,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;IAC3B,oBAAoB,EAAE,UAAC,KAAY;QACjC,OAAO;YACL,MAAM,EAAE,OAAO;YACf,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO;SAClD,CAAC;IACJ,CAAC;IACD,SAAS,EAAE,cAAM,OAAA,CACf,8BAAC,aAAQ;QACP,8BAAC,SAAI,IACH,IAAI,EAAC,gBAAgB,EACrB,YAAY,EAAE,cAAM,OAAA,IAAI,mBAAmB,EAAE,EAAzB,CAAyB,EAC7C,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAC9B,OAAO,EAAE,OAAO,GAChB,CACO,CACZ,EATgB,CAShB;CACF,CAAC;AAEF;IAAkC,uCAAM;IAAxC;QAAA,qEAOC;QANC,WAAK,GAAG,IAAA,cAAS,EAAsB;YACrC,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;QACH,UAAI,GAAG,IAAA,cAAS,EAAsB;YACpC,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;;IACL,CAAC;IAAD,0BAAC;AAAD,CAAC,AAPD,CAAkC,WAAM,GAOvC;AAED,IAAM,OAAO,GAAqC;IAChD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE;YACL,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,WAAW;SACrB;QACD,OAAO,EAAE,UAAO,MAA2B,EAAE,OAAyC;;;;;wBACpF,KAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAA;wBAAS,qBAAM,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAA;;wBAAxE,GAAkB,KAAK,GAAG,SAA8C,CAAC;;;;aAC1E;KACF;CACF,CAAC;AAEF,SAAe,cAAc,CAAC,KAAkB;IAAlB,sBAAA,EAAA,UAAkB;;;;;;oBAExC,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;oBAC5B,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAGhB,qBAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;oBAAxD,UAAU,GAAG,SAA2C;oBAGxD,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;oBACnD,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAA/B,CAA+B,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAE/E,sBAAO,OAAO,EAAC;;;;CAChB"}
1
+ {"version":3,"file":"HashGeneratorPage.js","sourceRoot":"","sources":["../../../src/pages/HashGeneratorPage.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,oCAAqF;AAGxE,QAAA,iBAAiB,GAAS;IACrC,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,gBAAgB;IACtB,mGAAmG;IACnG,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;IAC3B,oBAAoB,EAAE,UAAC,KAAY;QACjC,OAAO;YACL,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO;SAClD,CAAC;IACJ,CAAC;IACD,SAAS,EAAE,cAAM,OAAA,CACf,8BAAC,aAAQ;QACP,8BAAC,SAAI,IACH,IAAI,EAAC,gBAAgB,EACrB,YAAY,EAAE,cAAM,OAAA,IAAI,mBAAmB,EAAE,EAAzB,CAAyB,EAC7C,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAC9B,OAAO,EAAE,OAAO,GAChB,CACO,CACZ,EATgB,CAShB;CACF,CAAC;AAEF;IAAkC,uCAAM;IAAxC;QAAA,qEAOC;QANC,WAAK,GAAG,IAAA,cAAS,EAAsB;YACrC,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;QACH,UAAI,GAAG,IAAA,cAAS,EAAsB;YACpC,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;;IACL,CAAC;IAAD,0BAAC;AAAD,CAAC,AAPD,CAAkC,WAAM,GAOvC;AAED,IAAM,OAAO,GAAqC;IAChD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE;YACL,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,WAAW;SACrB;QACD,OAAO,EAAE,UAAO,MAA2B,EAAE,OAAyC;;;;;wBACpF,KAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAA;wBAAS,qBAAM,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAA;;wBAAxE,GAAkB,KAAK,GAAG,SAA8C,CAAC;;;;aAC1E;KACF;CACF,CAAC;AAEF,SAAe,cAAc,CAAC,KAAkB;IAAlB,sBAAA,EAAA,UAAkB;;;;;;oBAExC,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;oBAC5B,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAGhB,qBAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EAAA;;oBAAxD,UAAU,GAAG,SAA2C;oBAGxD,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;oBACnD,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAA/B,CAA+B,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAE/E,sBAAO,OAAO,EAAC;;;;CAChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"RecordFormPage.d.ts","sourceRoot":"","sources":["../../../src/pages/RecordFormPage.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,IAAI,EAAsB,MAAM,eAAe,CAAC;AAKnE,eAAO,MAAM,cAAc,EAAE,IAiB5B,CAAC;AAEF,eAAO,MAAM,cAAc,cAAe,MAAM,YAAY,MAAM,WAEjE,CAAC;AAEF,eAAO,MAAM,iBAAiB,cAAe,MAAM,WAElD,CAAC"}
1
+ {"version":3,"file":"RecordFormPage.d.ts","sourceRoot":"","sources":["../../../src/pages/RecordFormPage.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,IAAI,EAAsB,MAAM,eAAe,CAAC;AAKnE,eAAO,MAAM,cAAc,EAAE,IAkB5B,CAAC;AAEF,eAAO,MAAM,cAAc,cAAe,MAAM,YAAY,MAAM,WAEjE,CAAC;AAEF,eAAO,MAAM,iBAAiB,cAAe,MAAM,WAElD,CAAC"}
@@ -66,15 +66,17 @@ var react_1 = __importDefault(require("react"));
66
66
  var ui_1 = require("@proteinjs/ui");
67
67
  var db_1 = require("@proteinjs/db");
68
68
  var RecordForm_1 = require("../form/RecordForm");
69
+ var material_1 = require("@mui/material");
69
70
  exports.recordFormPage = {
70
71
  name: 'Record Form',
71
72
  path: 'record/form',
72
73
  auth: {
73
74
  allUsers: true,
74
75
  },
76
+ // No height override: the app's page container owns viewport height (dvh on mobile —
77
+ // a 100vh pin here clipped the bottom behind mobile browser chrome).
75
78
  pageContainerSxProps: function (theme) {
76
79
  return {
77
- height: '100vh',
78
80
  backgroundColor: theme.palette.background.default,
79
81
  };
80
82
  },
@@ -144,8 +146,9 @@ var DynamicRecordForm = function (_a) {
144
146
  try {
145
147
  table = (0, db_1.tableByName)(tableName);
146
148
  }
147
- catch (error) {
148
- // eslint-disable-next-line no-ex-assign
149
+ catch (_a) {
150
+ // NOTE: this catch previously bound the exception as `error`, shadowing the outer
151
+ // variable — the message was never returned and the page rendered blank.
149
152
  error = "Table not accessible in UI: ".concat(tableName);
150
153
  }
151
154
  }
@@ -154,19 +157,23 @@ var DynamicRecordForm = function (_a) {
154
157
  }
155
158
  return { table: table, error: error };
156
159
  }
160
+ function Message(_a) {
161
+ var children = _a.children;
162
+ return react_1.default.createElement(material_1.Typography, { sx: { p: 3, color: 'text.secondary' } }, children);
163
+ }
157
164
  function Form() {
158
165
  var _a = getTable(), table = _a.table, error = _a.error;
159
166
  if (!table) {
160
- return react_1.default.createElement("div", null, error);
167
+ return react_1.default.createElement(Message, null, error);
161
168
  }
162
169
  if (loadError) {
163
- return react_1.default.createElement("div", null, loadError);
170
+ return react_1.default.createElement(Message, null, loadError);
164
171
  }
165
172
  if (!recordLoaded) {
166
173
  return null;
167
174
  }
168
175
  if (recordId && !record) {
169
- return react_1.default.createElement("div", null, "No ".concat(table.name, " record found: ").concat(recordId));
176
+ return react_1.default.createElement(Message, null, "No ".concat(table.name, " record found: ").concat(recordId));
170
177
  }
171
178
  return react_1.default.createElement(RecordForm_1.RecordForm, { table: table, record: record });
172
179
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RecordFormPage.js","sourceRoot":"","sources":["../../../src/pages/RecordFormPage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RecordFormPage.js","sourceRoot":"","sources":["../../../src/pages/RecordFormPage.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RecordTablePage.d.ts","sourceRoot":"","sources":["../../../src/pages/RecordTablePage.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAsB,MAAM,eAAe,CAAC;AACzD,OAAO,EAAe,KAAK,EAAE,MAAM,eAAe,CAAC;AAInD,eAAO,MAAM,eAAe,EAAE,IAmB7B,CAAC;AAEF,eAAO,MAAM,eAAe,UAAW,MAAM,GAAG,CAAC,WAEhD,CAAC;AAEF,eAAO,MAAM,qBAAqB,cAAe,MAAM,WAEtD,CAAC"}
1
+ {"version":3,"file":"RecordTablePage.d.ts","sourceRoot":"","sources":["../../../src/pages/RecordTablePage.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAsB,MAAM,eAAe,CAAC;AACzD,OAAO,EAAe,KAAK,EAAE,MAAM,eAAe,CAAC;AAInD,eAAO,MAAM,eAAe,EAAE,IAc7B,CAAC;AAEF,eAAO,MAAM,eAAe,UAAW,MAAM,GAAG,CAAC,WAEhD,CAAC;AAEF,eAAO,MAAM,qBAAqB,cAAe,MAAM,WAEtD,CAAC"}
@@ -36,17 +36,16 @@ exports.recordTablePage = {
36
36
  auth: {
37
37
  allUsers: true,
38
38
  },
39
+ // No height override: the app's page container owns viewport height (dvh on mobile —
40
+ // a 100vh pin here clipped the bottom behind mobile browser chrome).
39
41
  pageContainerSxProps: function (theme) {
40
42
  return {
41
- height: '100vh',
42
43
  backgroundColor: theme.palette.background.default,
43
44
  };
44
45
  },
45
46
  component: function (_a) {
46
47
  var props = __rest(_a, []);
47
- return (react_1.default.createElement(material_1.Box, { sx: { display: 'flex', flexGrow: 1, justifyContent: 'center', padding: 4 } },
48
- react_1.default.createElement(material_1.Paper, { sx: { maxHeight: '80vh' } },
49
- react_1.default.createElement(DynamicRecordTable, __assign({}, props)))));
48
+ return react_1.default.createElement(DynamicRecordTable, __assign({}, props));
50
49
  },
51
50
  };
52
51
  var recordTableLink = function (table) {
@@ -74,10 +73,14 @@ var DynamicRecordTable = function (_a) {
74
73
  else {
75
74
  errorMessage = "Table not provided via the 'name' url param";
76
75
  }
76
+ // The error state renders as a plain message — wrapping it in the table's stretched
77
+ // card produced a full-height empty Paper with the text clipped at its edge.
77
78
  if (!table) {
78
- return react_1.default.createElement("div", null, errorMessage);
79
+ return react_1.default.createElement(material_1.Typography, { sx: { p: 3, color: 'text.secondary' } }, errorMessage);
79
80
  }
80
- return react_1.default.createElement(RecordTable_1.RecordTable, { table: table });
81
+ return (react_1.default.createElement(material_1.Box, { sx: { display: 'flex', flexGrow: 1, justifyContent: 'center', padding: 4 } },
82
+ react_1.default.createElement(material_1.Paper, { sx: { maxHeight: '80vh' } },
83
+ react_1.default.createElement(RecordTable_1.RecordTable, { table: table }))));
81
84
  }
82
85
  return react_1.default.createElement(Table, null);
83
86
  };
@@ -1 +1 @@
1
- {"version":3,"file":"RecordTablePage.js","sourceRoot":"","sources":["../../../src/pages/RecordTablePage.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAE1B,oCAAmD;AACnD,oDAAmD;AACnD,0CAA2D;AAE9C,QAAA,eAAe,GAAS;IACnC,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE;QACJ,QAAQ,EAAE,IAAI;KACf;IACD,oBAAoB,EAAE,UAAC,KAAY;QACjC,OAAO;YACL,MAAM,EAAE,OAAO;YACf,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO;SAClD,CAAC;IACJ,CAAC;IACD,SAAS,EAAE,UAAC,EAAY;YAAP,KAAK,cAAV,EAAY,CAAF;QAAO,OAAA,CAC3B,8BAAC,cAAG,IAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;YAC7E,8BAAC,gBAAK,IAAC,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;gBAC9B,8BAAC,kBAAkB,eAAK,KAAK,EAAI,CAC3B,CACJ,CACP,CAAA;KAAA;CACF,CAAC;AAEK,IAAM,eAAe,GAAG,UAAC,KAAiB;IAC/C,OAAO,WAAI,uBAAe,CAAC,IAAI,mBAAS,KAAK,CAAC,IAAI,CAAE,CAAC;AACvD,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEK,IAAM,qBAAqB,GAAG,UAAC,SAAiB;IACrD,OAAO,WAAI,uBAAe,CAAC,IAAI,mBAAS,SAAS,CAAE,CAAC;AACtD,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC;AAEF,IAAM,kBAAkB,GAAG,UAAC,EAAiC;QAA/B,SAAS,eAAA;IACrC,SAAS,KAAK;QACZ,IAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC;QACV,IAAI,YAAY,CAAC;QACjB,IAAI,SAAS,EAAE;YACb,IAAI;gBACF,KAAK,GAAG,IAAA,gBAAW,EAAC,SAAS,CAAC,CAAC;aAChC;YAAC,OAAO,KAAK,EAAE;gBACd,YAAY,GAAG,sCAA+B,SAAS,CAAE,CAAC;aAC3D;SACF;aAAM;YACL,YAAY,GAAG,6CAA6C,CAAC;SAC9D;QAED,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,2CAAM,YAAY,CAAO,CAAC;SAClC;QAED,OAAO,8BAAC,yBAAW,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC;IACvC,CAAC;IAED,OAAO,8BAAC,KAAK,OAAG,CAAC;AACnB,CAAC,CAAC"}
1
+ {"version":3,"file":"RecordTablePage.js","sourceRoot":"","sources":["../../../src/pages/RecordTablePage.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAE1B,oCAAmD;AACnD,oDAAmD;AACnD,0CAAuE;AAE1D,QAAA,eAAe,GAAS;IACnC,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE;QACJ,QAAQ,EAAE,IAAI;KACf;IACD,qFAAqF;IACrF,qEAAqE;IACrE,oBAAoB,EAAE,UAAC,KAAY;QACjC,OAAO;YACL,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO;SAClD,CAAC;IACJ,CAAC;IACD,SAAS,EAAE,UAAC,EAAY;YAAP,KAAK,cAAV,EAAY,CAAF;QAAO,OAAA,8BAAC,kBAAkB,eAAK,KAAK,EAAI,CAAA;KAAA;CAC/D,CAAC;AAEK,IAAM,eAAe,GAAG,UAAC,KAAiB;IAC/C,OAAO,WAAI,uBAAe,CAAC,IAAI,mBAAS,KAAK,CAAC,IAAI,CAAE,CAAC;AACvD,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEK,IAAM,qBAAqB,GAAG,UAAC,SAAiB;IACrD,OAAO,WAAI,uBAAe,CAAC,IAAI,mBAAS,SAAS,CAAE,CAAC;AACtD,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC;AAEF,IAAM,kBAAkB,GAAG,UAAC,EAAiC;QAA/B,SAAS,eAAA;IACrC,SAAS,KAAK;QACZ,IAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC;QACV,IAAI,YAAY,CAAC;QACjB,IAAI,SAAS,EAAE;YACb,IAAI;gBACF,KAAK,GAAG,IAAA,gBAAW,EAAC,SAAS,CAAC,CAAC;aAChC;YAAC,OAAO,KAAK,EAAE;gBACd,YAAY,GAAG,sCAA+B,SAAS,CAAE,CAAC;aAC3D;SACF;aAAM;YACL,YAAY,GAAG,6CAA6C,CAAC;SAC9D;QAED,oFAAoF;QACpF,6EAA6E;QAC7E,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,8BAAC,qBAAU,IAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAG,YAAY,CAAc,CAAC;SACvF;QAED,OAAO,CACL,8BAAC,cAAG,IAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;YAC7E,8BAAC,gBAAK,IAAC,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;gBAC9B,8BAAC,yBAAW,IAAC,KAAK,EAAE,KAAK,GAAI,CACvB,CACJ,CACP,CAAC;IACJ,CAAC;IAED,OAAO,8BAAC,KAAK,OAAG,CAAC;AACnB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TablesPage.d.ts","sourceRoot":"","sources":["../../../src/pages/TablesPage.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,IAAI,EAAoE,MAAM,eAAe,CAAC;AAKjH,eAAO,MAAM,UAAU,EAAE,IAqBxB,CAAC"}
1
+ {"version":3,"file":"TablesPage.d.ts","sourceRoot":"","sources":["../../../src/pages/TablesPage.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,IAAI,EAAoE,MAAM,eAAe,CAAC;AAKjH,eAAO,MAAM,UAAU,EAAE,IAoBxB,CAAC"}
@@ -72,7 +72,6 @@ exports.tablesPage = {
72
72
  auth: { permission: 'dev' },
73
73
  pageContainerSxProps: function (theme) {
74
74
  return {
75
- height: '100vh',
76
75
  backgroundColor: theme.palette.background.default,
77
76
  };
78
77
  },
@@ -1 +1 @@
1
- {"version":3,"file":"TablesPage.js","sourceRoot":"","sources":["../../../src/pages/TablesPage.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,oCAAiH;AACjH,oCAA+D;AAC/D,qDAA0D;AAC1D,0CAAoD;AAEvC,QAAA,UAAU,GAAS;IAC9B,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd;;;;;OAKG;IACH,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;IAC3B,oBAAoB,EAAE,UAAC,KAAY;QACjC,OAAO;YACL,MAAM,EAAE,OAAO;YACf,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO;SAClD,CAAC;IACJ,CAAC;IACD,SAAS,EAAE,cAAM,OAAA,CACf,8BAAC,aAAQ;QACP,8BAAC,MAAM,OAAG,CACD,CACZ,EAJgB,CAIhB;CACF,CAAC;AAOF;IAAiC,sCAA6B;IAC5D,4BAAoB,MAAoB;QAAxC,YACE,iBAAO,SACR;QAFmB,YAAM,GAAN,MAAM,CAAc;;IAExC,CAAC;IAEK,iCAAI,GAAV,UAAW,UAAkB,EAAE,QAAgB;;;;;;wBACvC,IAAI,GAA4B,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;wBAC7E,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;wBACjD,SAAS,GAAG,IAAA,iBAAY,GAAE,CAAC;8BACP,EAAN,iBAAM;;;6BAAN,CAAA,oBAAM,CAAA;wBAAf,KAAK;wBACG,qBAAM,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAA;;wBAA7C,QAAQ,GAAG,SAAkC;wBACnD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;;;wBAF7B,IAAM,CAAA;;4BAK1B,sBAAO,IAAI,EAAC;;;;KACb;IACH,yBAAC;AAAD,CAAC,AAhBD,CAAiC,oBAAe,GAgB/C;AAED,IAAM,MAAM,GAAG;IACb,OAAO,CACL,8BAAC,cAAG,IAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE;QACvC,8BAAC,cAAG,IAAC,SAAS,EAAC,MAAM;YACnB,8BAAC,UAAc,IACb,KAAK,EAAC,QAAQ,EACd,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,EAC7B,WAAW,EAAE,IAAI,kBAAkB,CAAC,IAAA,cAAS,GAAE,CAAC,EAChD,UAAU,EAAE,UAAO,GAAiB;;wBAClC,sBAAO,IAAA,uCAAqB,EAAC,GAAG,CAAC,IAAI,CAAC,EAAC;;qBACxC,GACD,CACE,CACF,CACP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"TablesPage.js","sourceRoot":"","sources":["../../../src/pages/TablesPage.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,oCAAiH;AACjH,oCAA+D;AAC/D,qDAA0D;AAC1D,0CAAoD;AAEvC,QAAA,UAAU,GAAS;IAC9B,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd;;;;;OAKG;IACH,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;IAC3B,oBAAoB,EAAE,UAAC,KAAY;QACjC,OAAO;YACL,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO;SAClD,CAAC;IACJ,CAAC;IACD,SAAS,EAAE,cAAM,OAAA,CACf,8BAAC,aAAQ;QACP,8BAAC,MAAM,OAAG,CACD,CACZ,EAJgB,CAIhB;CACF,CAAC;AAOF;IAAiC,sCAA6B;IAC5D,4BAAoB,MAAoB;QAAxC,YACE,iBAAO,SACR;QAFmB,YAAM,GAAN,MAAM,CAAc;;IAExC,CAAC;IAEK,iCAAI,GAAV,UAAW,UAAkB,EAAE,QAAgB;;;;;;wBACvC,IAAI,GAA4B,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;wBAC7E,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;wBACjD,SAAS,GAAG,IAAA,iBAAY,GAAE,CAAC;8BACP,EAAN,iBAAM;;;6BAAN,CAAA,oBAAM,CAAA;wBAAf,KAAK;wBACG,qBAAM,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAA;;wBAA7C,QAAQ,GAAG,SAAkC;wBACnD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;;;wBAF7B,IAAM,CAAA;;4BAK1B,sBAAO,IAAI,EAAC;;;;KACb;IACH,yBAAC;AAAD,CAAC,AAhBD,CAAiC,oBAAe,GAgB/C;AAED,IAAM,MAAM,GAAG;IACb,OAAO,CACL,8BAAC,cAAG,IAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE;QACvC,8BAAC,cAAG,IAAC,SAAS,EAAC,MAAM;YACnB,8BAAC,UAAc,IACb,KAAK,EAAC,QAAQ,EACd,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,EAC7B,WAAW,EAAE,IAAI,kBAAkB,CAAC,IAAA,cAAS,GAAE,CAAC,EAChD,UAAU,EAAE,UAAO,GAAiB;;wBAClC,sBAAO,IAAA,uCAAqB,EAAC,GAAG,CAAC,IAAI,CAAC,EAAC;;qBACxC,GACD,CACE,CACF,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"UuidGeneratorPage.d.ts","sourceRoot":"","sources":["../../../src/pages/UuidGeneratorPage.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,IAAI,EAAwC,MAAM,eAAe,CAAC;AAIrF,eAAO,MAAM,iBAAiB,EAAE,IAqB/B,CAAC"}
1
+ {"version":3,"file":"UuidGeneratorPage.d.ts","sourceRoot":"","sources":["../../../src/pages/UuidGeneratorPage.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,IAAI,EAAwC,MAAM,eAAe,CAAC;AAIrF,eAAO,MAAM,iBAAiB,EAAE,IAoB/B,CAAC"}
@@ -65,7 +65,6 @@ exports.uuidGeneratorPage = {
65
65
  auth: { permission: 'dev' },
66
66
  pageContainerSxProps: function (theme) {
67
67
  return {
68
- height: '100vh',
69
68
  backgroundColor: theme.palette.background.default,
70
69
  };
71
70
  },
@@ -1 +1 @@
1
- {"version":3,"file":"UuidGeneratorPage.js","sourceRoot":"","sources":["../../../src/pages/UuidGeneratorPage.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,oCAAqF;AACrF,6BAAoC;AAGvB,QAAA,iBAAiB,GAAS;IACrC,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,gBAAgB;IACtB,mGAAmG;IACnG,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;IAC3B,oBAAoB,EAAE,UAAC,KAAY;QACjC,OAAO;YACL,MAAM,EAAE,OAAO;YACf,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO;SAClD,CAAC;IACJ,CAAC;IACD,SAAS,EAAE,cAAM,OAAA,CACf,8BAAC,aAAQ;QACP,8BAAC,SAAI,IACH,IAAI,EAAC,gBAAgB,EACrB,YAAY,EAAE,cAAM,OAAA,IAAI,UAAU,EAAE,EAAhB,CAAgB,EACpC,WAAW,EAAE,CAAC,MAAM,CAAC,EACrB,OAAO,EAAE,OAAO,GAChB,CACO,CACZ,EATgB,CAShB;CACF,CAAC;AAEF;IAAyB,8BAAM;IAA/B;QAAA,qEAIC;QAHC,UAAI,GAAG,IAAA,cAAS,EAAa;YAC3B,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;;IACL,CAAC;IAAD,iBAAC;AAAD,CAAC,AAJD,CAAyB,WAAM,GAI9B;AAED,IAAM,OAAO,GAA4B;IACvC,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE;YACL,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,WAAW;SACrB;QACD,OAAO,EAAE,UAAO,MAAkB,EAAE,OAAgC;;gBAClE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAA,SAAM,GAAE,CAAC;;;aACpC;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"UuidGeneratorPage.js","sourceRoot":"","sources":["../../../src/pages/UuidGeneratorPage.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,oCAAqF;AACrF,6BAAoC;AAGvB,QAAA,iBAAiB,GAAS;IACrC,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,gBAAgB;IACtB,mGAAmG;IACnG,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;IAC3B,oBAAoB,EAAE,UAAC,KAAY;QACjC,OAAO;YACL,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO;SAClD,CAAC;IACJ,CAAC;IACD,SAAS,EAAE,cAAM,OAAA,CACf,8BAAC,aAAQ;QACP,8BAAC,SAAI,IACH,IAAI,EAAC,gBAAgB,EACrB,YAAY,EAAE,cAAM,OAAA,IAAI,UAAU,EAAE,EAAhB,CAAgB,EACpC,WAAW,EAAE,CAAC,MAAM,CAAC,EACrB,OAAO,EAAE,OAAO,GAChB,CACO,CACZ,EATgB,CAShB;CACF,CAAC;AAEF;IAAyB,8BAAM;IAA/B;QAAA,qEAIC;QAHC,UAAI,GAAG,IAAA,cAAS,EAAa;YAC3B,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;;IACL,CAAC;IAAD,iBAAC;AAAD,CAAC,AAJD,CAAyB,WAAM,GAI9B;AAED,IAAM,OAAO,GAA4B;IACvC,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE;YACL,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,WAAW;SACrB;QACD,OAAO,EAAE,UAAO,MAAkB,EAAE,OAAgC;;gBAClE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAA,SAAM,GAAE,CAAC;;;aACpC;KACF;CACF,CAAC"}
@@ -1,33 +1,29 @@
1
1
  import { QueryBuilder, QueryOptions, Record, SortCriteria, Table } from '@proteinjs/db';
2
2
  import { CursorLoader, CursorValue, CursorWindow, ReactQueryKeys } from '@proteinjs/ui';
3
3
  /**
4
- * `CursorLoader` over the same QueryBuilder machinery as `QueryTableLoader`: each window
5
- * applies `cursorField < cursor` (`>` for an ascending sort) plus `paginate(0, windowSize)`
6
- * on a fresh build of the base query, so rows created or removed while paging can never
7
- * shift the window frame. The cursor field and direction derive from the PRIMARY sort
8
- * criterion.
4
+ * `CursorLoader` over the db-owned cursor-window machinery (`CursorWindowPager`): each window
5
+ * carries a lexicographic continuation past the anchor row — the primary sort axes plus a
6
+ * unique `id` tiebreak — and `paginate(0, windowSize)` on a fresh build of the base query, so
7
+ * rows created or removed while paging can never shift the window frame, and ties on the sort
8
+ * axis can never skip or duplicate boundary rows. Cursors are the pager's anchors encoded as
9
+ * strings (house `Serializer`, so dates/moments survive react-query page params).
9
10
  *
10
11
  * `dataKey` is the table name — table-level invalidation (`useTableMutation`) reaches every
11
12
  * cursor query over it; `dataQueryKey` is the serialized query + sort.
12
13
  */
13
14
  export declare class QueryCursorLoader<T extends Record> implements CursorLoader<T> {
14
- private table;
15
- private createQuery;
16
- private queryOptions?;
17
15
  reactQueryKeys: ReactQueryKeys;
18
- private sort;
16
+ private pager;
19
17
  /**
20
18
  * @param table the table to load windows from
21
19
  * @param createQuery factory producing a FRESH conditions-only QueryBuilder per call —
22
- * builders are mutable, so every window builds its own to hang the cursor condition,
20
+ * builders are mutable, so every window builds its own to hang the cursor conditions,
23
21
  * sort, and pagination on
24
22
  * @param sort the sort criteria to apply to every window; the primary criterion is the
25
- * cursor axis
23
+ * cursor axis (the pager appends the `id` tiebreak)
26
24
  * @param queryOptions query options passed through to every window query
27
25
  */
28
- constructor(table: Table<T>, createQuery: () => QueryBuilder<T>, sort?: SortCriteria<T>[], queryOptions?: QueryOptions<T> | undefined);
26
+ constructor(table: Table<T>, createQuery: () => QueryBuilder<T>, sort?: SortCriteria<T>[], queryOptions?: QueryOptions<T>);
29
27
  loadWindow(cursor: CursorValue | null, windowSize: number): Promise<CursorWindow<T>>;
30
- private buildWindowQuery;
31
- private deriveNextCursor;
32
28
  }
33
29
  //# sourceMappingURL=QueryCursorLoader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueryCursorLoader.d.ts","sourceRoot":"","sources":["../../../src/table/QueryCursorLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAS,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAExF;;;;;;;;;GASG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAE,YAAW,YAAY,CAAC,CAAC,CAAC;IAcvE,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,WAAW;IAEnB,OAAO,CAAC,YAAY,CAAC;IAhBvB,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,CAAC,IAAI,CAAoB;IAEhC;;;;;;;;OAQG;gBAEO,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,WAAW,EAAE,MAAM,YAAY,CAAC,CAAC,CAAC,EAC1C,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAChB,YAAY,CAAC,6BAAiB;IASlC,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAM1F,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,gBAAgB;CAWzB"}
1
+ {"version":3,"file":"QueryCursorLoader.d.ts","sourceRoot":"","sources":["../../../src/table/QueryCursorLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3G,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAExF;;;;;;;;;;GAUG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAE,YAAW,YAAY,CAAC,CAAC,CAAC;IACzE,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,CAAC,KAAK,CAAuB;IAEpC;;;;;;;;OAQG;gBAED,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,WAAW,EAAE,MAAM,YAAY,CAAC,CAAC,CAAC,EAClC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EACxB,YAAY,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAU1B,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAQ3F"}
@@ -39,11 +39,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.QueryCursorLoader = void 0;
40
40
  var db_1 = require("@proteinjs/db");
41
41
  /**
42
- * `CursorLoader` over the same QueryBuilder machinery as `QueryTableLoader`: each window
43
- * applies `cursorField < cursor` (`>` for an ascending sort) plus `paginate(0, windowSize)`
44
- * on a fresh build of the base query, so rows created or removed while paging can never
45
- * shift the window frame. The cursor field and direction derive from the PRIMARY sort
46
- * criterion.
42
+ * `CursorLoader` over the db-owned cursor-window machinery (`CursorWindowPager`): each window
43
+ * carries a lexicographic continuation past the anchor row — the primary sort axes plus a
44
+ * unique `id` tiebreak — and `paginate(0, windowSize)` on a fresh build of the base query, so
45
+ * rows created or removed while paging can never shift the window frame, and ties on the sort
46
+ * axis can never skip or duplicate boundary rows. Cursors are the pager's anchors encoded as
47
+ * strings (house `Serializer`, so dates/moments survive react-query page params).
47
48
  *
48
49
  * `dataKey` is the table name — table-level invalidation (`useTableMutation`) reaches every
49
50
  * cursor query over it; `dataQueryKey` is the serialized query + sort.
@@ -52,60 +53,38 @@ var QueryCursorLoader = /** @class */ (function () {
52
53
  /**
53
54
  * @param table the table to load windows from
54
55
  * @param createQuery factory producing a FRESH conditions-only QueryBuilder per call —
55
- * builders are mutable, so every window builds its own to hang the cursor condition,
56
+ * builders are mutable, so every window builds its own to hang the cursor conditions,
56
57
  * sort, and pagination on
57
58
  * @param sort the sort criteria to apply to every window; the primary criterion is the
58
- * cursor axis
59
+ * cursor axis (the pager appends the `id` tiebreak)
59
60
  * @param queryOptions query options passed through to every window query
60
61
  */
61
62
  function QueryCursorLoader(table, createQuery, sort, queryOptions) {
62
- this.table = table;
63
- this.createQuery = createQuery;
64
- this.queryOptions = queryOptions;
65
- this.sort = sort ? sort : [{ field: 'created', desc: true }];
63
+ var effectiveSort = sort ? sort : [{ field: 'created', desc: true }];
64
+ this.pager = new db_1.CursorWindowPager(table, createQuery, effectiveSort, { queryOptions: queryOptions });
66
65
  this.reactQueryKeys = {
67
- dataKey: this.table.name,
68
- dataQueryKey: JSON.stringify({ query: this.createQuery(), sort: this.sort }),
66
+ dataKey: table.name,
67
+ dataQueryKey: JSON.stringify({ query: createQuery(), sort: effectiveSort }),
69
68
  };
70
69
  }
71
70
  QueryCursorLoader.prototype.loadWindow = function (cursor, windowSize) {
72
71
  return __awaiter(this, void 0, void 0, function () {
73
- var qb, rows;
72
+ var anchor, window;
74
73
  return __generator(this, function (_a) {
75
74
  switch (_a.label) {
76
75
  case 0:
77
- qb = this.buildWindowQuery(cursor, windowSize);
78
- return [4 /*yield*/, (0, db_1.getDb)().query(this.table, qb, this.queryOptions)];
76
+ anchor = cursor === null ? null : db_1.CursorWindowPager.decodeAnchor(cursor);
77
+ return [4 /*yield*/, this.pager.loadWindow(anchor, windowSize)];
79
78
  case 1:
80
- rows = _a.sent();
81
- return [2 /*return*/, { rows: rows, nextCursor: this.deriveNextCursor(rows, windowSize) }];
79
+ window = _a.sent();
80
+ return [2 /*return*/, {
81
+ rows: window.rows,
82
+ nextCursor: window.nextAnchor ? db_1.CursorWindowPager.encodeAnchor(window.nextAnchor) : null,
83
+ }];
82
84
  }
83
85
  });
84
86
  });
85
87
  };
86
- QueryCursorLoader.prototype.buildWindowQuery = function (cursor, windowSize) {
87
- var qb = this.createQuery();
88
- var primarySort = this.sort[0];
89
- if (cursor !== null) {
90
- qb.condition({
91
- field: primarySort.field,
92
- operator: primarySort.desc ? '<' : '>',
93
- value: cursor,
94
- });
95
- }
96
- return qb.sort(this.sort).paginate({ start: 0, end: windowSize });
97
- };
98
- QueryCursorLoader.prototype.deriveNextCursor = function (rows, windowSize) {
99
- // A short window means the data set is exhausted; a full one implies more may exist —
100
- // the next (short or empty) window settles it.
101
- if (rows.length < windowSize) {
102
- return null;
103
- }
104
- // NULL cursor-field rows collect at the tail under the sort, and a null tail can't
105
- // anchor a cursor: the data set's dated rows are exhausted, so paging stops here.
106
- var tail = rows[rows.length - 1][this.sort[0].field];
107
- return tail == null ? null : tail;
108
- };
109
88
  return QueryCursorLoader;
110
89
  }());
111
90
  exports.QueryCursorLoader = QueryCursorLoader;
@@ -1 +1 @@
1
- {"version":3,"file":"QueryCursorLoader.js","sourceRoot":"","sources":["../../../src/table/QueryCursorLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAA+F;AAG/F;;;;;;;;;GASG;AACH;IAIE;;;;;;;;OAQG;IACH,2BACU,KAAe,EACf,WAAkC,EAC1C,IAAwB,EAChB,YAA8B;QAH9B,UAAK,GAAL,KAAK,CAAU;QACf,gBAAW,GAAX,WAAW,CAAuB;QAElC,iBAAY,GAAZ,YAAY,CAAkB;QAEtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,cAAc,GAAG;YACpB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACxB,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;SAC7E,CAAC;IACJ,CAAC;IAEK,sCAAU,GAAhB,UAAiB,MAA0B,EAAE,UAAkB;;;;;;wBACvD,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;wBACxC,qBAAM,IAAA,UAAK,GAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,EAAA;;wBAA7D,IAAI,GAAG,SAAsD;wBACnE,sBAAO,EAAE,IAAI,MAAA,EAAE,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAC;;;;KACtE;IAEO,4CAAgB,GAAxB,UAAyB,MAA0B,EAAE,UAAkB;QACrE,IAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC9B,IAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,IAAI,EAAE;YACnB,EAAE,CAAC,SAAS,CAAC;gBACX,KAAK,EAAE,WAAW,CAAC,KAAK;gBACxB,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;gBACtC,KAAK,EAAE,MAAoB;aAC5B,CAAC,CAAC;SACJ;QACD,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;IACpE,CAAC;IAEO,4CAAgB,GAAxB,UAAyB,IAAS,EAAE,UAAkB;QACpD,sFAAsF;QACtF,+CAA+C;QAC/C,IAAI,IAAI,CAAC,MAAM,GAAG,UAAU,EAAE;YAC5B,OAAO,IAAI,CAAC;SACb;QACD,mFAAmF;QACnF,kFAAkF;QAClF,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACvD,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,IAA+B,CAAC;IAChE,CAAC;IACH,wBAAC;AAAD,CAAC,AAxDD,IAwDC;AAxDY,8CAAiB"}
1
+ {"version":3,"file":"QueryCursorLoader.js","sourceRoot":"","sources":["../../../src/table/QueryCursorLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAA2G;AAG3G;;;;;;;;;;GAUG;AACH;IAIE;;;;;;;;OAQG;IACH,2BACE,KAAe,EACf,WAAkC,EAClC,IAAwB,EACxB,YAA8B;QAE9B,IAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,KAAK,GAAG,IAAI,sBAAiB,CAAI,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,YAAY,cAAA,EAAE,CAAC,CAAC;QAC3F,IAAI,CAAC,cAAc,GAAG;YACpB,OAAO,EAAE,KAAK,CAAC,IAAI;YACnB,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;SAC5E,CAAC;IACJ,CAAC;IAEK,sCAAU,GAAhB,UAAiB,MAA0B,EAAE,UAAkB;;;;;;wBACvD,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAiB,CAAC,YAAY,CAAC,MAAgB,CAAC,CAAC;wBAC1E,qBAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,EAAA;;wBAAxD,MAAM,GAAG,SAA+C;wBAC9D,sBAAO;gCACL,IAAI,EAAE,MAAM,CAAC,IAAI;gCACjB,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,sBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;6BACzF,EAAC;;;;KACH;IACH,wBAAC;AAAD,CAAC,AAnCD,IAmCC;AAnCY,8CAAiB"}
@@ -1,2 +1,2 @@
1
- export {};
1
+ import '../generated/index';
2
2
  //# sourceMappingURL=QueryCursorLoader.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueryCursorLoader.test.d.ts","sourceRoot":"","sources":["../../test/QueryCursorLoader.test.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"QueryCursorLoader.test.d.ts","sourceRoot":"","sources":["../../test/QueryCursorLoader.test.ts"],"names":[],"mappings":"AAcA,OAAO,oBAAoB,CAAC"}