@airtable/blocks 1.3.0 → 1.5.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/CHANGELOG.md +30 -1
- package/dist/cjs/index.js +30 -11
- package/dist/cjs/injected/airtable_interface.js +2 -1
- package/dist/cjs/models/cursor.js +4 -6
- package/dist/cjs/models/field.js +24 -0
- package/dist/cjs/models/grouped_record_query_result.js +475 -0
- package/dist/cjs/models/models.js +30 -0
- package/dist/cjs/models/mutations.js +41 -9
- package/dist/cjs/models/record_query_result.js +37 -12
- package/dist/cjs/models/session.js +65 -23
- package/dist/cjs/models/table_or_view_query_result.js +306 -97
- package/dist/cjs/models/view.js +71 -1
- package/dist/cjs/models/view_data_store.js +62 -20
- package/dist/cjs/models/view_metadata_query_result.js +41 -8
- package/dist/cjs/sdk.js +2 -2
- package/dist/cjs/testing/mock_airtable_interface.js +1 -110
- package/dist/cjs/types/airtable_interface.js +19 -1
- package/dist/cjs/types/mutations.js +2 -1
- package/dist/cjs/types/view.js +1 -0
- package/dist/cjs/ui/confirmation_dialog.js +12 -4
- package/dist/cjs/ui/expand_record.js +5 -5
- package/dist/cjs/ui/expand_record_list.js +2 -5
- package/dist/cjs/ui/expand_record_picker_async.js +9 -16
- package/dist/cjs/ui/form_field.js +2 -2
- package/dist/cjs/ui/icon_config.js +11 -4
- package/dist/cjs/ui/initialize_block.js +62 -10
- package/dist/cjs/ui/ui.js +9 -2
- package/dist/cjs/ui/use_loadable.js +2 -2
- package/dist/cjs/ui/use_records.js +54 -40
- package/dist/cjs/ui/use_view_metadata.js +1 -1
- package/dist/cjs/unstable_testing_utils.js +163 -0
- package/dist/types/src/color_utils.d.ts +4 -4
- package/dist/types/src/color_utils.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/injected/airtable_interface.d.ts.map +1 -1
- package/dist/types/src/models/cursor.d.ts +4 -6
- package/dist/types/src/models/cursor.d.ts.map +1 -1
- package/dist/types/src/models/field.d.ts +17 -1
- package/dist/types/src/models/field.d.ts.map +1 -1
- package/dist/types/src/models/grouped_record_query_result.d.ts +61 -0
- package/dist/types/src/models/grouped_record_query_result.d.ts.map +1 -0
- package/dist/types/src/models/models.d.ts +4 -1
- package/dist/types/src/models/models.d.ts.map +1 -1
- package/dist/types/src/models/mutations.d.ts.map +1 -1
- package/dist/types/src/models/record.d.ts +0 -2
- package/dist/types/src/models/record.d.ts.map +1 -1
- package/dist/types/src/models/record_query_result.d.ts +22 -0
- package/dist/types/src/models/record_query_result.d.ts.map +1 -1
- package/dist/types/src/models/session.d.ts +65 -23
- package/dist/types/src/models/session.d.ts.map +1 -1
- package/dist/types/src/models/table_or_view_query_result.d.ts +21 -0
- package/dist/types/src/models/table_or_view_query_result.d.ts.map +1 -1
- package/dist/types/src/models/view.d.ts +26 -1
- package/dist/types/src/models/view.d.ts.map +1 -1
- package/dist/types/src/models/view_data_store.d.ts +2 -0
- package/dist/types/src/models/view_data_store.d.ts.map +1 -1
- package/dist/types/src/models/view_metadata_query_result.d.ts +21 -0
- package/dist/types/src/models/view_metadata_query_result.d.ts.map +1 -1
- package/dist/types/src/sdk.d.ts +3 -0
- package/dist/types/src/sdk.d.ts.map +1 -1
- package/dist/types/src/testing/mock_airtable_interface.d.ts +79 -0
- package/dist/types/src/testing/mock_airtable_interface.d.ts.map +1 -1
- package/dist/types/src/types/airtable_interface.d.ts +28 -1
- package/dist/types/src/types/airtable_interface.d.ts.map +1 -1
- package/dist/types/src/types/field.d.ts +241 -1
- package/dist/types/src/types/field.d.ts.map +1 -1
- package/dist/types/src/types/mutations.d.ts +19 -3
- package/dist/types/src/types/mutations.d.ts.map +1 -1
- package/dist/types/src/types/view.d.ts +26 -1
- package/dist/types/src/types/view.d.ts.map +1 -1
- package/dist/types/src/ui/confirmation_dialog.d.ts +8 -0
- package/dist/types/src/ui/confirmation_dialog.d.ts.map +1 -1
- package/dist/types/src/ui/expand_record.d.ts +1 -0
- package/dist/types/src/ui/expand_record.d.ts.map +1 -1
- package/dist/types/src/ui/expand_record_list.d.ts.map +1 -1
- package/dist/types/src/ui/expand_record_picker_async.d.ts +0 -3
- package/dist/types/src/ui/expand_record_picker_async.d.ts.map +1 -1
- package/dist/types/src/ui/icon_config.d.ts +15 -8
- package/dist/types/src/ui/icon_config.d.ts.map +1 -1
- package/dist/types/src/ui/initialize_block.d.ts +19 -2
- package/dist/types/src/ui/initialize_block.d.ts.map +1 -1
- package/dist/types/src/ui/ui.d.ts +2 -2
- package/dist/types/src/ui/ui.d.ts.map +1 -1
- package/dist/types/src/ui/use_loadable.d.ts +2 -2
- package/dist/types/src/ui/use_records.d.ts +11 -1
- package/dist/types/src/ui/use_records.d.ts.map +1 -1
- package/dist/types/src/unstable_testing_utils.d.ts +13 -0
- package/dist/types/src/unstable_testing_utils.d.ts.map +1 -0
- package/dist/types/test/airtable_interface_mocks/linked_records.d.ts.map +1 -1
- package/dist/types/test/airtable_interface_mocks/mock_airtable_interface_internal.d.ts +32 -1
- package/dist/types/test/airtable_interface_mocks/mock_airtable_interface_internal.d.ts.map +1 -1
- package/dist/types/test/airtable_interface_mocks/project_tracker.d.ts.map +1 -1
- package/dist/types/test/ui/expand_record.test.d.ts +2 -0
- package/dist/types/test/ui/expand_record.test.d.ts.map +1 -0
- package/dist/types/test/ui/expand_record_list.test.d.ts +2 -0
- package/dist/types/test/ui/expand_record_list.test.d.ts.map +1 -0
- package/dist/types/test/ui/expand_record_picker_async.test.d.ts +2 -0
- package/dist/types/test/ui/expand_record_picker_async.test.d.ts.map +1 -0
- package/index.d.ts +4 -2
- package/package.json +4 -4
- package/types.d.ts +3 -0
- package/unstable_testing_utils.d.ts +1 -0
- package/unstable_testing_utils.js +1 -0
- package/dist/cjs/testing/inject_mock_airtable_interface.js +0 -63
- package/dist/cjs/testing/mock_airtable_interface_external.js +0 -741
- package/dist/cjs/testing/test_driver.js +0 -260
- package/dist/cjs/types/test_mutations.js +0 -32
- package/dist/cjs/unstable_testing.js +0 -17
- package/dist/types/src/testing/inject_mock_airtable_interface.d.ts +0 -2
- package/dist/types/src/testing/inject_mock_airtable_interface.d.ts.map +0 -1
- package/dist/types/src/testing/mock_airtable_interface_external.d.ts +0 -107
- package/dist/types/src/testing/mock_airtable_interface_external.d.ts.map +0 -1
- package/dist/types/src/testing/test_driver.d.ts +0 -90
- package/dist/types/src/testing/test_driver.d.ts.map +0 -1
- package/dist/types/src/types/test_mutations.d.ts +0 -27
- package/dist/types/src/types/test_mutations.d.ts.map +0 -1
- package/dist/types/src/unstable_testing.d.ts +0 -3
- package/dist/types/src/unstable_testing.d.ts.map +0 -1
- package/dist/types/test/testing/mock_airtable_interface_external.test.d.ts +0 -2
- package/dist/types/test/testing/mock_airtable_interface_external.test.d.ts.map +0 -1
- package/dist/types/test/testing/test_driver.test.d.ts +0 -2
- package/dist/types/test/testing/test_driver.test.d.ts.map +0 -1
- package/unstable_testing.d.ts +0 -1
- package/unstable_testing.js +0 -1
package/dist/cjs/models/view.js
CHANGED
|
@@ -41,11 +41,13 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
41
41
|
|
|
42
42
|
var _private_utils = require("../private_utils");
|
|
43
43
|
|
|
44
|
+
var _mutations = require("../types/mutations");
|
|
45
|
+
|
|
44
46
|
var _abstract_model = _interopRequireDefault(require("./abstract_model"));
|
|
45
47
|
|
|
46
48
|
var _object_pool = _interopRequireDefault(require("./object_pool"));
|
|
47
49
|
|
|
48
|
-
var _record_query_result =
|
|
50
|
+
var _record_query_result = _interopRequireWildcard(require("./record_query_result"));
|
|
49
51
|
|
|
50
52
|
var _view_metadata_query_result = _interopRequireDefault(require("./view_metadata_query_result"));
|
|
51
53
|
|
|
@@ -284,6 +286,74 @@ function (_AbstractModel) {
|
|
|
284
286
|
}
|
|
285
287
|
}, null, this);
|
|
286
288
|
}
|
|
289
|
+
/**
|
|
290
|
+
* Checks whether the current user has permission to update view metadata.
|
|
291
|
+
*
|
|
292
|
+
* @param viewMetadata
|
|
293
|
+
* @hidden
|
|
294
|
+
*/
|
|
295
|
+
|
|
296
|
+
}, {
|
|
297
|
+
key: "checkPermissionsForUpdateMetadata",
|
|
298
|
+
value: function checkPermissionsForUpdateMetadata(viewMetadata) {
|
|
299
|
+
var metadata = {
|
|
300
|
+
groupLevels: (0, _record_query_result.normalizeSortsOrGroups)(this.parentTable, viewMetadata.groupLevels)
|
|
301
|
+
};
|
|
302
|
+
return this._sdk.__mutations.checkPermissionsForMutation({
|
|
303
|
+
type: _mutations.MutationTypes.UPDATE_VIEW_METADATA,
|
|
304
|
+
tableId: this.parentTable.id,
|
|
305
|
+
viewId: this.id,
|
|
306
|
+
metadata
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* An alias for `checkPermissionsForUpdateMetadata(viewMetadata).hasPermission`.
|
|
311
|
+
*
|
|
312
|
+
* Checks whether the current user has permission to update view metadata.
|
|
313
|
+
*
|
|
314
|
+
* @param viewMetadata
|
|
315
|
+
* @hidden
|
|
316
|
+
*/
|
|
317
|
+
|
|
318
|
+
}, {
|
|
319
|
+
key: "hasPermissionToUpdateMetadata",
|
|
320
|
+
value: function hasPermissionToUpdateMetadata(viewMetadata) {
|
|
321
|
+
return this.checkPermissionsForUpdateMetadata(viewMetadata).hasPermission;
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Updates view metadata, this is currently only supported from block views
|
|
325
|
+
* altering their own view's grouping config.
|
|
326
|
+
*
|
|
327
|
+
* @param ViewMetadataForUpdate
|
|
328
|
+
* @hidden
|
|
329
|
+
*/
|
|
330
|
+
|
|
331
|
+
}, {
|
|
332
|
+
key: "updateMetadataAsync",
|
|
333
|
+
value: function updateMetadataAsync(viewMetadata) {
|
|
334
|
+
var metadata;
|
|
335
|
+
return _regenerator.default.async(function updateMetadataAsync$(_context3) {
|
|
336
|
+
while (1) {
|
|
337
|
+
switch (_context3.prev = _context3.next) {
|
|
338
|
+
case 0:
|
|
339
|
+
metadata = {
|
|
340
|
+
groupLevels: (0, _record_query_result.normalizeSortsOrGroups)(this.parentTable, viewMetadata.groupLevels)
|
|
341
|
+
};
|
|
342
|
+
_context3.next = 3;
|
|
343
|
+
return _regenerator.default.awrap(this._sdk.__mutations.applyMutationAsync({
|
|
344
|
+
type: _mutations.MutationTypes.UPDATE_VIEW_METADATA,
|
|
345
|
+
tableId: this.parentTable.id,
|
|
346
|
+
viewId: this.id,
|
|
347
|
+
metadata
|
|
348
|
+
}));
|
|
349
|
+
|
|
350
|
+
case 3:
|
|
351
|
+
case "end":
|
|
352
|
+
return _context3.stop();
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}, null, this);
|
|
356
|
+
}
|
|
287
357
|
/**
|
|
288
358
|
* @internal
|
|
289
359
|
*/
|
|
@@ -56,6 +56,8 @@ var _abstract_model_with_async_data = _interopRequireDefault(require("./abstract
|
|
|
56
56
|
var WatchableViewDataStoreKeys = Object.freeze({
|
|
57
57
|
visibleRecords: 'visibleRecords',
|
|
58
58
|
visibleRecordIds: 'visibleRecordIds',
|
|
59
|
+
groups: 'groups',
|
|
60
|
+
groupLevels: 'groupLevels',
|
|
59
61
|
recordColors: 'recordColors',
|
|
60
62
|
allFieldIds: 'allFieldIds',
|
|
61
63
|
visibleFieldIds: 'visibleFieldIds'
|
|
@@ -157,17 +159,19 @@ function (_AbstractModelWithAsy) {
|
|
|
157
159
|
viewData = _ref2[0];
|
|
158
160
|
this._data.visibleRecordIds = viewData.visibleRecordIds;
|
|
159
161
|
this._data.fieldOrder = viewData.fieldOrder;
|
|
162
|
+
this._data.groups = viewData.groups;
|
|
163
|
+
this._data.groupLevels = viewData.groupLevels;
|
|
160
164
|
this._data.colorsByRecordId = viewData.colorsByRecordId;
|
|
161
165
|
|
|
162
166
|
if (!this._data.colorsByRecordId) {
|
|
163
|
-
_context2.next =
|
|
167
|
+
_context2.next = 32;
|
|
164
168
|
break;
|
|
165
169
|
}
|
|
166
170
|
|
|
167
171
|
_iteratorNormalCompletion = true;
|
|
168
172
|
_didIteratorError = false;
|
|
169
173
|
_iteratorError = undefined;
|
|
170
|
-
_context2.prev =
|
|
174
|
+
_context2.prev = 16;
|
|
171
175
|
|
|
172
176
|
for (_iterator = this.visibleRecords[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
173
177
|
record = _step.value;
|
|
@@ -177,48 +181,48 @@ function (_AbstractModelWithAsy) {
|
|
|
177
181
|
}
|
|
178
182
|
}
|
|
179
183
|
|
|
180
|
-
_context2.next =
|
|
184
|
+
_context2.next = 24;
|
|
181
185
|
break;
|
|
182
186
|
|
|
183
|
-
case
|
|
184
|
-
_context2.prev =
|
|
185
|
-
_context2.t0 = _context2["catch"](
|
|
187
|
+
case 20:
|
|
188
|
+
_context2.prev = 20;
|
|
189
|
+
_context2.t0 = _context2["catch"](16);
|
|
186
190
|
_didIteratorError = true;
|
|
187
191
|
_iteratorError = _context2.t0;
|
|
188
192
|
|
|
189
|
-
case
|
|
190
|
-
_context2.prev =
|
|
191
|
-
_context2.prev =
|
|
193
|
+
case 24:
|
|
194
|
+
_context2.prev = 24;
|
|
195
|
+
_context2.prev = 25;
|
|
192
196
|
|
|
193
197
|
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
194
198
|
_iterator.return();
|
|
195
199
|
}
|
|
196
200
|
|
|
197
|
-
case
|
|
198
|
-
_context2.prev =
|
|
201
|
+
case 27:
|
|
202
|
+
_context2.prev = 27;
|
|
199
203
|
|
|
200
204
|
if (!_didIteratorError) {
|
|
201
|
-
_context2.next =
|
|
205
|
+
_context2.next = 30;
|
|
202
206
|
break;
|
|
203
207
|
}
|
|
204
208
|
|
|
205
209
|
throw _iteratorError;
|
|
206
210
|
|
|
207
|
-
case 28:
|
|
208
|
-
return _context2.finish(25);
|
|
209
|
-
|
|
210
|
-
case 29:
|
|
211
|
-
return _context2.finish(22);
|
|
212
|
-
|
|
213
211
|
case 30:
|
|
214
|
-
return _context2.
|
|
212
|
+
return _context2.finish(27);
|
|
215
213
|
|
|
216
214
|
case 31:
|
|
215
|
+
return _context2.finish(24);
|
|
216
|
+
|
|
217
|
+
case 32:
|
|
218
|
+
return _context2.abrupt("return", [WatchableViewDataStoreKeys.visibleRecords, WatchableViewDataStoreKeys.visibleRecordIds, WatchableViewDataStoreKeys.allFieldIds, WatchableViewDataStoreKeys.groups, WatchableViewDataStoreKeys.groupLevels, WatchableViewDataStoreKeys.visibleFieldIds, WatchableViewDataStoreKeys.recordColors]);
|
|
219
|
+
|
|
220
|
+
case 33:
|
|
217
221
|
case "end":
|
|
218
222
|
return _context2.stop();
|
|
219
223
|
}
|
|
220
224
|
}
|
|
221
|
-
}, null, this, [[
|
|
225
|
+
}, null, this, [[16, 20, 24, 32], [25,, 27, 31]]);
|
|
222
226
|
}
|
|
223
227
|
}, {
|
|
224
228
|
key: "unloadData",
|
|
@@ -239,6 +243,7 @@ function (_AbstractModelWithAsy) {
|
|
|
239
243
|
|
|
240
244
|
if (!this.isDeleted) {
|
|
241
245
|
this._data.visibleRecordIds = undefined;
|
|
246
|
+
this._data.groups = undefined;
|
|
242
247
|
this._data.colorsByRecordId = undefined;
|
|
243
248
|
}
|
|
244
249
|
}
|
|
@@ -322,6 +327,16 @@ function (_AbstractModelWithAsy) {
|
|
|
322
327
|
|
|
323
328
|
|
|
324
329
|
this._onChange(WatchableViewDataStoreKeys.visibleFieldIds);
|
|
330
|
+
} // Technically it's possible for groupLevels changing to cause a groups
|
|
331
|
+
// change since we derive group information from the groupLevels (fieldId)
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
if (dirtyPaths.groups || dirtyPaths.groupLevels) {
|
|
335
|
+
this._onChange(WatchableViewDataStoreKeys.groups);
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
if (dirtyPaths.groupLevels) {
|
|
339
|
+
this._onChange(WatchableViewDataStoreKeys.groupLevels);
|
|
325
340
|
}
|
|
326
341
|
|
|
327
342
|
if (dirtyPaths.colorsByRecordId) {
|
|
@@ -414,6 +429,33 @@ function (_AbstractModelWithAsy) {
|
|
|
414
429
|
return record;
|
|
415
430
|
});
|
|
416
431
|
}
|
|
432
|
+
/**
|
|
433
|
+
* Gets the groups in a view, can be watched to be notified if a record changes groups,
|
|
434
|
+
* if a record is changed/deleted/created, if sort order of groups changes, grouping
|
|
435
|
+
* heirarchy changes, or grouping field changes.
|
|
436
|
+
*
|
|
437
|
+
* @hidden
|
|
438
|
+
*/
|
|
439
|
+
|
|
440
|
+
}, {
|
|
441
|
+
key: "groups",
|
|
442
|
+
get: function get() {
|
|
443
|
+
(0, _error_utils.invariant)(this.parentRecordStore.isRecordMetadataLoaded, 'Table data is not loaded');
|
|
444
|
+
var groups = this._data.groups;
|
|
445
|
+
return groups !== null && groups !== void 0 ? groups : null;
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* Gets the group config for this view, can be watched to know when groupLevels
|
|
449
|
+
* changes (reorder, groups deleted, groups changed, grouped field changes)
|
|
450
|
+
*/
|
|
451
|
+
|
|
452
|
+
}, {
|
|
453
|
+
key: "groupLevels",
|
|
454
|
+
get: function get() {
|
|
455
|
+
(0, _error_utils.invariant)(this.parentRecordStore.isRecordMetadataLoaded, 'Table data is not loaded');
|
|
456
|
+
var groupLevels = this._data.groupLevels;
|
|
457
|
+
return groupLevels !== null && groupLevels !== void 0 ? groupLevels : null;
|
|
458
|
+
}
|
|
417
459
|
}, {
|
|
418
460
|
key: "allFieldIds",
|
|
419
461
|
get: function get() {
|
|
@@ -2,12 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
+
require("core-js/modules/es.symbol");
|
|
6
|
+
|
|
7
|
+
require("core-js/modules/es.array.filter");
|
|
8
|
+
|
|
5
9
|
require("core-js/modules/es.array.map");
|
|
6
10
|
|
|
11
|
+
require("core-js/modules/es.object.get-own-property-descriptors");
|
|
12
|
+
|
|
7
13
|
require("core-js/modules/es.object.to-string");
|
|
8
14
|
|
|
9
15
|
require("core-js/modules/es.promise");
|
|
10
16
|
|
|
17
|
+
require("core-js/modules/web.dom-collections.for-each");
|
|
18
|
+
|
|
11
19
|
Object.defineProperty(exports, "__esModule", {
|
|
12
20
|
value: true
|
|
13
21
|
});
|
|
@@ -37,13 +45,15 @@ var _private_utils = require("../private_utils");
|
|
|
37
45
|
|
|
38
46
|
var _abstract_model_with_async_data = _interopRequireDefault(require("./abstract_model_with_async_data"));
|
|
39
47
|
|
|
40
|
-
|
|
48
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
49
|
+
|
|
50
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
41
51
|
|
|
42
|
-
/** */
|
|
43
52
|
var WatchableViewMetadataKeys = {
|
|
44
53
|
allFields: 'allFields',
|
|
45
54
|
visibleFields: 'visibleFields',
|
|
46
|
-
isDataLoaded: 'isDataLoaded'
|
|
55
|
+
isDataLoaded: 'isDataLoaded',
|
|
56
|
+
groupLevels: 'groupLevels'
|
|
47
57
|
};
|
|
48
58
|
/**
|
|
49
59
|
* A key in {@link ViewMetadataQueryResult} that can be watched.
|
|
@@ -92,7 +102,7 @@ function (_AbstractModelWithAsy) {
|
|
|
92
102
|
}, {
|
|
93
103
|
key: "_shouldLoadDataForKey",
|
|
94
104
|
value: function _shouldLoadDataForKey(key) {
|
|
95
|
-
return key === WatchableViewMetadataKeys.allFields || key === WatchableViewMetadataKeys.visibleFields;
|
|
105
|
+
return key === WatchableViewMetadataKeys.allFields || key === WatchableViewMetadataKeys.visibleFields || key === WatchableViewMetadataKeys.groupLevels;
|
|
96
106
|
}
|
|
97
107
|
/** */
|
|
98
108
|
|
|
@@ -112,6 +122,9 @@ function (_AbstractModelWithAsy) {
|
|
|
112
122
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_onAllFieldIdsChange", () => {
|
|
113
123
|
_this._onChange(WatchableViewMetadataKeys.allFields);
|
|
114
124
|
});
|
|
125
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_onGroupLevelsChange", () => {
|
|
126
|
+
_this._onChange(WatchableViewMetadataKeys.groupLevels);
|
|
127
|
+
});
|
|
115
128
|
_this.parentView = parentView;
|
|
116
129
|
_this._viewDataStore = viewDataStore;
|
|
117
130
|
return _this;
|
|
@@ -143,9 +156,11 @@ function (_AbstractModelWithAsy) {
|
|
|
143
156
|
|
|
144
157
|
this._viewDataStore.watch('allFieldIds', this._onAllFieldIdsChange);
|
|
145
158
|
|
|
146
|
-
|
|
159
|
+
this._viewDataStore.watch('groupLevels', this._onGroupLevelsChange);
|
|
160
|
+
|
|
161
|
+
return _context.abrupt("return", [WatchableViewMetadataKeys.visibleFields, WatchableViewMetadataKeys.allFields, WatchableViewMetadataKeys.groupLevels]);
|
|
147
162
|
|
|
148
|
-
case
|
|
163
|
+
case 6:
|
|
149
164
|
case "end":
|
|
150
165
|
return _context.stop();
|
|
151
166
|
}
|
|
@@ -161,6 +176,8 @@ function (_AbstractModelWithAsy) {
|
|
|
161
176
|
|
|
162
177
|
this._viewDataStore.unwatch('allFieldIds', this._onAllFieldIdsChange);
|
|
163
178
|
|
|
179
|
+
this._viewDataStore.unwatch('groupLevels', this._onGroupLevelsChange);
|
|
180
|
+
|
|
164
181
|
this._viewDataStore.unloadData();
|
|
165
182
|
}
|
|
166
183
|
/** @internal */
|
|
@@ -182,13 +199,15 @@ function (_AbstractModelWithAsy) {
|
|
|
182
199
|
if (!this._viewDataStore.isDataLoaded) {
|
|
183
200
|
return {
|
|
184
201
|
visibleFieldIds: null,
|
|
185
|
-
allFieldIds: null
|
|
202
|
+
allFieldIds: null,
|
|
203
|
+
groupLevels: null
|
|
186
204
|
};
|
|
187
205
|
}
|
|
188
206
|
|
|
189
207
|
return {
|
|
190
208
|
visibleFieldIds: this._viewDataStore.visibleFieldIds,
|
|
191
|
-
allFieldIds: this._viewDataStore.allFieldIds
|
|
209
|
+
allFieldIds: this._viewDataStore.allFieldIds,
|
|
210
|
+
groupLevels: this._viewDataStore.groupLevels
|
|
192
211
|
};
|
|
193
212
|
}
|
|
194
213
|
}, {
|
|
@@ -213,6 +232,20 @@ function (_AbstractModelWithAsy) {
|
|
|
213
232
|
(0, _error_utils.invariant)(visibleFieldIds, 'view meta data is not loaded');
|
|
214
233
|
return visibleFieldIds.map(fieldId => this.parentView.parentTable.getFieldById(fieldId));
|
|
215
234
|
}
|
|
235
|
+
/**
|
|
236
|
+
* Returns group levels for this view. Watchable.
|
|
237
|
+
*
|
|
238
|
+
* @hidden
|
|
239
|
+
*/
|
|
240
|
+
|
|
241
|
+
}, {
|
|
242
|
+
key: "groupLevels",
|
|
243
|
+
get: function get() {
|
|
244
|
+
var groupLevels = this._data.groupLevels;
|
|
245
|
+
return groupLevels ? groupLevels.map(singleConfig => _objectSpread({}, singleConfig, {
|
|
246
|
+
field: this.parentView.parentTable.getFieldById(singleConfig.fieldId)
|
|
247
|
+
})) : null;
|
|
248
|
+
}
|
|
216
249
|
}]);
|
|
217
250
|
return ViewMetadataQueryResult;
|
|
218
251
|
}(_abstract_model_with_async_data.default);
|
package/dist/cjs/sdk.js
CHANGED
|
@@ -141,7 +141,7 @@ function () {
|
|
|
141
141
|
|
|
142
142
|
/** @internal */
|
|
143
143
|
|
|
144
|
-
/** @
|
|
144
|
+
/** @hidden */
|
|
145
145
|
function BlockSdk(airtableInterface) {
|
|
146
146
|
(0, _classCallCheck2.default)(this, BlockSdk);
|
|
147
147
|
(0, _defineProperty2.default)(this, "__airtableInterface", void 0);
|
|
@@ -325,4 +325,4 @@ function () {
|
|
|
325
325
|
}();
|
|
326
326
|
|
|
327
327
|
exports.default = BlockSdk;
|
|
328
|
-
(0, _defineProperty2.default)(BlockSdk, "VERSION", "1.
|
|
328
|
+
(0, _defineProperty2.default)(BlockSdk, "VERSION", "1.5.1");
|
|
@@ -15,10 +15,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
15
15
|
});
|
|
16
16
|
exports.default = void 0;
|
|
17
17
|
|
|
18
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
19
|
-
|
|
20
|
-
require("regenerator-runtime/runtime");
|
|
21
|
-
|
|
22
18
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
23
19
|
|
|
24
20
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
@@ -161,7 +157,7 @@ var idGenerator = {
|
|
|
161
157
|
generateFieldId: () => 'fldGeneratedMockId',
|
|
162
158
|
generateTableId: () => 'tblGeneratedMockId'
|
|
163
159
|
};
|
|
164
|
-
/** @
|
|
160
|
+
/** @hidden */
|
|
165
161
|
|
|
166
162
|
var MockAirtableInterface =
|
|
167
163
|
/*#__PURE__*/
|
|
@@ -253,42 +249,6 @@ function (_EventEmitter) {
|
|
|
253
249
|
}, {
|
|
254
250
|
key: "subscribeToFocus",
|
|
255
251
|
value: function subscribeToFocus() {}
|
|
256
|
-
}, {
|
|
257
|
-
key: "fetchAndSubscribeToCellValuesInFieldsAsync",
|
|
258
|
-
value: function fetchAndSubscribeToCellValuesInFieldsAsync(tableId, fieldIds) {
|
|
259
|
-
throw (0, _error_utils.spawnError)('fetchAndSubscribeToCellValuesInFieldsAsync unimplemented');
|
|
260
|
-
}
|
|
261
|
-
}, {
|
|
262
|
-
key: "fetchAndSubscribeToCursorDataAsync",
|
|
263
|
-
value: function fetchAndSubscribeToCursorDataAsync() {
|
|
264
|
-
throw (0, _error_utils.spawnError)('fetchAndSubscribeToCursorDataAsync unimplemented');
|
|
265
|
-
}
|
|
266
|
-
}, {
|
|
267
|
-
key: "fetchAndSubscribeToTableDataAsync",
|
|
268
|
-
value: function fetchAndSubscribeToTableDataAsync(tableId) {
|
|
269
|
-
throw (0, _error_utils.spawnError)('fetchAndSubscribeToTableDataAsync unimplemented');
|
|
270
|
-
}
|
|
271
|
-
}, {
|
|
272
|
-
key: "fetchAndSubscribeToViewDataAsync",
|
|
273
|
-
value: function fetchAndSubscribeToViewDataAsync(tableId, viewId) {
|
|
274
|
-
return _regenerator.default.async(function fetchAndSubscribeToViewDataAsync$(_context) {
|
|
275
|
-
while (1) {
|
|
276
|
-
switch (_context.prev = _context.next) {
|
|
277
|
-
case 0:
|
|
278
|
-
throw (0, _error_utils.spawnError)('fetchAndSubscribeToViewDataAsync unimplemented');
|
|
279
|
-
|
|
280
|
-
case 1:
|
|
281
|
-
case "end":
|
|
282
|
-
return _context.stop();
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
});
|
|
286
|
-
}
|
|
287
|
-
}, {
|
|
288
|
-
key: "fetchDefaultCellValuesByFieldIdAsync",
|
|
289
|
-
value: function fetchDefaultCellValuesByFieldIdAsync() {
|
|
290
|
-
throw (0, _error_utils.spawnError)('fetchDefaultCellValuesByFieldIdAsync unimplemented');
|
|
291
|
-
}
|
|
292
252
|
}, {
|
|
293
253
|
key: "triggerModelUpdates",
|
|
294
254
|
value: function triggerModelUpdates(changes) {
|
|
@@ -324,75 +284,6 @@ function (_EventEmitter) {
|
|
|
324
284
|
}, {
|
|
325
285
|
key: "unsubscribeFromViewData",
|
|
326
286
|
value: function unsubscribeFromViewData() {}
|
|
327
|
-
}, {
|
|
328
|
-
key: "expandRecord",
|
|
329
|
-
value: function expandRecord(tableId, recordId, recordIds) {
|
|
330
|
-
throw (0, _error_utils.spawnError)('expandRecord unimplemented');
|
|
331
|
-
}
|
|
332
|
-
}, {
|
|
333
|
-
key: "expandRecordList",
|
|
334
|
-
value: function expandRecordList() {
|
|
335
|
-
throw (0, _error_utils.spawnError)('expandRecordList unimplemented');
|
|
336
|
-
}
|
|
337
|
-
}, {
|
|
338
|
-
key: "expandRecordPickerAsync",
|
|
339
|
-
value: function expandRecordPickerAsync() {
|
|
340
|
-
throw (0, _error_utils.spawnError)('expandRecordPickerAsync unimplemented');
|
|
341
|
-
}
|
|
342
|
-
}, {
|
|
343
|
-
key: "reloadFrame",
|
|
344
|
-
value: function reloadFrame() {
|
|
345
|
-
throw (0, _error_utils.spawnError)('reloadFrame unimplemented');
|
|
346
|
-
}
|
|
347
|
-
}, {
|
|
348
|
-
key: "setSettingsButtonVisibility",
|
|
349
|
-
value: function setSettingsButtonVisibility() {
|
|
350
|
-
throw (0, _error_utils.spawnError)('setSettingsButtonVisibility unimplemented');
|
|
351
|
-
}
|
|
352
|
-
}, {
|
|
353
|
-
key: "setUndoRedoMode",
|
|
354
|
-
value: function setUndoRedoMode() {
|
|
355
|
-
throw (0, _error_utils.spawnError)('setUndoRedoMode unimplemented');
|
|
356
|
-
}
|
|
357
|
-
}, {
|
|
358
|
-
key: "setFullscreenMaxSize",
|
|
359
|
-
value: function setFullscreenMaxSize() {
|
|
360
|
-
throw (0, _error_utils.spawnError)('setFullscreenMaxSize unimplemented');
|
|
361
|
-
}
|
|
362
|
-
}, {
|
|
363
|
-
key: "enterFullscreen",
|
|
364
|
-
value: function enterFullscreen() {
|
|
365
|
-
throw (0, _error_utils.spawnError)('enterFullscreen unimplemented');
|
|
366
|
-
}
|
|
367
|
-
}, {
|
|
368
|
-
key: "exitFullscreen",
|
|
369
|
-
value: function exitFullscreen() {
|
|
370
|
-
throw (0, _error_utils.spawnError)('exitFullscreen unimplemented');
|
|
371
|
-
}
|
|
372
|
-
}, {
|
|
373
|
-
key: "fetchAndSubscribeToPerformRecordActionAsync",
|
|
374
|
-
value: function fetchAndSubscribeToPerformRecordActionAsync() {
|
|
375
|
-
throw (0, _error_utils.spawnError)('fetchAndSubscribeToPerformRecordActionAsync unimplemented');
|
|
376
|
-
}
|
|
377
|
-
}, {
|
|
378
|
-
key: "trackEvent",
|
|
379
|
-
value: function trackEvent() {
|
|
380
|
-
throw (0, _error_utils.spawnError)('trackEvent unimplemented');
|
|
381
|
-
}
|
|
382
|
-
}, {
|
|
383
|
-
key: "trackExposure",
|
|
384
|
-
value: function trackExposure() {// No-op to allow tests that happen to use session.__isFeatureEnabled to pass.
|
|
385
|
-
}
|
|
386
|
-
}, {
|
|
387
|
-
key: "sendStat",
|
|
388
|
-
value: function sendStat() {
|
|
389
|
-
throw (0, _error_utils.spawnError)('sendStat unimplemented');
|
|
390
|
-
}
|
|
391
|
-
}, {
|
|
392
|
-
key: "performBackendFetchAsync",
|
|
393
|
-
value: function performBackendFetchAsync(requestJson) {
|
|
394
|
-
throw (0, _error_utils.spawnError)('performBackendFetchAsync unimplemented');
|
|
395
|
-
}
|
|
396
287
|
}, {
|
|
397
288
|
key: "aggregators",
|
|
398
289
|
get: function get() {
|
|
@@ -1 +1,19 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.BlockRunContextType = void 0;
|
|
7
|
+
// BlockRunContextType, BlockInstallationPageBlockRunContext, ViewBlockRunContext, BlockRunContext
|
|
8
|
+
// must be kept in sync with block_run_context.tsx in hyperbase repo
|
|
9
|
+
|
|
10
|
+
/** @hidden */
|
|
11
|
+
var BlockRunContextType;
|
|
12
|
+
/** @hidden */
|
|
13
|
+
|
|
14
|
+
exports.BlockRunContextType = BlockRunContextType;
|
|
15
|
+
|
|
16
|
+
(function (BlockRunContextType) {
|
|
17
|
+
BlockRunContextType["DASHBOARD_APP"] = "dashboardApp";
|
|
18
|
+
BlockRunContextType["VIEW"] = "view";
|
|
19
|
+
})(BlockRunContextType || (exports.BlockRunContextType = BlockRunContextType = {}));
|
|
@@ -17,7 +17,8 @@ var MutationTypes = Object.freeze({
|
|
|
17
17
|
SET_MULTIPLE_GLOBAL_CONFIG_PATHS: 'setMultipleGlobalConfigPaths',
|
|
18
18
|
CREATE_SINGLE_FIELD: 'createSingleField',
|
|
19
19
|
UPDATE_SINGLE_FIELD_CONFIG: 'updateSingleFieldConfig',
|
|
20
|
-
CREATE_SINGLE_TABLE: 'createSingleTable'
|
|
20
|
+
CREATE_SINGLE_TABLE: 'createSingleTable',
|
|
21
|
+
UPDATE_VIEW_METADATA: 'updateViewMetadata'
|
|
21
22
|
});
|
|
22
23
|
/** @hidden */
|
|
23
24
|
|
package/dist/cjs/types/view.js
CHANGED
|
@@ -105,7 +105,9 @@ function (_React$Component) {
|
|
|
105
105
|
backgroundStyle = _this$props.backgroundStyle,
|
|
106
106
|
onCancel = _this$props.onCancel,
|
|
107
107
|
onConfirm = _this$props.onConfirm,
|
|
108
|
-
|
|
108
|
+
isCancelButtonDisabled = _this$props.isCancelButtonDisabled,
|
|
109
|
+
isConfirmButtonDisabled = _this$props.isConfirmButtonDisabled,
|
|
110
|
+
restOfProps = (0, _objectWithoutProperties2.default)(_this$props, ["title", "body", "cancelButtonText", "confirmButtonText", "isConfirmActionDangerous", "className", "style", "backgroundClassName", "backgroundStyle", "onCancel", "onConfirm", "isCancelButtonDisabled", "isConfirmButtonDisabled"]);
|
|
109
111
|
return React.createElement(_dialog.default, (0, _extends2.default)({
|
|
110
112
|
onClose: onCancel,
|
|
111
113
|
className: className,
|
|
@@ -126,12 +128,14 @@ function (_React$Component) {
|
|
|
126
128
|
}, React.createElement(_button.default, {
|
|
127
129
|
ref: this._confirmButtonRef,
|
|
128
130
|
onClick: onConfirm,
|
|
129
|
-
variant: isConfirmActionDangerous ? 'danger' : 'primary'
|
|
131
|
+
variant: isConfirmActionDangerous ? 'danger' : 'primary',
|
|
132
|
+
disabled: isConfirmButtonDisabled
|
|
130
133
|
}, confirmButtonText), React.createElement(_button.default, {
|
|
131
134
|
onClick: onCancel,
|
|
132
135
|
variant: "secondary",
|
|
133
136
|
alignSelf: "end",
|
|
134
|
-
marginRight: 2
|
|
137
|
+
marginRight: 2,
|
|
138
|
+
disabled: isCancelButtonDisabled
|
|
135
139
|
}, cancelButtonText)));
|
|
136
140
|
}
|
|
137
141
|
}]);
|
|
@@ -149,12 +153,16 @@ function (_React$Component) {
|
|
|
149
153
|
backgroundClassName: _propTypes.default.string,
|
|
150
154
|
backgroundStyle: _propTypes.default.object,
|
|
151
155
|
onCancel: _propTypes.default.func.isRequired,
|
|
152
|
-
onConfirm: _propTypes.default.func.isRequired
|
|
156
|
+
onConfirm: _propTypes.default.func.isRequired,
|
|
157
|
+
isCancelButtonDisabled: _propTypes.default.bool,
|
|
158
|
+
isConfirmButtonDisabled: _propTypes.default.bool
|
|
153
159
|
}, _dialog.dialogStylePropTypes));
|
|
154
160
|
(0, _defineProperty2.default)(ConfirmationDialog, "defaultProps", {
|
|
155
161
|
cancelButtonText: 'Cancel',
|
|
156
162
|
confirmButtonText: 'Confirm',
|
|
157
163
|
isConfirmActionDangerous: false,
|
|
164
|
+
isCancelButtonDisabled: false,
|
|
165
|
+
isConfirmButtonDisabled: false,
|
|
158
166
|
width: '400px'
|
|
159
167
|
});
|
|
160
168
|
var _default = ConfirmationDialog;
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
require("core-js/modules/es.array.map");
|
|
6
4
|
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -9,12 +7,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
7
|
});
|
|
10
8
|
exports.default = void 0;
|
|
11
9
|
|
|
12
|
-
var _airtable_interface = _interopRequireDefault(require("../injected/airtable_interface"));
|
|
13
|
-
|
|
14
10
|
/** @module @airtable/blocks/ui: expandRecord */
|
|
15
11
|
|
|
16
12
|
/** */
|
|
17
13
|
|
|
14
|
+
/**
|
|
15
|
+
* Options object for expanding a record.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
18
|
/**
|
|
19
19
|
* Expands the given record in the Airtable UI.
|
|
20
20
|
*
|
|
@@ -40,7 +40,7 @@ function expandRecord(record, opts) {
|
|
|
40
40
|
recordIds = opts.records.map(r => r.id);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
record.parentTable.parentBase.__sdk.__airtableInterface.expandRecord(record.parentTable.id, record.id, recordIds);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
var _default = expandRecord;
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
require("core-js/modules/es.array.map");
|
|
6
4
|
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -9,8 +7,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
7
|
});
|
|
10
8
|
exports.default = void 0;
|
|
11
9
|
|
|
12
|
-
var _airtable_interface = _interopRequireDefault(require("../injected/airtable_interface"));
|
|
13
|
-
|
|
14
10
|
var _error_utils = require("../error_utils");
|
|
15
11
|
|
|
16
12
|
/** @module @airtable/blocks/ui: expandRecordList */
|
|
@@ -48,7 +44,8 @@ function expandRecordList(records, opts) {
|
|
|
48
44
|
(0, _error_utils.invariant)(field.parentTable.id === tableId, 'all fields must belong to the same table');
|
|
49
45
|
return field.id;
|
|
50
46
|
}) : null;
|
|
51
|
-
|
|
47
|
+
|
|
48
|
+
records[0].parentTable.parentBase.__sdk.__airtableInterface.expandRecordList(tableId, recordIds, fieldIds);
|
|
52
49
|
}
|
|
53
50
|
|
|
54
51
|
var _default = expandRecordList;
|