mindoodb 0.0.1

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 (170) hide show
  1. package/README.md +263 -0
  2. package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.d.ts +5 -0
  3. package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.d.ts.map +1 -0
  4. package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.js +17 -0
  5. package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.js.map +1 -0
  6. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts +111 -0
  7. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts.map +1 -0
  8. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js +237 -0
  9. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js.map +1 -0
  10. package/dist/appendonlystores/network/HttpTransport.d.ts +78 -0
  11. package/dist/appendonlystores/network/HttpTransport.d.ts.map +1 -0
  12. package/dist/appendonlystores/network/HttpTransport.js +356 -0
  13. package/dist/appendonlystores/network/HttpTransport.js.map +1 -0
  14. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts +131 -0
  15. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts.map +1 -0
  16. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js +248 -0
  17. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js.map +1 -0
  18. package/dist/appendonlystores/network/index.d.ts +8 -0
  19. package/dist/appendonlystores/network/index.d.ts.map +1 -0
  20. package/dist/appendonlystores/network/index.js +21 -0
  21. package/dist/appendonlystores/network/index.js.map +1 -0
  22. package/dist/browser/crypto/BrowserCryptoAdapter.d.ts +14 -0
  23. package/dist/browser/crypto/BrowserCryptoAdapter.d.ts.map +1 -0
  24. package/dist/browser/crypto/BrowserCryptoAdapter.js +30 -0
  25. package/dist/browser/crypto/BrowserCryptoAdapter.js.map +1 -0
  26. package/dist/browser/index.d.ts +3 -0
  27. package/dist/browser/index.d.ts.map +1 -0
  28. package/dist/browser/index.js +26 -0
  29. package/dist/browser/index.js.map +1 -0
  30. package/dist/core/BaseMindooDB.d.ts +182 -0
  31. package/dist/core/BaseMindooDB.d.ts.map +1 -0
  32. package/dist/core/BaseMindooDB.js +1701 -0
  33. package/dist/core/BaseMindooDB.js.map +1 -0
  34. package/dist/core/BaseMindooTenant.d.ts +155 -0
  35. package/dist/core/BaseMindooTenant.d.ts.map +1 -0
  36. package/dist/core/BaseMindooTenant.js +673 -0
  37. package/dist/core/BaseMindooTenant.js.map +1 -0
  38. package/dist/core/BaseMindooTenantDirectory.d.ts +99 -0
  39. package/dist/core/BaseMindooTenantDirectory.d.ts.map +1 -0
  40. package/dist/core/BaseMindooTenantDirectory.js +776 -0
  41. package/dist/core/BaseMindooTenantDirectory.js.map +1 -0
  42. package/dist/core/BaseMindooTenantFactory.d.ts +91 -0
  43. package/dist/core/BaseMindooTenantFactory.d.ts.map +1 -0
  44. package/dist/core/BaseMindooTenantFactory.js +297 -0
  45. package/dist/core/BaseMindooTenantFactory.js.map +1 -0
  46. package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts +111 -0
  47. package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts.map +1 -0
  48. package/dist/core/appendonlystores/InMemoryContentAddressedStore.js +293 -0
  49. package/dist/core/appendonlystores/InMemoryContentAddressedStore.js.map +1 -0
  50. package/dist/core/appendonlystores/network/AuthenticationService.d.ts +78 -0
  51. package/dist/core/appendonlystores/network/AuthenticationService.d.ts.map +1 -0
  52. package/dist/core/appendonlystores/network/AuthenticationService.js +297 -0
  53. package/dist/core/appendonlystores/network/AuthenticationService.js.map +1 -0
  54. package/dist/core/appendonlystores/network/NetworkTransport.d.ts +174 -0
  55. package/dist/core/appendonlystores/network/NetworkTransport.d.ts.map +1 -0
  56. package/dist/core/appendonlystores/network/NetworkTransport.js +3 -0
  57. package/dist/core/appendonlystores/network/NetworkTransport.js.map +1 -0
  58. package/dist/core/appendonlystores/network/types.d.ts +135 -0
  59. package/dist/core/appendonlystores/network/types.d.ts.map +1 -0
  60. package/dist/core/appendonlystores/network/types.js +35 -0
  61. package/dist/core/appendonlystores/network/types.js.map +1 -0
  62. package/dist/core/appendonlystores/types.d.ts +157 -0
  63. package/dist/core/appendonlystores/types.d.ts.map +1 -0
  64. package/dist/core/appendonlystores/types.js +3 -0
  65. package/dist/core/appendonlystores/types.js.map +1 -0
  66. package/dist/core/crypto/CryptoAdapter.d.ts +19 -0
  67. package/dist/core/crypto/CryptoAdapter.d.ts.map +1 -0
  68. package/dist/core/crypto/CryptoAdapter.js +3 -0
  69. package/dist/core/crypto/CryptoAdapter.js.map +1 -0
  70. package/dist/core/crypto/MindooDocSigner.d.ts +106 -0
  71. package/dist/core/crypto/MindooDocSigner.d.ts.map +1 -0
  72. package/dist/core/crypto/MindooDocSigner.js +192 -0
  73. package/dist/core/crypto/MindooDocSigner.js.map +1 -0
  74. package/dist/core/crypto/RSAEncryption.d.ts +62 -0
  75. package/dist/core/crypto/RSAEncryption.d.ts.map +1 -0
  76. package/dist/core/crypto/RSAEncryption.js +167 -0
  77. package/dist/core/crypto/RSAEncryption.js.map +1 -0
  78. package/dist/core/errors.d.ts +10 -0
  79. package/dist/core/errors.d.ts.map +1 -0
  80. package/dist/core/errors.js +17 -0
  81. package/dist/core/errors.js.map +1 -0
  82. package/dist/core/index.d.ts +14 -0
  83. package/dist/core/index.d.ts.map +1 -0
  84. package/dist/core/index.js +53 -0
  85. package/dist/core/index.js.map +1 -0
  86. package/dist/core/indexing/virtualviews/IViewEntryAccessCheck.d.ts +33 -0
  87. package/dist/core/indexing/virtualviews/IViewEntryAccessCheck.d.ts.map +1 -0
  88. package/dist/core/indexing/virtualviews/IViewEntryAccessCheck.js +27 -0
  89. package/dist/core/indexing/virtualviews/IViewEntryAccessCheck.js.map +1 -0
  90. package/dist/core/indexing/virtualviews/IVirtualViewDataProvider.d.ts +31 -0
  91. package/dist/core/indexing/virtualviews/IVirtualViewDataProvider.d.ts.map +1 -0
  92. package/dist/core/indexing/virtualviews/IVirtualViewDataProvider.js +3 -0
  93. package/dist/core/indexing/virtualviews/IVirtualViewDataProvider.js.map +1 -0
  94. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts +52 -0
  95. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts.map +1 -0
  96. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js +106 -0
  97. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js.map +1 -0
  98. package/dist/core/indexing/virtualviews/ViewEntrySortKey.d.ts +44 -0
  99. package/dist/core/indexing/virtualviews/ViewEntrySortKey.d.ts.map +1 -0
  100. package/dist/core/indexing/virtualviews/ViewEntrySortKey.js +107 -0
  101. package/dist/core/indexing/virtualviews/ViewEntrySortKey.js.map +1 -0
  102. package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.d.ts +28 -0
  103. package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.d.ts.map +1 -0
  104. package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.js +133 -0
  105. package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.js.map +1 -0
  106. package/dist/core/indexing/virtualviews/VirtualView.d.ts +109 -0
  107. package/dist/core/indexing/virtualviews/VirtualView.d.ts.map +1 -0
  108. package/dist/core/indexing/virtualviews/VirtualView.js +504 -0
  109. package/dist/core/indexing/virtualviews/VirtualView.js.map +1 -0
  110. package/dist/core/indexing/virtualviews/VirtualViewColumn.d.ts +59 -0
  111. package/dist/core/indexing/virtualviews/VirtualViewColumn.d.ts.map +1 -0
  112. package/dist/core/indexing/virtualviews/VirtualViewColumn.js +70 -0
  113. package/dist/core/indexing/virtualviews/VirtualViewColumn.js.map +1 -0
  114. package/dist/core/indexing/virtualviews/VirtualViewDataChange.d.ts +49 -0
  115. package/dist/core/indexing/virtualviews/VirtualViewDataChange.d.ts.map +1 -0
  116. package/dist/core/indexing/virtualviews/VirtualViewDataChange.js +69 -0
  117. package/dist/core/indexing/virtualviews/VirtualViewDataChange.js.map +1 -0
  118. package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts +121 -0
  119. package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts.map +1 -0
  120. package/dist/core/indexing/virtualviews/VirtualViewEntryData.js +365 -0
  121. package/dist/core/indexing/virtualviews/VirtualViewEntryData.js.map +1 -0
  122. package/dist/core/indexing/virtualviews/VirtualViewFactory.d.ts +131 -0
  123. package/dist/core/indexing/virtualviews/VirtualViewFactory.d.ts.map +1 -0
  124. package/dist/core/indexing/virtualviews/VirtualViewFactory.js +236 -0
  125. package/dist/core/indexing/virtualviews/VirtualViewFactory.js.map +1 -0
  126. package/dist/core/indexing/virtualviews/VirtualViewNavigator.d.ts +330 -0
  127. package/dist/core/indexing/virtualviews/VirtualViewNavigator.d.ts.map +1 -0
  128. package/dist/core/indexing/virtualviews/VirtualViewNavigator.js +1010 -0
  129. package/dist/core/indexing/virtualviews/VirtualViewNavigator.js.map +1 -0
  130. package/dist/core/indexing/virtualviews/index.d.ts +53 -0
  131. package/dist/core/indexing/virtualviews/index.d.ts.map +1 -0
  132. package/dist/core/indexing/virtualviews/index.js +89 -0
  133. package/dist/core/indexing/virtualviews/index.js.map +1 -0
  134. package/dist/core/indexing/virtualviews/types.d.ts +115 -0
  135. package/dist/core/indexing/virtualviews/types.d.ts.map +1 -0
  136. package/dist/core/indexing/virtualviews/types.js +175 -0
  137. package/dist/core/indexing/virtualviews/types.js.map +1 -0
  138. package/dist/core/keys/KeyBag.d.ts +122 -0
  139. package/dist/core/keys/KeyBag.d.ts.map +1 -0
  140. package/dist/core/keys/KeyBag.js +401 -0
  141. package/dist/core/keys/KeyBag.js.map +1 -0
  142. package/dist/core/types.d.ts +1004 -0
  143. package/dist/core/types.d.ts.map +1 -0
  144. package/dist/core/types.js +10 -0
  145. package/dist/core/types.js.map +1 -0
  146. package/dist/core/userid/index.d.ts +53 -0
  147. package/dist/core/userid/index.d.ts.map +1 -0
  148. package/dist/core/userid/index.js +3 -0
  149. package/dist/core/userid/index.js.map +1 -0
  150. package/dist/core/utils/idGeneration.d.ts +109 -0
  151. package/dist/core/utils/idGeneration.d.ts.map +1 -0
  152. package/dist/core/utils/idGeneration.js +182 -0
  153. package/dist/core/utils/idGeneration.js.map +1 -0
  154. package/dist/core/utils/index.d.ts +5 -0
  155. package/dist/core/utils/index.d.ts.map +1 -0
  156. package/dist/core/utils/index.js +19 -0
  157. package/dist/core/utils/index.js.map +1 -0
  158. package/dist/index.d.ts +7 -0
  159. package/dist/index.d.ts.map +1 -0
  160. package/dist/index.js +40 -0
  161. package/dist/index.js.map +1 -0
  162. package/dist/node/crypto/NodeCryptoAdapter.d.ts +16 -0
  163. package/dist/node/crypto/NodeCryptoAdapter.d.ts.map +1 -0
  164. package/dist/node/crypto/NodeCryptoAdapter.js +53 -0
  165. package/dist/node/crypto/NodeCryptoAdapter.js.map +1 -0
  166. package/dist/node/index.d.ts +3 -0
  167. package/dist/node/index.d.ts.map +1 -0
  168. package/dist/node/index.js +26 -0
  169. package/dist/node/index.js.map +1 -0
  170. package/package.json +58 -0
