@airtable/blocks 0.0.0-experimental-28533a19d-20251016 → 0.0.0-experimental-e7419444f-20251120
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/base/models/record.js +5 -13
- package/dist/esm/interface/models/record.js +7 -1
- package/dist/esm/shared/models/record_core.js +8 -5
- package/dist/esm/shared/sdk_core.js +1 -1
- package/dist/types/src/base/models/record.d.ts.map +1 -1
- package/dist/types/src/interface/models/record.d.ts +1 -0
- package/dist/types/src/interface/models/record.d.ts.map +1 -1
- package/dist/types/src/shared/models/record_core.d.ts +2 -1
- package/dist/types/src/shared/models/record_core.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** @module @airtable/blocks/models: Record */ /** */
|
|
2
2
|
|
|
3
|
-
import { RecordCore, WatchableRecordKeysCore } from '../../shared/models/record_core';
|
|
4
|
-
import { isEnumValue
|
|
3
|
+
import { RecordCore, WatchableCellValueInFieldKeyPrefix, WatchableRecordKeysCore } from '../../shared/models/record_core';
|
|
4
|
+
import { isEnumValue } from '../../shared/private_utils';
|
|
5
5
|
import { invariant } from '../../shared/error_utils';
|
|
6
6
|
import colorUtils from '../../shared/color_utils';
|
|
7
7
|
import LinkedRecordsQueryResult from './linked_records_query_result';
|
|
@@ -11,11 +11,9 @@ const WatchableRecordKeys = Object.freeze({
|
|
|
11
11
|
...WatchableRecordKeysCore,
|
|
12
12
|
commentCount: 'commentCount'
|
|
13
13
|
});
|
|
14
|
-
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
const WatchableCellValueInFieldKeyPrefix = 'cellValueInField:';
|
|
18
|
-
// TODO: load view data when this is watched. see previous comment.
|
|
14
|
+
|
|
15
|
+
// TODO: Should we load view data when this is watched?
|
|
16
|
+
// See comment on WatchableCellValueInFieldKeyPrefix.
|
|
19
17
|
const WatchableColorInViewKeyPrefix = 'colorInView:';
|
|
20
18
|
/**
|
|
21
19
|
* Any key within record that can be watched:
|
|
@@ -210,14 +208,8 @@ class Record extends RecordCore {
|
|
|
210
208
|
__triggerOnChangeForDirtyPaths(dirtyPaths) {
|
|
211
209
|
super.__triggerOnChangeForDirtyPaths(dirtyPaths);
|
|
212
210
|
const {
|
|
213
|
-
cellValuesByFieldId,
|
|
214
211
|
commentCount
|
|
215
212
|
} = dirtyPaths;
|
|
216
|
-
if (cellValuesByFieldId && !isObjectEmpty(cellValuesByFieldId)) {
|
|
217
|
-
for (const fieldId of Object.keys(cellValuesByFieldId)) {
|
|
218
|
-
this._onChange(WatchableCellValueInFieldKeyPrefix + fieldId, fieldId);
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
213
|
if (commentCount) {
|
|
222
214
|
this._onChange(WatchableRecordKeys.commentCount);
|
|
223
215
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { spawnError } from '../../shared/error_utils';
|
|
2
|
-
import { RecordCore, WatchableRecordKeysCore } from '../../shared/models/record_core';
|
|
2
|
+
import { RecordCore, WatchableCellValueInFieldKeyPrefix, WatchableRecordKeysCore } from '../../shared/models/record_core';
|
|
3
|
+
import { isEnumValue } from '../../shared/private_utils';
|
|
3
4
|
import { FieldType } from '../../shared/types/field_core';
|
|
4
5
|
const WatchableRecordKeys = Object.freeze({
|
|
5
6
|
...WatchableRecordKeysCore
|
|
@@ -8,6 +9,7 @@ const WatchableRecordKeys = Object.freeze({
|
|
|
8
9
|
* Any key within record that can be watched:
|
|
9
10
|
* - `'name'`
|
|
10
11
|
* - `'cellValues'`
|
|
12
|
+
* - `'cellValueInField:' + someFieldId`
|
|
11
13
|
*/
|
|
12
14
|
|
|
13
15
|
/**
|
|
@@ -20,6 +22,10 @@ const WatchableRecordKeys = Object.freeze({
|
|
|
20
22
|
export class Record extends RecordCore {
|
|
21
23
|
/** @internal */
|
|
22
24
|
static _className = 'Record';
|
|
25
|
+
/** @internal */
|
|
26
|
+
static _isWatchableKey(key) {
|
|
27
|
+
return isEnumValue(WatchableRecordKeys, key) || key.startsWith(WatchableCellValueInFieldKeyPrefix);
|
|
28
|
+
}
|
|
23
29
|
|
|
24
30
|
/**
|
|
25
31
|
* Fetch foreign records for a field. Subsequent calls to this method will
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cloneDeep,
|
|
1
|
+
import { cloneDeep, isObjectEmpty } from '../private_utils';
|
|
2
2
|
import { invariant } from '../error_utils';
|
|
3
3
|
import { FieldType } from '../types/field_core';
|
|
4
4
|
import AbstractModel from './abstract_model';
|
|
@@ -9,6 +9,10 @@ export const WatchableRecordKeysCore = Object.freeze({
|
|
|
9
9
|
// it's just inconsistent...)
|
|
10
10
|
cellValues: 'cellValues'
|
|
11
11
|
});
|
|
12
|
+
// TODO: load cell values in field when this is watched? This will
|
|
13
|
+
// cause the CellRenderer component to load cell values, which seems okay,
|
|
14
|
+
// but needs a little more thought.
|
|
15
|
+
export const WatchableCellValueInFieldKeyPrefix = 'cellValueInField:';
|
|
12
16
|
|
|
13
17
|
/** @hidden */
|
|
14
18
|
|
|
@@ -17,10 +21,6 @@ export class RecordCore extends AbstractModel {
|
|
|
17
21
|
/** @internal */
|
|
18
22
|
static _className = 'RecordCore';
|
|
19
23
|
/** @internal */
|
|
20
|
-
static _isWatchableKey(key) {
|
|
21
|
-
return isEnumValue(WatchableRecordKeysCore, key);
|
|
22
|
-
}
|
|
23
|
-
/** @internal */
|
|
24
24
|
|
|
25
25
|
/** @internal */
|
|
26
26
|
|
|
@@ -199,6 +199,9 @@ export class RecordCore extends AbstractModel {
|
|
|
199
199
|
// that we're not subscribed to).
|
|
200
200
|
|
|
201
201
|
this._onChange(WatchableRecordKeysCore.cellValues, Object.keys(cellValuesByFieldId));
|
|
202
|
+
for (const fieldId of Object.keys(cellValuesByFieldId)) {
|
|
203
|
+
this._onChange(WatchableCellValueInFieldKeyPrefix + fieldId, fieldId);
|
|
204
|
+
}
|
|
202
205
|
if (cellValuesByFieldId[this.parentTable.primaryField.id]) {
|
|
203
206
|
this._onChange(WatchableRecordKeysCore.name);
|
|
204
207
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../../../src/base/models/record.ts"],"names":[],"mappings":"AAAA,8CAA8C,CAAC,MAAM;AACrD,OAAO,EAAC,KAAK,KAAK,EAAC,MAAM,qBAAqB,CAAC;AAC/C,OAAO,
|
|
1
|
+
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../../../src/base/models/record.ts"],"names":[],"mappings":"AAAA,8CAA8C,CAAC,MAAM;AACrD,OAAO,EAAC,KAAK,KAAK,EAAC,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EACH,UAAU,EAGb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAC,KAAK,MAAM,EAAE,KAAK,OAAO,EAAC,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAc,KAAK,YAAY,EAAqB,MAAM,4BAA4B,CAAC;AAI9F,OAAO,EAAC,KAAK,SAAS,EAAC,MAAM,+BAA+B,CAAC;AAC7D,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AAGrE,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAA0B,EAAC,KAAK,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AAEpF,QAAA,MAAM,mBAAmB;;;;EAGvB,CAAC;AAKH;;;;;;;GAOG;AACH,KAAK,kBAAkB,GAAG,YAAY,CAAC,OAAO,mBAAmB,CAAC,GAAG,MAAM,CAAC;AAE5E;;;;;;;GAOG;AACH,cAAM,MAAO,SAAQ,UAAU,CAAC,WAAW,EAAE,kBAAkB,CAAC;IAoC5D;;;;;;;;;;OAUG;IACH,oBAAoB,CAAC,yBAAyB,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM;IASjF,gBAAgB,CAAC,KAAK,EAAE;QAAC,EAAE,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAC,GAAG,OAAO;IAShE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;OAWG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;CAiBJ;AAED,eAAe,MAAM,CAAC"}
|
|
@@ -11,6 +11,7 @@ declare const WatchableRecordKeys: Readonly<{
|
|
|
11
11
|
* Any key within record that can be watched:
|
|
12
12
|
* - `'name'`
|
|
13
13
|
* - `'cellValues'`
|
|
14
|
+
* - `'cellValueInField:' + someFieldId`
|
|
14
15
|
*/
|
|
15
16
|
type WatchableRecordKey = ObjectValues<typeof WatchableRecordKeys> | string;
|
|
16
17
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../../../src/interface/models/record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAErD,OAAO,
|
|
1
|
+
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../../../src/interface/models/record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAErD,OAAO,EACH,UAAU,EAGb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAc,KAAK,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAE1E,OAAO,EAAC,KAAK,QAAQ,EAAC,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAC,KAAK,KAAK,EAAC,MAAM,SAAS,CAAC;AAEnC,QAAA,MAAM,mBAAmB;;;EAEvB,CAAC;AACH;;;;;GAKG;AACH,KAAK,kBAAkB,GAAG,YAAY,CAAC,OAAO,mBAAmB,CAAC,GAAG,MAAM,CAAC;AAE5E;;;;;;GAMG;AACH,qBAAa,MAAO,SAAQ,UAAU,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;IAWxE;;;;;;;;OAQG;IACH,wBAAwB,CACpB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,MAAM,GACrB,OAAO,CAAC;QACP,OAAO,EAAE,aAAa,CAAC;YAAC,EAAE,EAAE,QAAQ,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAC,CAAC,CAAC;KACxD,CAAC;CAgBL"}
|
|
@@ -6,8 +6,9 @@ export declare const WatchableRecordKeysCore: Readonly<{
|
|
|
6
6
|
name: "name";
|
|
7
7
|
cellValues: "cellValues";
|
|
8
8
|
}>;
|
|
9
|
+
export declare const WatchableCellValueInFieldKeyPrefix = "cellValueInField:";
|
|
9
10
|
/** @hidden */
|
|
10
|
-
type WatchableRecordKeyCore = ObjectValues<typeof WatchableRecordKeysCore
|
|
11
|
+
type WatchableRecordKeyCore = ObjectValues<typeof WatchableRecordKeysCore> | string;
|
|
11
12
|
/** @hidden */
|
|
12
13
|
export declare abstract class RecordCore<SdkModeT extends SdkMode, WatchableKeys extends string = WatchableRecordKeyCore> extends AbstractModel<SdkModeT, SdkModeT['RecordDataT'], WatchableRecordKeyCore | WatchableKeys> {
|
|
13
14
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record_core.d.ts","sourceRoot":"","sources":["../../../../../src/shared/models/record_core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"record_core.d.ts","sourceRoot":"","sources":["../../../../../src/shared/models/record_core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAA+C,KAAK,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAEjG,OAAO,EAAC,KAAK,OAAO,EAAgB,MAAM,oBAAoB,CAAC;AAE/D,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAG7C,eAAO,MAAM,uBAAuB;;;EAKlC,CAAC;AAIH,eAAO,MAAM,kCAAkC,sBAAsB,CAAC;AAEtE,cAAc;AACd,KAAK,sBAAsB,GACrB,YAAY,CAAC,OAAO,uBAAuB,CAAC,GAE5C,MAAM,CAAC;AAEb,cAAc;AACd,8BAAsB,UAAU,CAC5B,QAAQ,SAAS,OAAO,EACxB,aAAa,SAAS,MAAM,GAAG,sBAAsB,CACvD,SAAQ,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,sBAAsB,GAAG,aAAa,CAAC;IAqF9F;;;;;;;;;;OAUG;IACH,YAAY,CAAC,yBAAyB,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO;IAoCvF;;;;;;;;;;OAUG;IACH,oBAAoB,CAAC,yBAAyB,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM;IAiB9F;;;;;;;;OAQG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD;;;;;;;;;OASG;IACH,IAAI,WAAW,IAAI,IAAI,CAEtB;CAuBJ"}
|