@airtable/blocks 1.11.1-experimental-68738f2-20220526 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/cjs/error_utils.js +1 -19
- package/dist/cjs/global_config.js +3 -3
- package/dist/cjs/injected/airtable_interface.js +1 -1
- package/dist/cjs/models/base.js +9 -9
- package/dist/cjs/models/cursor.js +3 -3
- package/dist/cjs/models/field.js +3 -3
- package/dist/cjs/models/grouped_record_query_result.js +14 -5
- package/dist/cjs/models/linked_records_query_result.js +27 -78
- package/dist/cjs/models/mutations.js +163 -18
- package/dist/cjs/models/record.js +55 -310
- package/dist/cjs/models/record_query_result.js +2 -5
- package/dist/cjs/models/record_store.js +829 -555
- package/dist/cjs/models/session.js +3 -3
- package/dist/cjs/models/table.js +31 -31
- package/dist/cjs/models/table_or_view_query_result.js +419 -526
- package/dist/cjs/models/view.js +23 -1
- package/dist/cjs/models/view_data_store.js +295 -255
- package/dist/cjs/private_utils.js +0 -40
- package/dist/cjs/sdk.js +9 -12
- package/dist/cjs/settings_button.js +1 -1
- package/dist/cjs/testing/abstract_mock_airtable_interface.js +11 -57
- package/dist/cjs/types/airtable_interface.js +2 -17
- package/dist/cjs/ui/block_wrapper.js +2 -5
- package/dist/cjs/ui/expand_record_picker_async.js +1 -1
- package/dist/cjs/ui/global_config_synced_component_helpers.js +6 -0
- package/dist/cjs/ui/initialize_block.js +3 -3
- package/dist/cjs/ui/use_global_config.js +1 -1
- package/dist/cjs/ui/use_loadable.js +3 -3
- package/dist/cjs/ui/use_record_action_data.js +11 -11
- package/dist/cjs/ui/use_records.js +1 -5
- package/dist/cjs/ui/use_settings_button.js +1 -1
- package/dist/cjs/ui/viewport_constraint.js +1 -1
- package/dist/cjs/unstable_testing_utils.js +1 -61
- package/dist/cjs/viewport.js +9 -9
- package/dist/cjs/watchable.js +1 -15
- package/dist/types/src/error_utils.d.ts +1 -2
- package/dist/types/src/error_utils.d.ts.map +1 -1
- package/dist/types/src/global_config.d.ts +3 -3
- package/dist/types/src/models/base.d.ts +9 -9
- package/dist/types/src/models/cursor.d.ts +3 -3
- package/dist/types/src/models/field.d.ts +3 -3
- package/dist/types/src/models/grouped_record_query_result.d.ts +3 -3
- package/dist/types/src/models/grouped_record_query_result.d.ts.map +1 -1
- package/dist/types/src/models/linked_records_query_result.d.ts.map +1 -1
- package/dist/types/src/models/mutations.d.ts.map +1 -1
- package/dist/types/src/models/record.d.ts +3 -12
- package/dist/types/src/models/record.d.ts.map +1 -1
- package/dist/types/src/models/record_query_result.d.ts +4 -5
- package/dist/types/src/models/record_query_result.d.ts.map +1 -1
- package/dist/types/src/models/record_store.d.ts.map +1 -1
- package/dist/types/src/models/session.d.ts +3 -3
- package/dist/types/src/models/table.d.ts +25 -25
- package/dist/types/src/models/table_or_view_query_result.d.ts +5 -3
- package/dist/types/src/models/table_or_view_query_result.d.ts.map +1 -1
- package/dist/types/src/models/view.d.ts +11 -0
- package/dist/types/src/models/view.d.ts.map +1 -1
- package/dist/types/src/models/view_data_store.d.ts +1 -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 +1 -1
- package/dist/types/src/models/view_metadata_query_result.d.ts.map +1 -1
- package/dist/types/src/private_utils.d.ts +1 -24
- package/dist/types/src/private_utils.d.ts.map +1 -1
- package/dist/types/src/sdk.d.ts +3 -1
- package/dist/types/src/sdk.d.ts.map +1 -1
- package/dist/types/src/settings_button.d.ts +1 -1
- package/dist/types/src/testing/abstract_mock_airtable_interface.d.ts +11 -11
- package/dist/types/src/testing/abstract_mock_airtable_interface.d.ts.map +1 -1
- package/dist/types/src/types/airtable_interface.d.ts +20 -59
- package/dist/types/src/types/airtable_interface.d.ts.map +1 -1
- package/dist/types/src/types/field.d.ts +10 -5
- package/dist/types/src/types/field.d.ts.map +1 -1
- package/dist/types/src/types/table.d.ts +2 -0
- package/dist/types/src/types/table.d.ts.map +1 -1
- package/dist/types/src/types/view.d.ts +9 -3
- package/dist/types/src/types/view.d.ts.map +1 -1
- package/dist/types/src/ui/block_wrapper.d.ts.map +1 -1
- package/dist/types/src/ui/expand_record_picker_async.d.ts +1 -1
- package/dist/types/src/ui/global_config_synced_component_helpers.d.ts.map +1 -1
- package/dist/types/src/ui/initialize_block.d.ts +1 -1
- package/dist/types/src/ui/record_card.d.ts +1 -1
- package/dist/types/src/ui/use_global_config.d.ts +1 -1
- package/dist/types/src/ui/use_loadable.d.ts +2 -2
- package/dist/types/src/ui/use_record_action_data.d.ts +11 -11
- package/dist/types/src/ui/use_settings_button.d.ts +1 -1
- package/dist/types/src/ui/viewport_constraint.d.ts +3 -3
- package/dist/types/src/ui/viewport_constraint.d.ts.map +1 -1
- package/dist/types/src/unstable_testing_utils.d.ts +1 -4
- package/dist/types/src/unstable_testing_utils.d.ts.map +1 -1
- package/dist/types/src/viewport.d.ts +9 -9
- package/dist/types/src/watchable.d.ts.map +1 -1
- package/dist/types/{src/testing → test/airtable_interface_mocks}/fixture_data.d.ts +25 -44
- package/dist/types/test/airtable_interface_mocks/fixture_data.d.ts.map +1 -0
- package/dist/types/test/airtable_interface_mocks/linked_records.d.ts +1 -1
- package/dist/types/test/airtable_interface_mocks/linked_records.d.ts.map +1 -1
- package/dist/types/test/airtable_interface_mocks/mock_airtable_interface.d.ts +12 -19
- package/dist/types/test/airtable_interface_mocks/mock_airtable_interface.d.ts.map +1 -1
- package/dist/types/test/airtable_interface_mocks/project_tracker.d.ts +1 -1
- package/dist/types/test/airtable_interface_mocks/project_tracker.d.ts.map +1 -1
- package/dist/types/test/test_helpers.d.ts +0 -2
- package/dist/types/test/test_helpers.d.ts.map +1 -1
- package/package.json +2 -3
- package/dist/cjs/models/query_manager.js +0 -328
- package/dist/cjs/testing/fixture_data.js +0 -271
- package/dist/cjs/testing/mock_base_data_stores.js +0 -891
- package/dist/cjs/types/block_query_spec.js +0 -85
- package/dist/types/src/models/query_manager.d.ts +0 -2
- package/dist/types/src/models/query_manager.d.ts.map +0 -1
- package/dist/types/src/testing/fixture_data.d.ts.map +0 -1
- package/dist/types/src/testing/mock_base_data_stores.d.ts +0 -59
- package/dist/types/src/testing/mock_base_data_stores.d.ts.map +0 -1
- package/dist/types/src/types/block_query_spec.d.ts +0 -139
- package/dist/types/src/types/block_query_spec.d.ts.map +0 -1
- package/dist/types/test/testing/fixture_data.test.d.ts +0 -2
- package/dist/types/test/testing/fixture_data.test.d.ts.map +0 -1
package/dist/cjs/watchable.js
CHANGED
|
@@ -84,17 +84,6 @@ function () {
|
|
|
84
84
|
key: "__getWatchableKey",
|
|
85
85
|
value: function __getWatchableKey() {
|
|
86
86
|
return "".concat(this._watchableId, " ").concat(this._changeCount);
|
|
87
|
-
} // See above comment as to why changeCount needs to change when a mutation occurs (useSubscription)
|
|
88
|
-
// So this should be called whenever the model mutably changes
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* @internal
|
|
92
|
-
*/
|
|
93
|
-
|
|
94
|
-
}, {
|
|
95
|
-
key: "__incrementOnChangeCount",
|
|
96
|
-
value: function __incrementOnChangeCount() {
|
|
97
|
-
this._changeCount += 1;
|
|
98
87
|
}
|
|
99
88
|
/**
|
|
100
89
|
* Helper method to get only the valid watchable keys - or throw if a key is invalid
|
|
@@ -220,8 +209,6 @@ function () {
|
|
|
220
209
|
}, {
|
|
221
210
|
key: "unwatch",
|
|
222
211
|
value: function unwatch(keys, callback, context) {
|
|
223
|
-
// We warn instead of throw here because we used to warn instead of throw and don't
|
|
224
|
-
// want to make a breaking change.
|
|
225
212
|
var validKeys = this._getWatchableValidKeysOrThrow(keys, 'unwatch', true);
|
|
226
213
|
|
|
227
214
|
var _iteratorNormalCompletion3 = true;
|
|
@@ -269,8 +256,7 @@ function () {
|
|
|
269
256
|
}, {
|
|
270
257
|
key: "_onChange",
|
|
271
258
|
value: function _onChange(key) {
|
|
272
|
-
this.
|
|
273
|
-
|
|
259
|
+
this._changeCount += 1;
|
|
274
260
|
var watchers = this._changeWatchersByKey[key];
|
|
275
261
|
|
|
276
262
|
if (watchers) {
|
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export declare function spawnError(errorMessageFormat: string, ...errorMessageArgs: ReadonlyArray<unknown>): Error;
|
|
5
5
|
/**
|
|
6
|
-
* Logs an error to Sentry
|
|
7
|
-
* but we leave the definition here for future usage needs.
|
|
6
|
+
* Logs an error to Sentry
|
|
8
7
|
*
|
|
9
8
|
* @hidden
|
|
10
9
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error_utils.d.ts","sourceRoot":"","sources":["../../../src/error_utils.ts"],"names":[],"mappings":"AAsCA;;GAEG;AACH,wBAAgB,UAAU,CACtB,kBAAkB,EAAE,MAAM,EAC1B,GAAG,gBAAgB,EAAE,aAAa,CAAC,OAAO,CAAC,SAO9C;AAGD
|
|
1
|
+
{"version":3,"file":"error_utils.d.ts","sourceRoot":"","sources":["../../../src/error_utils.ts"],"names":[],"mappings":"AAsCA;;GAEG;AACH,wBAAgB,UAAU,CACtB,kBAAkB,EAAE,MAAM,EAC1B,GAAG,gBAAgB,EAAE,aAAa,CAAC,OAAO,CAAC,SAO9C;AAGD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,QAazF;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACrB,SAAS,EAAE,OAAO,EAClB,kBAAkB,EAAE,MAAM,EAC1B,GAAG,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,GACpC,OAAO,CAAC,SAAS,CAQnB"}
|
|
@@ -7,7 +7,7 @@ import { PermissionCheckResult } from './types/mutations';
|
|
|
7
7
|
*/
|
|
8
8
|
declare type WatchableGlobalConfigKey = string;
|
|
9
9
|
/**
|
|
10
|
-
* A key-value store for persisting configuration options for an
|
|
10
|
+
* A key-value store for persisting configuration options for an extension installation.
|
|
11
11
|
*
|
|
12
12
|
* The contents will be synced in real-time to all logged-in users of the installation.
|
|
13
13
|
* Contents will not be updated in real-time when the installation is running in
|
|
@@ -122,7 +122,7 @@ declare class GlobalConfig extends Watchable<WatchableGlobalConfigKey> {
|
|
|
122
122
|
* if (globalConfig.hasPermissionToSetPaths('favoriteColor', color)) {
|
|
123
123
|
* globalConfig.setAsync('favoriteColor', color);
|
|
124
124
|
* }
|
|
125
|
-
* // The update is now applied within your
|
|
125
|
+
* // The update is now applied within your extension (eg will be
|
|
126
126
|
* // reflected in globalConfig) but are still being saved to
|
|
127
127
|
* // Airtable servers (e.g. may not be updated for other users yet)
|
|
128
128
|
* }
|
|
@@ -216,7 +216,7 @@ declare class GlobalConfig extends Watchable<WatchableGlobalConfigKey> {
|
|
|
216
216
|
* if (globalConfig.hasPermissionToSetPaths(updates)) {
|
|
217
217
|
* globalConfig.setPathsAsync(updates);
|
|
218
218
|
* }
|
|
219
|
-
* // The updates are now applied within your
|
|
219
|
+
* // The updates are now applied within your extension (eg will be reflected in
|
|
220
220
|
* // globalConfig) but are still being saved to Airtable servers (e.g. they
|
|
221
221
|
* // may not be updated for other users yet)
|
|
222
222
|
* }
|
|
@@ -109,8 +109,8 @@ declare class Base extends AbstractModel<BaseData, WatchableBaseKey> {
|
|
|
109
109
|
* The user matching the given ID, name, or email address. Returns null if that user does not
|
|
110
110
|
* exist or does not have access to this base.
|
|
111
111
|
*
|
|
112
|
-
* This method is convenient when building an
|
|
113
|
-
*
|
|
112
|
+
* This method is convenient when building an extension for a specific base, but for more generic
|
|
113
|
+
* extensions the best practice is to use the {@link getCollaboratorByIdIfExists} method instead.
|
|
114
114
|
*
|
|
115
115
|
* @param collaboratorIdOrNameOrEmail The ID of the user.
|
|
116
116
|
*/
|
|
@@ -120,8 +120,8 @@ declare class Base extends AbstractModel<BaseData, WatchableBaseKey> {
|
|
|
120
120
|
* or does not have access to this base. Use {@link getCollaboratorIfExists} instead if you are
|
|
121
121
|
* unsure whether a collaborator with the given ID exists and has access to this base.
|
|
122
122
|
*
|
|
123
|
-
* This method is convenient when building an
|
|
124
|
-
*
|
|
123
|
+
* This method is convenient when building an extension for a specific base, but for more generic
|
|
124
|
+
* extensions the best practice is to use the {@link getCollaboratorById} method instead.
|
|
125
125
|
*
|
|
126
126
|
* @param collaboratorIdOrNameOrEmail The ID of the user.
|
|
127
127
|
*/
|
|
@@ -158,8 +158,8 @@ declare class Base extends AbstractModel<BaseData, WatchableBaseKey> {
|
|
|
158
158
|
* The table matching the given ID or name. Returns `null` if no matching table exists within
|
|
159
159
|
* this base.
|
|
160
160
|
*
|
|
161
|
-
* This method is convenient when building an
|
|
162
|
-
*
|
|
161
|
+
* This method is convenient when building an extension for a specific base, but for more generic
|
|
162
|
+
* extensions the best practice is to use the {@link getTableByIdIfExists} or
|
|
163
163
|
* {@link getTableByNameIfExists} methods instead.
|
|
164
164
|
*
|
|
165
165
|
* @param tableIdOrName The ID or name of the table you're looking for.
|
|
@@ -170,8 +170,8 @@ declare class Base extends AbstractModel<BaseData, WatchableBaseKey> {
|
|
|
170
170
|
* Use {@link getTableIfExists} instead if you are unsure whether a table exists with the given
|
|
171
171
|
* name/ID.
|
|
172
172
|
*
|
|
173
|
-
* This method is convenient when building an
|
|
174
|
-
*
|
|
173
|
+
* This method is convenient when building an extension for a specific base, but for more generic
|
|
174
|
+
* extensions the best practice is to use the {@link getTableById} or {@link getTableByName} methods
|
|
175
175
|
* instead.
|
|
176
176
|
*
|
|
177
177
|
* @param tableIdOrName The ID or name of the table you're looking for.
|
|
@@ -252,7 +252,7 @@ declare class Base extends AbstractModel<BaseData, WatchableBaseKey> {
|
|
|
252
252
|
*
|
|
253
253
|
* This action is asynchronous. Unlike new records, new tables are **not** created
|
|
254
254
|
* optimistically locally. You must `await` the returned promise before using the new
|
|
255
|
-
* table in your
|
|
255
|
+
* table in your extension.
|
|
256
256
|
*
|
|
257
257
|
* @param name name for the table. must be case-insensitive unique
|
|
258
258
|
* @param fields array of fields to create in the table: see below for an example. `name` and
|
|
@@ -127,15 +127,15 @@ declare class Cursor extends AbstractModelWithAsyncData<CursorData, WatchableCur
|
|
|
127
127
|
*/
|
|
128
128
|
get activeViewId(): ViewId | null;
|
|
129
129
|
/**
|
|
130
|
-
* Sets the specified table to active in the Airtable UI. If the
|
|
130
|
+
* Sets the specified table to active in the Airtable UI. If the extension installation or extensions pane
|
|
131
131
|
* is fullscreen, fullscreen mode will be exited.
|
|
132
132
|
*
|
|
133
133
|
* @param tableOrTableId The target table or table ID to set as active in the Airtable main page.
|
|
134
134
|
*/
|
|
135
135
|
setActiveTable(tableOrTableId: Table | TableId): void;
|
|
136
136
|
/**
|
|
137
|
-
* Sets the specified view (and corresponding table) to active in the Airtable UI. If the
|
|
138
|
-
* installation or
|
|
137
|
+
* Sets the specified view (and corresponding table) to active in the Airtable UI. If the extension
|
|
138
|
+
* installation or extensions pane is fullscreen, fullscreen mode will be exited.
|
|
139
139
|
*
|
|
140
140
|
* @param tableOrTableId The table or table ID that the target view belongs to.
|
|
141
141
|
* @param viewOrViewId The target view or view ID to set as active in the Airtable main page.
|
|
@@ -143,7 +143,7 @@ declare class Field extends AbstractModel<FieldData, WatchableFieldKey> {
|
|
|
143
143
|
*
|
|
144
144
|
* This action is asynchronous. Unlike updates to cell values, updates to field options are
|
|
145
145
|
* **not** applied optimistically locally. You must `await` the returned promise before
|
|
146
|
-
* relying on the change in your
|
|
146
|
+
* relying on the change in your extension.
|
|
147
147
|
*
|
|
148
148
|
* Optionally, you can pass an `opts` object as the second argument. See {@link UpdateFieldOptionsOpts}
|
|
149
149
|
* for available options.
|
|
@@ -216,7 +216,7 @@ declare class Field extends AbstractModel<FieldData, WatchableFieldKey> {
|
|
|
216
216
|
*
|
|
217
217
|
* This action is asynchronous. Unlike updates to cell values, updates to field name are
|
|
218
218
|
* **not** applied optimistically locally. You must `await` the returned promise before
|
|
219
|
-
* relying on the change in your
|
|
219
|
+
* relying on the change in your extension.
|
|
220
220
|
*
|
|
221
221
|
* @param name new name for the field
|
|
222
222
|
*
|
|
@@ -277,7 +277,7 @@ declare class Field extends AbstractModel<FieldData, WatchableFieldKey> {
|
|
|
277
277
|
*
|
|
278
278
|
* This action is asynchronous. Unlike updates to cell values, updates to field descriptions are
|
|
279
279
|
* **not** applied optimistically locally. You must `await` the returned promise before
|
|
280
|
-
* relying on the change in your
|
|
280
|
+
* relying on the change in your extension.
|
|
281
281
|
*
|
|
282
282
|
* @param description new description for the field
|
|
283
283
|
*
|
|
@@ -9,7 +9,7 @@ import Field from './field';
|
|
|
9
9
|
/** @hidden */
|
|
10
10
|
interface GroupedRecordQueryResultData {
|
|
11
11
|
groupData: GroupData;
|
|
12
|
-
groupLevels:
|
|
12
|
+
groupLevels: Array<NormalizedGroupLevel>;
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
15
|
* Represents a group of records returned from a group query. See {@link RecordQueryResult} for main
|
|
@@ -22,7 +22,7 @@ interface GroupedRecordQueryResultData {
|
|
|
22
22
|
* @hidden
|
|
23
23
|
*/
|
|
24
24
|
declare class GroupedRecordQueryResult extends RecordQueryResult<GroupedRecordQueryResultData> {
|
|
25
|
-
_orderedRecordIds:
|
|
25
|
+
_orderedRecordIds: Array<RecordId> | null;
|
|
26
26
|
/**
|
|
27
27
|
* Gets children groups of this group (if any exist)
|
|
28
28
|
*/
|
|
@@ -40,7 +40,7 @@ declare class GroupedRecordQueryResult extends RecordQueryResult<GroupedRecordQu
|
|
|
40
40
|
* This returns all recordIds of all children groups (in grouped order).
|
|
41
41
|
* Watchable.
|
|
42
42
|
*/
|
|
43
|
-
get recordIds():
|
|
43
|
+
get recordIds(): Array<RecordId>;
|
|
44
44
|
/**
|
|
45
45
|
* The fields that were used to create the parent RecordQueryResult that created this GroupedRecordQueryResult.
|
|
46
46
|
* This is separate from the field/fieldId property - which is the field this grouping is based upon.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grouped_record_query_result.d.ts","sourceRoot":"","sources":["../../../../src/models/grouped_record_query_result.ts"],"names":[],"mappings":"AAAA,yDAAyD,CAAC,MAAM;AAChE,OAAO,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAC,eAAe,EAAE,aAAa,EAAY,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AACxC,OAAO,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AACjE,OAAO,iBAAiB,EAAE,EACtB,6BAA6B,EAEhC,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,MAAM,SAAS,CAAC;AAI5B,cAAc;AAGd,UAAU,4BAA4B;IAClC,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"grouped_record_query_result.d.ts","sourceRoot":"","sources":["../../../../src/models/grouped_record_query_result.ts"],"names":[],"mappings":"AAAA,yDAAyD,CAAC,MAAM;AAChE,OAAO,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAC,eAAe,EAAE,aAAa,EAAY,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AACxC,OAAO,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AACjE,OAAO,iBAAiB,EAAE,EACtB,6BAA6B,EAEhC,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,MAAM,SAAS,CAAC;AAI5B,cAAc;AAGd,UAAU,4BAA4B;IAClC,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC;CAC5C;AAED;;;;;;;;;GASG;AACH,cAAM,wBAAyB,SAAQ,iBAAiB,CAAC,4BAA4B,CAAC;IA2BlF,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAQ;IAwCjD;;OAEG;IACH,IAAI,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,GAAG,IAAI,CAEnD;IAOD;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,KAAK,CAEjB;IAmDD;;;;OAIG;IACH,IAAI,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,CAQ/B;IAED;;;;;OAKG;IACH,IAAI,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAGhC;IAED,kBAAkB;IAClB,KAAK,CACD,IAAI,EAAE,6BAA6B,GAAG,aAAa,CAAC,6BAA6B,CAAC,EAClF,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,GAC/B,KAAK,CAAC,6BAA6B,CAAC;IAQvC,kBAAkB;IAClB,OAAO,CACH,IAAI,EAAE,6BAA6B,GAAG,aAAa,CAAC,6BAA6B,CAAC,EAClF,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,GAC/B,KAAK,CAAC,6BAA6B,CAAC;IAIvC,kBAAkB;IACZ,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAsEpC,kBAAkB;IAClB,IAAI,YAAY,IAAI,OAAO,CAE1B;CA6BJ;AAED,eAAe,wBAAwB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linked_records_query_result.d.ts","sourceRoot":"","sources":["../../../../src/models/linked_records_query_result.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,eAAe,EAAE,aAAa,EAAY,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"linked_records_query_result.d.ts","sourceRoot":"","sources":["../../../../src/models/linked_records_query_result.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,eAAe,EAAE,aAAa,EAAY,MAAM,kBAAkB,CAAC;AAG3E,OAAO,iBAAiB,EAAE,EACtB,6BAA6B,EAEhC,MAAM,uBAAuB,CAAC;AAI/B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,MAAM,MAAM,UAAU,CAAC;AAG9B,eAAO,MAAM,gBAAgB,0BAM5B,CAAC;AAEF,eAAe;AACf,UAAU,4BAA4B;CAAG;AAEzC;;;;;;;;GAQG;AACH,cAAM,wBAAyB,SAAQ,iBAAiB,CAAC,4BAA4B,CAAC;IA2ElF;;;;;;;;OAQG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAYD;;OAEG;IACH,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,CAS7B;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAQ3B;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAIhC;IAED,kBAAkB;IAClB,KAAK,CACD,IAAI,EAAE,6BAA6B,GAAG,aAAa,CAAC,6BAA6B,CAAC,EAClF,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,GAC/B,KAAK,CAAC,6BAA6B,CAAC;IAmBvC,kBAAkB;IAClB,OAAO,CACH,IAAI,EAAE,6BAA6B,GAAG,aAAa,CAAC,6BAA6B,CAAC,EAClF,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,GAC/B,KAAK,CAAC,6BAA6B,CAAC;IAqBvC,kBAAkB;IACZ,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAuEpC;;;;OAIG;IACH,IAAI,SAAS,WAEZ;CAkXJ;AAED,eAAe,wBAAwB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../../../../src/models/mutations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../../../../src/models/mutations.ts"],"names":[],"mappings":"AAwtBA,eAAe,SAAS,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/** @module @airtable/blocks/models: Record */ /** */
|
|
2
2
|
import { Color } from '../colors';
|
|
3
|
+
import { RecordData } from '../types/record';
|
|
3
4
|
import { FieldId } from '../types/field';
|
|
4
5
|
import { ViewId } from '../types/view';
|
|
5
|
-
import { ObjectValues
|
|
6
|
+
import { ObjectValues } from '../private_utils';
|
|
6
7
|
import AbstractModel from './abstract_model';
|
|
7
8
|
import Field from './field';
|
|
8
9
|
import View from './view';
|
|
@@ -22,12 +23,6 @@ declare const WatchableRecordKeys: Readonly<{
|
|
|
22
23
|
* - `'colorInView:' + someViewId`
|
|
23
24
|
*/
|
|
24
25
|
declare type WatchableRecordKey = ObjectValues<typeof WatchableRecordKeys> | string;
|
|
25
|
-
/**
|
|
26
|
-
* TODO: (#proj-blocks-sdk-record-limits) Record should probably not be an AbstractModel,
|
|
27
|
-
* in the meantime it will return true if it's loaded, throwing/returning null
|
|
28
|
-
* if it's not loaded (returning null / throwing is how AbstractModel works).
|
|
29
|
-
*/
|
|
30
|
-
declare type RecordStoreIsLoaded = true;
|
|
31
26
|
/**
|
|
32
27
|
* Model class representing a record in a table.
|
|
33
28
|
*
|
|
@@ -36,7 +31,7 @@ declare type RecordStoreIsLoaded = true;
|
|
|
36
31
|
*
|
|
37
32
|
* @docsPath models/Record
|
|
38
33
|
*/
|
|
39
|
-
declare class Record extends AbstractModel<
|
|
34
|
+
declare class Record extends AbstractModel<RecordData, WatchableRecordKey> {
|
|
40
35
|
/**
|
|
41
36
|
* Gets the cell value of the given field for this record.
|
|
42
37
|
*
|
|
@@ -177,10 +172,6 @@ declare class Record extends AbstractModel<RecordStoreIsLoaded, WatchableRecordK
|
|
|
177
172
|
* ```
|
|
178
173
|
*/
|
|
179
174
|
get createdTime(): Date;
|
|
180
|
-
/** @inheritdoc */
|
|
181
|
-
watch(keys: WatchableRecordKey | ReadonlyArray<WatchableRecordKey>, callbackForRegistration: FlowAnyFunction, context?: FlowAnyObject | null): Array<WatchableRecordKey>;
|
|
182
|
-
/** @inheritdoc */
|
|
183
|
-
unwatch(keys: WatchableRecordKey | ReadonlyArray<WatchableRecordKey>, callbackForRegistration: FlowAnyFunction, context?: FlowAnyObject | null): Array<WatchableRecordKey>;
|
|
184
175
|
}
|
|
185
176
|
export default Record;
|
|
186
177
|
//# sourceMappingURL=record.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../../src/models/record.ts"],"names":[],"mappings":"AAAA,8CAA8C,CAAC,MAAM;AACrD,OAAO,EAAC,KAAK,EAAC,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../../src/models/record.ts"],"names":[],"mappings":"AAAA,8CAA8C,CAAC,MAAM;AACrD,OAAO,EAAC,KAAK,EAAC,MAAM,WAAW,CAAC;AAEhC,OAAO,EAAC,UAAU,EAAW,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAY,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAwC,YAAY,EAAgB,MAAM,kBAAkB,CAAC;AAGpG,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,MAAM,SAAS,CAAC;AAG5B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAA0B,EAAC,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AAC/E,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AAGrE,QAAA,MAAM,mBAAmB;;;;EAMvB,CAAC;AAOH;;;;;;;GAOG;AACH,aAAK,kBAAkB,GAAG,YAAY,CAAC,OAAO,mBAAmB,CAAC,GAAG,MAAM,CAAC;AAE5E;;;;;;;GAOG;AACH,cAAM,MAAO,SAAQ,aAAa,CAAC,UAAU,EAAE,kBAAkB,CAAC;IAsG9D;;;;;;;;;;OAUG;IACH,YAAY,CAAC,yBAAyB,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO;IAoC1E;;;;;;;;;;OAUG;IACH,oBAAoB,CAAC,yBAAyB,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM;IAuBjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,sCAAsC,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM;IAS3F;;;;;;;OAOG;IACH,cAAc,CAAC,sBAAsB,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI;IAK5E;;;;;;;OAOG;IACH,iBAAiB,CAAC,sBAAsB,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;IAOvE;;;;;;;OAOG;IACH,2BAA2B,CACvB,yBAAyB,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,EACnD,IAAI,GAAE,qBAA0B,GACjC,wBAAwB;IAoB3B;;;;;;;;;OASG;IACG,gCAAgC,CAClC,yBAAyB,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,EACnD,IAAI,GAAE,qBAA0B,GACjC,OAAO,CAAC,wBAAwB,CAAC;IAKpC;;;;;;;;OAQG;IACH,IAAI,GAAG,IAAI,MAAM,CAKhB;IACD;;;;;;;;OAQG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD;;;;;;;;;;;OAWG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;IACD;;;;;;;;;OASG;IACH,IAAI,WAAW,IAAI,IAAI,CAEtB;CAiCJ;AAED,eAAe,MAAM,CAAC"}
|
|
@@ -7,8 +7,7 @@ import AbstractModelWithAsyncData from './abstract_model_with_async_data';
|
|
|
7
7
|
import Field from './field';
|
|
8
8
|
import Record from './record';
|
|
9
9
|
import { RecordColorMode } from './record_coloring';
|
|
10
|
-
|
|
11
|
-
export declare const WatchableRecordQueryResultKeys: Readonly<{
|
|
10
|
+
declare const WatchableRecordQueryResultKeys: Readonly<{
|
|
12
11
|
records: "records";
|
|
13
12
|
recordIds: "recordIds";
|
|
14
13
|
cellValues: "cellValues";
|
|
@@ -85,7 +84,7 @@ export interface ViewMetadataForUpdate {
|
|
|
85
84
|
* ```
|
|
86
85
|
*
|
|
87
86
|
* ## fields
|
|
88
|
-
* Generally, it's a good idea to load as little data into your
|
|
87
|
+
* Generally, it's a good idea to load as little data into your extension as possible - Airtable bases
|
|
89
88
|
* can get pretty big, and we have to keep all that information in memory and up to date if you ask
|
|
90
89
|
* for it. The fields option lets you make sure that only data relevant to you is loaded.
|
|
91
90
|
*
|
|
@@ -219,7 +218,7 @@ export declare type RecordIdQueryResultOpts = Pick<RecordQueryResultOpts, 'sorts
|
|
|
219
218
|
* You can get one of these with `record.selectLinkedRecordsFromCell(someField)`.
|
|
220
219
|
*
|
|
221
220
|
* Once you've got a query result, you need to load it before you can start working with it -
|
|
222
|
-
*
|
|
221
|
+
* extensions don't load record data by default. We recommend using {@link useRecords},
|
|
223
222
|
* {@link useRecordIds}, {@link useRecordById} or {@link useLoadable} to handle this.
|
|
224
223
|
*
|
|
225
224
|
* If you're not using a query result in a React component, you can manually load the data and
|
|
@@ -257,7 +256,7 @@ declare abstract class RecordQueryResult<DataType = {}> extends AbstractModelWit
|
|
|
257
256
|
* Throws if data is not loaded yet.
|
|
258
257
|
* Can be watched.
|
|
259
258
|
*/
|
|
260
|
-
abstract get recordIds():
|
|
259
|
+
abstract get recordIds(): Array<RecordId>;
|
|
261
260
|
/**
|
|
262
261
|
* The fields that were used to create this QueryResult.
|
|
263
262
|
* Null if fields were not specified, which means the QueryResult
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record_query_result.d.ts","sourceRoot":"","sources":["../../../../src/models/record_query_result.ts"],"names":[],"mappings":"AAAA,yDAAyD,CAAC,MAAM;AAChE,OAAe,EAAC,KAAK,EAAC,MAAM,WAAW,CAAC;AAExC,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAY,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAIH,YAAY,EAGZ,eAAe,EACf,aAAa,EAChB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,0BAA0B,MAAM,kCAAkC,CAAC;AAE1E,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,OAAO,EAIH,eAAe,EAClB,MAAM,mBAAmB,CAAC;AAE3B,
|
|
1
|
+
{"version":3,"file":"record_query_result.d.ts","sourceRoot":"","sources":["../../../../src/models/record_query_result.ts"],"names":[],"mappings":"AAAA,yDAAyD,CAAC,MAAM;AAChE,OAAe,EAAC,KAAK,EAAC,MAAM,WAAW,CAAC;AAExC,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAY,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAIH,YAAY,EAGZ,eAAe,EACf,aAAa,EAChB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,0BAA0B,MAAM,kCAAkC,CAAC;AAE1E,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,OAAO,EAIH,eAAe,EAClB,MAAM,mBAAmB,CAAC;AAE3B,QAAA,MAAM,8BAA8B;;;;;;;;EAQlC,CAAC;AAIH;;;;;;;;GAQG;AACH,oBAAY,6BAA6B,GACnC,YAAY,CAAC,OAAO,8BAA8B,CAAC,GACnD,MAAM,CAAC;AAEb,MAAM;AACN,UAAU,UAAU;IAChB,wCAAwC;IACxC,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IAChC,6CAA6C;IAC7C,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC9B;AAED,cAAc;AACd,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAChC,wCAAwC;IACxC,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IAChC,wDAAwD;IACxD,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;CAC1C;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IAClC,4FAA4F;IAC5F,WAAW,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CAC/D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuGK;AACL,MAAM,WAAW,qBAAqB;IAClC,kDAAkD;IAClD,KAAK,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC1B,uFAAuF;IACvF,MAAM,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC;IAC/D,yDAAyD;IACzD,eAAe,CAAC,EAAE,IAAI,GAAG,eAAe,CAAC;CAC5C;AAED;;;;;;;;;;;;KAYK;AACL,oBAAY,2BAA2B,GAAG,IAAI,CAAC,qBAAqB,EAAE,QAAQ,GAAG,iBAAiB,CAAC,CAAC;AAEpG;;;;;;;;;;;;;;;;KAgBK;AACL,oBAAY,uBAAuB,GAAG,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;AA+C3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,uBAAe,iBAAiB,CAAC,QAAQ,GAAG,EAAE,CAAE,SAAQ,0BAA0B,CAC9E,QAAQ,EACR,6BAA6B,CAChC;IAKG;;;;OAIG;IACH,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;IAQ1C;;;;OAIG;IACH,QAAQ,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IA2I3C;;;;OAIG;IACH,IAAI,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAM3B;IAED;;;;;OAKG;IACH,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI;IASxD;;;;;OAKG;IACH,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAiBzC;;;;;OAKG;IACH,SAAS,CAAC,gBAAgB,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO;IAMvD;;;;;;OAMG;IACH,cAAc,CAAC,gBAAgB,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI;IAsCjE;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,KAAK,CACD,IAAI,EAAE,6BAA6B,GAAG,aAAa,CAAC,6BAA6B,CAAC,EAClF,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,GAC/B,KAAK,CAAC,6BAA6B,CAAC;IAUvC;;;;;;;;;;;;;OAaG;IACH,OAAO,CACH,IAAI,EAAE,6BAA6B,GAAG,aAAa,CAAC,6BAA6B,CAAC,EAClF,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,GAC/B,KAAK,CAAC,6BAA6B,CAAC;CAoK1C;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record_store.d.ts","sourceRoot":"","sources":["../../../../src/models/record_store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"record_store.d.ts","sourceRoot":"","sources":["../../../../src/models/record_store.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,wBAAwB;;;;EAInC,CAAC"}
|
|
@@ -32,7 +32,7 @@ declare type WatchableSessionKey = ObjectValues<typeof WatchableSessionKeys>;
|
|
|
32
32
|
* if (session.currentUser !== null) {
|
|
33
33
|
* return <span>The current user's name is {session.currentUser.name}</span>;
|
|
34
34
|
* } else {
|
|
35
|
-
* return <span>This
|
|
35
|
+
* return <span>This extension is being viewed in a public share</span>;
|
|
36
36
|
* }
|
|
37
37
|
* }
|
|
38
38
|
* ```
|
|
@@ -40,7 +40,7 @@ declare type WatchableSessionKey = ObjectValues<typeof WatchableSessionKeys>;
|
|
|
40
40
|
*/
|
|
41
41
|
declare class Session extends AbstractModel<SessionData, WatchableSessionKey> {
|
|
42
42
|
/**
|
|
43
|
-
* The current user, or `null` if the
|
|
43
|
+
* The current user, or `null` if the extension is running in a publicly shared base.
|
|
44
44
|
*
|
|
45
45
|
* @example
|
|
46
46
|
* ```js
|
|
@@ -50,7 +50,7 @@ declare class Session extends AbstractModel<SessionData, WatchableSessionKey> {
|
|
|
50
50
|
* const session = useSession();
|
|
51
51
|
*
|
|
52
52
|
* if (!session.currentUser) {
|
|
53
|
-
* return <div>This
|
|
53
|
+
* return <div>This extension is being used in a public share.</div>;
|
|
54
54
|
* }
|
|
55
55
|
*
|
|
56
56
|
* return <ul>
|
|
@@ -148,8 +148,8 @@ declare class Table extends AbstractModel<TableData, WatchableTableKey> {
|
|
|
148
148
|
* The field matching the given ID or name. Returns `null` if no matching field exists within
|
|
149
149
|
* this table.
|
|
150
150
|
*
|
|
151
|
-
* This method is convenient when building an
|
|
152
|
-
*
|
|
151
|
+
* This method is convenient when building an extension for a specific base, but for more generic
|
|
152
|
+
* extensions the best practice is to use the {@link getFieldByIdIfExists} or
|
|
153
153
|
* {@link getFieldByNameIfExists} methods instead.
|
|
154
154
|
*
|
|
155
155
|
* @param fieldIdOrName The ID or name of the field you're looking for.
|
|
@@ -160,8 +160,8 @@ declare class Table extends AbstractModel<TableData, WatchableTableKey> {
|
|
|
160
160
|
* Use {@link getFieldIfExists} instead if you are unsure whether a field exists with the given
|
|
161
161
|
* name/ID.
|
|
162
162
|
*
|
|
163
|
-
* This method is convenient when building an
|
|
164
|
-
*
|
|
163
|
+
* This method is convenient when building an extension for a specific base, but for more generic
|
|
164
|
+
* extensions the best practice is to use the {@link getFieldById} or {@link getFieldByName} methods
|
|
165
165
|
* instead.
|
|
166
166
|
*
|
|
167
167
|
* @param fieldIdOrName The ID or name of the field you're looking for.
|
|
@@ -242,8 +242,8 @@ declare class Table extends AbstractModel<TableData, WatchableTableKey> {
|
|
|
242
242
|
* The view matching the given ID or name. Returns `null` if no matching view exists within
|
|
243
243
|
* this table.
|
|
244
244
|
*
|
|
245
|
-
* This method is convenient when building an
|
|
246
|
-
*
|
|
245
|
+
* This method is convenient when building an extension for a specific base, but for more generic
|
|
246
|
+
* extensions the best practice is to use the {@link getViewByIdIfExists} or
|
|
247
247
|
* {@link getViewByNameIfExists} methods instead.
|
|
248
248
|
*
|
|
249
249
|
* @param viewIdOrName The ID or name of the view you're looking for.
|
|
@@ -254,8 +254,8 @@ declare class Table extends AbstractModel<TableData, WatchableTableKey> {
|
|
|
254
254
|
* Use {@link getViewIfExists} instead if you are unsure whether a view exists with the given
|
|
255
255
|
* name/ID.
|
|
256
256
|
*
|
|
257
|
-
* This method is convenient when building an
|
|
258
|
-
*
|
|
257
|
+
* This method is convenient when building an extension for a specific base, but for more generic
|
|
258
|
+
* extensions the best practice is to use the {@link getViewById} or {@link getViewByName} methods
|
|
259
259
|
* instead.
|
|
260
260
|
*
|
|
261
261
|
* @param viewIdOrName The ID or name of the view you're looking for.
|
|
@@ -346,7 +346,7 @@ declare class Table extends AbstractModel<TableData, WatchableTableKey> {
|
|
|
346
346
|
*
|
|
347
347
|
* This action is asynchronous: `await` the returned promise if you wish to wait for the updated
|
|
348
348
|
* cell values to be persisted to Airtable servers.
|
|
349
|
-
* Updates are applied optimistically locally, so your changes will be reflected in your
|
|
349
|
+
* Updates are applied optimistically locally, so your changes will be reflected in your extension
|
|
350
350
|
* before the promise resolves.
|
|
351
351
|
*
|
|
352
352
|
* @param recordOrRecordId the record to update
|
|
@@ -357,7 +357,7 @@ declare class Table extends AbstractModel<TableData, WatchableTableKey> {
|
|
|
357
357
|
* if (table.hasPermissionToUpdateRecord(record, recordFields)) {
|
|
358
358
|
* table.updateRecordAsync(record, recordFields);
|
|
359
359
|
* }
|
|
360
|
-
* // The updated values will now show in your
|
|
360
|
+
* // The updated values will now show in your extension (eg in
|
|
361
361
|
* // `table.selectRecords()` result) but are still being saved to Airtable
|
|
362
362
|
* // servers (e.g. other users may not be able to see them yet).
|
|
363
363
|
* }
|
|
@@ -430,7 +430,7 @@ declare class Table extends AbstractModel<TableData, WatchableTableKey> {
|
|
|
430
430
|
*
|
|
431
431
|
* // Check if user could update specific fields, when you don't know the
|
|
432
432
|
* // specific record that will be updated yet. (for example, if the field is
|
|
433
|
-
* // selected by the user and you want to check if your
|
|
433
|
+
* // selected by the user and you want to check if your extension can write to it).
|
|
434
434
|
* const updateUnknownRecordCheckResult =
|
|
435
435
|
* table.checkPermissionsForUpdateRecord(undefined, {
|
|
436
436
|
* 'My field name': 'updated value',
|
|
@@ -441,7 +441,7 @@ declare class Table extends AbstractModel<TableData, WatchableTableKey> {
|
|
|
441
441
|
*
|
|
442
442
|
* // Check if user could perform updates within the table, without knowing the
|
|
443
443
|
* // specific record or fields that will be updated yet (e.g., to render your
|
|
444
|
-
* //
|
|
444
|
+
* // extension in "read only" mode).
|
|
445
445
|
* const updateUnknownRecordAndFieldsCheckResult =
|
|
446
446
|
* table.checkPermissionsForUpdateRecord();
|
|
447
447
|
* ```
|
|
@@ -482,7 +482,7 @@ declare class Table extends AbstractModel<TableData, WatchableTableKey> {
|
|
|
482
482
|
*
|
|
483
483
|
* // Check if user could update specific fields, when you don't know the
|
|
484
484
|
* // specific record that will be updated yet (e.g. if the field is selected
|
|
485
|
-
* // by the user and you want to check if your
|
|
485
|
+
* // by the user and you want to check if your extension can write to it).
|
|
486
486
|
* const canUpdateUnknownRecord =
|
|
487
487
|
* table.hasPermissionToUpdateRecord(undefined, {
|
|
488
488
|
* 'My field name': 'updated value',
|
|
@@ -493,7 +493,7 @@ declare class Table extends AbstractModel<TableData, WatchableTableKey> {
|
|
|
493
493
|
*
|
|
494
494
|
* // Check if user could perform updates within the table, without knowing the
|
|
495
495
|
* // specific record or fields that will be updated yet. (for example, to
|
|
496
|
-
* // render your
|
|
496
|
+
* // render your extension in "read only" mode)
|
|
497
497
|
* const canUpdateUnknownRecordAndFields = table.hasPermissionToUpdateRecord();
|
|
498
498
|
* ```
|
|
499
499
|
*/
|
|
@@ -512,7 +512,7 @@ declare class Table extends AbstractModel<TableData, WatchableTableKey> {
|
|
|
512
512
|
*
|
|
513
513
|
* This action is asynchronous: `await` the returned promise if you wish to wait for the
|
|
514
514
|
* updates to be persisted to Airtable servers.
|
|
515
|
-
* Updates are applied optimistically locally, so your changes will be reflected in your
|
|
515
|
+
* Updates are applied optimistically locally, so your changes will be reflected in your extension
|
|
516
516
|
* before the promise resolves.
|
|
517
517
|
*
|
|
518
518
|
* @param records Array of objects containing recordId and fields/cellValues to update for that record (specified as an object mapping `FieldId` or field name to cell value)
|
|
@@ -559,7 +559,7 @@ declare class Table extends AbstractModel<TableData, WatchableTableKey> {
|
|
|
559
559
|
* if (table.hasPermissionToUpdateRecords(recordsToUpdate)) {
|
|
560
560
|
* table.updateRecordsAsync(recordsToUpdate);
|
|
561
561
|
* }
|
|
562
|
-
* // The records are now updated within your
|
|
562
|
+
* // The records are now updated within your extension (eg will be reflected in
|
|
563
563
|
* // `table.selectRecords()`) but are still being saved to Airtable servers
|
|
564
564
|
* // (e.g. they may not be updated for other users yet).
|
|
565
565
|
* }
|
|
@@ -707,7 +707,7 @@ declare class Table extends AbstractModel<TableData, WatchableTableKey> {
|
|
|
707
707
|
*
|
|
708
708
|
* This action is asynchronous: `await` the returned promise if you wish to wait for the
|
|
709
709
|
* delete to be persisted to Airtable servers.
|
|
710
|
-
* Updates are applied optimistically locally, so your changes will be reflected in your
|
|
710
|
+
* Updates are applied optimistically locally, so your changes will be reflected in your extension
|
|
711
711
|
* before the promise resolves.
|
|
712
712
|
*
|
|
713
713
|
* @param recordOrRecordId the record to be deleted
|
|
@@ -717,7 +717,7 @@ declare class Table extends AbstractModel<TableData, WatchableTableKey> {
|
|
|
717
717
|
* if (table.hasPermissionToDeleteRecord(record)) {
|
|
718
718
|
* table.deleteRecordAsync(record);
|
|
719
719
|
* }
|
|
720
|
-
* // The record is now deleted within your
|
|
720
|
+
* // The record is now deleted within your extension (eg will not be returned
|
|
721
721
|
* // in `table.selectRecords`) but it is still being saved to Airtable
|
|
722
722
|
* // servers (e.g. it may not look deleted to other users yet).
|
|
723
723
|
* }
|
|
@@ -795,7 +795,7 @@ declare class Table extends AbstractModel<TableData, WatchableTableKey> {
|
|
|
795
795
|
*
|
|
796
796
|
* This action is asynchronous: `await` the returned promise if you wish to wait for the
|
|
797
797
|
* delete to be persisted to Airtable servers.
|
|
798
|
-
* Updates are applied optimistically locally, so your changes will be reflected in your
|
|
798
|
+
* Updates are applied optimistically locally, so your changes will be reflected in your extension
|
|
799
799
|
* before the promise resolves.
|
|
800
800
|
*
|
|
801
801
|
* @param recordsOrRecordIds Array of Records and RecordIds
|
|
@@ -806,7 +806,7 @@ declare class Table extends AbstractModel<TableData, WatchableTableKey> {
|
|
|
806
806
|
* if (table.hasPermissionToDeleteRecords(records)) {
|
|
807
807
|
* table.deleteRecordsAsync(records);
|
|
808
808
|
* }
|
|
809
|
-
* // The records are now deleted within your
|
|
809
|
+
* // The records are now deleted within your extension (eg will not be
|
|
810
810
|
* // returned in `table.selectRecords()`) but are still being saved to
|
|
811
811
|
* // Airtable servers (e.g. they may not look deleted to other users yet).
|
|
812
812
|
* }
|
|
@@ -886,7 +886,7 @@ declare class Table extends AbstractModel<TableData, WatchableTableKey> {
|
|
|
886
886
|
*
|
|
887
887
|
* This action is asynchronous: `await` the returned promise if you wish to wait for the new
|
|
888
888
|
* record to be persisted to Airtable servers.
|
|
889
|
-
* Updates are applied optimistically locally, so your changes will be reflected in your
|
|
889
|
+
* Updates are applied optimistically locally, so your changes will be reflected in your extension
|
|
890
890
|
* before the promise resolves.
|
|
891
891
|
*
|
|
892
892
|
* The returned promise will resolve to the RecordId of the new record once it is persisted.
|
|
@@ -898,7 +898,7 @@ declare class Table extends AbstractModel<TableData, WatchableTableKey> {
|
|
|
898
898
|
* if (table.hasPermissionToCreateRecord(recordFields)) {
|
|
899
899
|
* table.createRecordAsync(recordFields);
|
|
900
900
|
* }
|
|
901
|
-
* // You can now access the new record in your
|
|
901
|
+
* // You can now access the new record in your extension (eg
|
|
902
902
|
* // `table.selectRecords()`) but it is still being saved to Airtable
|
|
903
903
|
* // servers (e.g. other users may not be able to see it yet).
|
|
904
904
|
* }
|
|
@@ -1018,7 +1018,7 @@ declare class Table extends AbstractModel<TableData, WatchableTableKey> {
|
|
|
1018
1018
|
*
|
|
1019
1019
|
* This action is asynchronous: `await` the returned promise if you wish to wait for the new
|
|
1020
1020
|
* record to be persisted to Airtable servers.
|
|
1021
|
-
* Updates are applied optimistically locally, so your changes will be reflected in your
|
|
1021
|
+
* Updates are applied optimistically locally, so your changes will be reflected in your extension
|
|
1022
1022
|
* before the promise resolves.
|
|
1023
1023
|
*
|
|
1024
1024
|
* The returned promise will resolve to an array of RecordIds of the new records once the new
|
|
@@ -1062,7 +1062,7 @@ declare class Table extends AbstractModel<TableData, WatchableTableKey> {
|
|
|
1062
1062
|
* if (table.hasPermissionToCreateRecords(recordDefs)) {
|
|
1063
1063
|
* table.createRecordsAsync(recordDefs);
|
|
1064
1064
|
* }
|
|
1065
|
-
* // You can now access the new records in your
|
|
1065
|
+
* // You can now access the new records in your extension (e.g.
|
|
1066
1066
|
* // `table.selectRecords()`) but they are still being saved to Airtable
|
|
1067
1067
|
* // servers (e.g. other users may not be able to see them yet.)
|
|
1068
1068
|
* }
|
|
@@ -1228,7 +1228,7 @@ declare class Table extends AbstractModel<TableData, WatchableTableKey> {
|
|
|
1228
1228
|
*
|
|
1229
1229
|
* This action is asynchronous. Unlike new records, new fields are **not** created
|
|
1230
1230
|
* optimistically locally. You must `await` the returned promise before using the new
|
|
1231
|
-
* field in your
|
|
1231
|
+
* field in your extension.
|
|
1232
1232
|
*
|
|
1233
1233
|
* @param name name for the field. must be case-insensitive unique
|
|
1234
1234
|
* @param type type for the field
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { FlowAnyObject, FlowAnyFunction } from '../private_utils';
|
|
2
|
+
import { NormalizedGroupLevel } from '../types/airtable_interface';
|
|
2
3
|
import RecordQueryResult, { WatchableRecordQueryResultKey } from './record_query_result';
|
|
3
4
|
import Field from './field';
|
|
4
5
|
import GroupedRecordQueryResult from './grouped_record_query_result';
|
|
5
6
|
import { GroupLevels } from './view_metadata_query_result';
|
|
6
7
|
/** @hidden */
|
|
7
8
|
interface TableOrViewQueryResultData {
|
|
8
|
-
recordIds:
|
|
9
|
+
recordIds: Array<string> | null;
|
|
10
|
+
groups: Array<GroupedRecordQueryResult> | null;
|
|
11
|
+
groupLevels: Array<NormalizedGroupLevel> | null;
|
|
9
12
|
}
|
|
10
13
|
/**
|
|
11
14
|
* Represents a set of records directly from a view or table. See {@link RecordQueryResult} for main
|
|
@@ -30,7 +33,7 @@ declare class TableOrViewQueryResult extends RecordQueryResult<TableOrViewQueryR
|
|
|
30
33
|
*
|
|
31
34
|
* @hidden
|
|
32
35
|
*/
|
|
33
|
-
get groups():
|
|
36
|
+
get groups(): Array<GroupedRecordQueryResult> | null;
|
|
34
37
|
/**
|
|
35
38
|
* The GroupLevels in this RecordQueryResult.
|
|
36
39
|
* Throws if data is not loaded yet.
|
|
@@ -53,7 +56,6 @@ declare class TableOrViewQueryResult extends RecordQueryResult<TableOrViewQueryR
|
|
|
53
56
|
loadDataAsync(): Promise<void>;
|
|
54
57
|
/** @inheritdoc */
|
|
55
58
|
unloadData(): void;
|
|
56
|
-
_unloadDataAsync: () => Promise<void>;
|
|
57
59
|
}
|
|
58
60
|
export default TableOrViewQueryResult;
|
|
59
61
|
//# sourceMappingURL=table_or_view_query_result.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table_or_view_query_result.d.ts","sourceRoot":"","sources":["../../../../src/models/table_or_view_query_result.ts"],"names":[],"mappings":"AAGA,OAAO,EAGH,aAAa,
|
|
1
|
+
{"version":3,"file":"table_or_view_query_result.d.ts","sourceRoot":"","sources":["../../../../src/models/table_or_view_query_result.ts"],"names":[],"mappings":"AAGA,OAAO,EAGH,aAAa,EAEb,eAAe,EAElB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAU,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AAK1E,OAAO,iBAAiB,EAAE,EACtB,6BAA6B,EAGhC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,MAAM,SAAS,CAAC;AAK5B,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;AAEzD,cAAc;AACd,UAAU,0BAA0B;IAChC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,KAAK,CAAC,wBAAwB,CAAC,GAAG,IAAI,CAAC;IAC/C,WAAW,EAAE,KAAK,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC;CACnD;AAED;;;;;;;;GAQG;AACH,cAAM,sBAAuB,SAAQ,iBAAiB,CAAC,0BAA0B,CAAC;IA4J9E;;;;OAIG;IACH,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,CAO7B;IACD;;;;;;OAMG;IACH,IAAI,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,GAAG,IAAI,CAMnD;IACD;;;;;;OAMG;IACH,IAAI,WAAW,IAAI,WAAW,GAAG,IAAI,CASpC;IAkBD;;;;OAIG;IACH,IAAI,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAkBhC;IAqED,kBAAkB;IAClB,KAAK,CACD,IAAI,EAAE,6BAA6B,GAAG,aAAa,CAAC,6BAA6B,CAAC,EAClF,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,GAC/B,KAAK,CAAC,6BAA6B,CAAC;IA0CvC,kBAAkB;IAClB,OAAO,CACH,IAAI,EAAE,6BAA6B,GAAG,aAAa,CAAC,6BAA6B,CAAC,EAClF,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,GAC/B,KAAK,CAAC,6BAA6B,CAAC;IA8BvC,kBAAkB;IACZ,aAAa;IAyHnB,kBAAkB;IAClB,UAAU;CAqZb;AAED,eAAe,sBAAsB,CAAC"}
|