xmlui 0.10.19 → 0.10.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/{apiInterceptorWorker-DPgtUtdA.mjs → apiInterceptorWorker-QiltRtq1.mjs} +1 -1
- package/dist/lib/{index-cuh97e2e.mjs → index-BiS4wEuu.mjs} +1486 -1211
- package/dist/lib/index.css +1 -1
- package/dist/{metadata/initMock-C-cnv--V.mjs → lib/initMock-CB_cMi6U.mjs} +25 -15
- package/dist/lib/language-server-web-worker.mjs +1 -1
- package/dist/lib/language-server.mjs +1 -1
- package/dist/lib/{metadata-utils-CtY0QcvH.mjs → metadata-utils-BTIt1_wE.mjs} +1 -1
- package/dist/lib/{server-common-Cine5nRR.mjs → server-common-DYZtsdM7.mjs} +51 -14
- package/dist/lib/{transform-bHBjkKSL.mjs → transform-Tooy42EB.mjs} +16 -18
- package/dist/lib/xmlui-parser.mjs +2 -2
- package/dist/lib/{xmlui-serializer-DB6BLiXK.mjs → xmlui-serializer-uCYa8_tZ.mjs} +1 -1
- package/dist/lib/xmlui.d.ts +11 -3
- package/dist/lib/xmlui.mjs +2 -2
- package/dist/metadata/{apiInterceptorWorker-BmKP8bnq.mjs → apiInterceptorWorker-Dql7QGw2.mjs} +1 -1
- package/dist/metadata/{collectedComponentMetadata-Cp-9lpnG.mjs → collectedComponentMetadata-MFUg6aSX.mjs} +1655 -1390
- package/dist/{lib/initMock-BMxsanHc.mjs → metadata/initMock-Dw9wrVkQ.mjs} +25 -15
- package/dist/metadata/style.css +1 -1
- package/dist/metadata/xmlui-metadata.mjs +1 -1
- package/dist/metadata/xmlui-metadata.umd.js +3 -3
- package/dist/scripts/package.json +3 -6
- package/dist/scripts/src/components/Animation/AnimationNative.js +28 -28
- package/dist/scripts/src/components/App/App.js +4 -4
- package/dist/scripts/src/components/App/App.spec.js +17 -17
- package/dist/scripts/src/components/App/AppNative.js +1 -1
- package/dist/scripts/src/components/AppState/AppState.js +3 -2
- package/dist/scripts/src/components/AppState/AppState.spec.js +26 -2
- package/dist/scripts/src/components/AppState/AppStateNative.js +3 -4
- package/dist/scripts/src/components/AutoComplete/AutoComplete.js +15 -10
- package/dist/scripts/src/components/AutoComplete/AutoCompleteNative.js +4 -4
- package/dist/scripts/src/components/Carousel/Carousel.spec.js +214 -0
- package/dist/scripts/src/components/CodeBlock/CodeBlockNative.js +1 -1
- package/dist/scripts/src/components/ContentSeparator/ContentSeparator.js +2 -0
- package/dist/scripts/src/components/ContentSeparator/ContentSeparator.spec.js +193 -0
- package/dist/scripts/src/components/DateInput/DateInput.spec.js +6 -6
- package/dist/scripts/src/components/DateInput/DateInputNative.js +0 -1
- package/dist/scripts/src/components/DropdownMenu/DropdownMenu.spec.js +3 -3
- package/dist/scripts/src/components/FileUploadDropZone/FileUploadDropZoneNative.js +4 -13
- package/dist/scripts/src/components/Form/Form.spec.js +25 -9
- package/dist/scripts/src/components/Form/FormNative.js +7 -5
- package/dist/scripts/src/components/FormItem/FormItem.js +3 -1
- package/dist/scripts/src/components/FormItem/FormItem.spec.js +5 -14
- package/dist/scripts/src/components/FormItem/FormItemNative.js +12 -8
- package/dist/scripts/src/components/FormItem/Validations.js +2 -2
- package/dist/scripts/src/components/IFrame/IFrameNative.js +0 -2
- package/dist/scripts/src/components/IconRegistryContext.js +1 -1
- package/dist/scripts/src/components/List/ListNative.js +2 -2
- package/dist/scripts/src/components/ModalDialog/ConfirmationModalContextProvider.js +3 -12
- package/dist/scripts/src/components/ModalDialog/ModalDialog.js +2 -2
- package/dist/scripts/src/components/ModalDialog/ModalDialogNative.js +6 -3
- package/dist/scripts/src/components/NestedApp/AppWithCodeViewNative.js +1 -1
- package/dist/scripts/src/components/NestedApp/NestedAppNative.js +3 -3
- package/dist/scripts/src/components/NumberBox/NumberBox.spec.js +2 -2
- package/dist/scripts/src/components/Pagination/Pagination.spec.js +5 -0
- package/dist/scripts/src/components/Pagination/PaginationNative.js +1 -3
- package/dist/scripts/src/components/Queue/Queue.spec.js +45 -47
- package/dist/scripts/src/components/Queue/QueueNative.js +1 -1
- package/dist/scripts/src/components/RadioGroup/RadioGroup.spec.js +5 -5
- package/dist/scripts/src/components/RealTimeAdapter/RealTimeAdapterNative.js +1 -1
- package/dist/scripts/src/components/Select/MultiSelectOption.js +42 -0
- package/dist/scripts/src/components/Select/Select.js +3 -3
- package/dist/scripts/src/components/Select/SelectContext.js +8 -1
- package/dist/scripts/src/components/Select/SelectNative.js +134 -142
- package/dist/scripts/src/components/Select/SelectOption.js +34 -0
- package/dist/scripts/src/components/Select/SimpleSelect.js +57 -0
- package/dist/scripts/src/components/Spinner/Spinner.spec.js +1 -1
- package/dist/scripts/src/components/Table/useRowSelection.js +14 -23
- package/dist/scripts/src/components/Text/Text.js +5 -1
- package/dist/scripts/src/components/Text/Text.spec.js +317 -0
- package/dist/scripts/src/components/Text/TextNative.js +112 -1
- package/dist/scripts/src/components/TextArea/TextArea.spec.js +8 -8
- package/dist/scripts/src/components/Theme/Theme.js +2 -1
- package/dist/scripts/src/components/Theme/Theme.spec.js +266 -0
- package/dist/scripts/src/components/Theme/ThemeNative.js +8 -1
- package/dist/scripts/src/components/TimeInput/TimeInput.spec.js +3 -3
- package/dist/scripts/src/components/TimeInput/TimeInputNative.js +0 -1
- package/dist/scripts/src/components/Timer/TimerNative.js +0 -1
- package/dist/scripts/src/components/Tree/TreeNative.js +16 -23
- package/dist/scripts/src/components-core/InspectorContext.js +1 -1
- package/dist/scripts/src/components-core/StandaloneApp.js +6 -8
- package/dist/scripts/src/components-core/action/FileUploadAction.js +1 -1
- package/dist/scripts/src/components-core/behaviors/BehaviorContext.js +50 -0
- package/dist/scripts/src/components-core/behaviors/CoreBehaviors.js +6 -1
- package/dist/scripts/src/components-core/interception/ApiInterceptor.js +9 -11
- package/dist/scripts/src/components-core/interception/ApiInterceptorProvider.js +3 -3
- package/dist/scripts/src/components-core/interception/Backend.js +1 -1
- package/dist/scripts/src/components-core/interception/IndexedDb.js +64 -66
- package/dist/scripts/src/components-core/interception/apiInterceptorWorker.js +2 -2
- package/dist/scripts/src/components-core/loader/DataLoader.js +6 -14
- package/dist/scripts/src/components-core/loader/Loader.js +11 -11
- package/dist/scripts/src/components-core/loader/MockLoaderRenderer.js +4 -2
- package/dist/scripts/src/components-core/loader/PageableLoader.js +10 -9
- package/dist/scripts/src/components-core/rendering/AppContent.js +1 -7
- package/dist/scripts/src/components-core/rendering/ErrorBoundary.js +1 -1
- package/dist/scripts/src/components-core/script-runner/bannedFunctions.js +1 -1
- package/dist/scripts/src/components-core/script-runner/eval-tree-async.js +180 -186
- package/dist/scripts/src/components-core/script-runner/eval-tree-sync.js +6 -6
- package/dist/scripts/src/components-core/script-runner/process-statement-sync.js +2 -2
- package/dist/scripts/src/components-core/utils/actionUtils.js +1 -1
- package/dist/scripts/src/components-core/utils/hooks.js +1 -1
- package/dist/scripts/src/components-core/utils/misc.js +4 -4
- package/dist/scripts/src/components-core/xmlui-parser.js +47 -31
- package/dist/scripts/src/language-server/server-common.js +25 -24
- package/dist/scripts/src/language-server/services/common/lsp-utils.js +2 -2
- package/dist/scripts/src/language-server/services/completion.js +20 -2
- package/dist/scripts/src/language-server/services/diagnostic.js +1 -1
- package/dist/scripts/src/language-server/services/hover.js +2 -2
- package/dist/scripts/src/parsers/common/utils.js +2 -2
- package/dist/scripts/src/parsers/scripting/Lexer.js +21 -15
- package/dist/scripts/src/parsers/scripting/Parser.js +8 -9
- package/dist/scripts/src/parsers/style-parser/StyleLexer.js +22 -22
- package/dist/scripts/src/parsers/style-parser/StyleParser.js +70 -68
- package/dist/scripts/src/testing/ComponentDrivers.js +20 -39
- package/dist/scripts/src/testing/component-test-helpers.js +34 -50
- package/dist/scripts/src/testing/fixtures.js +114 -113
- package/dist/scripts/src/testing/themed-app-test-helpers.js +7 -13
- package/dist/standalone/xmlui-standalone.es.d.ts +11 -3
- package/dist/standalone/xmlui-standalone.umd.js +35 -35
- package/package.json +3 -6
|
@@ -217,15 +217,13 @@ class ApiInterceptor {
|
|
|
217
217
|
});
|
|
218
218
|
}
|
|
219
219
|
executeMockedFetch(url, options) {
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
return this.executeOperation(operationId, new Request(url, options), getCookiesAsObject(), match.params);
|
|
228
|
-
});
|
|
220
|
+
const mockForRequest = this.getMockForRequest(url, options);
|
|
221
|
+
if (!mockForRequest) {
|
|
222
|
+
throw new Error(`No mock found for request: ${url} with options: ${JSON.stringify(options)}`);
|
|
223
|
+
}
|
|
224
|
+
const [operationId, operationDef] = mockForRequest;
|
|
225
|
+
const match = (0, msw_1.matchRequestUrl)(new URL(url, window.location.href), `${this.getApiUrl()}${operationDef.url}`, `${window.location.href}`);
|
|
226
|
+
return this.executeOperation(operationId, new Request(url, options), getCookiesAsObject(), match.params);
|
|
229
227
|
}
|
|
230
228
|
}
|
|
231
229
|
exports.ApiInterceptor = ApiInterceptor;
|
|
@@ -237,10 +235,10 @@ function getCookiesAsObject() {
|
|
|
237
235
|
return {};
|
|
238
236
|
}
|
|
239
237
|
// 3. Split into individual "key=value" pairs
|
|
240
|
-
const cookiePairs = cookieString.split(
|
|
238
|
+
const cookiePairs = cookieString.split("; ");
|
|
241
239
|
// 4. Use reduce to build the final object
|
|
242
240
|
const cookieObject = cookiePairs.reduce((acc, currentPair) => {
|
|
243
|
-
const [key, value] = currentPair.split(
|
|
241
|
+
const [key, value] = currentPair.split("=");
|
|
244
242
|
// Decode the key and value to handle special characters
|
|
245
243
|
acc[decodeURIComponent(key)] = decodeURIComponent(value);
|
|
246
244
|
return acc;
|
|
@@ -67,7 +67,7 @@ function ApiInterceptorProvider({ interceptor, children, parentInterceptorContex
|
|
|
67
67
|
if (!interceptor) {
|
|
68
68
|
return;
|
|
69
69
|
}
|
|
70
|
-
(() => __awaiter(this, void 0, void 0, function* () {
|
|
70
|
+
void (() => __awaiter(this, void 0, void 0, function* () {
|
|
71
71
|
const { initMock } = yield Promise.resolve().then(() => __importStar(require("./initMock")));
|
|
72
72
|
const apiInstance = yield initMock(interceptor);
|
|
73
73
|
setApiInstance(apiInstance);
|
|
@@ -84,7 +84,7 @@ function ApiInterceptorProvider({ interceptor, children, parentInterceptorContex
|
|
|
84
84
|
// setInitialized(false);
|
|
85
85
|
// --- We use "msw" to manage the API interception
|
|
86
86
|
let interceptorWorker;
|
|
87
|
-
(() => __awaiter(this, void 0, void 0, function* () {
|
|
87
|
+
void (() => __awaiter(this, void 0, void 0, function* () {
|
|
88
88
|
// --- Create the worker on the fly
|
|
89
89
|
if (process.env.VITE_MOCK_ENABLED) {
|
|
90
90
|
const [{ createApiInterceptorWorker }, { initMock }] = yield Promise.all([
|
|
@@ -126,7 +126,7 @@ function ApiInterceptorProvider({ interceptor, children, parentInterceptorContex
|
|
|
126
126
|
return;
|
|
127
127
|
}
|
|
128
128
|
if (parentInterceptorWorker) {
|
|
129
|
-
(() => __awaiter(this, void 0, void 0, function* () {
|
|
129
|
+
void (() => __awaiter(this, void 0, void 0, function* () {
|
|
130
130
|
const [{ createApiInterceptorWorker }, { initMock }] = yield Promise.all([
|
|
131
131
|
Promise.resolve().then(() => __importStar(require("./apiInterceptorWorker"))),
|
|
132
132
|
Promise.resolve().then(() => __importStar(require("./initMock"))),
|
|
@@ -35,9 +35,9 @@ class IndexedDb {
|
|
|
35
35
|
return ret.find((_v, index) => results[index]);
|
|
36
36
|
});
|
|
37
37
|
this.getItemById = (resourceId, id) => __awaiter(this, void 0, void 0, function* () {
|
|
38
|
-
return yield this.getItem(resourceId, (item) =>
|
|
39
|
-
return item.id + "" === id + "";
|
|
40
|
-
})
|
|
38
|
+
return yield this.getItem(resourceId, (item) => {
|
|
39
|
+
return Promise.resolve(item.id + "" === id + "");
|
|
40
|
+
});
|
|
41
41
|
});
|
|
42
42
|
this.deleteItems = (resourceId, predicate) => __awaiter(this, void 0, void 0, function* () {
|
|
43
43
|
// this.repository[resourceId] = this.repository[resourceId]?.filter((item) => !predicate(item));
|
|
@@ -140,68 +140,66 @@ class IndexedDb {
|
|
|
140
140
|
exports.IndexedDb = IndexedDb;
|
|
141
141
|
// Wraps an indexDb Table into an object that provides helpful methods
|
|
142
142
|
function createTableWrapper(table) {
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
const
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
return dataSnapshot.filter((_v, index) => results[index]);
|
|
151
|
-
});
|
|
152
|
-
return {
|
|
153
|
-
native: getDataFn,
|
|
154
|
-
insert: (item) => __awaiter(this, void 0, void 0, function* () {
|
|
155
|
-
const id = yield table.add(item);
|
|
156
|
-
return getDataFn().get(id);
|
|
157
|
-
}),
|
|
158
|
-
update: (item) => __awaiter(this, void 0, void 0, function* () {
|
|
159
|
-
yield table.update(item.id, item);
|
|
160
|
-
return getDataFn().get(item.id);
|
|
161
|
-
}),
|
|
162
|
-
save: (item) => __awaiter(this, void 0, void 0, function* () {
|
|
163
|
-
const key = yield table.put(item);
|
|
164
|
-
return table.get(key);
|
|
165
|
-
}),
|
|
166
|
-
deleteById: (id) => __awaiter(this, void 0, void 0, function* () {
|
|
167
|
-
yield table.delete(id);
|
|
168
|
-
}),
|
|
169
|
-
byId: (id) => __awaiter(this, void 0, void 0, function* () {
|
|
170
|
-
if (id === undefined || id === null) {
|
|
171
|
-
return null;
|
|
172
|
-
}
|
|
173
|
-
let safeId = id;
|
|
174
|
-
if (table.schema.primKey.src === "++id") {
|
|
175
|
-
//it's an auto incremented id, must be a number
|
|
176
|
-
safeId = Number(id);
|
|
177
|
-
}
|
|
178
|
-
return table.get(safeId);
|
|
179
|
-
}),
|
|
180
|
-
toArray: () => __awaiter(this, void 0, void 0, function* () { return yield table.toArray(); }),
|
|
181
|
-
single: (predicate) => __awaiter(this, void 0, void 0, function* () { return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).single(predicate); }),
|
|
182
|
-
singleOrDefault: (predicate, defValue) => __awaiter(this, void 0, void 0, function* () {
|
|
183
|
-
return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).singleOrDefault(predicate, defValue);
|
|
184
|
-
}),
|
|
185
|
-
where: (predicate) => __awaiter(this, void 0, void 0, function* () { return new ReadonlyCollection_1.ReadOnlyCollection(yield filteredData(predicate)); }),
|
|
186
|
-
whereAsArray: (predicate) => __awaiter(this, void 0, void 0, function* () { return yield filteredData(predicate); }),
|
|
187
|
-
orderBy: (...mappers) => __awaiter(this, void 0, void 0, function* () { return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).orderBy(...mappers); }),
|
|
188
|
-
orderByAsArray: (...mappers) => __awaiter(this, void 0, void 0, function* () { return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).orderByAsArray(...mappers); }),
|
|
189
|
-
groupBy: (groupKey) => __awaiter(this, void 0, void 0, function* () { return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).groupBy(groupKey); }),
|
|
190
|
-
groupByAsArray: (groupKey) => __awaiter(this, void 0, void 0, function* () { return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).groupByAsArray(groupKey); }),
|
|
191
|
-
distinct: (distinctValue) => __awaiter(this, void 0, void 0, function* () { return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).distinct(distinctValue); }),
|
|
192
|
-
distinctAsArray: (distinctValue) => __awaiter(this, void 0, void 0, function* () { return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).distinctAsArray(distinctValue); }),
|
|
193
|
-
maxValue: (...args_1) => __awaiter(this, [...args_1], void 0, function* (fieldName = "id", predicate) {
|
|
194
|
-
return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).maxValue(fieldName, predicate);
|
|
195
|
-
}),
|
|
196
|
-
skip: (count) => __awaiter(this, void 0, void 0, function* () {
|
|
197
|
-
return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).skip(count);
|
|
198
|
-
}),
|
|
199
|
-
take: (count) => __awaiter(this, void 0, void 0, function* () {
|
|
200
|
-
return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).take(count);
|
|
201
|
-
}),
|
|
202
|
-
skipTake: (skip, take) => __awaiter(this, void 0, void 0, function* () {
|
|
203
|
-
return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).skipTake(skip, take);
|
|
204
|
-
}),
|
|
205
|
-
};
|
|
143
|
+
// --- Function to retrieve the current table data
|
|
144
|
+
const getDataFn = () => table.db.table(table.name);
|
|
145
|
+
// --- Helper method to filter the table data
|
|
146
|
+
const filteredData = (predicate) => __awaiter(this, void 0, void 0, function* () {
|
|
147
|
+
const dataSnapshot = yield table.toArray();
|
|
148
|
+
const results = yield Promise.all(dataSnapshot.map(predicate !== null && predicate !== void 0 ? predicate : (() => Promise.resolve(true))));
|
|
149
|
+
return dataSnapshot.filter((_v, index) => results[index]);
|
|
206
150
|
});
|
|
151
|
+
return {
|
|
152
|
+
native: getDataFn,
|
|
153
|
+
insert: (item) => __awaiter(this, void 0, void 0, function* () {
|
|
154
|
+
const id = yield table.add(item);
|
|
155
|
+
return getDataFn().get(id);
|
|
156
|
+
}),
|
|
157
|
+
update: (item) => __awaiter(this, void 0, void 0, function* () {
|
|
158
|
+
yield table.update(item.id, item);
|
|
159
|
+
return getDataFn().get(item.id);
|
|
160
|
+
}),
|
|
161
|
+
save: (item) => __awaiter(this, void 0, void 0, function* () {
|
|
162
|
+
const key = yield table.put(item);
|
|
163
|
+
return table.get(key);
|
|
164
|
+
}),
|
|
165
|
+
deleteById: (id) => __awaiter(this, void 0, void 0, function* () {
|
|
166
|
+
yield table.delete(id);
|
|
167
|
+
}),
|
|
168
|
+
byId: (id) => __awaiter(this, void 0, void 0, function* () {
|
|
169
|
+
if (id === undefined || id === null) {
|
|
170
|
+
return null;
|
|
171
|
+
}
|
|
172
|
+
let safeId = id;
|
|
173
|
+
if (table.schema.primKey.src === "++id") {
|
|
174
|
+
//it's an auto incremented id, must be a number
|
|
175
|
+
safeId = Number(id);
|
|
176
|
+
}
|
|
177
|
+
return yield table.get(safeId);
|
|
178
|
+
}),
|
|
179
|
+
toArray: () => __awaiter(this, void 0, void 0, function* () { return yield table.toArray(); }),
|
|
180
|
+
single: (predicate) => __awaiter(this, void 0, void 0, function* () { return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).single(predicate); }),
|
|
181
|
+
singleOrDefault: (predicate, defValue) => __awaiter(this, void 0, void 0, function* () {
|
|
182
|
+
return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).singleOrDefault(predicate, defValue);
|
|
183
|
+
}),
|
|
184
|
+
where: (predicate) => __awaiter(this, void 0, void 0, function* () { return new ReadonlyCollection_1.ReadOnlyCollection(yield filteredData(predicate)); }),
|
|
185
|
+
whereAsArray: (predicate) => __awaiter(this, void 0, void 0, function* () { return yield filteredData(predicate); }),
|
|
186
|
+
orderBy: (...mappers) => __awaiter(this, void 0, void 0, function* () { return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).orderBy(...mappers); }),
|
|
187
|
+
orderByAsArray: (...mappers) => __awaiter(this, void 0, void 0, function* () { return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).orderByAsArray(...mappers); }),
|
|
188
|
+
groupBy: (groupKey) => __awaiter(this, void 0, void 0, function* () { return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).groupBy(groupKey); }),
|
|
189
|
+
groupByAsArray: (groupKey) => __awaiter(this, void 0, void 0, function* () { return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).groupByAsArray(groupKey); }),
|
|
190
|
+
distinct: (distinctValue) => __awaiter(this, void 0, void 0, function* () { return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).distinct(distinctValue); }),
|
|
191
|
+
distinctAsArray: (distinctValue) => __awaiter(this, void 0, void 0, function* () { return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).distinctAsArray(distinctValue); }),
|
|
192
|
+
maxValue: (...args_1) => __awaiter(this, [...args_1], void 0, function* (fieldName = "id", predicate) {
|
|
193
|
+
return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).maxValue(fieldName, predicate);
|
|
194
|
+
}),
|
|
195
|
+
skip: (count) => __awaiter(this, void 0, void 0, function* () {
|
|
196
|
+
return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).skip(count);
|
|
197
|
+
}),
|
|
198
|
+
take: (count) => __awaiter(this, void 0, void 0, function* () {
|
|
199
|
+
return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).take(count);
|
|
200
|
+
}),
|
|
201
|
+
skipTake: (skip, take) => __awaiter(this, void 0, void 0, function* () {
|
|
202
|
+
return yield new ReadonlyCollection_1.ReadOnlyCollection(yield table.toArray()).skipTake(skip, take);
|
|
203
|
+
}),
|
|
204
|
+
};
|
|
207
205
|
}
|
|
@@ -31,7 +31,7 @@ function createHandlers(api) {
|
|
|
31
31
|
return handlers;
|
|
32
32
|
}
|
|
33
33
|
// Create the worker for the ApiInterceptorProvider
|
|
34
|
-
const createApiInterceptorWorker = (apiInstance, parentWorker) =>
|
|
34
|
+
const createApiInterceptorWorker = (apiInstance, parentWorker) => {
|
|
35
35
|
const handlers = createHandlers(apiInstance);
|
|
36
36
|
let worker = parentWorker;
|
|
37
37
|
if (!parentWorker) {
|
|
@@ -40,5 +40,5 @@ const createApiInterceptorWorker = (apiInstance, parentWorker) => __awaiter(void
|
|
|
40
40
|
// https://github.com/mswjs/msw/issues/2495
|
|
41
41
|
worker.use(...handlers);
|
|
42
42
|
return worker;
|
|
43
|
-
}
|
|
43
|
+
};
|
|
44
44
|
exports.createApiInterceptorWorker = createApiInterceptorWorker;
|
|
@@ -114,7 +114,7 @@ function DataLoader({ loader, state, registerComponentApi, onLoaded, onError, lo
|
|
|
114
114
|
let sqlQuery = "";
|
|
115
115
|
let sqlParams = [];
|
|
116
116
|
// Try to extract SQL query and parameters from body or rawBody
|
|
117
|
-
if (body && typeof body ===
|
|
117
|
+
if (body && typeof body === "object") {
|
|
118
118
|
//console.log("[SQL DataLoader] Using body object:", body);
|
|
119
119
|
sqlQuery = body.sql || "";
|
|
120
120
|
sqlParams = body.params || [];
|
|
@@ -172,7 +172,7 @@ function DataLoader({ loader, state, registerComponentApi, onLoaded, onError, lo
|
|
|
172
172
|
const jsonResult = yield response.json();
|
|
173
173
|
//console.log("[SQL DataLoader] Response data:", jsonResult);
|
|
174
174
|
// Check the structure of the response
|
|
175
|
-
if (jsonResult && typeof jsonResult ===
|
|
175
|
+
if (jsonResult && typeof jsonResult === "object") {
|
|
176
176
|
//console.log("[SQL DataLoader] Response keys:", Object.keys(jsonResult));
|
|
177
177
|
// If response has rows property, check if it's in expected format
|
|
178
178
|
if (jsonResult.rows) {
|
|
@@ -205,15 +205,7 @@ function DataLoader({ loader, state, registerComponentApi, onLoaded, onError, lo
|
|
|
205
205
|
resolveBindingExpressions: true,
|
|
206
206
|
});
|
|
207
207
|
}
|
|
208
|
-
}), [
|
|
209
|
-
api,
|
|
210
|
-
loader.props,
|
|
211
|
-
state,
|
|
212
|
-
url,
|
|
213
|
-
body,
|
|
214
|
-
rawBody,
|
|
215
|
-
appContext
|
|
216
|
-
]);
|
|
208
|
+
}), [api, loader.props, state, url, body, rawBody, appContext]);
|
|
217
209
|
const queryId = (0, react_1.useMemo)(() => {
|
|
218
210
|
return new DataLoaderQueryKeyGenerator_1.DataLoaderQueryKeyGenerator(url, queryParams, appContext === null || appContext === void 0 ? void 0 : appContext.appGlobals.apiUrl, body, rawBody).asKey();
|
|
219
211
|
}, [appContext === null || appContext === void 0 ? void 0 : appContext.appGlobals.apiUrl, queryParams, url, body, rawBody]);
|
|
@@ -238,7 +230,7 @@ function DataLoader({ loader, state, registerComponentApi, onLoaded, onError, lo
|
|
|
238
230
|
}
|
|
239
231
|
}
|
|
240
232
|
//console.log("[DataLoader] inProgress() completed");
|
|
241
|
-
}, [loader.props.inProgressNotificationMessage, loaderInProgressChanged
|
|
233
|
+
}, [loader.props.inProgressNotificationMessage, loaderInProgressChanged]);
|
|
242
234
|
const loaded = (0, react_1.useCallback)((data, pageInfo) => {
|
|
243
235
|
// console.log("[DataLoader] loaded() called with data:", data);
|
|
244
236
|
// console.log("[DataLoader] loaded() pageInfo:", pageInfo);
|
|
@@ -265,7 +257,7 @@ function DataLoader({ loader, state, registerComponentApi, onLoaded, onError, lo
|
|
|
265
257
|
}
|
|
266
258
|
}
|
|
267
259
|
//console.log("[DataLoader] loaded() completed");
|
|
268
|
-
}, [loader.props.completedNotificationMessage, loaderLoaded
|
|
260
|
+
}, [loader.props.completedNotificationMessage, loaderLoaded]);
|
|
269
261
|
const error = (0, react_1.useCallback)((error) => __awaiter(this, void 0, void 0, function* () {
|
|
270
262
|
loaderError(error);
|
|
271
263
|
if (onError) {
|
|
@@ -328,7 +320,7 @@ function IndexAwareDataLoader(props) {
|
|
|
328
320
|
}
|
|
329
321
|
return (0, jsx_runtime_1.jsx)(DataLoader, Object.assign({}, props));
|
|
330
322
|
}
|
|
331
|
-
exports.dataLoaderRenderer = (0, renderers_1.createLoaderRenderer)("DataLoader", ({ loader, state, loaderLoaded, loaderInProgressChanged, loaderIsRefetchingChanged, loaderError, registerComponentApi, lookupAction, lookupSyncCallback, extractValue }) => {
|
|
323
|
+
exports.dataLoaderRenderer = (0, renderers_1.createLoaderRenderer)("DataLoader", ({ loader, state, loaderLoaded, loaderInProgressChanged, loaderIsRefetchingChanged, loaderError, registerComponentApi, lookupAction, lookupSyncCallback, extractValue, }) => {
|
|
332
324
|
var _a, _b, _c;
|
|
333
325
|
// --- Check for required properties
|
|
334
326
|
if (!((_a = loader.props) === null || _a === void 0 ? void 0 : _a.url) || !loader.props.url.trim()) {
|
|
@@ -17,7 +17,7 @@ const extractParam_1 = require("../utils/extractParam");
|
|
|
17
17
|
const AppContext_1 = require("../AppContext");
|
|
18
18
|
const hooks_1 = require("../utils/hooks");
|
|
19
19
|
const useApiInterceptorContext_1 = require("../interception/useApiInterceptorContext");
|
|
20
|
-
function Loader({ state, loader, loaderFn, queryId, pollIntervalInSeconds, registerComponentApi, onLoaded, loaderLoaded, loaderInProgressChanged, loaderIsRefetchingChanged, loaderError, transformResult, structuralSharing = true }) {
|
|
20
|
+
function Loader({ state, loader, loaderFn, queryId, pollIntervalInSeconds, registerComponentApi, onLoaded, loaderLoaded, loaderInProgressChanged, loaderIsRefetchingChanged, loaderError, transformResult, structuralSharing = true, }) {
|
|
21
21
|
const { uid } = loader;
|
|
22
22
|
const appContext = (0, AppContext_1.useAppContext)();
|
|
23
23
|
const { initialized } = (0, useApiInterceptorContext_1.useApiInterceptorContext)();
|
|
@@ -69,7 +69,7 @@ function Loader({ state, loader, loaderFn, queryId, pollIntervalInSeconds, regis
|
|
|
69
69
|
let intervalId;
|
|
70
70
|
if (pollIntervalInSeconds) {
|
|
71
71
|
intervalId = setInterval(() => {
|
|
72
|
-
refetch();
|
|
72
|
+
void refetch();
|
|
73
73
|
}, pollIntervalInSeconds * 1000);
|
|
74
74
|
}
|
|
75
75
|
return () => {
|
|
@@ -116,9 +116,9 @@ function Loader({ state, loader, loaderFn, queryId, pollIntervalInSeconds, regis
|
|
|
116
116
|
}, [loaderLoaded, uid]);
|
|
117
117
|
(0, react_1.useEffect)(() => {
|
|
118
118
|
registerComponentApi === null || registerComponentApi === void 0 ? void 0 : registerComponentApi({
|
|
119
|
-
refetch: (options) =>
|
|
120
|
-
refetch(options);
|
|
121
|
-
}
|
|
119
|
+
refetch: (options) => {
|
|
120
|
+
void refetch(options);
|
|
121
|
+
},
|
|
122
122
|
update: (updater) => __awaiter(this, void 0, void 0, function* () {
|
|
123
123
|
var _a, _b;
|
|
124
124
|
const oldData = (_a = appContext.queryClient) === null || _a === void 0 ? void 0 : _a.getQueryData(queryId);
|
|
@@ -134,7 +134,7 @@ function Loader({ state, loader, loaderFn, queryId, pollIntervalInSeconds, regis
|
|
|
134
134
|
}
|
|
135
135
|
(_b = appContext.queryClient) === null || _b === void 0 ? void 0 : _b.setQueryData(queryId, newData);
|
|
136
136
|
}),
|
|
137
|
-
addItem: (element, indexToInsert) =>
|
|
137
|
+
addItem: (element, indexToInsert) => {
|
|
138
138
|
var _a, _b;
|
|
139
139
|
const oldData = (_a = appContext.queryClient) === null || _a === void 0 ? void 0 : _a.getQueryData(queryId);
|
|
140
140
|
const draft = (0, immer_1.createDraft)(oldData);
|
|
@@ -146,13 +146,13 @@ function Loader({ state, loader, loaderFn, queryId, pollIntervalInSeconds, regis
|
|
|
146
146
|
}
|
|
147
147
|
const newData = (0, immer_1.finishDraft)(draft);
|
|
148
148
|
(_b = appContext.queryClient) === null || _b === void 0 ? void 0 : _b.setQueryData(queryId, newData);
|
|
149
|
-
}
|
|
150
|
-
getItems: () =>
|
|
149
|
+
},
|
|
150
|
+
getItems: () => {
|
|
151
151
|
return data;
|
|
152
|
-
}
|
|
153
|
-
deleteItem: (element) =>
|
|
152
|
+
},
|
|
153
|
+
deleteItem: (element) => {
|
|
154
154
|
throw new Error("not implemented");
|
|
155
|
-
}
|
|
155
|
+
},
|
|
156
156
|
});
|
|
157
157
|
}, [appContext.queryClient, queryId, refetch, registerComponentApi, data]);
|
|
158
158
|
return null;
|
|
@@ -18,12 +18,14 @@ const renderers_1 = require("../renderers");
|
|
|
18
18
|
const AppContext_1 = require("../AppContext");
|
|
19
19
|
const Loader_1 = require("./Loader");
|
|
20
20
|
const metadata_helpers_1 = require("../../components/metadata-helpers");
|
|
21
|
-
function MockLoader({ loader, loaderInProgressChanged, loaderIsRefetchingChanged, loaderError, loaderLoaded, state, structuralSharing }) {
|
|
21
|
+
function MockLoader({ loader, loaderInProgressChanged, loaderIsRefetchingChanged, loaderError, loaderLoaded, state, structuralSharing, }) {
|
|
22
22
|
const appContext = (0, AppContext_1.useAppContext)();
|
|
23
23
|
const waitTime = (0, extractParam_1.extractParam)(state, loader.props.waitTime, appContext);
|
|
24
24
|
const responseObj = (0, extractParam_1.extractParam)(state, loader.props.data, appContext);
|
|
25
25
|
const doLoad = (0, react_1.useCallback)(() => __awaiter(this, void 0, void 0, function* () {
|
|
26
|
-
|
|
26
|
+
if (waitTime) {
|
|
27
|
+
yield (0, misc_1.asyncWait)(waitTime);
|
|
28
|
+
}
|
|
27
29
|
return responseObj;
|
|
28
30
|
}), [responseObj, waitTime]);
|
|
29
31
|
return ((0, jsx_runtime_1.jsx)(Loader_1.Loader, { state: state, loader: loader, loaderInProgressChanged: loaderInProgressChanged, loaderIsRefetchingChanged: loaderIsRefetchingChanged, loaderLoaded: loaderLoaded, loaderError: loaderError, loaderFn: doLoad, structuralSharing: structuralSharing }));
|
|
@@ -112,7 +112,7 @@ function PageableLoader({ state, loader, loaderFn, queryId, registerComponentApi
|
|
|
112
112
|
const queryKey = thizRef.current;
|
|
113
113
|
return () => {
|
|
114
114
|
var _a, _b;
|
|
115
|
-
(_a = appContext.queryClient) === null || _a === void 0 ? void 0 : _a.cancelQueries(queryKey);
|
|
115
|
+
void ((_a = appContext.queryClient) === null || _a === void 0 ? void 0 : _a.cancelQueries(queryKey));
|
|
116
116
|
(_b = appContext.queryClient) === null || _b === void 0 ? void 0 : _b.setQueryData(queryKey, (old) => {
|
|
117
117
|
if (!old) {
|
|
118
118
|
return old;
|
|
@@ -164,6 +164,7 @@ function PageableLoader({ state, loader, loaderFn, queryId, registerComponentApi
|
|
|
164
164
|
}, [
|
|
165
165
|
data,
|
|
166
166
|
error,
|
|
167
|
+
isRefetching,
|
|
167
168
|
loaderError,
|
|
168
169
|
loaderLoaded,
|
|
169
170
|
onLoaded,
|
|
@@ -177,7 +178,7 @@ function PageableLoader({ state, loader, loaderFn, queryId, registerComponentApi
|
|
|
177
178
|
let intervalId;
|
|
178
179
|
if (pollIntervalInSeconds) {
|
|
179
180
|
intervalId = setInterval(() => {
|
|
180
|
-
refetch();
|
|
181
|
+
void refetch();
|
|
181
182
|
}, pollIntervalInSeconds * 1000);
|
|
182
183
|
}
|
|
183
184
|
return () => {
|
|
@@ -196,9 +197,9 @@ function PageableLoader({ state, loader, loaderFn, queryId, registerComponentApi
|
|
|
196
197
|
registerComponentApi({
|
|
197
198
|
fetchPrevPage,
|
|
198
199
|
fetchNextPage: stableFetchNextPage,
|
|
199
|
-
refetch: (options) =>
|
|
200
|
-
refetch(options);
|
|
201
|
-
}
|
|
200
|
+
refetch: (options) => {
|
|
201
|
+
void refetch(options);
|
|
202
|
+
},
|
|
202
203
|
update: (updater) => __awaiter(this, void 0, void 0, function* () {
|
|
203
204
|
var _a, _b;
|
|
204
205
|
const oldData = (_a = appContext.queryClient) === null || _a === void 0 ? void 0 : _a.getQueryData(queryId);
|
|
@@ -222,7 +223,7 @@ function PageableLoader({ state, loader, loaderFn, queryId, registerComponentApi
|
|
|
222
223
|
(_b = appContext.queryClient) === null || _b === void 0 ? void 0 : _b.setQueryData(queryId, newData);
|
|
223
224
|
// console.log("AFTER: ", appContext.queryClient?.getQueryData(queryId!));
|
|
224
225
|
}),
|
|
225
|
-
addItem: (element, indexToInsert) =>
|
|
226
|
+
addItem: (element, indexToInsert) => {
|
|
226
227
|
var _a, _b;
|
|
227
228
|
const oldData = (_a = appContext.queryClient) === null || _a === void 0 ? void 0 : _a.getQueryData(queryId);
|
|
228
229
|
const draft = (0, immer_1.createDraft)(oldData);
|
|
@@ -248,13 +249,13 @@ function PageableLoader({ state, loader, loaderFn, queryId, registerComponentApi
|
|
|
248
249
|
}
|
|
249
250
|
const newData = (0, immer_1.finishDraft)(draft);
|
|
250
251
|
(_b = appContext.queryClient) === null || _b === void 0 ? void 0 : _b.setQueryData(queryId, newData);
|
|
251
|
-
}
|
|
252
|
+
},
|
|
252
253
|
getItems: () => {
|
|
253
254
|
return data;
|
|
254
255
|
},
|
|
255
|
-
deleteItem: (element) =>
|
|
256
|
+
deleteItem: (element) => {
|
|
256
257
|
throw new Error("not implemented");
|
|
257
|
-
}
|
|
258
|
+
},
|
|
258
259
|
});
|
|
259
260
|
}, [
|
|
260
261
|
appContext.queryClient,
|
|
@@ -335,11 +335,6 @@ function AppContent({ rootContainer, routerBaseName, globalProps, standalone, tr
|
|
|
335
335
|
// --- We prepare the helper infrastructure for the `AppState` component, which manages
|
|
336
336
|
// --- app-wide state using buckets (state sections).
|
|
337
337
|
const [appState, setAppState] = (0, react_1.useState)(constants_1.EMPTY_OBJECT);
|
|
338
|
-
const registerAppState = (0, react_1.useCallback)((bucket, initialValue) => {
|
|
339
|
-
setAppState((prev) => {
|
|
340
|
-
return Object.assign(Object.assign({}, prev), { [bucket]: initialValue });
|
|
341
|
-
});
|
|
342
|
-
}, []);
|
|
343
338
|
const update = (0, react_1.useCallback)((bucket, patch) => {
|
|
344
339
|
setAppState((prev) => {
|
|
345
340
|
return Object.assign(Object.assign({}, prev), { [bucket]: Object.assign(Object.assign({}, (prev[bucket] || {})), patch) });
|
|
@@ -347,11 +342,10 @@ function AppContent({ rootContainer, routerBaseName, globalProps, standalone, tr
|
|
|
347
342
|
}, []);
|
|
348
343
|
const appStateContextValue = (0, react_1.useMemo)(() => {
|
|
349
344
|
return {
|
|
350
|
-
registerAppState,
|
|
351
345
|
appState,
|
|
352
346
|
update,
|
|
353
347
|
};
|
|
354
|
-
}, [appState,
|
|
348
|
+
}, [appState, update]);
|
|
355
349
|
return ((0, jsx_runtime_1.jsx)(AppContext_1.AppContext.Provider, { value: appContextValue, children: (0, jsx_runtime_1.jsx)(AppStateContext_1.AppStateContext.Provider, { value: appStateContextValue, children: (0, jsx_runtime_1.jsx)(StandaloneComponent_1.default, { node: rootContainer, children: children }) }) }));
|
|
356
350
|
}
|
|
357
351
|
// --- We pass this funtion to the global app context
|
|
@@ -59,7 +59,7 @@ class ErrorBoundary extends react_1.default.Component {
|
|
|
59
59
|
*/
|
|
60
60
|
render() {
|
|
61
61
|
var _a;
|
|
62
|
-
return this.state.hasError ? ((0, jsx_runtime_1.jsxs)("div", { className: ErrorBoundary_module_scss_1.default.errorOverlay, children: [(0, jsx_runtime_1.jsx)("div", { className: ErrorBoundary_module_scss_1.default.title, children: "There was an error!" }), (0, jsx_runtime_1.jsx)("div", { className: ErrorBoundary_module_scss_1.default.errorItem, children: (_a = this.state.error) === null || _a === void 0 ? void 0 : _a.message })] })) : (this.props.children);
|
|
62
|
+
return this.state.hasError ? ((0, jsx_runtime_1.jsxs)("div", { "data-error-boundary": true, className: ErrorBoundary_module_scss_1.default.errorOverlay, children: [(0, jsx_runtime_1.jsx)("div", { className: ErrorBoundary_module_scss_1.default.title, children: "There was an error!" }), (0, jsx_runtime_1.jsx)("div", { className: ErrorBoundary_module_scss_1.default.errorItem, children: (_a = this.state.error) === null || _a === void 0 ? void 0 : _a.message })] })) : (this.props.children);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
exports.ErrorBoundary = ErrorBoundary;
|
|
@@ -10,7 +10,7 @@ function isBannedFunction(func) {
|
|
|
10
10
|
if (func === undefined) {
|
|
11
11
|
return { banned: false };
|
|
12
12
|
}
|
|
13
|
-
const bannedInfo = bannedFunctions.find(f => f.func === func);
|
|
13
|
+
const bannedInfo = bannedFunctions.find((f) => f.func === func);
|
|
14
14
|
return bannedInfo
|
|
15
15
|
? { banned: true, func: bannedInfo.func, help: bannedInfo.help }
|
|
16
16
|
: { banned: false };
|