@@ -0,0 +1,131 @@
1
+ import type { MindooDB } from "../../types";
2
+ import { VirtualView } from "./VirtualView";
3
+ import { VirtualViewColumn, VirtualViewColumnOptions } from "./VirtualViewColumn";
4
+ import type { VirtualViewEntryData } from "./VirtualViewEntryData";
5
+ import { VirtualViewNavigator } from "./VirtualViewNavigator";
6
+ import type { IVirtualViewDataProvider } from "./IVirtualViewDataProvider";
7
+ import { MindooDBVirtualViewDataProviderOptions } from "./MindooDBVirtualViewDataProvider";
8
+ import type { IViewEntryAccessCheck } from "./IViewEntryAccessCheck";
9
+ import { CategorizationStyle, ColumnSorting, TotalMode, DocumentFilterFunction } from "./types";
10
+ /**
11
+ * Builder for creating VirtualView instances with a fluent API
12
+ */
13
+ export declare class VirtualViewBuilder {
14
+ private columns;
15
+ private categorizationStyle;
16
+ private dataProviders;
17
+ /**
18
+ * Add a column to the view
19
+ */
20
+ addColumn(column: VirtualViewColumn): this;
21
+ /**
22
+ * Add a column using options
23
+ */
24
+ addColumnFromOptions(options: VirtualViewColumnOptions): this;
25
+ /**
26
+ * Add a category column
27
+ */
28
+ addCategoryColumn(name: string, options?: Partial<Omit<VirtualViewColumnOptions, "name" | "isCategory">>): this;
29
+ /**
30
+ * Add a sorted column
31
+ */
32
+ addSortedColumn(name: string, sorting?: ColumnSorting, options?: Partial<Omit<VirtualViewColumnOptions, "name" | "sorting">>): this;
33
+ /**
34
+ * Add a display-only column
35
+ */
36
+ addDisplayColumn(name: string, options?: Partial<Omit<VirtualViewColumnOptions, "name">>): this;
37
+ /**
38
+ * Add a total column
39
+ */
40
+ addTotalColumn(name: string, totalMode: TotalMode, options?: Partial<Omit<VirtualViewColumnOptions, "name" | "totalMode">>): this;
41
+ /**
42
+ * Set the categorization style
43
+ */
44
+ withCategorizationStyle(style: CategorizationStyle): this;
45
+ /**
46
+ * Add a MindooDB data provider
47
+ */
48
+ withMindooDB(options: MindooDBVirtualViewDataProviderOptions): this;
49
+ /**
50
+ * Add a MindooDB with simplified options
51
+ */
52
+ withDB(origin: string, db: MindooDB, filterFunction?: DocumentFilterFunction): this;
53
+ /**
54
+ * Add a custom data provider
55
+ */
56
+ withDataProvider(provider: IVirtualViewDataProvider): this;
57
+ /**
58
+ * Build the VirtualView
59
+ */
60
+ build(): VirtualView;
61
+ /**
62
+ * Build the VirtualView and run initial update
63
+ */
64
+ buildAndUpdate(): Promise<VirtualView>;
65
+ }
66
+ /**
67
+ * Builder for creating VirtualViewNavigator instances
68
+ */
69
+ export declare class VirtualViewNavigatorBuilder {
70
+ private readonly view;
71
+ private withCategories;
72
+ private withDocuments;
73
+ private accessCheck;
74
+ private dontShowEmptyCategories;
75
+ private rootEntry;
76
+ constructor(view: VirtualView);
77
+ /**
78
+ * Include only categories (no documents)
79
+ */
80
+ categoriesOnly(): this;
81
+ /**
82
+ * Include only documents (no categories)
83
+ */
84
+ documentsOnly(): this;
85
+ /**
86
+ * Don't show empty categories
87
+ */
88
+ hideEmptyCategories(): this;
89
+ /**
90
+ * Set a custom access check
91
+ */
92
+ withAccessCheck(check: IViewEntryAccessCheck): this;
93
+ /**
94
+ * Set a callback-based access check
95
+ */
96
+ withAccessCallback(callback: (nav: VirtualViewNavigator, entry: VirtualViewEntryData) => boolean): this;
97
+ /**
98
+ * Start navigation from a specific category
99
+ */
100
+ fromCategory(categoryPath: string): this;
101
+ /**
102
+ * Start navigation from a specific entry
103
+ */
104
+ fromEntry(entry: VirtualViewEntryData): this;
105
+ /**
106
+ * Build the navigator
107
+ */
108
+ build(): VirtualViewNavigator;
109
+ }
110
+ /**
111
+ * Factory for creating VirtualView instances
112
+ */
113
+ export declare class VirtualViewFactory {
114
+ /**
115
+ * Create a new VirtualView builder
116
+ */
117
+ static createView(): VirtualViewBuilder;
118
+ /**
119
+ * Create a VirtualView with columns directly
120
+ */
121
+ static createViewWithColumns(columns: VirtualViewColumn[]): VirtualView;
122
+ /**
123
+ * Create a navigator builder for a view
124
+ */
125
+ static createNavigator(view: VirtualView): VirtualViewNavigatorBuilder;
126
+ /**
127
+ * Create a simple navigator for a view (all categories and documents)
128
+ */
129
+ static createSimpleNavigator(view: VirtualView): VirtualViewNavigator;
130
+ }
131
+ //# sourceMappingURL=VirtualViewFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VirtualViewFactory.d.ts","sourceRoot":"","sources":["../../../../src/core/indexing/virtualviews/VirtualViewFactory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VirtualViewFactory = exports.VirtualViewNavigatorBuilder = exports.VirtualViewBuilder = void 0;
4
+ const VirtualView_1 = require("./VirtualView");
5
+ const VirtualViewColumn_1 = require("./VirtualViewColumn");
6
+ const VirtualViewNavigator_1 = require("./VirtualViewNavigator");
7
+ const MindooDBVirtualViewDataProvider_1 = require("./MindooDBVirtualViewDataProvider");
8
+ const IViewEntryAccessCheck_1 = require("./IViewEntryAccessCheck");
9
+ const types_1 = require("./types");
10
+ /**
11
+ * Builder for creating VirtualView instances with a fluent API
12
+ */
13
+ class VirtualViewBuilder {
14
+ constructor() {
15
+ this.columns = [];
16
+ this.categorizationStyle = types_1.CategorizationStyle.DOCUMENT_THEN_CATEGORY;
17
+ this.dataProviders = [];
18
+ }
19
+ /**
20
+ * Add a column to the view
21
+ */
22
+ addColumn(column) {
23
+ this.columns.push(column);
24
+ return this;
25
+ }
26
+ /**
27
+ * Add a column using options
28
+ */
29
+ addColumnFromOptions(options) {
30
+ this.columns.push(new VirtualViewColumn_1.VirtualViewColumn(options));
31
+ return this;
32
+ }
33
+ /**
34
+ * Add a category column
35
+ */
36
+ addCategoryColumn(name, options) {
37
+ this.columns.push(VirtualViewColumn_1.VirtualViewColumn.category(name, options));
38
+ return this;
39
+ }
40
+ /**
41
+ * Add a sorted column
42
+ */
43
+ addSortedColumn(name, sorting = types_1.ColumnSorting.ASCENDING, options) {
44
+ this.columns.push(VirtualViewColumn_1.VirtualViewColumn.sorted(name, sorting, options));
45
+ return this;
46
+ }
47
+ /**
48
+ * Add a display-only column
49
+ */
50
+ addDisplayColumn(name, options) {
51
+ this.columns.push(VirtualViewColumn_1.VirtualViewColumn.display(name, options));
52
+ return this;
53
+ }
54
+ /**
55
+ * Add a total column
56
+ */
57
+ addTotalColumn(name, totalMode, options) {
58
+ this.columns.push(VirtualViewColumn_1.VirtualViewColumn.total(name, totalMode, options));
59
+ return this;
60
+ }
61
+ /**
62
+ * Set the categorization style
63
+ */
64
+ withCategorizationStyle(style) {
65
+ this.categorizationStyle = style;
66
+ return this;
67
+ }
68
+ /**
69
+ * Add a MindooDB data provider
70
+ */
71
+ withMindooDB(options) {
72
+ this.dataProviders.push(new MindooDBVirtualViewDataProvider_1.MindooDBVirtualViewDataProvider(options));
73
+ return this;
74
+ }
75
+ /**
76
+ * Add a MindooDB with simplified options
77
+ */
78
+ withDB(origin, db, filterFunction) {
79
+ this.dataProviders.push(new MindooDBVirtualViewDataProvider_1.MindooDBVirtualViewDataProvider({
80
+ origin,
81
+ db,
82
+ filterFunction,
83
+ }));
84
+ return this;
85
+ }
86
+ /**
87
+ * Add a custom data provider
88
+ */
89
+ withDataProvider(provider) {
90
+ this.dataProviders.push(provider);
91
+ return this;
92
+ }
93
+ /**
94
+ * Build the VirtualView
95
+ */
96
+ build() {
97
+ if (this.columns.length === 0) {
98
+ throw new Error("At least one column is required");
99
+ }
100
+ const view = new VirtualView_1.VirtualView(this.columns);
101
+ view.setCategorizationStyle(this.categorizationStyle);
102
+ for (const provider of this.dataProviders) {
103
+ provider.init(view);
104
+ view.addDataProvider(provider);
105
+ }
106
+ return view;
107
+ }
108
+ /**
109
+ * Build the VirtualView and run initial update
110
+ */
111
+ async buildAndUpdate() {
112
+ const view = this.build();
113
+ await view.update();
114
+ return view;
115
+ }
116
+ }
117
+ exports.VirtualViewBuilder = VirtualViewBuilder;
118
+ /**
119
+ * Builder for creating VirtualViewNavigator instances
120
+ */
121
+ class VirtualViewNavigatorBuilder {
122
+ constructor(view) {
123
+ this.withCategories = types_1.WithCategories.YES;
124
+ this.withDocuments = types_1.WithDocuments.YES;
125
+ this.accessCheck = null;
126
+ this.dontShowEmptyCategories = false;
127
+ this.rootEntry = null;
128
+ this.view = view;
129
+ }
130
+ /**
131
+ * Include only categories (no documents)
132
+ */
133
+ categoriesOnly() {
134
+ this.withCategories = types_1.WithCategories.YES;
135
+ this.withDocuments = types_1.WithDocuments.NO;
136
+ return this;
137
+ }
138
+ /**
139
+ * Include only documents (no categories)
140
+ */
141
+ documentsOnly() {
142
+ this.withCategories = types_1.WithCategories.NO;
143
+ this.withDocuments = types_1.WithDocuments.YES;
144
+ return this;
145
+ }
146
+ /**
147
+ * Don't show empty categories
148
+ */
149
+ hideEmptyCategories() {
150
+ this.dontShowEmptyCategories = true;
151
+ return this;
152
+ }
153
+ /**
154
+ * Set a custom access check
155
+ */
156
+ withAccessCheck(check) {
157
+ this.accessCheck = check;
158
+ return this;
159
+ }
160
+ /**
161
+ * Set a callback-based access check
162
+ */
163
+ withAccessCallback(callback) {
164
+ this.accessCheck = new IViewEntryAccessCheck_1.CallbackAccessCheck(callback);
165
+ return this;
166
+ }
167
+ /**
168
+ * Start navigation from a specific category
169
+ */
170
+ fromCategory(categoryPath) {
171
+ // Navigate to category by path (e.g., "Sales\\2024")
172
+ const root = this.view.getRoot();
173
+ const parts = categoryPath.split("\\");
174
+ let current = root;
175
+ for (const part of parts) {
176
+ const children = current.getChildCategories();
177
+ const match = children.find(c => {
178
+ const catValue = c.getCategoryValue();
179
+ return catValue !== null && String(catValue) === part;
180
+ });
181
+ if (!match) {
182
+ // Category not found - will start from root
183
+ break;
184
+ }
185
+ current = match;
186
+ }
187
+ this.rootEntry = current;
188
+ return this;
189
+ }
190
+ /**
191
+ * Start navigation from a specific entry
192
+ */
193
+ fromEntry(entry) {
194
+ this.rootEntry = entry;
195
+ return this;
196
+ }
197
+ /**
198
+ * Build the navigator
199
+ */
200
+ build() {
201
+ const topEntry = this.rootEntry ?? this.view.getRoot();
202
+ return new VirtualViewNavigator_1.VirtualViewNavigator(this.view, topEntry, this.withCategories, this.withDocuments, this.accessCheck, this.dontShowEmptyCategories);
203
+ }
204
+ }
205
+ exports.VirtualViewNavigatorBuilder = VirtualViewNavigatorBuilder;
206
+ /**
207
+ * Factory for creating VirtualView instances
208
+ */
209
+ class VirtualViewFactory {
210
+ /**
211
+ * Create a new VirtualView builder
212
+ */
213
+ static createView() {
214
+ return new VirtualViewBuilder();
215
+ }
216
+ /**
217
+ * Create a VirtualView with columns directly
218
+ */
219
+ static createViewWithColumns(columns) {
220
+ return new VirtualView_1.VirtualView(columns);
221
+ }
222
+ /**
223
+ * Create a navigator builder for a view
224
+ */
225
+ static createNavigator(view) {
226
+ return new VirtualViewNavigatorBuilder(view);
227
+ }
228
+ /**
229
+ * Create a simple navigator for a view (all categories and documents)
230
+ */
231
+ static createSimpleNavigator(view) {
232
+ return new VirtualViewNavigatorBuilder(view).build();
233
+ }
234
+ }
235
+ exports.VirtualViewFactory = VirtualViewFactory;
236
+ //# sourceMappingURL=VirtualViewFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VirtualViewFactory.js","sourceRoot":"","sources":["../../../../src/core/indexing/virtualviews/VirtualViewFactory.ts"],"names":[],"mappings":"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"}