@airtable/blocks 0.0.0-experimental-20e3506bd-20250428 → 0.0.0-experimental-f1c9010b3-20250609
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 +561 -0
- package/dist/cjs/base/models/base.js +1 -1
- package/dist/cjs/base/models/create_aggregators.js +1 -1
- package/dist/cjs/base/models/cursor.js +2 -2
- package/dist/cjs/base/models/field.js +2 -2
- package/dist/cjs/base/models/record_coloring.js +2 -2
- package/dist/cjs/base/models/record_query_result.js +1 -1
- package/dist/cjs/base/models/session.js +4 -4
- package/dist/cjs/base/models/table.js +2 -2
- package/dist/cjs/base/models/view.js +1 -1
- package/dist/cjs/base/perform_record_action.js +1 -1
- package/dist/cjs/base/sdk.js +4 -1
- package/dist/cjs/base/settings_button.js +2 -2
- package/dist/cjs/base/types/view.js +1 -1
- package/dist/cjs/base/ui/base_provider.js +1 -1
- package/dist/cjs/base/ui/expand_record.js +1 -1
- package/dist/cjs/base/ui/expand_record_list.js +1 -1
- package/dist/cjs/base/ui/expand_record_picker_async.js +1 -1
- package/dist/cjs/base/ui/global_alert.js +1 -1
- package/dist/cjs/base/ui/initialize_block.js +20 -5
- package/dist/cjs/base/ui/progress_bar.js +1 -1
- package/dist/cjs/base/ui/select_and_select_buttons_helpers.js +2 -0
- package/dist/cjs/base/ui/system/utils/ensure_numbers_are_within_scale.js +2 -0
- package/dist/cjs/base/ui/ui.js +9 -1
- package/dist/cjs/base/ui/use_base.js +1 -1
- package/dist/cjs/base/ui/use_cursor.js +1 -1
- package/dist/cjs/{shared → base}/ui/use_loadable.js +6 -6
- package/dist/cjs/base/ui/use_record_action_data.js +2 -2
- package/dist/cjs/base/ui/use_records.js +5 -5
- package/dist/cjs/base/ui/use_session.js +1 -1
- package/dist/cjs/base/ui/use_settings_button.js +1 -1
- package/dist/cjs/base/ui/use_view_metadata.js +2 -2
- package/dist/cjs/base/ui/use_viewport.js +1 -1
- package/dist/cjs/base/ui/viewport_constraint.js +2 -2
- package/dist/cjs/base/viewport.js +1 -1
- package/dist/cjs/interface/models/models.js +53 -0
- package/dist/cjs/interface/models/table.js +45 -0
- package/dist/cjs/interface/sdk.js +0 -15
- package/dist/cjs/interface/ui/expand_record.js +2 -1
- package/dist/cjs/interface/ui/initialize_block.js +16 -4
- package/dist/cjs/interface/ui/ui.js +27 -8
- package/dist/cjs/interface/ui/use_custom_properties.js +52 -5
- package/dist/cjs/shared/colors.js +2 -2
- package/dist/cjs/shared/global_config.js +45 -40
- package/dist/cjs/shared/models/base_core.js +34 -11
- package/dist/cjs/shared/models/field_core.js +1 -1
- package/dist/cjs/shared/models/record_core.js +1 -1
- package/dist/cjs/shared/models/session_core.js +1 -1
- package/dist/cjs/shared/models/table_core.js +1 -1
- package/dist/cjs/shared/sdk_core.js +6 -6
- package/dist/cjs/shared/types/field.js +1 -1
- package/dist/cjs/shared/ui/remote_utils.js +3 -3
- package/dist/cjs/shared/ui/use_color_scheme.js +60 -0
- package/dist/cjs/shared/ui/use_global_config.js +13 -8
- package/dist/cjs/shared/ui/use_synced.js +1 -1
- package/dist/cjs/shared/ui/use_watchable.js +3 -22
- package/dist/cjs/shared/ui/with_hooks.js +3 -3
- package/dist/types/src/base/models/base.d.ts +1 -1
- package/dist/types/src/base/models/create_aggregators.d.ts +1 -1
- package/dist/types/src/base/models/cursor.d.ts +2 -2
- package/dist/types/src/base/models/field.d.ts +2 -2
- package/dist/types/src/base/models/record_coloring.d.ts +2 -2
- package/dist/types/src/base/models/record_query_result.d.ts +1 -1
- package/dist/types/src/base/models/session.d.ts +4 -4
- package/dist/types/src/base/models/table.d.ts +2 -2
- package/dist/types/src/base/models/view.d.ts +1 -1
- package/dist/types/src/base/perform_record_action.d.ts +1 -1
- package/dist/types/src/base/sdk.d.ts.map +1 -1
- package/dist/types/src/base/settings_button.d.ts +2 -2
- package/dist/types/src/base/types/view.d.ts +1 -1
- package/dist/types/src/base/ui/base_provider.d.ts +1 -1
- package/dist/types/src/base/ui/expand_record.d.ts +1 -1
- package/dist/types/src/base/ui/expand_record_list.d.ts +1 -1
- package/dist/types/src/base/ui/expand_record_picker_async.d.ts +1 -1
- package/dist/types/src/base/ui/global_alert.d.ts +1 -1
- package/dist/types/src/base/ui/initialize_block.d.ts +1 -1
- package/dist/types/src/base/ui/initialize_block.d.ts.map +1 -1
- package/dist/types/src/base/ui/progress_bar.d.ts +1 -1
- package/dist/types/src/base/ui/select_and_select_buttons_helpers.d.ts.map +1 -1
- package/dist/types/src/base/ui/types/tooltip_anchor_props.d.ts +1 -0
- package/dist/types/src/base/ui/types/tooltip_anchor_props.d.ts.map +1 -1
- package/dist/types/src/base/ui/ui.d.ts +2 -1
- package/dist/types/src/base/ui/ui.d.ts.map +1 -1
- package/dist/types/src/base/ui/use_base.d.ts +1 -1
- package/dist/types/src/base/ui/use_cursor.d.ts +1 -1
- package/dist/types/src/{shared → base}/ui/use_loadable.d.ts +3 -3
- package/dist/types/src/base/ui/use_loadable.d.ts.map +1 -0
- package/dist/types/src/base/ui/use_record_action_data.d.ts +1 -1
- package/dist/types/src/base/ui/use_session.d.ts +1 -1
- package/dist/types/src/base/ui/use_settings_button.d.ts +1 -1
- package/dist/types/src/base/ui/use_viewport.d.ts +1 -1
- package/dist/types/src/base/ui/viewport_constraint.d.ts +2 -2
- package/dist/types/src/base/viewport.d.ts +1 -1
- package/dist/types/src/interface/models/models.d.ts +8 -0
- package/dist/types/src/interface/models/models.d.ts.map +1 -0
- package/dist/types/src/interface/models/table.d.ts +30 -0
- package/dist/types/src/interface/models/table.d.ts.map +1 -1
- package/dist/types/src/interface/sdk.d.ts.map +1 -1
- package/dist/types/src/interface/types/table.d.ts +1 -0
- package/dist/types/src/interface/types/table.d.ts.map +1 -1
- package/dist/types/src/interface/ui/expand_record.d.ts +2 -1
- package/dist/types/src/interface/ui/expand_record.d.ts.map +1 -1
- package/dist/types/src/interface/ui/initialize_block.d.ts +30 -0
- package/dist/types/src/interface/ui/initialize_block.d.ts.map +1 -1
- package/dist/types/src/interface/ui/ui.d.ts +2 -1
- package/dist/types/src/interface/ui/ui.d.ts.map +1 -1
- package/dist/types/src/interface/ui/use_custom_properties.d.ts +52 -5
- package/dist/types/src/interface/ui/use_custom_properties.d.ts.map +1 -1
- package/dist/types/src/shared/color_utils.d.ts +3 -3
- package/dist/types/src/shared/colors.d.ts +2 -2
- package/dist/types/src/shared/global_config.d.ts +45 -40
- package/dist/types/src/shared/global_config.d.ts.map +1 -1
- package/dist/types/src/shared/models/base_core.d.ts +34 -11
- package/dist/types/src/shared/models/base_core.d.ts.map +1 -1
- package/dist/types/src/shared/models/field_core.d.ts +1 -1
- package/dist/types/src/shared/models/session_core.d.ts +1 -1
- package/dist/types/src/shared/private_utils.d.ts +1 -1
- package/dist/types/src/shared/private_utils.d.ts.map +1 -1
- package/dist/types/src/shared/sdk_core.d.ts +4 -4
- package/dist/types/src/shared/types/field.d.ts +1 -1
- package/dist/types/src/shared/ui/remote_utils.d.ts +3 -3
- package/dist/types/src/shared/ui/use_color_scheme.d.ts +28 -0
- package/dist/types/src/shared/ui/use_color_scheme.d.ts.map +1 -0
- package/dist/types/src/shared/ui/use_global_config.d.ts +13 -8
- package/dist/types/src/shared/ui/use_global_config.d.ts.map +1 -1
- package/dist/types/src/shared/ui/use_synced.d.ts +1 -1
- package/dist/types/src/shared/ui/use_watchable.d.ts +3 -22
- package/dist/types/src/shared/ui/use_watchable.d.ts.map +1 -1
- package/dist/types/src/shared/ui/with_hooks.d.ts +3 -3
- package/dist/types/stories/collaborator_token.stories.d.ts.map +1 -1
- package/dist/types/test/ui/use_color_scheme.test.d.ts +2 -0
- package/dist/types/test/ui/use_color_scheme.test.d.ts.map +1 -0
- package/package.json +16 -12
- package/dist/types/src/shared/ui/use_loadable.d.ts.map +0 -1
- package/ui.d.ts +0 -1
- package/ui.js +0 -1
- package/unstable_private_utils.d.ts +0 -1
- package/unstable_private_utils.js +0 -1
- package/unstable_standalone_ui.d.ts +0 -1
- package/unstable_standalone_ui.js +0 -1
- package/unstable_testing_utils.d.ts +0 -1
- package/unstable_testing_utils.js +0 -1
|
@@ -20,7 +20,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
|
|
|
20
20
|
*
|
|
21
21
|
* @example
|
|
22
22
|
* ```js
|
|
23
|
-
* import {useSession} from '@airtable/blocks/ui';
|
|
23
|
+
* import {useSession} from '@airtable/blocks/base/ui';
|
|
24
24
|
*
|
|
25
25
|
* function Username() {
|
|
26
26
|
* const session = useSession();
|
|
@@ -53,7 +53,7 @@ var Session = /*#__PURE__*/function (_SessionCore) {
|
|
|
53
53
|
*
|
|
54
54
|
* @example
|
|
55
55
|
* ```js
|
|
56
|
-
* import {useSession} from '@airtable/blocks/ui';
|
|
56
|
+
* import {useSession} from '@airtable/blocks/base/ui';
|
|
57
57
|
*
|
|
58
58
|
* function UpdateButton({onClick}) {
|
|
59
59
|
* const session = useSession();
|
|
@@ -96,7 +96,7 @@ var Session = /*#__PURE__*/function (_SessionCore) {
|
|
|
96
96
|
*
|
|
97
97
|
* @example
|
|
98
98
|
* ```js
|
|
99
|
-
* import {useSession} from '@airtable/blocks/ui';
|
|
99
|
+
* import {useSession} from '@airtable/blocks/base/ui';
|
|
100
100
|
*
|
|
101
101
|
* function CreateButton({onClick}) {
|
|
102
102
|
* const session = useSession();
|
|
@@ -141,7 +141,7 @@ var Session = /*#__PURE__*/function (_SessionCore) {
|
|
|
141
141
|
*
|
|
142
142
|
* @example
|
|
143
143
|
* ```js
|
|
144
|
-
* import {useSession} from '@airtable/blocks/ui';
|
|
144
|
+
* import {useSession} from '@airtable/blocks/base/ui';
|
|
145
145
|
*
|
|
146
146
|
* function DeleteButton({onClick}) {
|
|
147
147
|
* const session = useSession();
|
|
@@ -309,7 +309,7 @@ var Table = /*#__PURE__*/function (_TableCore) {
|
|
|
309
309
|
* @param opts Options for the query, such as sorts and fields.
|
|
310
310
|
* @example
|
|
311
311
|
* ```js
|
|
312
|
-
* import {useBase, useRecords} from '@airtable/blocks/ui';
|
|
312
|
+
* import {useBase, useRecords} from '@airtable/blocks/base/ui';
|
|
313
313
|
* import React from 'react';
|
|
314
314
|
*
|
|
315
315
|
* function TodoList() {
|
|
@@ -391,7 +391,7 @@ var Table = /*#__PURE__*/function (_TableCore) {
|
|
|
391
391
|
* correct type, that view will be returned before checking the other views in the table.
|
|
392
392
|
* @example
|
|
393
393
|
* ```js
|
|
394
|
-
* import {ViewType} from '@airtable/blocks/models';
|
|
394
|
+
* import {ViewType} from '@airtable/blocks/base/models';
|
|
395
395
|
* const firstCalendarView = myTable.getFirstViewOfType(ViewType.CALENDAR);
|
|
396
396
|
* if (firstCalendarView !== null) {
|
|
397
397
|
* console.log(firstCalendarView.name);
|
|
@@ -165,7 +165,7 @@ var View = /*#__PURE__*/function (_AbstractModel) {
|
|
|
165
165
|
* default, records will be coloured according to the view.
|
|
166
166
|
* @example
|
|
167
167
|
* ```js
|
|
168
|
-
* import {useBase, useRecords} from '@airtable/blocks/
|
|
168
|
+
* import {useBase, useRecords} from '@airtable/blocks/base/ui';
|
|
169
169
|
* import React from 'react';
|
|
170
170
|
*
|
|
171
171
|
* function TodoList() {
|
|
@@ -209,7 +209,7 @@ var PerformRecordAction = exports.PerformRecordAction = /*#__PURE__*/function (_
|
|
|
209
209
|
* @example
|
|
210
210
|
* ```js
|
|
211
211
|
* import React, {useEffect, useState} from 'react';
|
|
212
|
-
* import {registerRecordActionDataCallback} from '@airtable/blocks/ui';
|
|
212
|
+
* import {registerRecordActionDataCallback} from '@airtable/blocks/base/ui';
|
|
213
213
|
*
|
|
214
214
|
* function LatestRecordAction() {
|
|
215
215
|
* const [recordActionData, setRecordActionData] = useState(null);
|
package/dist/cjs/base/sdk.js
CHANGED
|
@@ -86,13 +86,16 @@ var BaseBlockSdk = exports.default = /*#__PURE__*/function (_BlockSdkCore) {
|
|
|
86
86
|
// We set _runWithUpdateBatching to ReactDOM.unstable_batchedUpdates to facilitate this. We
|
|
87
87
|
// don't know for sure though that React is in use on the page, so we leave actually setting
|
|
88
88
|
// this when the developer sets up their block with React, in UI.initializeBlock.
|
|
89
|
+
//
|
|
90
|
+
// This can be eliminated if we stop supporting versions of React below 18. In React 18,
|
|
91
|
+
// updates are always batched by default.
|
|
89
92
|
/** @internal */
|
|
90
93
|
(0, _defineProperty2.default)(_this, "_runWithUpdateBatching", defaultUpdateBatcher);
|
|
91
94
|
var sdkInitData = airtableInterface.sdkInitData;
|
|
92
95
|
|
|
93
96
|
// Bind the public methods on this class so users can import
|
|
94
97
|
// just the method, e.g.
|
|
95
|
-
// import {reload} from '@airtable/blocks';
|
|
98
|
+
// import {reload} from '@airtable/blocks/base';
|
|
96
99
|
_this.unstable_fetchAsync = _this.unstable_fetchAsync.bind(_this);
|
|
97
100
|
_this.viewport = new _viewport.default(sdkInitData.isFullscreen, airtableInterface);
|
|
98
101
|
_this.cursor = new _cursor.default(_this);
|
|
@@ -35,8 +35,8 @@ var WatchableSettingsButtonKeys = Object.freeze({
|
|
|
35
35
|
* @alias settingsButton
|
|
36
36
|
* @example
|
|
37
37
|
* ```js
|
|
38
|
-
* import {settingsButton} from '@airtable/blocks';
|
|
39
|
-
* import {useWatchable} from '@airtable/blocks/ui';
|
|
38
|
+
* import {settingsButton} from '@airtable/blocks/base';
|
|
39
|
+
* import {useWatchable} from '@airtable/blocks/base/ui';
|
|
40
40
|
*
|
|
41
41
|
* function AppWithSettings({shouldShowSettingsButton}) {
|
|
42
42
|
* useEffect(() => {
|
|
@@ -11,7 +11,7 @@ exports.ViewType = void 0;
|
|
|
11
11
|
*
|
|
12
12
|
* @example
|
|
13
13
|
* ```js
|
|
14
|
-
* import {ViewType} from '@airtable/blocks/models';
|
|
14
|
+
* import {ViewType} from '@airtable/blocks/base/models';
|
|
15
15
|
* const gridViews = myTable.views.filter(view => (
|
|
16
16
|
* view.type === ViewType.GRID
|
|
17
17
|
* ));
|
|
@@ -26,7 +26,7 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
26
26
|
* ```js
|
|
27
27
|
* import React from 'react';
|
|
28
28
|
* import ReactDOM from 'react-dom';
|
|
29
|
-
* import {BaseProvider} from '@airtable/blocks/ui';
|
|
29
|
+
* import {BaseProvider} from '@airtable/blocks/base/ui';
|
|
30
30
|
*
|
|
31
31
|
* function getHtmlStringForRecordCard(base, record) {
|
|
32
32
|
* return ReactDOM.renderToStaticMarkup(
|
|
@@ -19,7 +19,7 @@ require("core-js/modules/es.array.map.js");
|
|
|
19
19
|
*
|
|
20
20
|
* @example
|
|
21
21
|
* ```js
|
|
22
|
-
* import {expandRecord} from '@airtable/blocks/ui';
|
|
22
|
+
* import {expandRecord} from '@airtable/blocks/base/ui';
|
|
23
23
|
* expandRecord(record1, {
|
|
24
24
|
* records: [record1, record2, record3],
|
|
25
25
|
* });
|
|
@@ -20,7 +20,7 @@ var _error_utils = require("../../shared/error_utils");
|
|
|
20
20
|
*
|
|
21
21
|
* @example
|
|
22
22
|
* ```js
|
|
23
|
-
* import {expandRecordList} from '@airtable/blocks/ui';
|
|
23
|
+
* import {expandRecordList} from '@airtable/blocks/base/ui';
|
|
24
24
|
* expandRecordList([record1, record2, record3]);
|
|
25
25
|
*
|
|
26
26
|
* expandRecordList([record1, record2], {
|
|
@@ -28,7 +28,7 @@ var _error_utils = require("../../shared/error_utils");
|
|
|
28
28
|
* @param opts An optional options object.
|
|
29
29
|
* @example
|
|
30
30
|
* ```js
|
|
31
|
-
* import {expandRecordPickerAsync} from '@airtable/blocks/ui';
|
|
31
|
+
* import {expandRecordPickerAsync} from '@airtable/blocks/base/ui';
|
|
32
32
|
*
|
|
33
33
|
* async function pickRecordsAsync() {
|
|
34
34
|
* const recordA = await expandRecordPickerAsync([record1, record2, record3]);
|
|
@@ -38,7 +38,7 @@ var hasBeenInitialized = false;
|
|
|
38
38
|
*
|
|
39
39
|
* @example
|
|
40
40
|
* ```js
|
|
41
|
-
* import {initializeBlock} from '@airtable/blocks/ui';
|
|
41
|
+
* import {initializeBlock} from '@airtable/blocks/base/ui';
|
|
42
42
|
* import React from 'react';
|
|
43
43
|
*
|
|
44
44
|
* function App() {
|
|
@@ -105,12 +105,27 @@ function initializeBlock(getEntryElement) {
|
|
|
105
105
|
if (! /*#__PURE__*/React.isValidElement(entryElement)) {
|
|
106
106
|
throw (0, _error_utils.spawnError)("The first argument to initializeBlock didn't return a valid React element");
|
|
107
107
|
}
|
|
108
|
-
|
|
108
|
+
if (_reactDom.default.unstable_batchedUpdates) {
|
|
109
|
+
sdk.__setBatchedUpdatesFn(_reactDom.default.unstable_batchedUpdates);
|
|
110
|
+
}
|
|
109
111
|
var container = document.createElement('div');
|
|
112
|
+
container.style.height = '100%';
|
|
113
|
+
container.style.width = '100%';
|
|
110
114
|
body.appendChild(container);
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
115
|
+
|
|
116
|
+
// Try to use createRoot API (React 18+)
|
|
117
|
+
try {
|
|
118
|
+
var _require = require('react-dom/client'),
|
|
119
|
+
createRoot = _require.createRoot;
|
|
120
|
+
createRoot(container).render( /*#__PURE__*/React.createElement(_block_wrapper.default, {
|
|
121
|
+
sdk: sdk
|
|
122
|
+
}, entryElement));
|
|
123
|
+
} catch (e) {
|
|
124
|
+
// Fallback to legacy render for React 16/17
|
|
125
|
+
_reactDom.default.render( /*#__PURE__*/React.createElement(_block_wrapper.default, {
|
|
126
|
+
sdk: sdk
|
|
127
|
+
}, entryElement), container);
|
|
128
|
+
}
|
|
114
129
|
}
|
|
115
130
|
var sdk;
|
|
116
131
|
|
|
@@ -29,6 +29,8 @@ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length)
|
|
|
29
29
|
*/
|
|
30
30
|
|
|
31
31
|
/** @internal */
|
|
32
|
+
// Old eslint rule doesn't understand type guards
|
|
33
|
+
// eslint-disable-next-line airtable/is-returns-boolean
|
|
32
34
|
function isSelectOptionValue(value) {
|
|
33
35
|
return value === null || value === undefined || typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';
|
|
34
36
|
}
|
|
@@ -8,6 +8,8 @@ require("core-js/modules/es.number.constructor.js");
|
|
|
8
8
|
var _core = require("@styled-system/core");
|
|
9
9
|
var _error_utils = require("../../../../shared/error_utils");
|
|
10
10
|
/** @internal */
|
|
11
|
+
// Old eslint rule doesn't understand type guards
|
|
12
|
+
// eslint-disable-next-line airtable/is-returns-boolean
|
|
11
13
|
function isNumber(n) {
|
|
12
14
|
return typeof n === 'number' && !isNaN(n);
|
|
13
15
|
}
|
package/dist/cjs/base/ui/ui.js
CHANGED
|
@@ -36,6 +36,7 @@ var _exportNames = {
|
|
|
36
36
|
initializeBlock: true,
|
|
37
37
|
withHooks: true,
|
|
38
38
|
useLoadable: true,
|
|
39
|
+
useColorScheme: true,
|
|
39
40
|
useRecordIds: true,
|
|
40
41
|
useRecords: true,
|
|
41
42
|
useRecordById: true,
|
|
@@ -221,6 +222,12 @@ Object.defineProperty(exports, "useBase", {
|
|
|
221
222
|
return _use_base.default;
|
|
222
223
|
}
|
|
223
224
|
});
|
|
225
|
+
Object.defineProperty(exports, "useColorScheme", {
|
|
226
|
+
enumerable: true,
|
|
227
|
+
get: function get() {
|
|
228
|
+
return _use_color_scheme.useColorScheme;
|
|
229
|
+
}
|
|
230
|
+
});
|
|
224
231
|
Object.defineProperty(exports, "useCursor", {
|
|
225
232
|
enumerable: true,
|
|
226
233
|
get: function get() {
|
|
@@ -339,7 +346,8 @@ var _switch_synced = _interopRequireDefault(require("./switch_synced"));
|
|
|
339
346
|
var _viewport_constraint = _interopRequireDefault(require("./viewport_constraint"));
|
|
340
347
|
var _initialize_block = require("./initialize_block");
|
|
341
348
|
var _with_hooks = _interopRequireDefault(require("../../shared/ui/with_hooks"));
|
|
342
|
-
var _use_loadable = _interopRequireDefault(require("
|
|
349
|
+
var _use_loadable = _interopRequireDefault(require("./use_loadable"));
|
|
350
|
+
var _use_color_scheme = require("../../shared/ui/use_color_scheme");
|
|
343
351
|
var _use_records = require("./use_records");
|
|
344
352
|
var _use_base = _interopRequireDefault(require("./use_base"));
|
|
345
353
|
var _use_cursor = _interopRequireDefault(require("./use_cursor"));
|
|
@@ -22,7 +22,7 @@ var _use_base = _interopRequireDefault(require("../../shared/ui/use_base"));
|
|
|
22
22
|
*
|
|
23
23
|
* @example
|
|
24
24
|
* ```js
|
|
25
|
-
* import {useBase} from '@airtable/blocks/ui';
|
|
25
|
+
* import {useBase} from '@airtable/blocks/base/ui';
|
|
26
26
|
*
|
|
27
27
|
* // renders a list of tables and automatically updates
|
|
28
28
|
* function TableList() {
|
|
@@ -22,7 +22,7 @@ var _sdk_context = require("../../shared/ui/sdk_context");
|
|
|
22
22
|
*
|
|
23
23
|
* @example
|
|
24
24
|
* ```js
|
|
25
|
-
* import {useBase, useCursor} from '@airtable/blocks/ui';
|
|
25
|
+
* import {useBase, useCursor} from '@airtable/blocks/base/ui';
|
|
26
26
|
*
|
|
27
27
|
* // renders a list of tables and automatically updates
|
|
28
28
|
* function TableList() {
|
|
@@ -18,9 +18,9 @@ require("core-js/modules/es.regexp.to-string.js");
|
|
|
18
18
|
require("core-js/modules/web.dom-collections.iterator.js");
|
|
19
19
|
var _react = require("react");
|
|
20
20
|
var _useSubscription = require("use-subscription");
|
|
21
|
-
var _private_utils = require("
|
|
22
|
-
var _error_utils = require("
|
|
23
|
-
var _use_array_identity = _interopRequireDefault(require("
|
|
21
|
+
var _private_utils = require("../../shared/private_utils");
|
|
22
|
+
var _error_utils = require("../../shared/error_utils");
|
|
23
|
+
var _use_array_identity = _interopRequireDefault(require("../../shared/ui/use_array_identity"));
|
|
24
24
|
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
25
25
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
26
26
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } /** @module @airtable/blocks/ui: useLoadable */ /** */
|
|
@@ -64,7 +64,7 @@ var SUSPENSE_CLEAN_UP_MS = 60000;
|
|
|
64
64
|
*
|
|
65
65
|
* @example
|
|
66
66
|
* ```js
|
|
67
|
-
* import {useCursor, useLoadable, useWatchable} from '@airtable/blocks/ui';
|
|
67
|
+
* import {useCursor, useLoadable, useWatchable} from '@airtable/blocks/base/ui';
|
|
68
68
|
*
|
|
69
69
|
* function SelectedRecordIds() {
|
|
70
70
|
* const cursor = useCursor();
|
|
@@ -81,7 +81,7 @@ var SUSPENSE_CLEAN_UP_MS = 60000;
|
|
|
81
81
|
*
|
|
82
82
|
* @example
|
|
83
83
|
* ```js
|
|
84
|
-
* import {useLoadable} from '@airtable/blocks/ui';
|
|
84
|
+
* import {useLoadable} from '@airtable/blocks/base/ui';
|
|
85
85
|
*
|
|
86
86
|
* function LoadTwoQueryResults({queryResultA, queryResultB}) {
|
|
87
87
|
* // load the queryResults:
|
|
@@ -94,7 +94,7 @@ var SUSPENSE_CLEAN_UP_MS = 60000;
|
|
|
94
94
|
*
|
|
95
95
|
* @example
|
|
96
96
|
* ```js
|
|
97
|
-
* import {useLoadable, useBase} from '@airtable/blocks/ui';
|
|
97
|
+
* import {useLoadable, useBase} from '@airtable/blocks/base/ui';
|
|
98
98
|
*
|
|
99
99
|
* function LoadAllRecords() {
|
|
100
100
|
* const base = useBase();
|
|
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = useRecordActionData;
|
|
8
8
|
var _perform_record_action = require("../perform_record_action");
|
|
9
|
-
var _use_loadable = _interopRequireDefault(require("../../shared/ui/use_loadable"));
|
|
10
9
|
var _use_watchable = _interopRequireDefault(require("../../shared/ui/use_watchable"));
|
|
11
10
|
var _sdk_context = require("../../shared/ui/sdk_context");
|
|
11
|
+
var _use_loadable = _interopRequireDefault(require("./use_loadable"));
|
|
12
12
|
/** @module @airtable/blocks/ui: useRecordActionData */ /** */
|
|
13
13
|
|
|
14
14
|
/**
|
|
@@ -39,7 +39,7 @@ var _sdk_context = require("../../shared/ui/sdk_context");
|
|
|
39
39
|
* @example
|
|
40
40
|
* ```js
|
|
41
41
|
* import React from 'react';
|
|
42
|
-
* import {useRecordActionData} from '@airtable/blocks/ui';
|
|
42
|
+
* import {useRecordActionData} from '@airtable/blocks/base/ui';
|
|
43
43
|
*
|
|
44
44
|
* function LatestRecordAction() {
|
|
45
45
|
* const recordActionData = useRecordActionData();
|
|
@@ -17,8 +17,8 @@ var _table = _interopRequireDefault(require("../models/table"));
|
|
|
17
17
|
var _record_query_result = _interopRequireDefault(require("../models/record_query_result"));
|
|
18
18
|
var RecordColoring = _interopRequireWildcard(require("../models/record_coloring"));
|
|
19
19
|
var _view = _interopRequireDefault(require("../models/view"));
|
|
20
|
-
var _use_loadable = _interopRequireDefault(require("../../shared/ui/use_loadable"));
|
|
21
20
|
var _use_watchable = _interopRequireDefault(require("../../shared/ui/use_watchable"));
|
|
21
|
+
var _use_loadable = _interopRequireDefault(require("./use_loadable"));
|
|
22
22
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
23
23
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
24
24
|
/** @module @airtable/blocks/ui: useRecords */ /** */
|
|
@@ -74,7 +74,7 @@ function useUnwatchedRecordQueryResult_(tableOrViewOrQueryResult, functionNameFo
|
|
|
74
74
|
* @param opts? If passing a Table or View, optional {@link RecordIdsQueryResultOpts} to control the results.
|
|
75
75
|
* @example
|
|
76
76
|
* ```js
|
|
77
|
-
* import {useRecordIds, useBase} from '@airtable/blocks/ui';
|
|
77
|
+
* import {useRecordIds, useBase} from '@airtable/blocks/base/ui';
|
|
78
78
|
*
|
|
79
79
|
* function RecordCount() {
|
|
80
80
|
* const base = useBase();
|
|
@@ -128,7 +128,7 @@ function useRecordIds(tableOrViewOrQueryResult, opts) {
|
|
|
128
128
|
* @param opts? If passing a Table or View, optional {@link RecordQueryResultOpts} to control the results.
|
|
129
129
|
* @example
|
|
130
130
|
* ```js
|
|
131
|
-
* import {useRecords, useBase} from '@airtable/blocks/ui';
|
|
131
|
+
* import {useRecords, useBase} from '@airtable/blocks/base/ui';
|
|
132
132
|
*
|
|
133
133
|
* function GetRecords() {
|
|
134
134
|
* const base = useBase();
|
|
@@ -161,7 +161,7 @@ function useRecordIds(tableOrViewOrQueryResult, opts) {
|
|
|
161
161
|
*
|
|
162
162
|
* @example
|
|
163
163
|
* ```js
|
|
164
|
-
* import {useRecords, useBase} from '@airtable/blocks/ui';
|
|
164
|
+
* import {useRecords, useBase} from '@airtable/blocks/base/ui';
|
|
165
165
|
*
|
|
166
166
|
* function RecordList() {
|
|
167
167
|
* const base = useBase();
|
|
@@ -213,7 +213,7 @@ function useRecords(tableOrViewOrQueryResult, opts) {
|
|
|
213
213
|
* @param opts? If passing a Table or View, optional {@link SingleRecordQueryResultOpts} to control the results.
|
|
214
214
|
* @example
|
|
215
215
|
* ```js
|
|
216
|
-
* import {useRecordById, useRecordIds, useBase} from '@airtable/blocks/ui';
|
|
216
|
+
* import {useRecordById, useRecordIds, useBase} from '@airtable/blocks/base/ui';
|
|
217
217
|
*
|
|
218
218
|
* // this component concerns a single record - it only updates when that specific record updates
|
|
219
219
|
* function RecordListItem({table, recordId}) {
|
|
@@ -19,7 +19,7 @@ var _use_session = _interopRequireDefault(require("../../shared/ui/use_session")
|
|
|
19
19
|
*
|
|
20
20
|
* @example
|
|
21
21
|
* ```js
|
|
22
|
-
* import {CollaboratorToken, useSession} from '@airtable/blocks/ui';
|
|
22
|
+
* import {CollaboratorToken, useSession} from '@airtable/blocks/base/ui';
|
|
23
23
|
*
|
|
24
24
|
* // Says hello to the current user and updates in realtime if the current user's
|
|
25
25
|
* // name or profile pic changes.
|
|
@@ -19,7 +19,7 @@ var _sdk_context = require("../../shared/ui/sdk_context");
|
|
|
19
19
|
*
|
|
20
20
|
* @example
|
|
21
21
|
* ```js
|
|
22
|
-
* import {useSettingsButton} from '@airtable/blocks/ui';
|
|
22
|
+
* import {useSettingsButton} from '@airtable/blocks/base/ui';
|
|
23
23
|
* import {useState} from 'react';
|
|
24
24
|
*
|
|
25
25
|
* function ComponentWithSettings() {
|
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _view = _interopRequireDefault(require("../models/view"));
|
|
9
|
-
var _use_loadable = _interopRequireDefault(require("../../shared/ui/use_loadable"));
|
|
10
9
|
var _use_watchable = _interopRequireDefault(require("../../shared/ui/use_watchable"));
|
|
10
|
+
var _use_loadable = _interopRequireDefault(require("./use_loadable"));
|
|
11
11
|
/** @module @airtable/blocks/ui: useViewMetadata */ /** */
|
|
12
12
|
|
|
13
13
|
/** */
|
|
@@ -23,7 +23,7 @@ var _use_watchable = _interopRequireDefault(require("../../shared/ui/use_watchab
|
|
|
23
23
|
* @param viewOrViewMetadataQueryResult The {@link View} or {@link ViewMetadataQueryResult} to watch and use metadata from.
|
|
24
24
|
* @example
|
|
25
25
|
* ```js
|
|
26
|
-
* import {useBase, useViewMetadata} from '@airtable/blocks/ui';
|
|
26
|
+
* import {useBase, useViewMetadata} from '@airtable/blocks/base/ui';
|
|
27
27
|
*
|
|
28
28
|
* function ViewFields({view}) {
|
|
29
29
|
* const viewMetadata = useViewMetadata(view);
|
|
@@ -15,7 +15,7 @@ var _sdk_context = require("../../shared/ui/sdk_context");
|
|
|
15
15
|
*
|
|
16
16
|
* @example
|
|
17
17
|
* ```js
|
|
18
|
-
* import {useViewport} from '@airtable/blocks/ui';
|
|
18
|
+
* import {useViewport} from '@airtable/blocks/base/ui';
|
|
19
19
|
*
|
|
20
20
|
* function ViewportSize() {
|
|
21
21
|
* const viewport = useViewport();
|
|
@@ -43,13 +43,13 @@ var didSizeChange = (prev, next) => (prev && prev.width) !== (next && next.width
|
|
|
43
43
|
*
|
|
44
44
|
* @example
|
|
45
45
|
* ```js
|
|
46
|
-
* import {ViewportConstraint} from '@airtable/blocks/ui';
|
|
46
|
+
* import {ViewportConstraint} from '@airtable/blocks/base/ui';
|
|
47
47
|
* <ViewportConstraint minSize={{width: 400}} />
|
|
48
48
|
* ```
|
|
49
49
|
*
|
|
50
50
|
* @example
|
|
51
51
|
* ```js
|
|
52
|
-
* import {ViewportConstraint} from '@airtable/blocks/ui';
|
|
52
|
+
* import {ViewportConstraint} from '@airtable/blocks/base/ui';
|
|
53
53
|
* <ViewportConstraint maxFullScreenSize={{width: 600, height: 400}}>
|
|
54
54
|
* <div>I need a max fullscreen size!</div>
|
|
55
55
|
* </ViewportConstraint>
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "Base", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _base.Base;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "Field", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _field2.Field;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "FieldConfig", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _field.FieldConfig;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "FieldType", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function get() {
|
|
27
|
+
return _field.FieldType;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "Record", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function get() {
|
|
33
|
+
return _record.Record;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "Session", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function get() {
|
|
39
|
+
return _session.Session;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "Table", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function get() {
|
|
45
|
+
return _table.Table;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
var _field = require("../../shared/types/field");
|
|
49
|
+
var _base = require("./base");
|
|
50
|
+
var _table = require("./table");
|
|
51
|
+
var _field2 = require("./field");
|
|
52
|
+
var _record = require("./record");
|
|
53
|
+
var _session = require("./session");
|
|
@@ -43,5 +43,50 @@ var Table = exports.Table = /*#__PURE__*/function (_TableCore) {
|
|
|
43
43
|
function _constructField(fieldId) {
|
|
44
44
|
return new _field.Field(this.parentBase.__sdk, this, fieldId);
|
|
45
45
|
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Checks whether records in this table can be expanded.
|
|
49
|
+
*
|
|
50
|
+
* Returns `{hasPermission: true}` if records can be expanded,
|
|
51
|
+
* `{hasPermission: false, reasonDisplayString: string}` otherwise.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```js
|
|
55
|
+
* const expandRecordsCheckResult = table.checkPermissionToExpandRecords();
|
|
56
|
+
* if (!expandRecordsCheckResult.hasPermission) {
|
|
57
|
+
* alert(expandRecordsCheckResult.reasonDisplayString);
|
|
58
|
+
* }
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
}, {
|
|
62
|
+
key: "checkPermissionToExpandRecords",
|
|
63
|
+
value: function checkPermissionToExpandRecords() {
|
|
64
|
+
var canExpand = this._baseData.tablesById[this.id].isRecordExpansionEnabled;
|
|
65
|
+
return canExpand ? {
|
|
66
|
+
hasPermission: true
|
|
67
|
+
} : {
|
|
68
|
+
hasPermission: false,
|
|
69
|
+
reasonDisplayString: 'Record expansion is not enabled for this table'
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* An alias for `checkPermissionsForExpandRecords().hasPermission`.
|
|
75
|
+
*
|
|
76
|
+
* Whether records in this table can be expanded.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```js
|
|
80
|
+
* const isRecordExpansionEnabled = table.hasPermissionToExpandRecords();
|
|
81
|
+
* if (isRecordExpansionEnabled) {
|
|
82
|
+
* expandRecord(record);
|
|
83
|
+
* }
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
}, {
|
|
87
|
+
key: "hasPermissionToExpandRecords",
|
|
88
|
+
value: function hasPermissionToExpandRecords() {
|
|
89
|
+
return this.checkPermissionToExpandRecords().hasPermission;
|
|
90
|
+
}
|
|
46
91
|
}]);
|
|
47
92
|
}(_table_core.TableCore);
|
|
@@ -16,12 +16,6 @@ var _mutations = require("./models/mutations");
|
|
|
16
16
|
var _base = require("./models/base");
|
|
17
17
|
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
|
|
18
18
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
19
|
-
// /** Add hidden annotation if uncommenting */
|
|
20
|
-
// type UpdateBatcher = (applyUpdates: () => void) => void;
|
|
21
|
-
// /** Add internal annotation if uncommenting */
|
|
22
|
-
// function defaultUpdateBatcher(applyUpdates: () => void) {
|
|
23
|
-
// applyUpdates();
|
|
24
|
-
// }
|
|
25
19
|
/** @hidden */
|
|
26
20
|
var InterfaceBlockSdk = exports.InterfaceBlockSdk = /*#__PURE__*/function (_BlockSdkCore) {
|
|
27
21
|
function InterfaceBlockSdk(airtableInterface) {
|
|
@@ -70,27 +64,18 @@ var InterfaceBlockSdk = exports.InterfaceBlockSdk = /*#__PURE__*/function (_Bloc
|
|
|
70
64
|
}, {
|
|
71
65
|
key: "__applyModelChanges",
|
|
72
66
|
value: function __applyModelChanges(changes) {
|
|
73
|
-
// this._runWithUpdateBatching(() => {
|
|
74
67
|
var changedBasePaths = this.base.__applyChangesWithoutTriggeringEvents(changes);
|
|
75
68
|
var changedSessionKeys = this.session.__applyChangesWithoutTriggeringEvents(changes);
|
|
76
69
|
this.base.__triggerOnChangeForChangedPaths(changedBasePaths);
|
|
77
70
|
this.session.__triggerOnChangeForChangedKeys(changedSessionKeys);
|
|
78
|
-
// });
|
|
79
71
|
}
|
|
80
72
|
/** @internal */
|
|
81
73
|
}, {
|
|
82
74
|
key: "__applyGlobalConfigUpdates",
|
|
83
75
|
value: function __applyGlobalConfigUpdates(updates) {
|
|
84
|
-
// this._runWithUpdateBatching(() => {
|
|
85
76
|
this.globalConfig.__setMultipleKvPaths(updates);
|
|
86
|
-
// });
|
|
87
77
|
}
|
|
88
78
|
|
|
89
|
-
// /** @internal */
|
|
90
|
-
// __setBatchedUpdatesFn(newUpdateBatcher: UpdateBatcher) {
|
|
91
|
-
// this._runWithUpdateBatching = newUpdateBatcher;
|
|
92
|
-
// }
|
|
93
|
-
|
|
94
79
|
/**
|
|
95
80
|
* @internal
|
|
96
81
|
*/
|
|
@@ -14,7 +14,8 @@ exports.expandRecord = expandRecord;
|
|
|
14
14
|
* @example
|
|
15
15
|
* ```js
|
|
16
16
|
* import {expandRecord} from '@airtable/blocks/interface/ui';
|
|
17
|
-
*
|
|
17
|
+
*
|
|
18
|
+
* <button onClick={() => expandRecord(record)}>{record.name}</button>
|
|
18
19
|
* ```
|
|
19
20
|
* @docsPath UI/utils/expandRecord
|
|
20
21
|
*/
|