@teleporthq/teleport-plugin-next-data-source 0.43.75 → 0.44.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.
- package/__tests__/_helpers/first-page-runtime.ts +184 -0
- package/__tests__/_helpers/pagination-widget-fixture.ts +154 -5
- package/__tests__/booking-item-transform.test.ts +120 -0
- package/__tests__/browser-row-policy.test.ts +210 -4
- package/__tests__/data-source-request-locale.test.ts +4 -3
- package/__tests__/fetchers.test.ts +7 -3
- package/__tests__/fixed-list-sort.test.ts +1 -1
- package/__tests__/infinite-scroll.test.ts +363 -9
- package/__tests__/list-sort-order.test.ts +61 -0
- package/__tests__/null-filter-where.test.ts +132 -0
- package/__tests__/page-data-visitor-read.test.ts +196 -0
- package/__tests__/pg-date-parser.test.ts +73 -0
- package/__tests__/plain-list-sort.test.ts +2 -2
- package/__tests__/plain-list-starting-sort.test.ts +323 -0
- package/__tests__/product-price-sort.ts +11 -6
- package/__tests__/range-control.test.ts +159 -0
- package/__tests__/refetch-loading-state.test.ts +158 -2
- package/__tests__/search-input-marker.test.ts +86 -0
- package/__tests__/search-url-sync.test.ts +34 -8
- package/__tests__/starting-sort-first-page.test.ts +285 -0
- package/__tests__/table-read-route-protected-tables.test.ts +33 -3
- package/dist/cjs/cache/ast.d.ts +2 -0
- package/dist/cjs/cache/ast.d.ts.map +1 -1
- package/dist/cjs/cache/ast.js +5 -2
- package/dist/cjs/cache/ast.js.map +1 -1
- package/dist/cjs/count-effect.d.ts +7 -1
- package/dist/cjs/count-effect.d.ts.map +1 -1
- package/dist/cjs/count-effect.js +15 -5
- package/dist/cjs/count-effect.js.map +1 -1
- package/dist/cjs/data-source-fetchers.d.ts.map +1 -1
- package/dist/cjs/data-source-fetchers.js +10 -2
- package/dist/cjs/data-source-fetchers.js.map +1 -1
- package/dist/cjs/fetchers/pg-client-import.d.ts +12 -0
- package/dist/cjs/fetchers/pg-client-import.d.ts.map +1 -0
- package/dist/cjs/fetchers/pg-client-import.js +15 -0
- package/dist/cjs/fetchers/pg-client-import.js.map +1 -0
- package/dist/cjs/fetchers/postgresql.d.ts.map +1 -1
- package/dist/cjs/fetchers/postgresql.js +3 -1
- package/dist/cjs/fetchers/postgresql.js.map +1 -1
- package/dist/cjs/fetchers/raw-query.d.ts.map +1 -1
- package/dist/cjs/fetchers/raw-query.js +2 -1
- package/dist/cjs/fetchers/raw-query.js.map +1 -1
- package/dist/cjs/fetchers/teleport.d.ts.map +1 -1
- package/dist/cjs/fetchers/teleport.js +4 -2
- package/dist/cjs/fetchers/teleport.js.map +1 -1
- package/dist/cjs/fetchers/utils/browser-row-policy.d.ts.map +1 -1
- package/dist/cjs/fetchers/utils/browser-row-policy.js +5 -1
- package/dist/cjs/fetchers/utils/browser-row-policy.js.map +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +14 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/infinite-scroll.d.ts +89 -4
- package/dist/cjs/infinite-scroll.d.ts.map +1 -1
- package/dist/cjs/infinite-scroll.js +243 -33
- package/dist/cjs/infinite-scroll.js.map +1 -1
- package/dist/cjs/list-sort-order.d.ts +14 -0
- package/dist/cjs/list-sort-order.d.ts.map +1 -0
- package/dist/cjs/list-sort-order.js +36 -0
- package/dist/cjs/list-sort-order.js.map +1 -0
- package/dist/cjs/loading-state.d.ts +23 -2
- package/dist/cjs/loading-state.d.ts.map +1 -1
- package/dist/cjs/loading-state.js +50 -15
- package/dist/cjs/loading-state.js.map +1 -1
- package/dist/cjs/pagination-controls.d.ts +22 -3
- package/dist/cjs/pagination-controls.d.ts.map +1 -1
- package/dist/cjs/pagination-controls.js +29 -3
- package/dist/cjs/pagination-controls.js.map +1 -1
- package/dist/cjs/pagination-plugin.d.ts.map +1 -1
- package/dist/cjs/pagination-plugin.js +336 -164
- package/dist/cjs/pagination-plugin.js.map +1 -1
- package/dist/cjs/range-control.d.ts +45 -0
- package/dist/cjs/range-control.d.ts.map +1 -0
- package/dist/cjs/range-control.js +165 -0
- package/dist/cjs/range-control.js.map +1 -0
- package/dist/cjs/row-order.d.ts +3 -2
- package/dist/cjs/row-order.d.ts.map +1 -1
- package/dist/cjs/row-order.js +5 -4
- package/dist/cjs/row-order.js.map +1 -1
- package/dist/cjs/search-input.d.ts +42 -0
- package/dist/cjs/search-input.d.ts.map +1 -0
- package/dist/cjs/search-input.js +158 -0
- package/dist/cjs/search-input.js.map +1 -0
- package/dist/cjs/sort-utils.d.ts +53 -1
- package/dist/cjs/sort-utils.d.ts.map +1 -1
- package/dist/cjs/sort-utils.js +105 -13
- package/dist/cjs/sort-utils.js.map +1 -1
- package/dist/cjs/transformations/booking-item.d.ts +24 -0
- package/dist/cjs/transformations/booking-item.d.ts.map +1 -0
- package/dist/cjs/transformations/booking-item.js +27 -0
- package/dist/cjs/transformations/booking-item.js.map +1 -0
- package/dist/cjs/transformations/index.d.ts +4 -2
- package/dist/cjs/transformations/index.d.ts.map +1 -1
- package/dist/cjs/transformations/index.js +14 -5
- package/dist/cjs/transformations/index.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/utils.d.ts +3 -2
- package/dist/cjs/utils.d.ts.map +1 -1
- package/dist/cjs/utils.js +48 -18
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/cache/ast.d.ts +2 -0
- package/dist/esm/cache/ast.d.ts.map +1 -1
- package/dist/esm/cache/ast.js +3 -1
- package/dist/esm/cache/ast.js.map +1 -1
- package/dist/esm/count-effect.d.ts +7 -1
- package/dist/esm/count-effect.d.ts.map +1 -1
- package/dist/esm/count-effect.js +15 -5
- package/dist/esm/count-effect.js.map +1 -1
- package/dist/esm/data-source-fetchers.d.ts.map +1 -1
- package/dist/esm/data-source-fetchers.js +10 -2
- package/dist/esm/data-source-fetchers.js.map +1 -1
- package/dist/esm/fetchers/pg-client-import.d.ts +12 -0
- package/dist/esm/fetchers/pg-client-import.d.ts.map +1 -0
- package/dist/esm/fetchers/pg-client-import.js +12 -0
- package/dist/esm/fetchers/pg-client-import.js.map +1 -0
- package/dist/esm/fetchers/postgresql.d.ts.map +1 -1
- package/dist/esm/fetchers/postgresql.js +3 -1
- package/dist/esm/fetchers/postgresql.js.map +1 -1
- package/dist/esm/fetchers/raw-query.d.ts.map +1 -1
- package/dist/esm/fetchers/raw-query.js +2 -1
- package/dist/esm/fetchers/raw-query.js.map +1 -1
- package/dist/esm/fetchers/teleport.d.ts.map +1 -1
- package/dist/esm/fetchers/teleport.js +4 -2
- package/dist/esm/fetchers/teleport.js.map +1 -1
- package/dist/esm/fetchers/utils/browser-row-policy.d.ts.map +1 -1
- package/dist/esm/fetchers/utils/browser-row-policy.js +6 -2
- package/dist/esm/fetchers/utils/browser-row-policy.js.map +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +14 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/infinite-scroll.d.ts +89 -4
- package/dist/esm/infinite-scroll.d.ts.map +1 -1
- package/dist/esm/infinite-scroll.js +237 -32
- package/dist/esm/infinite-scroll.js.map +1 -1
- package/dist/esm/list-sort-order.d.ts +14 -0
- package/dist/esm/list-sort-order.d.ts.map +1 -0
- package/dist/esm/list-sort-order.js +32 -0
- package/dist/esm/list-sort-order.js.map +1 -0
- package/dist/esm/loading-state.d.ts +23 -2
- package/dist/esm/loading-state.d.ts.map +1 -1
- package/dist/esm/loading-state.js +50 -15
- package/dist/esm/loading-state.js.map +1 -1
- package/dist/esm/pagination-controls.d.ts +22 -3
- package/dist/esm/pagination-controls.d.ts.map +1 -1
- package/dist/esm/pagination-controls.js +28 -2
- package/dist/esm/pagination-controls.js.map +1 -1
- package/dist/esm/pagination-plugin.d.ts.map +1 -1
- package/dist/esm/pagination-plugin.js +340 -168
- package/dist/esm/pagination-plugin.js.map +1 -1
- package/dist/esm/range-control.d.ts +45 -0
- package/dist/esm/range-control.d.ts.map +1 -0
- package/dist/esm/range-control.js +137 -0
- package/dist/esm/range-control.js.map +1 -0
- package/dist/esm/row-order.d.ts +3 -2
- package/dist/esm/row-order.d.ts.map +1 -1
- package/dist/esm/row-order.js +5 -4
- package/dist/esm/row-order.js.map +1 -1
- package/dist/esm/search-input.d.ts +42 -0
- package/dist/esm/search-input.d.ts.map +1 -0
- package/dist/esm/search-input.js +129 -0
- package/dist/esm/search-input.js.map +1 -0
- package/dist/esm/sort-utils.d.ts +53 -1
- package/dist/esm/sort-utils.d.ts.map +1 -1
- package/dist/esm/sort-utils.js +100 -12
- package/dist/esm/sort-utils.js.map +1 -1
- package/dist/esm/transformations/booking-item.d.ts +24 -0
- package/dist/esm/transformations/booking-item.d.ts.map +1 -0
- package/dist/esm/transformations/booking-item.js +23 -0
- package/dist/esm/transformations/booking-item.js.map +1 -0
- package/dist/esm/transformations/index.d.ts +4 -2
- package/dist/esm/transformations/index.d.ts.map +1 -1
- package/dist/esm/transformations/index.js +14 -5
- package/dist/esm/transformations/index.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/utils.d.ts +3 -2
- package/dist/esm/utils.d.ts.map +1 -1
- package/dist/esm/utils.js +49 -19
- package/dist/esm/utils.js.map +1 -1
- package/package.json +5 -5
- package/src/cache/ast.ts +4 -1
- package/src/count-effect.ts +31 -8
- package/src/data-source-fetchers.ts +33 -14
- package/src/fetchers/pg-client-import.ts +16 -0
- package/src/fetchers/postgresql.ts +15 -9
- package/src/fetchers/raw-query.ts +2 -1
- package/src/fetchers/teleport.ts +19 -10
- package/src/fetchers/utils/browser-row-policy.ts +79 -5
- package/src/index.ts +8 -2
- package/src/infinite-scroll.ts +420 -81
- package/src/list-sort-order.ts +34 -0
- package/src/loading-state.ts +85 -13
- package/src/pagination-controls.ts +26 -3
- package/src/pagination-plugin.ts +532 -218
- package/src/range-control.ts +207 -0
- package/src/row-order.ts +5 -4
- package/src/search-input.ts +190 -0
- package/src/sort-utils.ts +164 -21
- package/src/transformations/booking-item.ts +71 -0
- package/src/transformations/index.ts +25 -2
- package/src/utils.ts +55 -18
|
@@ -22,8 +22,17 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
26
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
27
|
+
if (ar || !(i in from)) {
|
|
28
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
29
|
+
ar[i] = from[i];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
33
|
+
};
|
|
25
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.buildSentinelElement = exports.buildSentinelObserverEffect = exports.buildAccumulatingResponseHandler = exports.buildInfiniteScrollDeclarations = exports.getInfiniteScrollVars = void 0;
|
|
35
|
+
exports.buildSentinelElement = exports.buildSentinelObserverEffect = exports.buildAccumulatingResponseHandler = exports.buildFirstPageSeedEffect = exports.buildFirstPageDeclaration = exports.buildServerRowsExpression = exports.buildAppendingRequestCheck = exports.buildAccumulatingRequestMark = exports.buildInfiniteScrollDeclarations = exports.getInfiniteScrollVars = void 0;
|
|
27
36
|
var types = __importStar(require("@babel/types"));
|
|
28
37
|
var getInfiniteScrollVars = function (index) { return ({
|
|
29
38
|
accumRefVar: "ds_".concat(index, "_accumRef"),
|
|
@@ -31,6 +40,7 @@ var getInfiniteScrollVars = function (index) { return ({
|
|
|
31
40
|
setHasMoreFlagVar: "setDs_".concat(index, "_hasMoreFlag"),
|
|
32
41
|
hasMoreVar: "ds_".concat(index, "_hasMore"),
|
|
33
42
|
sentinelRefVar: "ds_".concat(index, "_sentinelRef"),
|
|
43
|
+
firstPageVar: "ds_".concat(index, "_firstPage"),
|
|
34
44
|
}); };
|
|
35
45
|
exports.getInfiniteScrollVars = getInfiniteScrollVars;
|
|
36
46
|
/**
|
|
@@ -53,6 +63,7 @@ var buildInfiniteScrollDeclarations = function (vars, maxPagesVar, currentPageEx
|
|
|
53
63
|
types.objectExpression([
|
|
54
64
|
types.objectProperty(types.identifier('sig'), types.stringLiteral('')),
|
|
55
65
|
types.objectProperty(types.identifier('pages'), types.objectExpression([])),
|
|
66
|
+
types.objectProperty(types.identifier('latest'), types.nullLiteral()),
|
|
56
67
|
]),
|
|
57
68
|
])),
|
|
58
69
|
]),
|
|
@@ -112,11 +123,142 @@ var writeAtPath = function (node, path, value) {
|
|
|
112
123
|
types.objectProperty(types.isValidIdentifier(segment) ? types.identifier(segment) : types.stringLiteral(segment), child),
|
|
113
124
|
]);
|
|
114
125
|
};
|
|
126
|
+
/** `JSON.stringify({ ...params, page: 0 })`: everything that identifies the query but the page. */
|
|
127
|
+
var buildQuerySignature = function (paramsVar) {
|
|
128
|
+
if (paramsVar === void 0) { paramsVar = 'params'; }
|
|
129
|
+
return types.callExpression(types.memberExpression(types.identifier('JSON'), types.identifier('stringify')), [
|
|
130
|
+
types.objectExpression([
|
|
131
|
+
types.spreadElement(types.identifier(paramsVar)),
|
|
132
|
+
types.objectProperty(types.identifier('page'), types.numericLiteral(0)),
|
|
133
|
+
]),
|
|
134
|
+
]);
|
|
135
|
+
};
|
|
136
|
+
/** `Number(params.page) || 1` */
|
|
137
|
+
var buildRequestedPage = function () {
|
|
138
|
+
return types.logicalExpression('||', types.callExpression(types.identifier('Number'), [
|
|
139
|
+
types.memberExpression(types.identifier('params'), types.identifier('page')),
|
|
140
|
+
]), types.numericLiteral(1));
|
|
141
|
+
};
|
|
142
|
+
var accumCurrentOf = function (vars) {
|
|
143
|
+
return types.memberExpression(types.identifier(vars.accumRefVar), types.identifier('current'));
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* What `fetchData` runs before its request: the query and the page the list
|
|
147
|
+
* now stands on.
|
|
148
|
+
*
|
|
149
|
+
* ds_0_accumRef.current.latest = { sig: JSON.stringify({ ...params, page: 0 }), page: Number(params.page) || 1 }
|
|
150
|
+
*/
|
|
151
|
+
var buildAccumulatingRequestMark = function (vars) {
|
|
152
|
+
return types.expressionStatement(types.assignmentExpression('=', types.memberExpression(accumCurrentOf(vars), types.identifier('latest')), types.objectExpression([
|
|
153
|
+
types.objectProperty(types.identifier('sig'), buildQuerySignature()),
|
|
154
|
+
types.objectProperty(types.identifier('page'), buildRequestedPage()),
|
|
155
|
+
])));
|
|
156
|
+
};
|
|
157
|
+
exports.buildAccumulatingRequestMark = buildAccumulatingRequestMark;
|
|
158
|
+
/**
|
|
159
|
+
* Whether the request `fetchData` is about to make only adds a page to the rows
|
|
160
|
+
* on show: a page past the first, of the query the accumulator holds. Read
|
|
161
|
+
* after `buildAccumulatingRequestMark` has recorded that request.
|
|
162
|
+
*
|
|
163
|
+
* ds_0_accumRef.current.latest.page > 1 && ds_0_accumRef.current.latest.sig === ds_0_accumRef.current.sig
|
|
164
|
+
*
|
|
165
|
+
* A filter, sort or search change is no append even past page 1 — the page it
|
|
166
|
+
* fires before the reset belongs to another query — and neither is a list's
|
|
167
|
+
* first page: both load the list afresh, behind its loading slot.
|
|
168
|
+
*/
|
|
169
|
+
var buildAppendingRequestCheck = function (vars) {
|
|
170
|
+
var latestOf = function (key) {
|
|
171
|
+
return types.memberExpression(types.memberExpression(accumCurrentOf(vars), types.identifier('latest')), types.identifier(key));
|
|
172
|
+
};
|
|
173
|
+
return types.logicalExpression('&&', types.binaryExpression('>', latestOf('page'), types.numericLiteral(1)), types.binaryExpression('===', latestOf('sig'), types.memberExpression(accumCurrentOf(vars), types.identifier('sig'))));
|
|
174
|
+
};
|
|
175
|
+
exports.buildAppendingRequestCheck = buildAppendingRequestCheck;
|
|
176
|
+
/**
|
|
177
|
+
* The rows inside a server payload: the payload itself, or what sits at
|
|
178
|
+
* `itemsPath` in one that wraps them. `<rows>?.length > 0` is how the caller
|
|
179
|
+
* asks whether the server found any.
|
|
180
|
+
*/
|
|
181
|
+
var buildServerRowsExpression = function (payload, itemsPath) { return ((itemsPath === null || itemsPath === void 0 ? void 0 : itemsPath.length) ? readAtPath(payload, itemsPath) : payload); };
|
|
182
|
+
exports.buildServerRowsExpression = buildServerRowsExpression;
|
|
183
|
+
/**
|
|
184
|
+
* The first page the list starts from, when its page already fetched it:
|
|
185
|
+
*
|
|
186
|
+
* const ds_0_firstPage = useMemo(() => <starts> ? props?.items_ds_0 : undefined, [<instance deps>])
|
|
187
|
+
*
|
|
188
|
+
* Handed to `DataProvider` as `initialData`, so the server HTML holds the rows
|
|
189
|
+
* rather than the loading state, and the provider skips its own fetch of page 1.
|
|
190
|
+
*
|
|
191
|
+
* ⛔ Frozen for the provider's lifetime. `DataProvider` copies `initialData`
|
|
192
|
+
* into what it shows every time the value changes, so a value that moved with
|
|
193
|
+
* the page — the paged lists' `page === 1 ? … : undefined`, fine for them since
|
|
194
|
+
* they remount per page — would wipe the appended rows on the first scroll.
|
|
195
|
+
* `instanceDeps` are what remounts the provider (its `key`): nothing for a list
|
|
196
|
+
* without search, the applied query for one with search.
|
|
197
|
+
*/
|
|
198
|
+
var buildFirstPageDeclaration = function (vars, startsFromServerRows, serverPayload, instanceDeps) {
|
|
199
|
+
return types.variableDeclaration('const', [
|
|
200
|
+
types.variableDeclarator(types.identifier(vars.firstPageVar), types.callExpression(types.identifier('useMemo'), [
|
|
201
|
+
types.arrowFunctionExpression([], types.conditionalExpression(startsFromServerRows, serverPayload, types.identifier('undefined'))),
|
|
202
|
+
types.arrayExpression(instanceDeps),
|
|
203
|
+
])),
|
|
204
|
+
]);
|
|
205
|
+
};
|
|
206
|
+
exports.buildFirstPageDeclaration = buildFirstPageDeclaration;
|
|
207
|
+
/**
|
|
208
|
+
* Makes the server rows page 1 of the accumulator whenever the provider is
|
|
209
|
+
* handed them instead of fetching:
|
|
210
|
+
*
|
|
211
|
+
* useEffect(() => {
|
|
212
|
+
* if (ds_0_firstPage === undefined) return
|
|
213
|
+
* const rows = ds_0_firstPage || []
|
|
214
|
+
* const sig = JSON.stringify({ ...ds_0_params, page: 0 })
|
|
215
|
+
* ds_0_accumRef.current = { sig, pages: { 1: rows }, latest: { sig, page: 1 } }
|
|
216
|
+
* setDs_0_hasMoreFlag(rows.length >= 20)
|
|
217
|
+
* }, [ds_0_firstPage])
|
|
218
|
+
*
|
|
219
|
+
* Without it the accumulator never sees page 1 (the provider skipped that
|
|
220
|
+
* fetch), and the answer to page 2 would REPLACE the rows on screen with page 2
|
|
221
|
+
* alone. The signature is the one `fetchData` computes for the same params, so
|
|
222
|
+
* the next page appends to these rows while a filter, sort or search change
|
|
223
|
+
* still starts a fresh list; `latest` keeps an answer still in flight from an
|
|
224
|
+
* earlier query from changing anything. A short first page is the last one, as
|
|
225
|
+
* it would be had it been fetched.
|
|
226
|
+
*/
|
|
227
|
+
var buildFirstPageSeedEffect = function (vars, paramsVar, perPage, itemsPath) {
|
|
228
|
+
return types.expressionStatement(types.callExpression(types.identifier('useEffect'), [
|
|
229
|
+
types.arrowFunctionExpression([], types.blockStatement([
|
|
230
|
+
types.ifStatement(types.binaryExpression('===', types.identifier(vars.firstPageVar), types.identifier('undefined')), types.returnStatement()),
|
|
231
|
+
types.variableDeclaration('const', [
|
|
232
|
+
types.variableDeclarator(types.identifier('rows'), types.logicalExpression('||', (0, exports.buildServerRowsExpression)(types.identifier(vars.firstPageVar), itemsPath), types.arrayExpression([]))),
|
|
233
|
+
]),
|
|
234
|
+
types.variableDeclaration('const', [
|
|
235
|
+
types.variableDeclarator(types.identifier('sig'), buildQuerySignature(paramsVar)),
|
|
236
|
+
]),
|
|
237
|
+
types.expressionStatement(types.assignmentExpression('=', accumCurrentOf(vars), types.objectExpression([
|
|
238
|
+
types.objectProperty(types.identifier('sig'), types.identifier('sig'), false, true),
|
|
239
|
+
types.objectProperty(types.identifier('pages'), types.objectExpression([
|
|
240
|
+
types.objectProperty(types.numericLiteral(1), types.identifier('rows')),
|
|
241
|
+
])),
|
|
242
|
+
types.objectProperty(types.identifier('latest'), types.objectExpression([
|
|
243
|
+
types.objectProperty(types.identifier('sig'), types.identifier('sig'), false, true),
|
|
244
|
+
types.objectProperty(types.identifier('page'), types.numericLiteral(1)),
|
|
245
|
+
])),
|
|
246
|
+
]))),
|
|
247
|
+
types.expressionStatement(types.callExpression(types.identifier(vars.setHasMoreFlagVar), [
|
|
248
|
+
types.binaryExpression('>=', types.memberExpression(types.identifier('rows'), types.identifier('length')), types.numericLiteral(perPage)),
|
|
249
|
+
])),
|
|
250
|
+
])),
|
|
251
|
+
types.arrayExpression([types.identifier(vars.firstPageVar)]),
|
|
252
|
+
]));
|
|
253
|
+
};
|
|
254
|
+
exports.buildFirstPageSeedEffect = buildFirstPageSeedEffect;
|
|
115
255
|
/**
|
|
116
256
|
* The `.then(...)` tail that accumulates a page and reports whether more exist.
|
|
117
257
|
*
|
|
118
258
|
* Returned as the resolved value of `fetchData`, so `DataProvider` stores the
|
|
119
|
-
* whole accumulated list as its data
|
|
259
|
+
* whole accumulated list as its data: the pages of the query on show, first
|
|
260
|
+
* to the page it stands on. An answer to anything but the latest request
|
|
261
|
+
* (`buildAccumulatingRequestMark`) is not kept, and gets the list as it is.
|
|
120
262
|
*
|
|
121
263
|
* `itemsPath` is where the rows sit inside a payload that wraps them
|
|
122
264
|
* (`{ items: [...], total }`): the rows are read there and the accumulated list
|
|
@@ -125,17 +267,22 @@ var writeAtPath = function (node, path, value) {
|
|
|
125
267
|
* first page and rendered nothing.
|
|
126
268
|
*/
|
|
127
269
|
var buildAccumulatingResponseHandler = function (vars, perPage, itemsPath) {
|
|
128
|
-
var accumCurrent = function () {
|
|
129
|
-
return types.memberExpression(types.identifier(vars.accumRefVar), types.identifier('current'));
|
|
130
|
-
};
|
|
270
|
+
var accumCurrent = function () { return accumCurrentOf(vars); };
|
|
131
271
|
var accumPages = function () {
|
|
132
272
|
return types.memberExpression(accumCurrent(), types.identifier('pages'));
|
|
133
273
|
};
|
|
274
|
+
var latestOf = function (key) {
|
|
275
|
+
return types.memberExpression(types.identifier('latest'), types.identifier(key));
|
|
276
|
+
};
|
|
134
277
|
var payload = function () {
|
|
135
278
|
return types.optionalMemberExpression(types.identifier('response'), types.identifier('data'), false, true);
|
|
136
279
|
};
|
|
137
280
|
var rowsPath = (itemsPath === null || itemsPath === void 0 ? void 0 : itemsPath.length) ? itemsPath : undefined;
|
|
138
|
-
|
|
281
|
+
// Every page held up to `last`, flattened in page order — a numeric sort, so
|
|
282
|
+
// page 10 does not land between 1 and 2.
|
|
283
|
+
var accumulatedRows = types.callExpression(types.memberExpression(types.callExpression(types.memberExpression(types.callExpression(types.memberExpression(types.callExpression(types.memberExpression(types.callExpression(types.memberExpression(types.identifier('Object'), types.identifier('keys')), [accumPages()]), types.identifier('map')), [types.identifier('Number')]), types.identifier('filter')), [
|
|
284
|
+
types.arrowFunctionExpression([types.identifier('p')], types.binaryExpression('<=', types.identifier('p'), types.identifier('last'))),
|
|
285
|
+
]), types.identifier('sort')), [
|
|
139
286
|
types.arrowFunctionExpression([types.identifier('a'), types.identifier('b')], types.binaryExpression('-', types.identifier('a'), types.identifier('b'))),
|
|
140
287
|
]), types.identifier('reduce')), [
|
|
141
288
|
types.arrowFunctionExpression([types.identifier('acc'), types.identifier('p')], types.callExpression(types.memberExpression(types.identifier('acc'), types.identifier('concat')), [types.memberExpression(accumPages(), types.identifier('p'), true)])),
|
|
@@ -146,35 +293,42 @@ var buildAccumulatingResponseHandler = function (vars, perPage, itemsPath) {
|
|
|
146
293
|
types.variableDeclarator(types.identifier('rows'), types.logicalExpression('||', rowsPath ? readAtPath(payload(), rowsPath) : payload(), types.arrayExpression([]))),
|
|
147
294
|
]),
|
|
148
295
|
types.variableDeclaration('const', [
|
|
149
|
-
types.variableDeclarator(types.identifier('page'),
|
|
150
|
-
types.memberExpression(types.identifier('params'), types.identifier('page')),
|
|
151
|
-
]), types.numericLiteral(1))),
|
|
296
|
+
types.variableDeclarator(types.identifier('page'), buildRequestedPage()),
|
|
152
297
|
]),
|
|
153
298
|
// Everything that identifies the QUERY, with the page zeroed out: two
|
|
154
299
|
// fetches that differ only by page belong to the same accumulated list.
|
|
155
300
|
types.variableDeclaration('const', [
|
|
156
|
-
types.variableDeclarator(types.identifier('sig'),
|
|
157
|
-
types.objectExpression([
|
|
158
|
-
types.spreadElement(types.identifier('params')),
|
|
159
|
-
types.objectProperty(types.identifier('page'), types.numericLiteral(0)),
|
|
160
|
-
]),
|
|
161
|
-
])),
|
|
301
|
+
types.variableDeclarator(types.identifier('sig'), buildQuerySignature()),
|
|
162
302
|
]),
|
|
163
|
-
|
|
164
|
-
|
|
303
|
+
// The request the list stands on now, recorded when it was made.
|
|
304
|
+
types.variableDeclaration('const', [
|
|
305
|
+
types.variableDeclarator(types.identifier('latest'), types.logicalExpression('||', types.memberExpression(accumCurrent(), types.identifier('latest')), types.objectExpression([
|
|
165
306
|
types.objectProperty(types.identifier('sig'), types.identifier('sig'), false, true),
|
|
166
|
-
types.objectProperty(types.identifier('
|
|
307
|
+
types.objectProperty(types.identifier('page'), types.identifier('page'), false, true),
|
|
167
308
|
]))),
|
|
309
|
+
]),
|
|
310
|
+
// Only its answer is kept: an earlier query's, or a page past the one a
|
|
311
|
+
// filter / sort / search change restarted the list at, changes nothing.
|
|
312
|
+
types.ifStatement(types.logicalExpression('&&', types.binaryExpression('===', types.identifier('sig'), latestOf('sig')), types.binaryExpression('<=', types.identifier('page'), latestOf('page'))), types.blockStatement([
|
|
313
|
+
types.ifStatement(types.binaryExpression('!==', types.memberExpression(accumCurrent(), types.identifier('sig')), types.identifier('sig')), types.blockStatement([
|
|
314
|
+
types.expressionStatement(types.assignmentExpression('=', types.memberExpression(accumCurrent(), types.identifier('sig')), types.identifier('sig'))),
|
|
315
|
+
types.expressionStatement(types.assignmentExpression('=', accumPages(), types.objectExpression([]))),
|
|
316
|
+
])),
|
|
317
|
+
types.expressionStatement(types.assignmentExpression('=', types.memberExpression(accumPages(), types.identifier('page'), true), types.identifier('rows'))),
|
|
318
|
+
// A page that came back short is the last one. This is the only
|
|
319
|
+
// end-of-data signal a data source that cannot count ever gives.
|
|
320
|
+
types.ifStatement(types.binaryExpression('===', types.identifier('page'), latestOf('page')), types.blockStatement([
|
|
321
|
+
types.expressionStatement(types.callExpression(types.identifier(vars.setHasMoreFlagVar), [
|
|
322
|
+
types.binaryExpression('>=', types.memberExpression(types.identifier('rows'), types.identifier('length')), types.numericLiteral(perPage)),
|
|
323
|
+
])),
|
|
324
|
+
])),
|
|
168
325
|
])),
|
|
169
|
-
|
|
170
|
-
//
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
// Every page held so far, flattened in page order — a numeric sort, so
|
|
176
|
-
// page 10 does not land between 1 and 2. This is what DataProvider stores
|
|
177
|
-
// as its data, and so what the list renders.
|
|
326
|
+
// The pages of the query on show, up to the page the list stands on; all
|
|
327
|
+
// of them while the latest query has not answered yet.
|
|
328
|
+
types.variableDeclaration('const', [
|
|
329
|
+
types.variableDeclarator(types.identifier('last'), types.conditionalExpression(types.binaryExpression('===', types.memberExpression(accumCurrent(), types.identifier('sig')), latestOf('sig')), latestOf('page'), types.identifier('Infinity'))),
|
|
330
|
+
]),
|
|
331
|
+
// This is what DataProvider stores as its data, and so what the list renders.
|
|
178
332
|
types.returnStatement(rowsPath ? writeAtPath(payload(), rowsPath, accumulatedRows) : accumulatedRows),
|
|
179
333
|
]));
|
|
180
334
|
};
|
|
@@ -219,21 +373,77 @@ var buildSentinelObserverEffect = function (vars, maxPagesVar, buildAdvancePageS
|
|
|
219
373
|
]));
|
|
220
374
|
};
|
|
221
375
|
exports.buildSentinelObserverEffect = buildSentinelObserverEffect;
|
|
376
|
+
var styleAttribute = function (entries) {
|
|
377
|
+
return types.jsxAttribute(types.jsxIdentifier('style'), types.jsxExpressionContainer(types.objectExpression(Object.entries(entries).map(function (_a) {
|
|
378
|
+
var key = _a[0], value = _a[1];
|
|
379
|
+
return types.objectProperty(types.identifier(key), typeof value === 'number' ? types.numericLiteral(value) : types.stringLiteral(value));
|
|
380
|
+
}))));
|
|
381
|
+
};
|
|
382
|
+
var sentinelTag = function (tag, attributes, children) {
|
|
383
|
+
if (children === void 0) { children = []; }
|
|
384
|
+
return types.jsxElement(types.jsxOpeningElement(types.jsxIdentifier(tag), attributes, children.length === 0), children.length === 0 ? null : types.jsxClosingElement(types.jsxIdentifier(tag)), children, children.length === 0);
|
|
385
|
+
};
|
|
386
|
+
/** Parents whose content is phrasing only: a `<div>` in one closes it in the parser. */
|
|
387
|
+
var PHRASING_PARENTS = new Set([
|
|
388
|
+
'p',
|
|
389
|
+
'span',
|
|
390
|
+
'a',
|
|
391
|
+
'button',
|
|
392
|
+
'label',
|
|
393
|
+
'legend',
|
|
394
|
+
'caption',
|
|
395
|
+
'h1',
|
|
396
|
+
'h2',
|
|
397
|
+
'h3',
|
|
398
|
+
'h4',
|
|
399
|
+
'h5',
|
|
400
|
+
'h6',
|
|
401
|
+
'strong',
|
|
402
|
+
'em',
|
|
403
|
+
'b',
|
|
404
|
+
'i',
|
|
405
|
+
'small',
|
|
406
|
+
]);
|
|
222
407
|
/**
|
|
223
408
|
* `<div ref={ds_N_sentinelRef} aria-hidden="true" style={{ height: '1px' }} />`
|
|
224
409
|
*
|
|
225
410
|
* An invisible one-pixel row after the list. It is generated rather than
|
|
226
411
|
* authored because it is not a control — there is nothing to style or click,
|
|
227
412
|
* only a position in the document for the observer to watch.
|
|
413
|
+
*
|
|
414
|
+
* It takes the element its parent may hold: a table section holds rows, a
|
|
415
|
+
* list holds items, a paragraph holds phrasing. A `<div>` among a table's
|
|
416
|
+
* rows is moved out of the table by the parser, so the server's markup and
|
|
417
|
+
* the client's tree differ and React's hydration fails on every such list.
|
|
228
418
|
*/
|
|
229
|
-
var buildSentinelElement = function (vars) {
|
|
230
|
-
|
|
419
|
+
var buildSentinelElement = function (vars, parentTag) {
|
|
420
|
+
if (parentTag === void 0) { parentTag = null; }
|
|
421
|
+
var observed = [
|
|
231
422
|
types.jsxAttribute(types.jsxIdentifier('ref'), types.jsxExpressionContainer(types.identifier(vars.sentinelRefVar))),
|
|
232
423
|
types.jsxAttribute(types.jsxIdentifier('aria-hidden'), types.stringLiteral('true')),
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
424
|
+
];
|
|
425
|
+
var emptyCell = function () { return sentinelTag('td', [styleAttribute({ padding: 0, border: 0 })]); };
|
|
426
|
+
switch (parentTag) {
|
|
427
|
+
case 'tbody':
|
|
428
|
+
case 'thead':
|
|
429
|
+
case 'tfoot':
|
|
430
|
+
return sentinelTag('tr', __spreadArray(__spreadArray([], observed, true), [styleAttribute({ height: '1px' })], false), [emptyCell()]);
|
|
431
|
+
case 'table':
|
|
432
|
+
return sentinelTag('tbody', __spreadArray(__spreadArray([], observed, true), [styleAttribute({ height: '1px' })], false), [sentinelTag('tr', [], [emptyCell()])]);
|
|
433
|
+
case 'tr':
|
|
434
|
+
return sentinelTag('td', __spreadArray(__spreadArray([], observed, true), [styleAttribute({ height: '1px', padding: 0 })], false));
|
|
435
|
+
case 'ul':
|
|
436
|
+
case 'ol':
|
|
437
|
+
case 'menu':
|
|
438
|
+
return sentinelTag('li', __spreadArray(__spreadArray([], observed, true), [styleAttribute({ height: '1px', listStyle: 'none' })], false));
|
|
439
|
+
default:
|
|
440
|
+
if (parentTag && PHRASING_PARENTS.has(parentTag)) {
|
|
441
|
+
return sentinelTag('span', __spreadArray(__spreadArray([], observed, true), [
|
|
442
|
+
styleAttribute({ display: 'block', height: '1px' }),
|
|
443
|
+
], false));
|
|
444
|
+
}
|
|
445
|
+
return sentinelTag('div', __spreadArray(__spreadArray([], observed, true), [styleAttribute({ height: '1px' })], false));
|
|
446
|
+
}
|
|
237
447
|
};
|
|
238
448
|
exports.buildSentinelElement = buildSentinelElement;
|
|
239
449
|
//# sourceMappingURL=infinite-scroll.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infinite-scroll.js","sourceRoot":"","sources":["../../src/infinite-scroll.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"infinite-scroll.js","sourceRoot":"","sources":["../../src/infinite-scroll.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether a table is one of those listing tables, so its rows are told apart
|
|
3
|
+
* by `id` even when the project saved no columns for it (see `row-order.ts`).
|
|
4
|
+
*/
|
|
5
|
+
export declare const isListingTableWithId: (tableName: string) => boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Appended to every sorted column: a row without a value comes after the
|
|
8
|
+
* rows with one, whichever the direction. PostgreSQL puts NULLs FIRST in a
|
|
9
|
+
* descending order, so "longest read first" opened on the posts without a
|
|
10
|
+
* reading time. Only on the ORDER BY a fetcher tries first — its plain-column
|
|
11
|
+
* fallback leaves it out, for a database that rejects the clause.
|
|
12
|
+
*/
|
|
13
|
+
export declare const SORT_NULLS_LAST_SQL = " NULLS LAST";
|
|
14
|
+
//# sourceMappingURL=list-sort-order.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-sort-order.d.ts","sourceRoot":"","sources":["../../src/list-sort-order.ts"],"names":[],"mappings":"AAmBA;;;GAGG;AACH,eAAO,MAAM,oBAAoB,cAAe,MAAM,KAAG,OAClB,CAAA;AAEvC;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SORT_NULLS_LAST_SQL = exports.isListingTableWithId = void 0;
|
|
4
|
+
var product_price_sort_1 = require("./product-price-sort");
|
|
5
|
+
/**
|
|
6
|
+
* How a generated list route orders the rows a visitor's sort leaves tied or
|
|
7
|
+
* empty, in the SQL fetchers that serve the platform's listing pages
|
|
8
|
+
* (`teleport.ts`, `postgresql.ts`).
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* The platform tables whose listing pages offer visitors a sort — the
|
|
12
|
+
* products page, the blog listing, the booking page — each with an `id` from
|
|
13
|
+
* its first migration.
|
|
14
|
+
*/
|
|
15
|
+
var LISTING_TABLES_WITH_ID = new Set([
|
|
16
|
+
product_price_sort_1.PRODUCTS_TABLE_NAME,
|
|
17
|
+
'teleport_blog_posts',
|
|
18
|
+
'teleport_booking_items',
|
|
19
|
+
]);
|
|
20
|
+
/**
|
|
21
|
+
* Whether a table is one of those listing tables, so its rows are told apart
|
|
22
|
+
* by `id` even when the project saved no columns for it (see `row-order.ts`).
|
|
23
|
+
*/
|
|
24
|
+
var isListingTableWithId = function (tableName) {
|
|
25
|
+
return LISTING_TABLES_WITH_ID.has(tableName);
|
|
26
|
+
};
|
|
27
|
+
exports.isListingTableWithId = isListingTableWithId;
|
|
28
|
+
/**
|
|
29
|
+
* Appended to every sorted column: a row without a value comes after the
|
|
30
|
+
* rows with one, whichever the direction. PostgreSQL puts NULLs FIRST in a
|
|
31
|
+
* descending order, so "longest read first" opened on the posts without a
|
|
32
|
+
* reading time. Only on the ORDER BY a fetcher tries first — its plain-column
|
|
33
|
+
* fallback leaves it out, for a database that rejects the clause.
|
|
34
|
+
*/
|
|
35
|
+
exports.SORT_NULLS_LAST_SQL = ' NULLS LAST';
|
|
36
|
+
//# sourceMappingURL=list-sort-order.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-sort-order.js","sourceRoot":"","sources":["../../src/list-sort-order.ts"],"names":[],"mappings":";;;AAAA,2DAA0D;AAE1D;;;;GAIG;AAEH;;;;GAIG;AACH,IAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC;IAC1D,wCAAmB;IACnB,qBAAqB;IACrB,wBAAwB;CACzB,CAAC,CAAA;AAEF;;;GAGG;AACI,IAAM,oBAAoB,GAAG,UAAC,SAAiB;IACpD,OAAA,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC;AAArC,CAAqC,CAAA;AAD1B,QAAA,oBAAoB,wBACM;AAEvC;;;;;;GAMG;AACU,QAAA,mBAAmB,GAAG,aAAa,CAAA"}
|
|
@@ -50,6 +50,14 @@ import * as types from '@babel/types';
|
|
|
50
50
|
* Nothing changes for a provider that is idle or mounting: `isFetching` starts
|
|
51
51
|
* at `false`, so the server render and the first client render are identical
|
|
52
52
|
* (no hydration mismatch) and the `initialData` fast path is untouched.
|
|
53
|
+
*
|
|
54
|
+
* An appending list (infinite scroll, Load more) is the exception to "show the
|
|
55
|
+
* loading slot while a request is in flight": its next page belongs BELOW the
|
|
56
|
+
* rows on show. Swapping those rows for the loading slot until the page arrived
|
|
57
|
+
* collapsed the list on every append — the page jumped up under the visitor's
|
|
58
|
+
* scroll. Such a list also tracks whether the request in flight only appends
|
|
59
|
+
* (`isAppendingVar`) and keeps its rows through it; the loading slot replaces
|
|
60
|
+
* them only when the list loads afresh (a filter, sort or search change).
|
|
53
61
|
*/
|
|
54
62
|
export interface LoadingStateVars {
|
|
55
63
|
/** Boolean state: `true` while at least one fetch for this data source is in flight. */
|
|
@@ -77,6 +85,13 @@ export interface LoadingStateVars {
|
|
|
77
85
|
fetchSeqRefVar: string;
|
|
78
86
|
/** Ref holding the rows of the newest request that settled — what an overtaken one resolves with. */
|
|
79
87
|
latestDataRefVar: string;
|
|
88
|
+
/**
|
|
89
|
+
* Boolean state of an appending list: `true` while the request it made last
|
|
90
|
+
* adds a page to the rows on show, so they stay there through it.
|
|
91
|
+
*/
|
|
92
|
+
isAppendingVar: string;
|
|
93
|
+
/** Setter for `isAppendingVar`. */
|
|
94
|
+
setIsAppendingVar: string;
|
|
80
95
|
}
|
|
81
96
|
export declare function getLoadingStateVars(index: number): LoadingStateVars;
|
|
82
97
|
/**
|
|
@@ -84,13 +99,14 @@ export declare function getLoadingStateVars(index: number): LoadingStateVars;
|
|
|
84
99
|
* `const ds_N_fetchSeq = useRef(0)`
|
|
85
100
|
* `const ds_N_latestData = useRef(undefined)`
|
|
86
101
|
* `const [ds_N_isFetching, setDs_N_isFetching] = useState(false)`
|
|
102
|
+
* `const [ds_N_isAppending, setDs_N_isAppending] = useState(false)` (an appending list)
|
|
87
103
|
*
|
|
88
104
|
* All are stable across renders (ref objects and a `useState` setter), which
|
|
89
105
|
* is what lets the wrapped `fetchData` keep its empty `useCallback` dependency
|
|
90
106
|
* array — a changing `fetchData` identity would retrigger the provider's fetch
|
|
91
107
|
* effect on every render.
|
|
92
108
|
*/
|
|
93
|
-
export declare function buildLoadingStateDeclarations(vars: LoadingStateVars): types.Statement[];
|
|
109
|
+
export declare function buildLoadingStateDeclarations(vars: LoadingStateVars, appends?: boolean): types.Statement[];
|
|
94
110
|
/**
|
|
95
111
|
* Wires the refetch loading state into a single `DataProvider` JSX element.
|
|
96
112
|
*
|
|
@@ -102,6 +118,11 @@ export declare function buildLoadingStateDeclarations(vars: LoadingStateVars): t
|
|
|
102
118
|
* - `fetchData` missing, not memoized, or not an expression-bodied promise
|
|
103
119
|
* chain — see `findMemoizedFetchDataArrow`.
|
|
104
120
|
* - already wired — keeps a second pass over the same AST idempotent.
|
|
121
|
+
*
|
|
122
|
+
* `appendingRequest` makes it an appending list's: the expression telling,
|
|
123
|
+
* inside `fetchData`, whether the request about to be made only adds a page to
|
|
124
|
+
* the rows on show (see `isAppendingVar`). The caller declares the state with
|
|
125
|
+
* `buildLoadingStateDeclarations(vars, true)`.
|
|
105
126
|
*/
|
|
106
|
-
export declare function applyLoadingStateToDataProvider(dataProvider: any, vars: LoadingStateVars): boolean;
|
|
127
|
+
export declare function applyLoadingStateToDataProvider(dataProvider: any, vars: LoadingStateVars, appendingRequest?: types.Expression): boolean;
|
|
107
128
|
//# sourceMappingURL=loading-state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loading-state.d.ts","sourceRoot":"","sources":["../../src/loading-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC
|
|
1
|
+
{"version":3,"file":"loading-state.d.ts","sourceRoot":"","sources":["../../src/loading-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,wFAAwF;IACxF,aAAa,EAAE,MAAM,CAAA;IACrB,kCAAkC;IAClC,gBAAgB,EAAE,MAAM,CAAA;IACxB;;;;;;OAMG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB;;;;;;;;;OASG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB,qGAAqG;IACrG,gBAAgB,EAAE,MAAM,CAAA;IACxB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB,mCAAmC;IACnC,iBAAiB,EAAE,MAAM,CAAA;CAC1B;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAUnE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,gBAAgB,EACtB,OAAO,GAAE,OAAe,GACvB,KAAK,CAAC,SAAS,EAAE,CA4CnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,+BAA+B,CAE7C,YAAY,EAAE,GAAG,EACjB,IAAI,EAAE,gBAAgB,EACtB,gBAAgB,CAAC,EAAE,KAAK,CAAC,UAAU,GAClC,OAAO,CAiCT"}
|