@airtable/blocks 0.0.0-experimental-f52bc4e5e-20250709 → 0.0.0-experimental-3649c7162-20250904
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/assert_run_context.js +12 -0
- package/dist/{cjs → esm}/base/index.js +30 -32
- package/dist/esm/base/models/abstract_model_with_async_data.js +190 -0
- package/dist/esm/base/models/base.js +252 -0
- package/dist/esm/base/models/create_aggregators.js +90 -0
- package/dist/esm/base/models/cursor.js +305 -0
- package/dist/esm/base/models/field.js +338 -0
- package/dist/esm/base/models/grouped_record_query_result.js +280 -0
- package/dist/esm/base/models/linked_records_query_result.js +553 -0
- package/dist/{cjs → esm}/base/models/models.js +19 -40
- package/dist/esm/base/models/mutations.js +312 -0
- package/dist/esm/base/models/object_pool.js +145 -0
- package/dist/esm/base/models/record.js +239 -0
- package/dist/{cjs → esm}/base/models/record_coloring.js +6 -6
- package/dist/esm/base/models/record_query_result.js +657 -0
- package/dist/esm/base/models/record_store.js +475 -0
- package/dist/esm/base/models/session.js +154 -0
- package/dist/esm/base/models/table.js +520 -0
- package/dist/esm/base/models/table_or_view_query_result.js +749 -0
- package/dist/esm/base/models/view.js +326 -0
- package/dist/esm/base/models/view_data_store.js +265 -0
- package/dist/esm/base/models/view_metadata_query_result.js +176 -0
- package/dist/esm/base/perform_record_action.js +215 -0
- package/dist/esm/base/sdk.js +178 -0
- package/dist/esm/base/settings_button.js +118 -0
- package/dist/{cjs → esm}/base/types/airtable_interface.js +1 -1
- package/dist/{cjs → esm}/base/types/mutations.js +5 -11
- package/dist/{cjs → esm}/base/types/undo_redo.js +1 -1
- package/dist/{cjs → esm}/base/types/view.js +1 -1
- package/dist/{cjs → esm}/base/ui/base_provider.js +6 -8
- package/dist/esm/base/ui/baymax_utils.js +461 -0
- package/dist/esm/base/ui/block_wrapper.js +118 -0
- package/dist/esm/base/ui/box.js +84 -0
- package/dist/esm/base/ui/button.js +152 -0
- package/dist/esm/base/ui/cell_renderer.js +198 -0
- package/dist/esm/base/ui/choice_token.js +93 -0
- package/dist/esm/base/ui/collaborator_token.js +123 -0
- package/dist/esm/base/ui/color_palette.js +196 -0
- package/dist/esm/base/ui/color_palette_synced.js +69 -0
- package/dist/esm/base/ui/confirmation_dialog.js +103 -0
- package/dist/{cjs → esm}/base/ui/control_sizes.js +24 -22
- package/dist/{cjs → esm}/base/ui/create_detect_element_resize.js +6 -10
- package/dist/{cjs → esm}/base/ui/css_helpers.js +1 -1
- package/dist/esm/base/ui/dialog.js +101 -0
- package/dist/esm/base/ui/dialog_close_button.js +106 -0
- package/dist/{cjs → esm}/base/ui/expand_record.js +1 -2
- package/dist/{cjs → esm}/base/ui/expand_record_list.js +3 -4
- package/dist/esm/base/ui/expand_record_picker_async.js +71 -0
- package/dist/esm/base/ui/field_icon.js +44 -0
- package/dist/esm/base/ui/field_picker.js +98 -0
- package/dist/esm/base/ui/field_picker_synced.js +66 -0
- package/dist/esm/base/ui/form_field.js +109 -0
- package/dist/{cjs → esm}/base/ui/geometry/geometry.js +5 -5
- package/dist/esm/base/ui/geometry/point.js +19 -0
- package/dist/esm/base/ui/geometry/rect.js +51 -0
- package/dist/esm/base/ui/geometry/size.js +19 -0
- package/dist/esm/base/ui/global_alert.js +71 -0
- package/dist/esm/base/ui/heading.js +132 -0
- package/dist/esm/base/ui/icon.js +109 -0
- package/dist/{cjs → esm}/base/ui/icon_config.js +6 -12
- package/dist/{cjs → esm}/base/ui/initialize_block.js +16 -35
- package/dist/esm/base/ui/input.js +161 -0
- package/dist/esm/base/ui/input_synced.js +66 -0
- package/dist/{cjs → esm}/base/ui/key_codes.js +2 -3
- package/dist/esm/base/ui/label.js +80 -0
- package/dist/esm/base/ui/link.js +196 -0
- package/dist/esm/base/ui/loader.js +61 -0
- package/dist/esm/base/ui/modal.js +145 -0
- package/dist/esm/base/ui/model_picker_select.js +57 -0
- package/dist/esm/base/ui/popover.js +315 -0
- package/dist/esm/base/ui/progress_bar.js +115 -0
- package/dist/esm/base/ui/record_card.js +564 -0
- package/dist/esm/base/ui/record_card_list.js +303 -0
- package/dist/esm/base/ui/select.js +191 -0
- package/dist/esm/base/ui/select_and_select_buttons_helpers.js +63 -0
- package/dist/esm/base/ui/select_buttons.js +159 -0
- package/dist/esm/base/ui/select_buttons_synced.js +62 -0
- package/dist/esm/base/ui/select_synced.js +65 -0
- package/dist/esm/base/ui/switch.js +167 -0
- package/dist/esm/base/ui/switch_synced.js +53 -0
- package/dist/esm/base/ui/synced.js +49 -0
- package/dist/{cjs → esm}/base/ui/system/all_styles_set.js +4 -12
- package/dist/esm/base/ui/system/appearance/appearance_set.js +27 -0
- package/dist/esm/base/ui/system/appearance/background_color.js +18 -0
- package/dist/{cjs → esm}/base/ui/system/appearance/border.js +3 -6
- package/dist/esm/base/ui/system/appearance/border_radius.js +18 -0
- package/dist/esm/base/ui/system/appearance/box_shadow.js +18 -0
- package/dist/esm/base/ui/system/appearance/opacity.js +18 -0
- package/dist/esm/base/ui/system/dimensions/dimensions_set.js +29 -0
- package/dist/esm/base/ui/system/dimensions/height.js +18 -0
- package/dist/esm/base/ui/system/dimensions/max_height.js +18 -0
- package/dist/esm/base/ui/system/dimensions/max_width.js +18 -0
- package/dist/esm/base/ui/system/dimensions/min_height.js +18 -0
- package/dist/esm/base/ui/system/dimensions/min_width.js +18 -0
- package/dist/esm/base/ui/system/dimensions/width.js +18 -0
- package/dist/esm/base/ui/system/display.js +19 -0
- package/dist/esm/base/ui/system/flex_container/align_content.js +15 -0
- package/dist/esm/base/ui/system/flex_container/align_items.js +15 -0
- package/dist/esm/base/ui/system/flex_container/flex_container_set.js +29 -0
- package/dist/esm/base/ui/system/flex_container/flex_direction.js +15 -0
- package/dist/esm/base/ui/system/flex_container/flex_wrap.js +15 -0
- package/dist/esm/base/ui/system/flex_container/justify_content.js +15 -0
- package/dist/esm/base/ui/system/flex_container/justify_items.js +16 -0
- package/dist/esm/base/ui/system/flex_item/align_self.js +15 -0
- package/dist/esm/base/ui/system/flex_item/flex.js +15 -0
- package/dist/esm/base/ui/system/flex_item/flex_basis.js +15 -0
- package/dist/esm/base/ui/system/flex_item/flex_grow.js +15 -0
- package/dist/esm/base/ui/system/flex_item/flex_item_set.js +31 -0
- package/dist/esm/base/ui/system/flex_item/flex_shrink.js +15 -0
- package/dist/esm/base/ui/system/flex_item/justify_self.js +16 -0
- package/dist/esm/base/ui/system/flex_item/order.js +15 -0
- package/dist/{cjs → esm}/base/ui/system/index.js +104 -416
- package/dist/esm/base/ui/system/overflow.js +21 -0
- package/dist/{cjs → esm}/base/ui/system/position/bottom.js +4 -6
- package/dist/{cjs → esm}/base/ui/system/position/left.js +4 -6
- package/dist/esm/base/ui/system/position/position.js +15 -0
- package/dist/esm/base/ui/system/position/position_set.js +29 -0
- package/dist/{cjs → esm}/base/ui/system/position/right.js +4 -6
- package/dist/{cjs → esm}/base/ui/system/position/top.js +4 -6
- package/dist/esm/base/ui/system/position/z_index.js +18 -0
- package/dist/{cjs → esm}/base/ui/system/spacing/margin.js +4 -6
- package/dist/{cjs → esm}/base/ui/system/spacing/padding.js +4 -6
- package/dist/esm/base/ui/system/spacing/spacing_set.js +21 -0
- package/dist/esm/base/ui/system/typography/font_family.js +18 -0
- package/dist/esm/base/ui/system/typography/font_size.js +18 -0
- package/dist/esm/base/ui/system/typography/font_style.js +15 -0
- package/dist/esm/base/ui/system/typography/font_weight.js +18 -0
- package/dist/esm/base/ui/system/typography/letter_spacing.js +18 -0
- package/dist/esm/base/ui/system/typography/line_height.js +15 -0
- package/dist/esm/base/ui/system/typography/text_align.js +15 -0
- package/dist/esm/base/ui/system/typography/text_color.js +18 -0
- package/dist/esm/base/ui/system/typography/text_decoration.js +15 -0
- package/dist/esm/base/ui/system/typography/text_transform.js +15 -0
- package/dist/esm/base/ui/system/typography/typography_set.js +37 -0
- package/dist/{cjs → esm}/base/ui/system/utils/ensure_numbers_are_within_scale.js +3 -4
- package/dist/esm/base/ui/system/utils/get_style_props_for_responsive_prop.js +73 -0
- package/dist/esm/base/ui/table_picker.js +71 -0
- package/dist/esm/base/ui/table_picker_synced.js +62 -0
- package/dist/esm/base/ui/text.js +117 -0
- package/dist/esm/base/ui/text_button.js +196 -0
- package/dist/{cjs → esm}/base/ui/theme/default_theme/button_variants.js +3 -3
- package/dist/esm/base/ui/theme/default_theme/control_sizes.js +102 -0
- package/dist/{cjs → esm}/base/ui/theme/default_theme/heading_styles.js +1 -1
- package/dist/{cjs → esm}/base/ui/theme/default_theme/index.js +9 -15
- package/dist/{cjs → esm}/base/ui/theme/default_theme/input_variants.js +3 -3
- package/dist/{cjs → esm}/base/ui/theme/default_theme/link_variants.js +3 -3
- package/dist/{cjs → esm}/base/ui/theme/default_theme/select_buttons_variants.js +4 -4
- package/dist/esm/base/ui/theme/default_theme/select_variants.js +50 -0
- package/dist/esm/base/ui/theme/default_theme/switch_variants.js +85 -0
- package/dist/{cjs → esm}/base/ui/theme/default_theme/text_button_variants.js +5 -5
- package/dist/{cjs → esm}/base/ui/theme/default_theme/text_styles.js +1 -1
- package/dist/{cjs → esm}/base/ui/theme/default_theme/tokens.js +14 -14
- package/dist/{cjs → esm}/base/ui/theme/theme_context.js +2 -2
- package/dist/{cjs → esm}/base/ui/theme/use_theme.js +2 -2
- package/dist/esm/base/ui/tooltip.js +175 -0
- package/dist/{cjs → esm}/base/ui/ui.js +48 -49
- package/dist/{cjs → esm}/base/ui/unstable_standalone_ui.js +27 -27
- package/dist/{cjs → esm}/base/ui/use_base.js +1 -1
- package/dist/{cjs → esm}/base/ui/use_cursor.js +5 -4
- package/dist/{cjs → esm}/base/ui/use_form_field.js +1 -1
- package/dist/{cjs → esm}/base/ui/use_loadable.js +25 -91
- package/dist/{cjs → esm}/base/ui/use_record_action_data.js +4 -3
- package/dist/{cjs → esm}/base/ui/use_records.js +9 -13
- package/dist/{cjs → esm}/base/ui/use_session.js +1 -1
- package/dist/{cjs → esm}/base/ui/use_settings_button.js +4 -3
- package/dist/esm/base/ui/use_styled_system.js +25 -0
- package/dist/{cjs → esm}/base/ui/use_text_color_for_background_color.js +4 -3
- package/dist/{cjs → esm}/base/ui/use_view_metadata.js +4 -4
- package/dist/{cjs → esm}/base/ui/use_viewport.js +2 -2
- package/dist/esm/base/ui/view_picker.js +89 -0
- package/dist/esm/base/ui/view_picker_synced.js +66 -0
- package/dist/esm/base/ui/viewport_constraint.js +129 -0
- package/dist/esm/base/ui/with_styled_system.js +129 -0
- package/dist/esm/base/undo_redo.js +37 -0
- package/dist/{cjs → esm}/base/unstable_testing_utils.js +27 -27
- package/dist/esm/base/viewport.js +353 -0
- package/dist/esm/injected/airtable_interface.js +22 -0
- package/dist/esm/interface/assert_run_context.js +12 -0
- package/dist/esm/interface/index.js +22 -0
- package/dist/esm/interface/models/base.js +35 -0
- package/dist/esm/interface/models/field.js +28 -0
- package/dist/{cjs → esm}/interface/models/models.js +8 -7
- package/dist/esm/interface/models/mutations.js +63 -0
- package/dist/esm/interface/models/record.js +51 -0
- package/dist/esm/interface/models/record_store.js +51 -0
- package/dist/esm/interface/models/session.js +28 -0
- package/dist/esm/interface/models/table.js +97 -0
- package/dist/esm/interface/sdk.js +78 -0
- package/dist/{cjs → esm}/interface/types/airtable_interface.js +2 -2
- package/dist/esm/interface/types/mutations.js +17 -0
- package/dist/esm/interface/ui/block_wrapper.js +69 -0
- package/dist/{cjs → esm}/interface/ui/initialize_block.js +13 -28
- package/dist/{cjs → esm}/interface/ui/ui.js +20 -19
- package/dist/{cjs → esm}/interface/ui/use_base.js +1 -1
- package/dist/{cjs → esm}/interface/ui/use_custom_properties.js +19 -35
- package/dist/{cjs → esm}/interface/ui/use_records.js +6 -5
- package/dist/{cjs → esm}/interface/ui/use_run_info.js +2 -2
- package/dist/{cjs → esm}/interface/ui/use_session.js +1 -1
- package/dist/{cjs → esm}/shared/color_utils.js +9 -16
- package/dist/{cjs → esm}/shared/colors.js +2 -2
- package/dist/{cjs → esm}/shared/error_utils.js +9 -11
- package/dist/{cjs → esm}/shared/event_tracker.js +3 -3
- package/dist/esm/shared/global_config.js +399 -0
- package/dist/esm/shared/models/abstract_model.js +94 -0
- package/dist/esm/shared/models/base_core.js +482 -0
- package/dist/esm/shared/models/field_core.js +288 -0
- package/dist/esm/shared/models/mutations_core.js +343 -0
- package/dist/esm/shared/models/record_core.js +215 -0
- package/dist/esm/shared/models/record_store_core.js +160 -0
- package/dist/esm/shared/models/session_core.js +160 -0
- package/dist/esm/shared/models/table_core.js +1318 -0
- package/dist/{cjs → esm}/shared/private_utils.js +54 -124
- package/dist/esm/shared/sdk_core.js +113 -0
- package/dist/{cjs → esm}/shared/types/field_core.js +1 -1
- package/dist/esm/shared/types/mutation_constants.js +11 -0
- package/dist/{cjs → esm}/shared/types/mutations_core.js +1 -1
- package/dist/{cjs → esm}/shared/types/permission_levels.js +1 -1
- package/dist/esm/shared/types/record.js +1 -0
- package/dist/esm/shared/types/stat.js +1 -0
- package/dist/esm/shared/types/table_core.js +1 -0
- package/dist/{cjs → esm}/shared/ui/global_config_synced_component_helpers.js +9 -9
- package/dist/esm/shared/ui/loader.js +47 -0
- package/dist/{cjs → esm}/shared/ui/remote_utils.js +5 -7
- package/dist/{cjs → esm}/shared/ui/sdk_context.js +4 -8
- package/dist/{cjs → esm}/shared/ui/use_array_identity.js +2 -2
- package/dist/{cjs → esm}/shared/ui/use_base.js +6 -5
- package/dist/{cjs → esm}/shared/ui/use_color_scheme.js +3 -8
- package/dist/{cjs → esm}/shared/ui/use_global_config.js +5 -4
- package/dist/{cjs → esm}/shared/ui/use_session.js +6 -5
- package/dist/{cjs → esm}/shared/ui/use_synced.js +7 -5
- package/dist/{cjs → esm}/shared/ui/use_watchable.js +13 -42
- package/dist/{cjs → esm}/shared/ui/with_hooks.js +6 -13
- package/dist/{cjs → esm}/shared/unstable_private_utils.js +4 -6
- package/dist/{cjs → esm}/shared/warning.js +5 -5
- package/dist/esm/shared/watchable.js +150 -0
- package/dist/esm/stats/block_stats.js +73 -0
- package/dist/esm/testing/base/abstract_mock_airtable_interface.js +208 -0
- package/dist/esm/testing/interface/abstract_mock_airtable_interface.js +124 -0
- package/dist/types/src/base/assert_run_context.d.ts +2 -0
- package/dist/types/src/base/assert_run_context.d.ts.map +1 -0
- package/dist/types/src/base/index.d.ts +1 -0
- package/dist/types/src/base/index.d.ts.map +1 -1
- package/dist/types/src/base/models/base.d.ts +19 -0
- package/dist/types/src/base/models/base.d.ts.map +1 -1
- package/dist/types/src/base/models/create_aggregators.d.ts +3 -4
- package/dist/types/src/base/models/create_aggregators.d.ts.map +1 -1
- package/dist/types/src/base/models/field.d.ts +3 -2
- package/dist/types/src/base/models/field.d.ts.map +1 -1
- package/dist/types/src/base/models/models.d.ts +1 -2
- package/dist/types/src/base/models/models.d.ts.map +1 -1
- package/dist/types/src/base/models/mutations.d.ts.map +1 -1
- package/dist/types/src/base/sdk.d.ts.map +1 -1
- package/dist/types/src/base/ui/block_wrapper.d.ts +1 -1
- package/dist/types/src/base/ui/box.d.ts.map +1 -1
- package/dist/types/src/base/ui/button.d.ts +0 -5
- package/dist/types/src/base/ui/button.d.ts.map +1 -1
- package/dist/types/src/base/ui/cell_renderer.d.ts +1 -22
- package/dist/types/src/base/ui/cell_renderer.d.ts.map +1 -1
- package/dist/types/src/base/ui/choice_token.d.ts +1 -21
- package/dist/types/src/base/ui/choice_token.d.ts.map +1 -1
- package/dist/types/src/base/ui/collaborator_token.d.ts +0 -20
- package/dist/types/src/base/ui/collaborator_token.d.ts.map +1 -1
- package/dist/types/src/base/ui/color_palette.d.ts +1 -32
- package/dist/types/src/base/ui/color_palette.d.ts.map +1 -1
- package/dist/types/src/base/ui/color_palette_synced.d.ts +0 -14
- package/dist/types/src/base/ui/color_palette_synced.d.ts.map +1 -1
- package/dist/types/src/base/ui/confirmation_dialog.d.ts +0 -17
- package/dist/types/src/base/ui/confirmation_dialog.d.ts.map +1 -1
- package/dist/types/src/base/ui/control_sizes.d.ts +0 -1
- package/dist/types/src/base/ui/control_sizes.d.ts.map +1 -1
- package/dist/types/src/base/ui/dialog.d.ts +1 -23
- package/dist/types/src/base/ui/dialog.d.ts.map +1 -1
- package/dist/types/src/base/ui/dialog_close_button.d.ts +2 -24
- package/dist/types/src/base/ui/dialog_close_button.d.ts.map +1 -1
- package/dist/types/src/base/ui/field_icon.d.ts +1 -17
- package/dist/types/src/base/ui/field_icon.d.ts.map +1 -1
- package/dist/types/src/base/ui/field_picker.d.ts +0 -23
- package/dist/types/src/base/ui/field_picker.d.ts.map +1 -1
- package/dist/types/src/base/ui/field_picker_synced.d.ts.map +1 -1
- package/dist/types/src/base/ui/form_field.d.ts +0 -4
- package/dist/types/src/base/ui/form_field.d.ts.map +1 -1
- package/dist/types/src/base/ui/heading.d.ts +1 -1
- package/dist/types/src/base/ui/heading.d.ts.map +1 -1
- package/dist/types/src/base/ui/icon.d.ts +0 -16
- package/dist/types/src/base/ui/icon.d.ts.map +1 -1
- package/dist/types/src/base/ui/icon_config.d.ts +50 -51
- package/dist/types/src/base/ui/icon_config.d.ts.map +1 -1
- package/dist/types/src/base/ui/initialize_block.d.ts.map +1 -1
- package/dist/types/src/base/ui/input.d.ts +12 -46
- package/dist/types/src/base/ui/input.d.ts.map +1 -1
- package/dist/types/src/base/ui/input_synced.d.ts.map +1 -1
- package/dist/types/src/base/ui/label.d.ts.map +1 -1
- package/dist/types/src/base/ui/link.d.ts +1 -5
- package/dist/types/src/base/ui/link.d.ts.map +1 -1
- package/dist/types/src/base/ui/loader.d.ts +3 -20
- package/dist/types/src/base/ui/loader.d.ts.map +1 -1
- package/dist/types/src/base/ui/modal.d.ts +1 -14
- package/dist/types/src/base/ui/modal.d.ts.map +1 -1
- package/dist/types/src/base/ui/model_picker_select.d.ts.map +1 -1
- package/dist/types/src/base/ui/popover.d.ts +1 -17
- package/dist/types/src/base/ui/popover.d.ts.map +1 -1
- package/dist/types/src/base/ui/progress_bar.d.ts +1 -24
- package/dist/types/src/base/ui/progress_bar.d.ts.map +1 -1
- package/dist/types/src/base/ui/record_card.d.ts +1 -23
- package/dist/types/src/base/ui/record_card.d.ts.map +1 -1
- package/dist/types/src/base/ui/record_card_list.d.ts +1 -18
- package/dist/types/src/base/ui/record_card_list.d.ts.map +1 -1
- package/dist/types/src/base/ui/select.d.ts +0 -44
- package/dist/types/src/base/ui/select.d.ts.map +1 -1
- package/dist/types/src/base/ui/select_and_select_buttons_helpers.d.ts +0 -2
- package/dist/types/src/base/ui/select_and_select_buttons_helpers.d.ts.map +1 -1
- package/dist/types/src/base/ui/select_buttons.d.ts +0 -22
- package/dist/types/src/base/ui/select_buttons.d.ts.map +1 -1
- package/dist/types/src/base/ui/select_buttons_synced.d.ts.map +1 -1
- package/dist/types/src/base/ui/select_synced.d.ts.map +1 -1
- package/dist/types/src/base/ui/switch.d.ts +0 -22
- package/dist/types/src/base/ui/switch.d.ts.map +1 -1
- package/dist/types/src/base/ui/switch_synced.d.ts.map +1 -1
- package/dist/types/src/base/ui/synced.d.ts +2 -8
- package/dist/types/src/base/ui/synced.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/all_styles_set.d.ts +0 -3
- package/dist/types/src/base/ui/system/all_styles_set.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/appearance/appearance_set.d.ts +0 -1
- package/dist/types/src/base/ui/system/appearance/appearance_set.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/appearance/background_color.d.ts +0 -1
- package/dist/types/src/base/ui/system/appearance/background_color.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/appearance/border.d.ts +0 -1
- package/dist/types/src/base/ui/system/appearance/border.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/appearance/border_radius.d.ts +0 -1
- package/dist/types/src/base/ui/system/appearance/border_radius.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/appearance/box_shadow.d.ts +0 -1
- package/dist/types/src/base/ui/system/appearance/box_shadow.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/appearance/opacity.d.ts +0 -1
- package/dist/types/src/base/ui/system/appearance/opacity.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/dimensions/dimensions_set.d.ts +0 -1
- package/dist/types/src/base/ui/system/dimensions/dimensions_set.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/dimensions/height.d.ts +0 -1
- package/dist/types/src/base/ui/system/dimensions/height.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/dimensions/max_height.d.ts +0 -1
- package/dist/types/src/base/ui/system/dimensions/max_height.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/dimensions/max_width.d.ts +0 -1
- package/dist/types/src/base/ui/system/dimensions/max_width.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/dimensions/min_height.d.ts +0 -1
- package/dist/types/src/base/ui/system/dimensions/min_height.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/dimensions/min_width.d.ts +0 -1
- package/dist/types/src/base/ui/system/dimensions/min_width.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/dimensions/width.d.ts +0 -1
- package/dist/types/src/base/ui/system/dimensions/width.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/display.d.ts +0 -1
- package/dist/types/src/base/ui/system/display.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_container/align_content.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_container/align_content.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_container/align_items.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_container/align_items.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_container/flex_container_set.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_container/flex_container_set.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_container/flex_direction.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_container/flex_direction.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_container/flex_wrap.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_container/flex_wrap.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_container/justify_content.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_container/justify_content.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_container/justify_items.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_container/justify_items.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_item/align_self.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_item/align_self.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_item/flex.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_item/flex.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_item/flex_basis.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_item/flex_basis.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_item/flex_grow.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_item/flex_grow.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_item/flex_item_set.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_item/flex_item_set.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_item/flex_shrink.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_item/flex_shrink.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_item/justify_self.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_item/justify_self.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/flex_item/order.d.ts +0 -1
- package/dist/types/src/base/ui/system/flex_item/order.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/index.d.ts +52 -52
- package/dist/types/src/base/ui/system/index.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/overflow.d.ts +0 -1
- package/dist/types/src/base/ui/system/overflow.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/position/bottom.d.ts +0 -1
- package/dist/types/src/base/ui/system/position/bottom.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/position/left.d.ts +0 -1
- package/dist/types/src/base/ui/system/position/left.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/position/position.d.ts +0 -1
- package/dist/types/src/base/ui/system/position/position.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/position/position_set.d.ts +0 -1
- package/dist/types/src/base/ui/system/position/position_set.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/position/right.d.ts +0 -1
- package/dist/types/src/base/ui/system/position/right.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/position/top.d.ts +0 -1
- package/dist/types/src/base/ui/system/position/top.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/position/z_index.d.ts +0 -1
- package/dist/types/src/base/ui/system/position/z_index.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/spacing/margin.d.ts +0 -1
- package/dist/types/src/base/ui/system/spacing/margin.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/spacing/padding.d.ts +0 -1
- package/dist/types/src/base/ui/system/spacing/padding.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/spacing/spacing_set.d.ts +0 -1
- package/dist/types/src/base/ui/system/spacing/spacing_set.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/typography/font_family.d.ts +0 -1
- package/dist/types/src/base/ui/system/typography/font_family.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/typography/font_size.d.ts +0 -1
- package/dist/types/src/base/ui/system/typography/font_size.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/typography/font_style.d.ts +0 -1
- package/dist/types/src/base/ui/system/typography/font_style.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/typography/font_weight.d.ts +0 -1
- package/dist/types/src/base/ui/system/typography/font_weight.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/typography/letter_spacing.d.ts +0 -1
- package/dist/types/src/base/ui/system/typography/letter_spacing.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/typography/line_height.d.ts +0 -1
- package/dist/types/src/base/ui/system/typography/line_height.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/typography/text_align.d.ts +0 -1
- package/dist/types/src/base/ui/system/typography/text_align.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/typography/text_color.d.ts +0 -1
- package/dist/types/src/base/ui/system/typography/text_color.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/typography/text_decoration.d.ts +0 -1
- package/dist/types/src/base/ui/system/typography/text_decoration.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/typography/text_transform.d.ts +0 -1
- package/dist/types/src/base/ui/system/typography/text_transform.d.ts.map +1 -1
- package/dist/types/src/base/ui/system/typography/typography_set.d.ts +0 -1
- package/dist/types/src/base/ui/system/typography/typography_set.d.ts.map +1 -1
- package/dist/types/src/base/ui/table_picker.d.ts +0 -21
- package/dist/types/src/base/ui/table_picker.d.ts.map +1 -1
- package/dist/types/src/base/ui/table_picker_synced.d.ts.map +1 -1
- package/dist/types/src/base/ui/text.d.ts +0 -3
- package/dist/types/src/base/ui/text.d.ts.map +1 -1
- package/dist/types/src/base/ui/text_button.d.ts +1 -5
- package/dist/types/src/base/ui/text_button.d.ts.map +1 -1
- package/dist/types/src/base/ui/theme/default_theme/index.d.ts +1 -1
- package/dist/types/src/base/ui/theme/theme_context.d.ts +1 -1
- package/dist/types/src/base/ui/theme/use_theme.d.ts +1 -1
- package/dist/types/src/base/ui/tooltip.d.ts +0 -16
- package/dist/types/src/base/ui/tooltip.d.ts.map +1 -1
- package/dist/types/src/base/ui/types/aria_props.d.ts.map +1 -1
- package/dist/types/src/base/ui/types/data_attributes_prop.d.ts +0 -4
- package/dist/types/src/base/ui/types/data_attributes_prop.d.ts.map +1 -1
- package/dist/types/src/base/ui/types/tooltip_anchor_props.d.ts +0 -7
- package/dist/types/src/base/ui/types/tooltip_anchor_props.d.ts.map +1 -1
- package/dist/types/src/base/ui/ui.d.ts +1 -0
- package/dist/types/src/base/ui/ui.d.ts.map +1 -1
- package/dist/types/src/base/ui/view_picker.d.ts +0 -23
- package/dist/types/src/base/ui/view_picker.d.ts.map +1 -1
- package/dist/types/src/base/ui/view_picker_synced.d.ts.map +1 -1
- package/dist/types/src/base/ui/viewport_constraint.d.ts +1 -14
- package/dist/types/src/base/ui/viewport_constraint.d.ts.map +1 -1
- package/dist/types/src/base/unstable_testing_utils.d.ts +1 -1
- package/dist/types/src/base/unstable_testing_utils.d.ts.map +1 -1
- package/dist/types/src/interface/assert_run_context.d.ts +2 -0
- package/dist/types/src/interface/assert_run_context.d.ts.map +1 -0
- package/dist/types/src/interface/index.d.ts +1 -6
- package/dist/types/src/interface/index.d.ts.map +1 -1
- package/dist/types/src/interface/models/models.d.ts +1 -0
- package/dist/types/src/interface/models/models.d.ts.map +1 -1
- package/dist/types/src/interface/models/mutations.d.ts.map +1 -1
- package/dist/types/src/interface/ui/initialize_block.d.ts.map +1 -1
- package/dist/types/src/interface/ui/ui.d.ts +1 -0
- package/dist/types/src/interface/ui/ui.d.ts.map +1 -1
- package/dist/types/src/interface/ui/use_custom_properties.d.ts +1 -1
- package/dist/types/src/shared/models/mutations_core.d.ts.map +1 -1
- package/dist/types/src/shared/private_utils.d.ts +0 -9
- package/dist/types/src/shared/private_utils.d.ts.map +1 -1
- package/dist/types/src/shared/ui/global_config_synced_component_helpers.d.ts +0 -2
- package/dist/types/src/shared/ui/global_config_synced_component_helpers.d.ts.map +1 -1
- package/dist/types/src/shared/ui/loader.d.ts.map +1 -1
- package/dist/types/src/shared/ui/with_hooks.d.ts +2 -2
- package/dist/types/src/shared/ui/with_hooks.d.ts.map +1 -1
- package/dist/types/src/testing/{abstract_mock_airtable_interface.d.ts → base/abstract_mock_airtable_interface.d.ts} +13 -13
- package/dist/types/src/testing/base/abstract_mock_airtable_interface.d.ts.map +1 -0
- package/dist/types/src/testing/interface/abstract_mock_airtable_interface.d.ts +51 -0
- package/dist/types/src/testing/interface/abstract_mock_airtable_interface.d.ts.map +1 -0
- package/models.js +1 -1
- package/package.json +24 -23
- package/types.js +1 -1
- package/dist/cjs/base/models/abstract_model_with_async_data.js +0 -273
- package/dist/cjs/base/models/base.js +0 -306
- package/dist/cjs/base/models/create_aggregators.js +0 -115
- package/dist/cjs/base/models/cursor.js +0 -393
- package/dist/cjs/base/models/field.js +0 -427
- package/dist/cjs/base/models/grouped_record_query_result.js +0 -399
- package/dist/cjs/base/models/linked_records_query_result.js +0 -728
- package/dist/cjs/base/models/mutations.js +0 -338
- package/dist/cjs/base/models/object_pool.js +0 -184
- package/dist/cjs/base/models/record.js +0 -304
- package/dist/cjs/base/models/record_query_result.js +0 -741
- package/dist/cjs/base/models/record_store.js +0 -825
- package/dist/cjs/base/models/session.js +0 -182
- package/dist/cjs/base/models/table.js +0 -668
- package/dist/cjs/base/models/table_or_view_query_result.js +0 -1013
- package/dist/cjs/base/models/view.js +0 -431
- package/dist/cjs/base/models/view_data_store.js +0 -403
- package/dist/cjs/base/models/view_metadata_query_result.js +0 -224
- package/dist/cjs/base/perform_record_action.js +0 -257
- package/dist/cjs/base/sdk.js +0 -233
- package/dist/cjs/base/settings_button.js +0 -138
- package/dist/cjs/base/ui/baymax_utils.js +0 -133
- package/dist/cjs/base/ui/block_wrapper.js +0 -143
- package/dist/cjs/base/ui/box.js +0 -110
- package/dist/cjs/base/ui/button.js +0 -182
- package/dist/cjs/base/ui/cell_renderer.js +0 -255
- package/dist/cjs/base/ui/choice_token.js +0 -110
- package/dist/cjs/base/ui/collaborator_token.js +0 -145
- package/dist/cjs/base/ui/color_palette.js +0 -239
- package/dist/cjs/base/ui/color_palette_synced.js +0 -98
- package/dist/cjs/base/ui/confirmation_dialog.js +0 -153
- package/dist/cjs/base/ui/dialog.js +0 -142
- package/dist/cjs/base/ui/dialog_close_button.js +0 -152
- package/dist/cjs/base/ui/expand_record_picker_async.js +0 -100
- package/dist/cjs/base/ui/field_icon.js +0 -62
- package/dist/cjs/base/ui/field_picker.js +0 -143
- package/dist/cjs/base/ui/field_picker_synced.js +0 -88
- package/dist/cjs/base/ui/form_field.js +0 -137
- package/dist/cjs/base/ui/geometry/point.js +0 -21
- package/dist/cjs/base/ui/geometry/rect.js +0 -67
- package/dist/cjs/base/ui/geometry/size.js +0 -21
- package/dist/cjs/base/ui/global_alert.js +0 -92
- package/dist/cjs/base/ui/heading.js +0 -181
- package/dist/cjs/base/ui/icon.js +0 -129
- package/dist/cjs/base/ui/input.js +0 -200
- package/dist/cjs/base/ui/input_synced.js +0 -89
- package/dist/cjs/base/ui/label.js +0 -105
- package/dist/cjs/base/ui/link.js +0 -229
- package/dist/cjs/base/ui/loader.js +0 -82
- package/dist/cjs/base/ui/modal.js +0 -184
- package/dist/cjs/base/ui/model_picker_select.js +0 -83
- package/dist/cjs/base/ui/popover.js +0 -407
- package/dist/cjs/base/ui/progress_bar.js +0 -128
- package/dist/cjs/base/ui/record_card.js +0 -653
- package/dist/cjs/base/ui/record_card_list.js +0 -377
- package/dist/cjs/base/ui/select.js +0 -247
- package/dist/cjs/base/ui/select_and_select_buttons_helpers.js +0 -87
- package/dist/cjs/base/ui/select_buttons.js +0 -192
- package/dist/cjs/base/ui/select_buttons_synced.js +0 -84
- package/dist/cjs/base/ui/select_synced.js +0 -87
- package/dist/cjs/base/ui/switch.js +0 -196
- package/dist/cjs/base/ui/switch_synced.js +0 -75
- package/dist/cjs/base/ui/synced.js +0 -70
- package/dist/cjs/base/ui/system/appearance/appearance_set.js +0 -30
- package/dist/cjs/base/ui/system/appearance/background_color.js +0 -21
- package/dist/cjs/base/ui/system/appearance/border_radius.js +0 -21
- package/dist/cjs/base/ui/system/appearance/box_shadow.js +0 -21
- package/dist/cjs/base/ui/system/appearance/opacity.js +0 -21
- package/dist/cjs/base/ui/system/dimensions/dimensions_set.js +0 -31
- package/dist/cjs/base/ui/system/dimensions/height.js +0 -21
- package/dist/cjs/base/ui/system/dimensions/max_height.js +0 -21
- package/dist/cjs/base/ui/system/dimensions/max_width.js +0 -21
- package/dist/cjs/base/ui/system/dimensions/min_height.js +0 -21
- package/dist/cjs/base/ui/system/dimensions/min_width.js +0 -21
- package/dist/cjs/base/ui/system/dimensions/width.js +0 -21
- package/dist/cjs/base/ui/system/display.js +0 -22
- package/dist/cjs/base/ui/system/flex_container/align_content.js +0 -18
- package/dist/cjs/base/ui/system/flex_container/align_items.js +0 -18
- package/dist/cjs/base/ui/system/flex_container/flex_container_set.js +0 -31
- package/dist/cjs/base/ui/system/flex_container/flex_direction.js +0 -18
- package/dist/cjs/base/ui/system/flex_container/flex_wrap.js +0 -18
- package/dist/cjs/base/ui/system/flex_container/justify_content.js +0 -18
- package/dist/cjs/base/ui/system/flex_container/justify_items.js +0 -19
- package/dist/cjs/base/ui/system/flex_item/align_self.js +0 -18
- package/dist/cjs/base/ui/system/flex_item/flex.js +0 -18
- package/dist/cjs/base/ui/system/flex_item/flex_basis.js +0 -18
- package/dist/cjs/base/ui/system/flex_item/flex_grow.js +0 -18
- package/dist/cjs/base/ui/system/flex_item/flex_item_set.js +0 -32
- package/dist/cjs/base/ui/system/flex_item/flex_shrink.js +0 -18
- package/dist/cjs/base/ui/system/flex_item/justify_self.js +0 -19
- package/dist/cjs/base/ui/system/flex_item/order.js +0 -18
- package/dist/cjs/base/ui/system/overflow.js +0 -24
- package/dist/cjs/base/ui/system/position/position.js +0 -18
- package/dist/cjs/base/ui/system/position/position_set.js +0 -31
- package/dist/cjs/base/ui/system/position/z_index.js +0 -21
- package/dist/cjs/base/ui/system/spacing/spacing_set.js +0 -27
- package/dist/cjs/base/ui/system/typography/font_family.js +0 -21
- package/dist/cjs/base/ui/system/typography/font_size.js +0 -21
- package/dist/cjs/base/ui/system/typography/font_style.js +0 -18
- package/dist/cjs/base/ui/system/typography/font_weight.js +0 -21
- package/dist/cjs/base/ui/system/typography/letter_spacing.js +0 -21
- package/dist/cjs/base/ui/system/typography/line_height.js +0 -18
- package/dist/cjs/base/ui/system/typography/text_align.js +0 -18
- package/dist/cjs/base/ui/system/typography/text_color.js +0 -21
- package/dist/cjs/base/ui/system/typography/text_decoration.js +0 -18
- package/dist/cjs/base/ui/system/typography/text_transform.js +0 -18
- package/dist/cjs/base/ui/system/typography/typography_set.js +0 -35
- package/dist/cjs/base/ui/system/utils/create_responsive_prop_type.js +0 -19
- package/dist/cjs/base/ui/system/utils/create_style_prop_types.js +0 -24
- package/dist/cjs/base/ui/system/utils/enum_prop_type_utils.js +0 -35
- package/dist/cjs/base/ui/system/utils/get_style_props_for_responsive_prop.js +0 -113
- package/dist/cjs/base/ui/table_picker.js +0 -95
- package/dist/cjs/base/ui/table_picker_synced.js +0 -84
- package/dist/cjs/base/ui/text.js +0 -150
- package/dist/cjs/base/ui/text_button.js +0 -228
- package/dist/cjs/base/ui/theme/default_theme/control_sizes.js +0 -96
- package/dist/cjs/base/ui/theme/default_theme/select_variants.js +0 -59
- package/dist/cjs/base/ui/theme/default_theme/switch_variants.js +0 -91
- package/dist/cjs/base/ui/tooltip.js +0 -215
- package/dist/cjs/base/ui/types/aria_props.js +0 -23
- package/dist/cjs/base/ui/types/data_attributes_prop.js +0 -18
- package/dist/cjs/base/ui/types/tooltip_anchor_props.js +0 -17
- package/dist/cjs/base/ui/use_styled_system.js +0 -32
- package/dist/cjs/base/ui/view_picker.js +0 -133
- package/dist/cjs/base/ui/view_picker_synced.js +0 -88
- package/dist/cjs/base/ui/viewport_constraint.js +0 -176
- package/dist/cjs/base/ui/with_styled_system.js +0 -165
- package/dist/cjs/base/undo_redo.js +0 -48
- package/dist/cjs/base/viewport.js +0 -397
- package/dist/cjs/injected/airtable_interface.js +0 -22
- package/dist/cjs/interface/index.js +0 -36
- package/dist/cjs/interface/models/base.js +0 -54
- package/dist/cjs/interface/models/field.js +0 -42
- package/dist/cjs/interface/models/mutations.js +0 -79
- package/dist/cjs/interface/models/record.js +0 -71
- package/dist/cjs/interface/models/record_store.js +0 -83
- package/dist/cjs/interface/models/session.js +0 -42
- package/dist/cjs/interface/models/table.js +0 -126
- package/dist/cjs/interface/sdk.js +0 -104
- package/dist/cjs/interface/types/mutations.js +0 -24
- package/dist/cjs/interface/ui/block_wrapper.js +0 -61
- package/dist/cjs/shared/global_config.js +0 -511
- package/dist/cjs/shared/models/abstract_model.js +0 -119
- package/dist/cjs/shared/models/base_core.js +0 -602
- package/dist/cjs/shared/models/field_core.js +0 -331
- package/dist/cjs/shared/models/mutations_core.js +0 -439
- package/dist/cjs/shared/models/record_core.js +0 -272
- package/dist/cjs/shared/models/record_store_core.js +0 -213
- package/dist/cjs/shared/models/session_core.js +0 -214
- package/dist/cjs/shared/models/table_core.js +0 -1561
- package/dist/cjs/shared/sdk_core.js +0 -115
- package/dist/cjs/shared/types/mutation_constants.js +0 -11
- package/dist/cjs/shared/ui/loader.js +0 -68
- package/dist/cjs/shared/watchable.js +0 -216
- package/dist/cjs/stats/block_stats.js +0 -96
- package/dist/cjs/testing/abstract_mock_airtable_interface.js +0 -277
- package/dist/types/src/base/ui/system/utils/create_responsive_prop_type.d.ts +0 -2
- package/dist/types/src/base/ui/system/utils/create_responsive_prop_type.d.ts.map +0 -1
- package/dist/types/src/base/ui/system/utils/create_style_prop_types.d.ts +0 -4
- package/dist/types/src/base/ui/system/utils/create_style_prop_types.d.ts.map +0 -1
- package/dist/types/src/base/ui/system/utils/enum_prop_type_utils.d.ts +0 -21
- package/dist/types/src/base/ui/system/utils/enum_prop_type_utils.d.ts.map +0 -1
- package/dist/types/src/testing/abstract_mock_airtable_interface.d.ts.map +0 -1
- /package/dist/{cjs → esm}/base/types/aggregators.js +0 -0
- /package/dist/{cjs → esm}/base/types/backend_fetch_types.js +0 -0
- /package/dist/{cjs → esm}/base/types/base.js +0 -0
- /package/dist/{cjs → esm}/base/types/cursor.js +0 -0
- /package/dist/{cjs → esm}/base/types/field.js +0 -0
- /package/dist/{cjs → esm}/base/types/record.js +0 -0
- /package/dist/{cjs → esm}/base/types/record_action_data.js +0 -0
- /package/dist/{cjs → esm}/base/types/table.js +0 -0
- /package/dist/{cjs → esm}/base/types/viewport.js +0 -0
- /package/dist/{cjs → esm}/base/ui/system/utils/csstype.js +0 -0
- /package/dist/{cjs → esm}/base/ui/system/utils/types.js +0 -0
- /package/dist/{cjs/interface/types/base.js → esm/base/ui/types/aria_props.js} +0 -0
- /package/dist/{cjs/interface/types/field.js → esm/base/ui/types/data_attributes_prop.js} +0 -0
- /package/dist/{cjs/interface/types/record.js → esm/base/ui/types/tooltip_anchor_props.js} +0 -0
- /package/dist/{cjs/interface/types/table.js → esm/interface/types/base.js} +0 -0
- /package/dist/{cjs/sdk_mode.js → esm/interface/types/field.js} +0 -0
- /package/dist/{cjs/shared → esm/interface}/types/record.js +0 -0
- /package/dist/{cjs/shared/types/airtable_interface_core.js → esm/interface/types/table.js} +0 -0
- /package/dist/{cjs → esm}/interface/ui/expand_record.js +0 -0
- /package/dist/{cjs/shared/types/attachment.js → esm/sdk_mode.js} +0 -0
- /package/dist/{cjs/shared/types/base_core.js → esm/shared/types/airtable_interface_core.js} +0 -0
- /package/dist/{cjs/shared/types/collaborator.js → esm/shared/types/attachment.js} +0 -0
- /package/dist/{cjs/shared/types/global_config.js → esm/shared/types/base_core.js} +0 -0
- /package/dist/{cjs/shared/types/hyper_ids.js → esm/shared/types/collaborator.js} +0 -0
- /package/dist/{cjs/shared/types/stat.js → esm/shared/types/global_config.js} +0 -0
- /package/dist/{cjs/shared/types/table_core.js → esm/shared/types/hyper_ids.js} +0 -0
|
@@ -0,0 +1,749 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _private_utils = require("../../shared/private_utils");
|
|
8
|
+
var _error_utils = require("../../shared/error_utils");
|
|
9
|
+
var _table = _interopRequireWildcard(require("./table"));
|
|
10
|
+
var _record_query_result = _interopRequireDefault(require("./record_query_result"));
|
|
11
|
+
var _record_coloring = require("./record_coloring");
|
|
12
|
+
var _object_pool = _interopRequireDefault(require("./object_pool"));
|
|
13
|
+
var _record_store = require("./record_store");
|
|
14
|
+
var _view_data_store = _interopRequireWildcard(require("./view_data_store"));
|
|
15
|
+
var _grouped_record_query_result = _interopRequireDefault(require("./grouped_record_query_result"));
|
|
16
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
18
|
+
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; }
|
|
19
|
+
/** @module @airtable/blocks/models: RecordQueryResult */ /** */
|
|
20
|
+
|
|
21
|
+
/** @hidden */
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Represents a set of records directly from a view or table. See {@link RecordQueryResult} for main
|
|
25
|
+
* documentation.
|
|
26
|
+
*
|
|
27
|
+
* Do not instantiate. You can get instances of this class by calling
|
|
28
|
+
* `table.selectRecords` or `view.selectRecords`.
|
|
29
|
+
*
|
|
30
|
+
* @docsPath models/query results/TableOrViewQueryResult
|
|
31
|
+
*/
|
|
32
|
+
class TableOrViewQueryResult extends _record_query_result.default {
|
|
33
|
+
/** @internal */
|
|
34
|
+
static _className = 'TableOrViewQueryResult';
|
|
35
|
+
|
|
36
|
+
/** @internal */
|
|
37
|
+
|
|
38
|
+
/** @internal */
|
|
39
|
+
|
|
40
|
+
/** @internal */
|
|
41
|
+
|
|
42
|
+
/** @internal */
|
|
43
|
+
|
|
44
|
+
// If custom sorts or groups are specified, we'll use a VisList to handle sorting.
|
|
45
|
+
// If no sorts are specified, we'll use the underlying row order of the source model.
|
|
46
|
+
// Note: we're currently handling visibility tracking for view query results within this class,
|
|
47
|
+
// not in the VisList. In other words, only visible records are added to the visList.
|
|
48
|
+
/** @internal */
|
|
49
|
+
|
|
50
|
+
/** @internal */
|
|
51
|
+
|
|
52
|
+
// These is the groupLevels provided to us by the user when executing a query
|
|
53
|
+
/** @internal */
|
|
54
|
+
|
|
55
|
+
// This is the ordered list of record ids.
|
|
56
|
+
/** @internal */
|
|
57
|
+
|
|
58
|
+
// This is the ordered list of groups.
|
|
59
|
+
/** @internal */
|
|
60
|
+
|
|
61
|
+
// An ordered list of group levels returned to us from hyperbase, this should not be
|
|
62
|
+
// read from directly, but instead via this.data.groupLevels (Writing to this on hyperbase updates).
|
|
63
|
+
// (which check's that this model has not been not deleted)
|
|
64
|
+
/** @internal */
|
|
65
|
+
|
|
66
|
+
// lazily generated set of record ids
|
|
67
|
+
/** @internal */
|
|
68
|
+
_recordIdsSet = null;
|
|
69
|
+
|
|
70
|
+
// NOTE: when a cellValue key (cellValues or cellValuesInField:) is watched, we want
|
|
71
|
+
// to make sure we watch the associated key on the table. However, we need to make
|
|
72
|
+
// sure that we only watch the table once for each key. Otherwise, the callbacks
|
|
73
|
+
// for each key will get called more than once for each change event. This is because
|
|
74
|
+
// Watchable stores references to callbacks for each key, and on each _onChange event
|
|
75
|
+
// calls each callback for that key. If we watch the table more than once, then we'll
|
|
76
|
+
// call _onChange more than once, and each callback will be called more than once, which
|
|
77
|
+
// is undesirable. Instead, we'll store watch counts for each key to make sure we only
|
|
78
|
+
// watch the table once.
|
|
79
|
+
/** @internal */
|
|
80
|
+
|
|
81
|
+
/** @internal */
|
|
82
|
+
|
|
83
|
+
/** @internal */
|
|
84
|
+
constructor(sdk, sourceModel, normalizedOpts) {
|
|
85
|
+
super(sdk, normalizedOpts);
|
|
86
|
+
this._sourceModel = sourceModel;
|
|
87
|
+
this._mostRecentSourceModelLoadPromise = null;
|
|
88
|
+
this._table = normalizedOpts.table;
|
|
89
|
+
const {
|
|
90
|
+
sorts
|
|
91
|
+
} = this._normalizedOpts;
|
|
92
|
+
this._sorts = sorts ?? null;
|
|
93
|
+
// TODO (SeanKeenan): Placeholder until we support groups from normalizedOpts
|
|
94
|
+
this._groupLevels = null;
|
|
95
|
+
this._visList = null;
|
|
96
|
+
this._orderedRecordIds = null;
|
|
97
|
+
this._orderedGroups = null;
|
|
98
|
+
this._loadedGroupLevels = null;
|
|
99
|
+
this._cellValueKeyWatchCounts = {};
|
|
100
|
+
let fieldIdsSetToLoadOrNullIfAllFields = null;
|
|
101
|
+
if (this._normalizedOpts.fieldIdsOrNullIfAllFields) {
|
|
102
|
+
fieldIdsSetToLoadOrNullIfAllFields = {};
|
|
103
|
+
for (const fieldId of this._normalizedOpts.fieldIdsOrNullIfAllFields) {
|
|
104
|
+
fieldIdsSetToLoadOrNullIfAllFields[fieldId] = true;
|
|
105
|
+
}
|
|
106
|
+
// Need to load data for fields we're sorting by, even if
|
|
107
|
+
// they're not explicitly requested in the `fields` opt.
|
|
108
|
+
if (this._sorts !== null) {
|
|
109
|
+
for (const sort of this._sorts) {
|
|
110
|
+
fieldIdsSetToLoadOrNullIfAllFields[sort.fieldId] = true;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// TODO (SeanKeenan): Comment back in when enabling groups
|
|
114
|
+
// Same for group configs
|
|
115
|
+
// if (this._groupLevels !== null) {
|
|
116
|
+
// for (const group of this._groupLevels) {
|
|
117
|
+
// fieldIdsSetToLoadOrNullIfAllFields[group.fieldId] = true;
|
|
118
|
+
// }
|
|
119
|
+
// }
|
|
120
|
+
|
|
121
|
+
const recordColorMode = this._normalizedOpts.recordColorMode;
|
|
122
|
+
if (recordColorMode && recordColorMode.type === _record_coloring.ModeTypes.BY_SELECT_FIELD) {
|
|
123
|
+
fieldIdsSetToLoadOrNullIfAllFields[recordColorMode.selectField.id] = true;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
this._fieldIdsSetToLoadOrNullIfAllFields = fieldIdsSetToLoadOrNullIfAllFields;
|
|
127
|
+
this.__groupedRecordQueryResultPool = new _object_pool.default(_grouped_record_query_result.default);
|
|
128
|
+
Object.seal(this);
|
|
129
|
+
}
|
|
130
|
+
/** @internal */
|
|
131
|
+
get _dataOrNullIfDeleted() {
|
|
132
|
+
if (this._sourceModel.isDeleted || this._recordStore.isDeleted) {
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
recordIds: this._orderedRecordIds,
|
|
137
|
+
groups: this._orderedGroups,
|
|
138
|
+
groupLevels: this._loadedGroupLevels
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
/** @internal */
|
|
142
|
+
// istanbul ignore next
|
|
143
|
+
get __sourceModelId() {
|
|
144
|
+
return this._sourceModel.id;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/** @internal */
|
|
148
|
+
get __poolKey() {
|
|
149
|
+
return `${this._serializedOpts}::${this._sourceModel.id}`;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* @internal (since we may not be able to return parent model instances in the immutable models world)
|
|
154
|
+
* The table that records in this RecordQueryResult are part of
|
|
155
|
+
*/
|
|
156
|
+
get parentTable() {
|
|
157
|
+
return this._table;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* @internal (since we may not be able to return parent model instances in the immutable models world)
|
|
161
|
+
* The view that was used to obtain this RecordQueryResult by calling
|
|
162
|
+
* `view.selectRecords`. Null if the RecordQueryResult was obtained by calling
|
|
163
|
+
* `table.selectRecords`.
|
|
164
|
+
*/
|
|
165
|
+
get parentView() {
|
|
166
|
+
return this._sourceModel instanceof _table.default ? null : this._sourceModel;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* The record IDs in this RecordQueryResult.
|
|
170
|
+
* Throws if data is not loaded yet.
|
|
171
|
+
* Can be watched.
|
|
172
|
+
*/
|
|
173
|
+
get recordIds() {
|
|
174
|
+
// The following statements have been carefully sequenced to ensure
|
|
175
|
+
// that when this method fails, it reports the most salient error.
|
|
176
|
+
const {
|
|
177
|
+
recordIds
|
|
178
|
+
} = this._data; // Throws when the model has been deleted.
|
|
179
|
+
(0, _error_utils.invariant)(this.isDataLoaded, 'RecordQueryResult data is not loaded');
|
|
180
|
+
(0, _error_utils.invariant)(recordIds, 'No recordIds');
|
|
181
|
+
return recordIds;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* The ordered GroupedRecordQueryResult's in this RecordQueryResult.
|
|
185
|
+
* Throws if data is not loaded yet.
|
|
186
|
+
* Can be watched.
|
|
187
|
+
*
|
|
188
|
+
* @hidden
|
|
189
|
+
*/
|
|
190
|
+
get groups() {
|
|
191
|
+
// The following statements have been carefully sequenced to ensure
|
|
192
|
+
// that when this method fails, it reports the most salient error.
|
|
193
|
+
const {
|
|
194
|
+
groups
|
|
195
|
+
} = this._data; // Throws when the model has been deleted.
|
|
196
|
+
(0, _error_utils.invariant)(this.isDataLoaded, 'RecordQueryResult data is not loaded');
|
|
197
|
+
return groups ?? null;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* The GroupLevels in this RecordQueryResult.
|
|
201
|
+
* Throws if data is not loaded yet.
|
|
202
|
+
* Can be watched.
|
|
203
|
+
*
|
|
204
|
+
* @hidden
|
|
205
|
+
*/
|
|
206
|
+
get groupLevels() {
|
|
207
|
+
const {
|
|
208
|
+
groupLevels
|
|
209
|
+
} = this._data; // Throws when the model has been deleted.
|
|
210
|
+
(0, _error_utils.invariant)(this.isDataLoaded, 'RecordQueryResult data is not loaded');
|
|
211
|
+
return groupLevels ? groupLevels.map(singleLevel => ({
|
|
212
|
+
...singleLevel,
|
|
213
|
+
field: this.parentTable.getFieldById(singleLevel.fieldId)
|
|
214
|
+
})) : null;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* The set of record IDs in this RecordQueryResult.
|
|
218
|
+
* Throws if data is not loaded yet.
|
|
219
|
+
*
|
|
220
|
+
* @internal
|
|
221
|
+
*/
|
|
222
|
+
_getOrGenerateRecordIdsSet() {
|
|
223
|
+
if (!this._recordIdsSet) {
|
|
224
|
+
const recordIdsSet = {};
|
|
225
|
+
for (const recordId of this.recordIds) {
|
|
226
|
+
recordIdsSet[recordId] = true;
|
|
227
|
+
}
|
|
228
|
+
this._recordIdsSet = recordIdsSet;
|
|
229
|
+
}
|
|
230
|
+
return this._recordIdsSet;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* The fields that were used to create this RecordQueryResult.
|
|
234
|
+
* Null if fields were not specified, which means the RecordQueryResult
|
|
235
|
+
* will load all fields in the table.
|
|
236
|
+
*/
|
|
237
|
+
get fields() {
|
|
238
|
+
const {
|
|
239
|
+
fieldIdsOrNullIfAllFields
|
|
240
|
+
} = this._normalizedOpts;
|
|
241
|
+
if (fieldIdsOrNullIfAllFields) {
|
|
242
|
+
const fields = [];
|
|
243
|
+
// Filter out any deleted fields, since RecordQueryResult is "live".
|
|
244
|
+
// It would be too cumbersome (and defeat part of the purpose of
|
|
245
|
+
// using RecordQueryResult) if the user had to manually watch for deletion
|
|
246
|
+
// on all the fields and recreate the RecordQueryResult.
|
|
247
|
+
for (const fieldId of fieldIdsOrNullIfAllFields) {
|
|
248
|
+
const field = this._table.getFieldByIdIfExists(fieldId);
|
|
249
|
+
if (field !== null) {
|
|
250
|
+
fields.push(field);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
return fields;
|
|
254
|
+
} else {
|
|
255
|
+
return null;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
/** @internal */
|
|
259
|
+
get _cellValuesForSortWatchKeys() {
|
|
260
|
+
return this._sorts ? this._sorts.map(sort => `cellValuesInField:${sort.fieldId}`) : [];
|
|
261
|
+
}
|
|
262
|
+
/** @internal */
|
|
263
|
+
get _cellValuesForGroupWatchKeys() {
|
|
264
|
+
// _groupLevels can not be specified by the user during the query yet
|
|
265
|
+
// istanbul ignore next
|
|
266
|
+
return this._groupLevels ? this._groupLevels.map(group => `cellValuesInField:${group.fieldId}`) : [];
|
|
267
|
+
}
|
|
268
|
+
/** @internal */
|
|
269
|
+
get _sourceModelRecordIds() {
|
|
270
|
+
return this._sourceModel instanceof _table.default ? this._recordStore.recordIds : this._recordStore.getViewDataStore(this._sourceModel.id).visibleRecordIds;
|
|
271
|
+
}
|
|
272
|
+
/** @internal */
|
|
273
|
+
get _sourceModelGroups() {
|
|
274
|
+
return this._sourceModel instanceof _table.default ? null : this._recordStore.getViewDataStore(this._sourceModel.id).groups;
|
|
275
|
+
}
|
|
276
|
+
/** @internal */
|
|
277
|
+
get _sourceModelGroupLevels() {
|
|
278
|
+
return this._sourceModel instanceof _table.default ? null : this._recordStore.getViewDataStore(this._sourceModel.id).groupLevels;
|
|
279
|
+
}
|
|
280
|
+
/** @internal */
|
|
281
|
+
get _sourceModelRecords() {
|
|
282
|
+
return this._sourceModel instanceof _table.default ? this._recordStore.records : this._recordStore.getViewDataStore(this._sourceModel.id).visibleRecords;
|
|
283
|
+
}
|
|
284
|
+
/** @internal */
|
|
285
|
+
_incrementCellValueKeyWatchCountAndWatchIfNecessary(key, watchCallback) {
|
|
286
|
+
if (!this._cellValueKeyWatchCounts[key]) {
|
|
287
|
+
this._cellValueKeyWatchCounts[key] = 0;
|
|
288
|
+
this._recordStore.watch(key, watchCallback, this);
|
|
289
|
+
}
|
|
290
|
+
this._cellValueKeyWatchCounts[key]++;
|
|
291
|
+
}
|
|
292
|
+
/** @internal */
|
|
293
|
+
_decrementCellValueKeyWatchCountAndUnwatchIfPossible(key, watchCallback) {
|
|
294
|
+
if (!this._cellValueKeyWatchCounts[key]) {
|
|
295
|
+
// Key isn't watched, so just skip it. This matches behavior of Watchable,
|
|
296
|
+
// where calling unwatch on a key that isn't watched just no-ops.
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
this._cellValueKeyWatchCounts[key]--;
|
|
300
|
+
if (this._cellValueKeyWatchCounts[key] === 0) {
|
|
301
|
+
// We're down to zero watches for this key, so we can actually unwatch it now.
|
|
302
|
+
this._recordStore.unwatch(key, watchCallback, this);
|
|
303
|
+
delete this._cellValueKeyWatchCounts[key];
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
/** @inheritdoc */
|
|
307
|
+
watch(keys, callback, context) {
|
|
308
|
+
const validKeys = super.watch(keys, callback, context);
|
|
309
|
+
for (const key of validKeys) {
|
|
310
|
+
if (key.startsWith(_record_query_result.default.WatchableCellValuesInFieldKeyPrefix)) {
|
|
311
|
+
const fieldId = key.substring(_record_query_result.default.WatchableCellValuesInFieldKeyPrefix.length);
|
|
312
|
+
if (this._fieldIdsSetToLoadOrNullIfAllFields && !(0, _private_utils.has)(this._fieldIdsSetToLoadOrNullIfAllFields, fieldId)) {
|
|
313
|
+
throw (0, _error_utils.spawnError)("Can't watch field because it wasn't included in RecordQueryResult fields: %s", fieldId);
|
|
314
|
+
}
|
|
315
|
+
this._incrementCellValueKeyWatchCountAndWatchIfNecessary(key, this._onCellValuesInFieldChanged);
|
|
316
|
+
}
|
|
317
|
+
if (key === _record_query_result.default.WatchableKeys.cellValues) {
|
|
318
|
+
if (this._fieldIdsSetToLoadOrNullIfAllFields) {
|
|
319
|
+
for (const fieldId of Object.keys(this._fieldIdsSetToLoadOrNullIfAllFields)) {
|
|
320
|
+
this._incrementCellValueKeyWatchCountAndWatchIfNecessary(_record_query_result.default.WatchableCellValuesInFieldKeyPrefix + fieldId, this._onCellValuesChanged);
|
|
321
|
+
}
|
|
322
|
+
} else {
|
|
323
|
+
this._incrementCellValueKeyWatchCountAndWatchIfNecessary(key, this._onCellValuesChanged);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
return validKeys;
|
|
328
|
+
}
|
|
329
|
+
/** @inheritdoc */
|
|
330
|
+
unwatch(keys, callback, context) {
|
|
331
|
+
const validKeys = super.unwatch(keys, callback, context);
|
|
332
|
+
for (const key of validKeys) {
|
|
333
|
+
if (key.startsWith(_record_query_result.default.WatchableCellValuesInFieldKeyPrefix)) {
|
|
334
|
+
this._decrementCellValueKeyWatchCountAndUnwatchIfPossible(key, this._onCellValuesInFieldChanged);
|
|
335
|
+
}
|
|
336
|
+
if (key === _record_query_result.default.WatchableKeys.cellValues) {
|
|
337
|
+
if (this._fieldIdsSetToLoadOrNullIfAllFields) {
|
|
338
|
+
for (const fieldId of Object.keys(this._fieldIdsSetToLoadOrNullIfAllFields)) {
|
|
339
|
+
this._decrementCellValueKeyWatchCountAndUnwatchIfPossible(_record_query_result.default.WatchableCellValuesInFieldKeyPrefix + fieldId, this._onCellValuesChanged);
|
|
340
|
+
}
|
|
341
|
+
} else {
|
|
342
|
+
this._decrementCellValueKeyWatchCountAndUnwatchIfPossible(key, this._onCellValuesChanged);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
return validKeys;
|
|
347
|
+
}
|
|
348
|
+
/** @inheritdoc */
|
|
349
|
+
async loadDataAsync() {
|
|
350
|
+
let sourceModelLoadPromise;
|
|
351
|
+
let cellValuesInFieldsLoadPromise;
|
|
352
|
+
if (this._sourceModel.isDeleted) {
|
|
353
|
+
throw this._spawnErrorForDeletion();
|
|
354
|
+
}
|
|
355
|
+
if (this._fieldIdsSetToLoadOrNullIfAllFields) {
|
|
356
|
+
cellValuesInFieldsLoadPromise = this._recordStore.loadCellValuesInFieldIdsAsync(Object.keys(this._fieldIdsSetToLoadOrNullIfAllFields));
|
|
357
|
+
} else {
|
|
358
|
+
// Load all fields.
|
|
359
|
+
cellValuesInFieldsLoadPromise = this._recordStore.loadDataAsync();
|
|
360
|
+
}
|
|
361
|
+
if (this._sourceModel instanceof _table.default) {
|
|
362
|
+
if (this._fieldIdsSetToLoadOrNullIfAllFields) {
|
|
363
|
+
sourceModelLoadPromise = this._recordStore.loadRecordMetadataAsync();
|
|
364
|
+
} else {
|
|
365
|
+
// table.loadDataAsync is a superset of loadRecordMetadataAsync,
|
|
366
|
+
// so no need to load record metadata again.
|
|
367
|
+
sourceModelLoadPromise = null;
|
|
368
|
+
}
|
|
369
|
+
} else {
|
|
370
|
+
sourceModelLoadPromise = this._recordStore.getViewDataStore(this._sourceModel.id).loadDataAsync();
|
|
371
|
+
}
|
|
372
|
+
this._mostRecentSourceModelLoadPromise = Promise.all([sourceModelLoadPromise, cellValuesInFieldsLoadPromise, this._loadRecordColorsAsync()]);
|
|
373
|
+
await super.loadDataAsync();
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* @internal
|
|
378
|
+
*/
|
|
379
|
+
_getChangedKeysOnLoad() {
|
|
380
|
+
const changedKeys = [_record_query_result.default.WatchableKeys.records, _record_query_result.default.WatchableKeys.recordIds, _record_query_result.default.WatchableKeys.cellValues, _record_query_result.default.WatchableKeys.groups, _record_query_result.default.WatchableKeys.groupLevels];
|
|
381
|
+
const fieldIds = this._normalizedOpts.fieldIdsOrNullIfAllFields || this._table.fields.map(field => field.id);
|
|
382
|
+
for (const fieldId of fieldIds) {
|
|
383
|
+
changedKeys.push(_record_query_result.default.WatchableCellValuesInFieldKeyPrefix + fieldId);
|
|
384
|
+
}
|
|
385
|
+
return changedKeys;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
/** @internal */
|
|
389
|
+
async _loadDataAsync() {
|
|
390
|
+
this._table.__tableOrViewQueryResultPool.registerObjectForReuseStrong(this);
|
|
391
|
+
(0, _error_utils.invariant)(this._mostRecentSourceModelLoadPromise, 'No source model load promises');
|
|
392
|
+
await this._mostRecentSourceModelLoadPromise;
|
|
393
|
+
if (this._sorts) {
|
|
394
|
+
this._replaceVisList();
|
|
395
|
+
}
|
|
396
|
+
this._orderedRecordIds = this._generateOrderedRecordIds();
|
|
397
|
+
this._orderedGroups = this._generateAndLoadOrderedGroups();
|
|
398
|
+
// The server provided value and developer supplied value are the same, no conversion needed
|
|
399
|
+
this._loadedGroupLevels = this._sourceModelGroupLevels;
|
|
400
|
+
if (this._sourceModel instanceof _table.default) {
|
|
401
|
+
this._recordStore.watch(_record_store.WatchableRecordStoreKeys.records, this._onRecordsChanged, this);
|
|
402
|
+
} else {
|
|
403
|
+
const viewDataStore = this._recordStore.getViewDataStore(this._sourceModel.id);
|
|
404
|
+
viewDataStore.watch(_view_data_store.WatchableViewDataStoreKeys.visibleRecords, this._onRecordsChanged, this);
|
|
405
|
+
viewDataStore.watch(_view_data_store.WatchableViewDataStoreKeys.groups, this._onGroupsChanged, this);
|
|
406
|
+
viewDataStore.watch(_view_data_store.WatchableViewDataStoreKeys.groupLevels, this._onGroupLevelsChanged, this);
|
|
407
|
+
}
|
|
408
|
+
this._recordStore.watch(this._cellValuesForSortWatchKeys, this._onCellValuesForSortChanged, this);
|
|
409
|
+
this._recordStore.watch(this._cellValuesForGroupWatchKeys, this._onCellValuesForGroupChanged, this);
|
|
410
|
+
this._table.watch(_table.WatchableTableKeys.fields, this._onTableFieldsChanged, this);
|
|
411
|
+
if (this._sorts) {
|
|
412
|
+
for (const sort of this._sorts) {
|
|
413
|
+
const field = this._table.getFieldByIdIfExists(sort.fieldId);
|
|
414
|
+
if (field) {
|
|
415
|
+
field.watch('type', this._onFieldConfigChanged, this);
|
|
416
|
+
field.watch('options', this._onFieldConfigChanged, this);
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
return this._getChangedKeysOnLoad();
|
|
421
|
+
}
|
|
422
|
+
/** @inheritdoc */
|
|
423
|
+
unloadData() {
|
|
424
|
+
super.unloadData();
|
|
425
|
+
if (this._sourceModel instanceof _table.default) {
|
|
426
|
+
if (this._fieldIdsSetToLoadOrNullIfAllFields) {
|
|
427
|
+
this._recordStore.unloadRecordMetadata();
|
|
428
|
+
} else {
|
|
429
|
+
this._recordStore.unloadData();
|
|
430
|
+
}
|
|
431
|
+
} else {
|
|
432
|
+
// If the view is deleted, we can't get a data store for it.
|
|
433
|
+
if (!this._sourceModel.isDeleted) {
|
|
434
|
+
this._recordStore.getViewDataStore(this._sourceModel.id).unloadData();
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
if (this._fieldIdsSetToLoadOrNullIfAllFields) {
|
|
438
|
+
this._recordStore.unloadCellValuesInFieldIds(Object.keys(this._fieldIdsSetToLoadOrNullIfAllFields));
|
|
439
|
+
}
|
|
440
|
+
this._unloadRecordColors();
|
|
441
|
+
}
|
|
442
|
+
/** @internal */
|
|
443
|
+
_unloadData() {
|
|
444
|
+
this._mostRecentSourceModelLoadPromise = null;
|
|
445
|
+
if (this._sourceModel instanceof _table.default) {
|
|
446
|
+
this._recordStore.unwatch(_record_store.WatchableRecordStoreKeys.records, this._onRecordsChanged, this);
|
|
447
|
+
} else {
|
|
448
|
+
if (!this._sourceModel.isDeleted) {
|
|
449
|
+
const viewDataStore = this._recordStore.getViewDataStore(this._sourceModel.id);
|
|
450
|
+
viewDataStore.unwatch(_view_data_store.WatchableViewDataStoreKeys.visibleRecords, this._onRecordsChanged, this);
|
|
451
|
+
viewDataStore.unwatch(_view_data_store.WatchableViewDataStoreKeys.groups, this._onGroupsChanged, this);
|
|
452
|
+
viewDataStore.unwatch(_view_data_store.WatchableViewDataStoreKeys.groupLevels, this._onGroupLevelsChanged, this);
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
this._recordStore.unwatch(this._cellValuesForSortWatchKeys, this._onCellValuesForSortChanged, this);
|
|
456
|
+
this._recordStore.unwatch(this._cellValuesForGroupWatchKeys, this._onCellValuesForGroupChanged, this);
|
|
457
|
+
this._table.unwatch(_table.WatchableTableKeys.fields, this._onTableFieldsChanged, this);
|
|
458
|
+
|
|
459
|
+
// If the table is deleted, can't call getFieldById on it below.
|
|
460
|
+
if (!this._table.isDeleted && this._sorts) {
|
|
461
|
+
for (const sort of this._sorts) {
|
|
462
|
+
const field = this._table.getFieldByIdIfExists(sort.fieldId);
|
|
463
|
+
if (field) {
|
|
464
|
+
field.unwatch('type', this._onFieldConfigChanged, this);
|
|
465
|
+
field.unwatch('options', this._onFieldConfigChanged, this);
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
this._unloadOrderedGroupsIfNeeded();
|
|
470
|
+
this._visList = null;
|
|
471
|
+
this._orderedRecordIds = null;
|
|
472
|
+
this._recordIdsSet = null;
|
|
473
|
+
this._table.__tableOrViewQueryResultPool.unregisterObjectForReuseStrong(this);
|
|
474
|
+
}
|
|
475
|
+
/** @internal */
|
|
476
|
+
_addRecordIdsToVisList(recordIds) {
|
|
477
|
+
const visList = this._visList;
|
|
478
|
+
(0, _error_utils.invariant)(visList, 'No vis list');
|
|
479
|
+
for (const recordId of recordIds) {
|
|
480
|
+
const record = this._recordStore.getRecordByIdIfExists(recordId);
|
|
481
|
+
(0, _error_utils.invariant)(record, 'Record missing in table');
|
|
482
|
+
visList.addRecordData(record._data);
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
/** @internal */
|
|
486
|
+
_onGroupLevelsChanged(model, key, updates) {
|
|
487
|
+
this._loadedGroupLevels = this._sourceModelGroupLevels;
|
|
488
|
+
this._unloadRemovedGroupsAndLoadNewGroupsAndTriggerWatches();
|
|
489
|
+
this._onChange(_record_query_result.default.WatchableKeys.groupLevels);
|
|
490
|
+
}
|
|
491
|
+
/** @internal */
|
|
492
|
+
_onGroupsChanged(model, key, updates) {
|
|
493
|
+
this._unloadRemovedGroupsAndLoadNewGroupsAndTriggerWatches();
|
|
494
|
+
}
|
|
495
|
+
/** @internal */
|
|
496
|
+
_onRecordsChanged(model, key, updates) {
|
|
497
|
+
if (model instanceof _view_data_store.default) {
|
|
498
|
+
// For a view model, we don't get updates sent with the onChange event,
|
|
499
|
+
// so we need to manually generate updates based on the old and new
|
|
500
|
+
// recordIds.
|
|
501
|
+
(0, _error_utils.invariant)(this._orderedRecordIds, '_orderedRecordIds unset');
|
|
502
|
+
const visibleRecordIds = this._recordStore.getViewDataStore(model.viewId).visibleRecordIds;
|
|
503
|
+
const addedRecordIds = (0, _private_utils.arrayDifference)(visibleRecordIds, this._orderedRecordIds);
|
|
504
|
+
const removedRecordIds = (0, _private_utils.arrayDifference)(this._orderedRecordIds, visibleRecordIds);
|
|
505
|
+
updates = {
|
|
506
|
+
addedRecordIds,
|
|
507
|
+
removedRecordIds
|
|
508
|
+
};
|
|
509
|
+
}
|
|
510
|
+
if (!updates) {
|
|
511
|
+
// If there are no updates, do nothing, since we'll handle the initial
|
|
512
|
+
// callback when the record set is loaded (and we don't want to fire
|
|
513
|
+
// a records change twice with no data).
|
|
514
|
+
return;
|
|
515
|
+
}
|
|
516
|
+
const {
|
|
517
|
+
addedRecordIds,
|
|
518
|
+
removedRecordIds
|
|
519
|
+
} = updates;
|
|
520
|
+
if (this._sorts) {
|
|
521
|
+
const visList = this._visList;
|
|
522
|
+
(0, _error_utils.invariant)(visList, 'No vis list');
|
|
523
|
+
if (removedRecordIds.length > 0) {
|
|
524
|
+
visList.removeRecordIds(removedRecordIds);
|
|
525
|
+
}
|
|
526
|
+
if (addedRecordIds.length > 0) {
|
|
527
|
+
this._addRecordIdsToVisList(addedRecordIds);
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
if (this._recordIdsSet) {
|
|
531
|
+
for (const recordId of addedRecordIds) {
|
|
532
|
+
this._recordIdsSet[recordId] = true;
|
|
533
|
+
}
|
|
534
|
+
for (const recordId of removedRecordIds) {
|
|
535
|
+
this._recordIdsSet[recordId] = undefined;
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
// Now that we've applied our changes (if applicable), let's regenerate our recordIds.
|
|
540
|
+
this._orderedRecordIds = this._generateOrderedRecordIds();
|
|
541
|
+
this._onChange(_record_query_result.default.WatchableKeys.records, updates);
|
|
542
|
+
this._onChange(_record_query_result.default.WatchableKeys.recordIds, updates);
|
|
543
|
+
}
|
|
544
|
+
/** @internal */
|
|
545
|
+
// istanbul ignore next
|
|
546
|
+
_onCellValuesForGroupChanged(recordStore, key, recordIds, fieldId) {
|
|
547
|
+
// TODO(SeanKeenan): This isn't yet required as we don't yet support
|
|
548
|
+
// specifying groups for a custom query, and this will only be called
|
|
549
|
+
// if we specify groups (same as _onCellValuesForSortChanged)
|
|
550
|
+
// This functionality and _onCellValuesForSortChanged should be
|
|
551
|
+
// identical, but testing, validation, and careful thought is required.
|
|
552
|
+
}
|
|
553
|
+
/** @internal */
|
|
554
|
+
_onCellValuesForSortChanged(recordStore, key, recordIds, fieldId) {
|
|
555
|
+
if (!recordIds || !fieldId) {
|
|
556
|
+
// If there are no updates, do nothing, since we'll handle the initial
|
|
557
|
+
// callback when the record set is loaded (and we don't want to fire
|
|
558
|
+
// a records change twice with no data).
|
|
559
|
+
return;
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
// NOTE: this will only ever be called if we have sorts, so it's safe to assert that we have
|
|
563
|
+
// a vis list here.
|
|
564
|
+
const visList = this._visList;
|
|
565
|
+
(0, _error_utils.invariant)(visList, 'No vis list');
|
|
566
|
+
(0, _error_utils.invariant)(recordIds.length > 0, 'field ID set without a corresponding record ID');
|
|
567
|
+
|
|
568
|
+
// Only move recordIds that are already in the visList.
|
|
569
|
+
// It's possible to have recordId that is not currently in the visList since
|
|
570
|
+
// this callback can run before onRecordsChanged. (eg. when a deleted record is
|
|
571
|
+
// restored, this is triggered for that record but the record is not yet in the visList:
|
|
572
|
+
// onRecordsChanged actually adds it)
|
|
573
|
+
// Note: cell value changes that result in the records being filtered out trigger
|
|
574
|
+
// onRecordsChanged on the View model, so we don't have to worry about that here.
|
|
575
|
+
const visListRecordIdsSet = new Set(visList.getOrderedRecordIds());
|
|
576
|
+
const recordIdsToMove = recordIds.filter(recordId => visListRecordIdsSet.has(recordId));
|
|
577
|
+
visList.removeRecordIds(recordIdsToMove);
|
|
578
|
+
this._addRecordIdsToVisList(recordIdsToMove);
|
|
579
|
+
this._orderedRecordIds = this._generateOrderedRecordIds();
|
|
580
|
+
const changeData = {
|
|
581
|
+
addedRecordIds: [],
|
|
582
|
+
removedRecordIds: []
|
|
583
|
+
};
|
|
584
|
+
this._onChange(_record_query_result.default.WatchableKeys.records, changeData);
|
|
585
|
+
this._onChange(_record_query_result.default.WatchableKeys.recordIds, changeData);
|
|
586
|
+
}
|
|
587
|
+
/** @internal */
|
|
588
|
+
_onFieldConfigChanged(_field, _key) {
|
|
589
|
+
// Field config changed for a field we rely on, so we need to replace our vis list.
|
|
590
|
+
// NOTE: this will only ever be called if we have sorts, so it's safe to assume we
|
|
591
|
+
// are using a vis list here.
|
|
592
|
+
this._replaceVisList();
|
|
593
|
+
this._orderedRecordIds = this._generateOrderedRecordIds();
|
|
594
|
+
}
|
|
595
|
+
/** @internal */
|
|
596
|
+
_onTableFieldsChanged(table, key, updates) {
|
|
597
|
+
if (!this._sorts) {
|
|
598
|
+
// If we don't have any sorts, we don't have to do anything in response to field changes.
|
|
599
|
+
return;
|
|
600
|
+
}
|
|
601
|
+
const {
|
|
602
|
+
addedFieldIds,
|
|
603
|
+
removedFieldIds
|
|
604
|
+
} = updates;
|
|
605
|
+
const fieldIdsSet = new Set(this._sorts.map(sort => sort.fieldId));
|
|
606
|
+
|
|
607
|
+
// Check if any fields that we rely on were created or deleted. If they were,
|
|
608
|
+
// replace our vis list.
|
|
609
|
+
// NOTE: we need to check for created, since a field that we rely on can be
|
|
610
|
+
// deleted and then undeleted.
|
|
611
|
+
let wereAnyFieldsCreatedOrDeleted = false;
|
|
612
|
+
for (const fieldId of addedFieldIds) {
|
|
613
|
+
// If a field that we rely on was created (i.e. it was undeleted), we need to
|
|
614
|
+
// make sure we're watching it's config.
|
|
615
|
+
if (fieldIdsSet.has(fieldId)) {
|
|
616
|
+
wereAnyFieldsCreatedOrDeleted = true;
|
|
617
|
+
const field = this._table.getFieldByIdIfExists(fieldId);
|
|
618
|
+
(0, _error_utils.invariant)(field, 'Created field does not exist');
|
|
619
|
+
field.watch('type', this._onFieldConfigChanged, this);
|
|
620
|
+
field.watch('options', this._onFieldConfigChanged, this);
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
// coverage analysis
|
|
625
|
+
// istanbul ignore else
|
|
626
|
+
if (!wereAnyFieldsCreatedOrDeleted) {
|
|
627
|
+
wereAnyFieldsCreatedOrDeleted = removedFieldIds.some(fieldId => fieldIdsSet.has(fieldId));
|
|
628
|
+
}
|
|
629
|
+
if (wereAnyFieldsCreatedOrDeleted) {
|
|
630
|
+
// One of the fields we're relying on was deleted,
|
|
631
|
+
this._replaceVisList();
|
|
632
|
+
this._orderedRecordIds = this._generateOrderedRecordIds();
|
|
633
|
+
|
|
634
|
+
// Make sure we fire onChange events since the order may have changed
|
|
635
|
+
// as a result.
|
|
636
|
+
const changeData = {
|
|
637
|
+
addedRecordIds: [],
|
|
638
|
+
removedRecordIds: []
|
|
639
|
+
};
|
|
640
|
+
this._onChange(_record_query_result.default.WatchableKeys.records, changeData);
|
|
641
|
+
this._onChange(_record_query_result.default.WatchableKeys.recordIds, changeData);
|
|
642
|
+
|
|
643
|
+
// We do not unload/reload groupQueryResults if it's field is deleted as
|
|
644
|
+
// it is responsible for failing to load if the field doesn't exist
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
/** @internal */
|
|
648
|
+
_onCellValuesChanged(table, key, updates) {
|
|
649
|
+
if (!updates) {
|
|
650
|
+
// If there are no updates, do nothing, since we'll handle the initial
|
|
651
|
+
// callback when the record set is loaded (and we don't want to fire
|
|
652
|
+
// a cellValues change twice with no data).
|
|
653
|
+
return;
|
|
654
|
+
}
|
|
655
|
+
this._onChange(_record_query_result.default.WatchableKeys.cellValues, updates);
|
|
656
|
+
}
|
|
657
|
+
/** @internal */
|
|
658
|
+
_onCellValuesInFieldChanged(table, key, recordIds, fieldId) {
|
|
659
|
+
if (!recordIds && !fieldId) {
|
|
660
|
+
// If there are no updates, do nothing, since we'll handle the initial
|
|
661
|
+
// callback when the record set is loaded (and we don't want to fire
|
|
662
|
+
// a cellValuesInField change twice with no data).
|
|
663
|
+
return;
|
|
664
|
+
}
|
|
665
|
+
this._onChange(key, recordIds, fieldId);
|
|
666
|
+
}
|
|
667
|
+
/** @internal */
|
|
668
|
+
_generateOrderedRecordIds() {
|
|
669
|
+
if (this._sorts) {
|
|
670
|
+
(0, _error_utils.invariant)(this._visList, 'Cannot generate record ids without a vis list');
|
|
671
|
+
return this._visList.getOrderedRecordIds();
|
|
672
|
+
} else {
|
|
673
|
+
return this._sourceModelRecordIds;
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
/** @internal */
|
|
677
|
+
_generateAndLoadOrderedGroups() {
|
|
678
|
+
// istanbul ignore next
|
|
679
|
+
if (this._groupLevels) {
|
|
680
|
+
(0, _error_utils.invariant)(this._visList, 'Cannot generate record ids without a vis list');
|
|
681
|
+
throw (0, _error_utils.spawnError)('custom group configs not supported');
|
|
682
|
+
} else {
|
|
683
|
+
// Get the group from the view itself
|
|
684
|
+
const groupLevels = this._sourceModelGroupLevels;
|
|
685
|
+
if (!this._sourceModelGroups || !groupLevels) {
|
|
686
|
+
return null;
|
|
687
|
+
}
|
|
688
|
+
return this._sourceModelGroups.map(groupData => {
|
|
689
|
+
const group = this.__groupedRecordQueryResultPool.getObjectForReuse(this, groupData, groupLevels, this._normalizedOpts, this._sdk);
|
|
690
|
+
// Don't await the loading, let others check isDataLoaded.
|
|
691
|
+
// (it doesn't take any time anyway). Loading also strong retains.
|
|
692
|
+
group.loadDataAsync();
|
|
693
|
+
return group;
|
|
694
|
+
});
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
/** @internal */
|
|
698
|
+
_unloadOrderedGroupsIfNeeded() {
|
|
699
|
+
if (this._orderedGroups) {
|
|
700
|
+
for (const group of this._orderedGroups) {
|
|
701
|
+
group.unloadData();
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
}
|
|
705
|
+
/**
|
|
706
|
+
* If groupings change then some groups will need to be created, and some removed
|
|
707
|
+
* This (TODO: will) handle the diffing necessary to unload, and reload only the changed groups.
|
|
708
|
+
* Also triggers the WatchableKeys.group, as by necessity this will have changed.
|
|
709
|
+
*
|
|
710
|
+
* @internal
|
|
711
|
+
*/
|
|
712
|
+
// TODO: (SeanKeenan) Properly diff and only unload groups that need to be unloaded
|
|
713
|
+
// In the meantime it's not too expensive to just unload everything, and GroupedRecordQueryResults
|
|
714
|
+
// don't yet properly watch changes relevant to updating, so this isn't too bad.
|
|
715
|
+
// (They do invalidate their recordId caches, which is some very cheap work that we could remove)
|
|
716
|
+
_unloadRemovedGroupsAndLoadNewGroupsAndTriggerWatches() {
|
|
717
|
+
this._unloadOrderedGroupsIfNeeded();
|
|
718
|
+
this._orderedGroups = this._generateAndLoadOrderedGroups();
|
|
719
|
+
this._onChange(_record_query_result.default.WatchableKeys.groups);
|
|
720
|
+
}
|
|
721
|
+
/** @internal */
|
|
722
|
+
_replaceVisList() {
|
|
723
|
+
const airtableInterface = this._sdk.__airtableInterface;
|
|
724
|
+
const appInterface = this._sdk.__appInterface;
|
|
725
|
+
const recordDatas = this._sourceModelRecords.map(record => record._data);
|
|
726
|
+
const fieldDatas = this._table.fields.map(field => field._data);
|
|
727
|
+
const filteredSorts = this._getSortsWithDeletedFieldsFiltered();
|
|
728
|
+
this._visList = airtableInterface.createVisList(appInterface, recordDatas, fieldDatas, filteredSorts);
|
|
729
|
+
}
|
|
730
|
+
/** @internal */
|
|
731
|
+
_getSortsWithDeletedFieldsFiltered() {
|
|
732
|
+
(0, _error_utils.invariant)(this._sorts, 'No sorts');
|
|
733
|
+
|
|
734
|
+
// Filter out any sorts levels that rely on deleted fields.
|
|
735
|
+
// NOTE: we keep deleted fields around (rather than filtering them out
|
|
736
|
+
// in realtime) in case a field gets undeleted, in which case we want to
|
|
737
|
+
// keep using it.
|
|
738
|
+
return this._sorts.filter(sort => {
|
|
739
|
+
const field = this._table.getFieldByIdIfExists(sort.fieldId);
|
|
740
|
+
return !!field;
|
|
741
|
+
});
|
|
742
|
+
}
|
|
743
|
+
/** @internal */
|
|
744
|
+
_spawnErrorForDeletion() {
|
|
745
|
+
const sourceModelName = this._sourceModel instanceof _table.default ? 'table' : 'view';
|
|
746
|
+
return (0, _error_utils.spawnError)("RecordQueryResult's underlying %s has been deleted", sourceModelName);
|
|
747
|
+
}
|
|
748
|
+
}
|
|
749
|
+
var _default = exports.default = TableOrViewQueryResult;
|