@airtable/blocks 0.0.0-experimental-c4b2228f4-20250630 → 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 +17 -44
- 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/models/table.d.ts.map +1 -1
- package/dist/types/src/interface/types/field.d.ts +6 -0
- package/dist/types/src/interface/types/field.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/field_core.d.ts +3 -1
- package/dist/types/src/shared/models/field_core.d.ts.map +1 -1
- package/dist/types/src/shared/models/mutations_core.d.ts.map +1 -1
- package/dist/types/src/shared/models/table_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/types/field_core.d.ts +19 -1
- package/dist/types/src/shared/types/field_core.d.ts.map +1 -1
- package/dist/types/src/shared/types/mutations_core.d.ts +8 -4
- package/dist/types/src/shared/types/mutations_core.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/use_watchable.d.ts +4 -2
- package/dist/types/src/shared/ui/use_watchable.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 -92
- 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 -329
- 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 -1530
- 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
|
@@ -1,825 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("core-js/modules/es.symbol.js");
|
|
4
|
-
require("core-js/modules/es.symbol.description.js");
|
|
5
|
-
require("core-js/modules/es.array.from.js");
|
|
6
|
-
require("core-js/modules/es.array.slice.js");
|
|
7
|
-
require("core-js/modules/es.object.get-own-property-descriptors.js");
|
|
8
|
-
require("core-js/modules/es.regexp.exec.js");
|
|
9
|
-
require("core-js/modules/es.regexp.to-string.js");
|
|
10
|
-
require("core-js/modules/es.weak-map.js");
|
|
11
|
-
require("core-js/modules/web.dom-collections.for-each.js");
|
|
12
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
13
|
-
Object.defineProperty(exports, "__esModule", {
|
|
14
|
-
value: true
|
|
15
|
-
});
|
|
16
|
-
exports.default = exports.WatchableRecordStoreKeys = void 0;
|
|
17
|
-
require("core-js/modules/es.array.filter.js");
|
|
18
|
-
require("core-js/modules/es.array.iterator.js");
|
|
19
|
-
require("core-js/modules/es.array.map.js");
|
|
20
|
-
require("core-js/modules/es.object.entries.js");
|
|
21
|
-
require("core-js/modules/es.object.to-string.js");
|
|
22
|
-
require("core-js/modules/es.promise.js");
|
|
23
|
-
require("core-js/modules/es.string.starts-with.js");
|
|
24
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
25
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
26
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
27
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
28
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
29
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
30
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
31
|
-
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
32
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
33
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
34
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
35
|
-
var _private_utils = require("../../shared/private_utils");
|
|
36
|
-
var _error_utils = require("../../shared/error_utils");
|
|
37
|
-
var _record_store_core = _interopRequireWildcard(require("../../shared/models/record_store_core"));
|
|
38
|
-
var _abstract_model_with_async_data = _interopRequireDefault(require("./abstract_model_with_async_data"));
|
|
39
|
-
var _record = _interopRequireDefault(require("./record"));
|
|
40
|
-
var _view_data_store = _interopRequireDefault(require("./view_data_store"));
|
|
41
|
-
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); }
|
|
42
|
-
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; }
|
|
43
|
-
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; } } }; }
|
|
44
|
-
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; } }
|
|
45
|
-
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; }
|
|
46
|
-
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)); }
|
|
47
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
48
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
49
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
50
|
-
var WatchableRecordStoreKeys = exports.WatchableRecordStoreKeys = Object.freeze(_objectSpread({}, _record_store_core.WatchableRecordStoreKeysCore));
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* The string case is to accommodate prefix keys
|
|
54
|
-
*
|
|
55
|
-
* @internal
|
|
56
|
-
*/
|
|
57
|
-
/**
|
|
58
|
-
* One RecordStore exists per table, and contains all the record data associated with that table.
|
|
59
|
-
* Table itself is for schema information only, so isn't the appropriate place for this data.
|
|
60
|
-
*
|
|
61
|
-
* @internal
|
|
62
|
-
*/
|
|
63
|
-
var RecordStore = /*#__PURE__*/function (_RecordStoreCore) {
|
|
64
|
-
function RecordStore(sdk, tableId) {
|
|
65
|
-
var _this;
|
|
66
|
-
(0, _classCallCheck2.default)(this, RecordStore);
|
|
67
|
-
_this = _callSuper(this, RecordStore, [sdk, tableId]);
|
|
68
|
-
(0, _defineProperty2.default)(_this, "_viewDataStoresByViewId", {});
|
|
69
|
-
(0, _defineProperty2.default)(_this, "_loader", void 0);
|
|
70
|
-
var onChange = _this._onChange.bind(_this);
|
|
71
|
-
var clearRecordModels = () => {
|
|
72
|
-
_this._recordModelsById = {};
|
|
73
|
-
};
|
|
74
|
-
_this._loader = new RecordStoreAsyncLoader(sdk, tableId, onChange, clearRecordModels);
|
|
75
|
-
return _this;
|
|
76
|
-
}
|
|
77
|
-
(0, _inherits2.default)(RecordStore, _RecordStoreCore);
|
|
78
|
-
return (0, _createClass2.default)(RecordStore, [{
|
|
79
|
-
key: "_constructRecord",
|
|
80
|
-
value: function _constructRecord(recordId, parentTable) {
|
|
81
|
-
return new _record.default(this._sdk, this, parentTable, recordId);
|
|
82
|
-
}
|
|
83
|
-
}, {
|
|
84
|
-
key: "_dataOrNullIfDeleted",
|
|
85
|
-
get: function get() {
|
|
86
|
-
return this._loader._dataOrNullIfDeleted;
|
|
87
|
-
}
|
|
88
|
-
}, {
|
|
89
|
-
key: "getViewDataStore",
|
|
90
|
-
value: function getViewDataStore(viewId) {
|
|
91
|
-
if (this._viewDataStoresByViewId[viewId]) {
|
|
92
|
-
return this._viewDataStoresByViewId[viewId];
|
|
93
|
-
}
|
|
94
|
-
(0, _error_utils.invariant)(this._data.viewsById[viewId], 'view must exist');
|
|
95
|
-
var viewDataStore = new _view_data_store.default(this._sdk, this, viewId);
|
|
96
|
-
this._viewDataStoresByViewId[viewId] = viewDataStore;
|
|
97
|
-
return viewDataStore;
|
|
98
|
-
}
|
|
99
|
-
}, {
|
|
100
|
-
key: "watch",
|
|
101
|
-
value: function watch(keys, callback, context) {
|
|
102
|
-
var _this2 = this;
|
|
103
|
-
var validKeys = (0, _get2.default)((0, _getPrototypeOf2.default)(RecordStore.prototype), "watch", this).call(this, keys, callback, context);
|
|
104
|
-
var fieldIdsToLoad = this._loader._getFieldIdsToLoadFromWatchableKeys(validKeys);
|
|
105
|
-
if (fieldIdsToLoad.length > 0) {
|
|
106
|
-
(0, _private_utils.fireAndForgetPromise)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
107
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
108
|
-
while (1) switch (_context.prev = _context.next) {
|
|
109
|
-
case 0:
|
|
110
|
-
_context.next = 2;
|
|
111
|
-
return _this2._loader.loadCellValuesInFieldIdsAsync(fieldIdsToLoad, _this2._onChange.bind(_this2));
|
|
112
|
-
case 2:
|
|
113
|
-
case "end":
|
|
114
|
-
return _context.stop();
|
|
115
|
-
}
|
|
116
|
-
}, _callee);
|
|
117
|
-
})));
|
|
118
|
-
}
|
|
119
|
-
return validKeys;
|
|
120
|
-
}
|
|
121
|
-
}, {
|
|
122
|
-
key: "unwatch",
|
|
123
|
-
value: function unwatch(keys, callback, context) {
|
|
124
|
-
var validKeys = (0, _get2.default)((0, _getPrototypeOf2.default)(RecordStore.prototype), "unwatch", this).call(this, keys, callback, context);
|
|
125
|
-
var fieldIdsToUnload = this._loader._getFieldIdsToLoadFromWatchableKeys(validKeys);
|
|
126
|
-
if (fieldIdsToUnload.length > 0) {
|
|
127
|
-
this._loader.unloadCellValuesInFieldIds(fieldIdsToUnload);
|
|
128
|
-
}
|
|
129
|
-
return validKeys;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* The record IDs in this table. The order is arbitrary since records are
|
|
134
|
-
* only ordered in the context of a specific view.
|
|
135
|
-
*/
|
|
136
|
-
}, {
|
|
137
|
-
key: "recordIds",
|
|
138
|
-
get: function get() {
|
|
139
|
-
var recordsById = this._data.recordsById;
|
|
140
|
-
(0, _error_utils.invariant)(recordsById, 'Record metadata is not loaded');
|
|
141
|
-
return Object.keys(recordsById);
|
|
142
|
-
}
|
|
143
|
-
}, {
|
|
144
|
-
key: "__onDataDeletion",
|
|
145
|
-
value: function __onDataDeletion() {
|
|
146
|
-
// also need to call unloadCellValuesInFieldIds because otherwise
|
|
147
|
-
// on the hyperbase side, the old record store would still be subscribed
|
|
148
|
-
// to the cell values and it will refuse a request for new subscription
|
|
149
|
-
for (var _i = 0, _Object$keys = Object.keys(this._loader._cellValuesRetainCountByFieldId); _i < _Object$keys.length; _i++) {
|
|
150
|
-
var fieldId = _Object$keys[_i];
|
|
151
|
-
while (this._loader._cellValuesRetainCountByFieldId[fieldId] && this._loader._cellValuesRetainCountByFieldId[fieldId] > 0) {
|
|
152
|
-
this._loader.unloadCellValuesInFieldIds([fieldId]);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
this._loader._forceUnload();
|
|
156
|
-
|
|
157
|
-
// similarly unsubscribe from the view data.
|
|
158
|
-
// this comes after _forceUnload to avoid over releasing the table data.
|
|
159
|
-
var _iterator = _createForOfIteratorHelper((0, _private_utils.values)(this._viewDataStoresByViewId)),
|
|
160
|
-
_step;
|
|
161
|
-
try {
|
|
162
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
163
|
-
var viewDataStore = _step.value;
|
|
164
|
-
viewDataStore.__onDataDeletion();
|
|
165
|
-
}
|
|
166
|
-
} catch (err) {
|
|
167
|
-
_iterator.e(err);
|
|
168
|
-
} finally {
|
|
169
|
-
_iterator.f();
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
// #region async data loading
|
|
174
|
-
// wrapper methods over RecordStoreAsyncLoader
|
|
175
|
-
}, {
|
|
176
|
-
key: "isDeleted",
|
|
177
|
-
get: function get() {
|
|
178
|
-
return this._loader.isDeleted || (0, _get2.default)((0, _getPrototypeOf2.default)(RecordStore.prototype), "isDeleted", this);
|
|
179
|
-
}
|
|
180
|
-
}, {
|
|
181
|
-
key: "isDataLoaded",
|
|
182
|
-
get: function get() {
|
|
183
|
-
return !this.isDeleted && this._loader.isDataLoaded;
|
|
184
|
-
}
|
|
185
|
-
}, {
|
|
186
|
-
key: "loadDataAsync",
|
|
187
|
-
value: function () {
|
|
188
|
-
var _loadDataAsync = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
189
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
190
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
191
|
-
case 0:
|
|
192
|
-
_context2.next = 2;
|
|
193
|
-
return this._loader.loadDataAsync();
|
|
194
|
-
case 2:
|
|
195
|
-
return _context2.abrupt("return", _context2.sent);
|
|
196
|
-
case 3:
|
|
197
|
-
case "end":
|
|
198
|
-
return _context2.stop();
|
|
199
|
-
}
|
|
200
|
-
}, _callee2, this);
|
|
201
|
-
}));
|
|
202
|
-
function loadDataAsync() {
|
|
203
|
-
return _loadDataAsync.apply(this, arguments);
|
|
204
|
-
}
|
|
205
|
-
return loadDataAsync;
|
|
206
|
-
}()
|
|
207
|
-
}, {
|
|
208
|
-
key: "unloadData",
|
|
209
|
-
value: function unloadData() {
|
|
210
|
-
return this._loader.unloadData();
|
|
211
|
-
}
|
|
212
|
-
}, {
|
|
213
|
-
key: "isRecordMetadataLoaded",
|
|
214
|
-
get: function get() {
|
|
215
|
-
return this._loader.isRecordMetadataLoaded;
|
|
216
|
-
}
|
|
217
|
-
}, {
|
|
218
|
-
key: "loadRecordMetadataAsync",
|
|
219
|
-
value: function () {
|
|
220
|
-
var _loadRecordMetadataAsync = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
|
|
221
|
-
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
222
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
223
|
-
case 0:
|
|
224
|
-
_context3.next = 2;
|
|
225
|
-
return this._loader.loadRecordMetadataAsync(this._onChange.bind(this));
|
|
226
|
-
case 2:
|
|
227
|
-
return _context3.abrupt("return", _context3.sent);
|
|
228
|
-
case 3:
|
|
229
|
-
case "end":
|
|
230
|
-
return _context3.stop();
|
|
231
|
-
}
|
|
232
|
-
}, _callee3, this);
|
|
233
|
-
}));
|
|
234
|
-
function loadRecordMetadataAsync() {
|
|
235
|
-
return _loadRecordMetadataAsync.apply(this, arguments);
|
|
236
|
-
}
|
|
237
|
-
return loadRecordMetadataAsync;
|
|
238
|
-
}()
|
|
239
|
-
}, {
|
|
240
|
-
key: "unloadRecordMetadata",
|
|
241
|
-
value: function unloadRecordMetadata() {
|
|
242
|
-
return this._loader.unloadRecordMetadata();
|
|
243
|
-
}
|
|
244
|
-
}, {
|
|
245
|
-
key: "areCellValuesLoadedForFieldId",
|
|
246
|
-
value: function areCellValuesLoadedForFieldId(fieldId) {
|
|
247
|
-
return this._loader.areCellValuesLoadedForFieldId(fieldId);
|
|
248
|
-
}
|
|
249
|
-
}, {
|
|
250
|
-
key: "loadCellValuesInFieldIdsAsync",
|
|
251
|
-
value: function () {
|
|
252
|
-
var _loadCellValuesInFieldIdsAsync = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(fieldIds) {
|
|
253
|
-
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
254
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
255
|
-
case 0:
|
|
256
|
-
_context4.next = 2;
|
|
257
|
-
return this._loader.loadCellValuesInFieldIdsAsync(fieldIds, this._onChange.bind(this));
|
|
258
|
-
case 2:
|
|
259
|
-
return _context4.abrupt("return", _context4.sent);
|
|
260
|
-
case 3:
|
|
261
|
-
case "end":
|
|
262
|
-
return _context4.stop();
|
|
263
|
-
}
|
|
264
|
-
}, _callee4, this);
|
|
265
|
-
}));
|
|
266
|
-
function loadCellValuesInFieldIdsAsync(_x) {
|
|
267
|
-
return _loadCellValuesInFieldIdsAsync.apply(this, arguments);
|
|
268
|
-
}
|
|
269
|
-
return loadCellValuesInFieldIdsAsync;
|
|
270
|
-
}()
|
|
271
|
-
}, {
|
|
272
|
-
key: "unloadCellValuesInFieldIds",
|
|
273
|
-
value: function unloadCellValuesInFieldIds(fieldIds) {
|
|
274
|
-
return this._loader.unloadCellValuesInFieldIds(fieldIds);
|
|
275
|
-
}
|
|
276
|
-
// #endregion
|
|
277
|
-
}, {
|
|
278
|
-
key: "triggerOnChangeForDirtyPaths",
|
|
279
|
-
value: function triggerOnChangeForDirtyPaths(dirtyPaths) {
|
|
280
|
-
if (this.isRecordMetadataLoaded && dirtyPaths.recordsById) {
|
|
281
|
-
(0, _get2.default)((0, _getPrototypeOf2.default)(RecordStore.prototype), "triggerOnChangeForDirtyPaths", this).call(this, dirtyPaths);
|
|
282
|
-
}
|
|
283
|
-
if (dirtyPaths.viewOrder) {
|
|
284
|
-
// clean up deleted views
|
|
285
|
-
var _iterator2 = _createForOfIteratorHelper((0, _private_utils.entries)(this._viewDataStoresByViewId)),
|
|
286
|
-
_step2;
|
|
287
|
-
try {
|
|
288
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
289
|
-
var _step2$value = (0, _slicedToArray2.default)(_step2.value, 2),
|
|
290
|
-
viewId = _step2$value[0],
|
|
291
|
-
viewDataStore = _step2$value[1];
|
|
292
|
-
if (viewDataStore.isDeleted) {
|
|
293
|
-
viewDataStore.__onDataDeletion();
|
|
294
|
-
delete this._viewDataStoresByViewId[viewId];
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
} catch (err) {
|
|
298
|
-
_iterator2.e(err);
|
|
299
|
-
} finally {
|
|
300
|
-
_iterator2.f();
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
}], [{
|
|
305
|
-
key: "_isWatchableKey",
|
|
306
|
-
value: function _isWatchableKey(key) {
|
|
307
|
-
return (0, _private_utils.isEnumValue)(WatchableRecordStoreKeys, key) || key.startsWith(_record_store_core.WatchableCellValuesInFieldKeyPrefix);
|
|
308
|
-
}
|
|
309
|
-
}]);
|
|
310
|
-
}(_record_store_core.default);
|
|
311
|
-
/** @internal */
|
|
312
|
-
(0, _defineProperty2.default)(RecordStore, "_className", 'RecordStore');
|
|
313
|
-
var RecordStoreAsyncLoader = /*#__PURE__*/function (_AbstractModelWithAsy) {
|
|
314
|
-
function RecordStoreAsyncLoader(sdk, tableId, onChange, clearRecordModels) {
|
|
315
|
-
var _this3;
|
|
316
|
-
(0, _classCallCheck2.default)(this, RecordStoreAsyncLoader);
|
|
317
|
-
_this3 = _callSuper(this, RecordStoreAsyncLoader, [sdk, "".concat(tableId, "-RecordStore")]);
|
|
318
|
-
(0, _defineProperty2.default)(_this3, "tableId", void 0);
|
|
319
|
-
(0, _defineProperty2.default)(_this3, "_airtableInterface", void 0);
|
|
320
|
-
(0, _defineProperty2.default)(_this3, "_primaryFieldId", void 0);
|
|
321
|
-
(0, _defineProperty2.default)(_this3, "_onChange", void 0);
|
|
322
|
-
(0, _defineProperty2.default)(_this3, "_clearRecordModels", void 0);
|
|
323
|
-
// There is a lot of duplication here and in AbstractModelWithAsyncData.
|
|
324
|
-
// Alternatively, phase out AbstractModelWithAsyncData as a superclass
|
|
325
|
-
// and instead create a helper class for managing each part of the data
|
|
326
|
-
// tree that is loaded.
|
|
327
|
-
(0, _defineProperty2.default)(_this3, "_areCellValuesLoadedByFieldId", {});
|
|
328
|
-
(0, _defineProperty2.default)(_this3, "_pendingCellValuesLoadPromiseByFieldId", {});
|
|
329
|
-
(0, _defineProperty2.default)(_this3, "_cellValuesRetainCountByFieldId", {});
|
|
330
|
-
(0, _defineProperty2.default)(_this3, "_timeoutForRemovingFieldIds", null);
|
|
331
|
-
_this3._airtableInterface = sdk.__airtableInterface;
|
|
332
|
-
_this3.tableId = tableId;
|
|
333
|
-
_this3._onChange = onChange;
|
|
334
|
-
_this3._clearRecordModels = clearRecordModels;
|
|
335
|
-
// A bit of a hack, but we use the primary field ID to load record
|
|
336
|
-
// metadata (see _getFieldIdForCausingRecordMetadataToLoad). We copy the
|
|
337
|
-
// ID here instead of calling this.primaryField.id since that would crash
|
|
338
|
-
// when the table is getting unloaded after being deleted.
|
|
339
|
-
_this3._primaryFieldId = _this3._data.primaryFieldId;
|
|
340
|
-
return _this3;
|
|
341
|
-
}
|
|
342
|
-
(0, _inherits2.default)(RecordStoreAsyncLoader, _AbstractModelWithAsy);
|
|
343
|
-
return (0, _createClass2.default)(RecordStoreAsyncLoader, [{
|
|
344
|
-
key: "_onChangeIsDataLoaded",
|
|
345
|
-
value: function _onChangeIsDataLoaded() {
|
|
346
|
-
// noop
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
/**
|
|
350
|
-
* Record metadata means record IDs, createdTime, and commentCount are loaded.
|
|
351
|
-
* Record metadata must be loaded before creating, deleting, or updating records.
|
|
352
|
-
*/
|
|
353
|
-
}, {
|
|
354
|
-
key: "isRecordMetadataLoaded",
|
|
355
|
-
get: function get() {
|
|
356
|
-
return !!this._data.recordsById;
|
|
357
|
-
}
|
|
358
|
-
}, {
|
|
359
|
-
key: "loadRecordMetadataAsync",
|
|
360
|
-
value: function () {
|
|
361
|
-
var _loadRecordMetadataAsync2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(onChange) {
|
|
362
|
-
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
363
|
-
while (1) switch (_context5.prev = _context5.next) {
|
|
364
|
-
case 0:
|
|
365
|
-
_context5.next = 2;
|
|
366
|
-
return this.loadCellValuesInFieldIdsAsync([this._getFieldIdForCausingRecordMetadataToLoad()], onChange);
|
|
367
|
-
case 2:
|
|
368
|
-
return _context5.abrupt("return", _context5.sent);
|
|
369
|
-
case 3:
|
|
370
|
-
case "end":
|
|
371
|
-
return _context5.stop();
|
|
372
|
-
}
|
|
373
|
-
}, _callee5, this);
|
|
374
|
-
}));
|
|
375
|
-
function loadRecordMetadataAsync(_x2) {
|
|
376
|
-
return _loadRecordMetadataAsync2.apply(this, arguments);
|
|
377
|
-
}
|
|
378
|
-
return loadRecordMetadataAsync;
|
|
379
|
-
}()
|
|
380
|
-
}, {
|
|
381
|
-
key: "unloadRecordMetadata",
|
|
382
|
-
value: function unloadRecordMetadata() {
|
|
383
|
-
this.unloadCellValuesInFieldIds([this._getFieldIdForCausingRecordMetadataToLoad()]);
|
|
384
|
-
}
|
|
385
|
-
}, {
|
|
386
|
-
key: "_getFieldIdsToLoadFromWatchableKeys",
|
|
387
|
-
value: function _getFieldIdsToLoadFromWatchableKeys(keys) {
|
|
388
|
-
var fieldIdsToLoad = [];
|
|
389
|
-
var _iterator3 = _createForOfIteratorHelper(keys),
|
|
390
|
-
_step3;
|
|
391
|
-
try {
|
|
392
|
-
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
393
|
-
var key = _step3.value;
|
|
394
|
-
if (key.startsWith(_record_store_core.WatchableCellValuesInFieldKeyPrefix)) {
|
|
395
|
-
var fieldId = key.substring(_record_store_core.WatchableCellValuesInFieldKeyPrefix.length);
|
|
396
|
-
fieldIdsToLoad.push(fieldId);
|
|
397
|
-
} else if (key === WatchableRecordStoreKeys.records || key === WatchableRecordStoreKeys.recordIds) {
|
|
398
|
-
fieldIdsToLoad.push(this._getFieldIdForCausingRecordMetadataToLoad());
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
} catch (err) {
|
|
402
|
-
_iterator3.e(err);
|
|
403
|
-
} finally {
|
|
404
|
-
_iterator3.f();
|
|
405
|
-
}
|
|
406
|
-
return fieldIdsToLoad;
|
|
407
|
-
}
|
|
408
|
-
}, {
|
|
409
|
-
key: "_getFieldIdForCausingRecordMetadataToLoad",
|
|
410
|
-
value: function _getFieldIdForCausingRecordMetadataToLoad() {
|
|
411
|
-
// As a shortcut, we'll load the primary field cell values to
|
|
412
|
-
// cause record metadata (id, createdTime, commentCount) to be loaded
|
|
413
|
-
// and subscribed to. In the future, we could add an explicit model
|
|
414
|
-
// bridge to fetch and subscribe to row metadata.
|
|
415
|
-
return this._primaryFieldId;
|
|
416
|
-
}
|
|
417
|
-
}, {
|
|
418
|
-
key: "areCellValuesLoadedForFieldId",
|
|
419
|
-
value: function areCellValuesLoadedForFieldId(fieldId) {
|
|
420
|
-
return this.isDataLoaded || this._areCellValuesLoadedByFieldId[fieldId] || false;
|
|
421
|
-
}
|
|
422
|
-
}, {
|
|
423
|
-
key: "loadCellValuesInFieldIdsAsync",
|
|
424
|
-
value: function () {
|
|
425
|
-
var _loadCellValuesInFieldIdsAsync2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(fieldIds, onChange) {
|
|
426
|
-
var fieldIdsWhichAreNotAlreadyLoadedOrLoading, pendingLoadPromises, _iterator4, _step4, _fieldId, pendingLoadPromise, loadFieldsWhichAreNotAlreadyLoadedOrLoadingPromise, _iterator5, _step5, fieldId;
|
|
427
|
-
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
428
|
-
while (1) switch (_context6.prev = _context6.next) {
|
|
429
|
-
case 0:
|
|
430
|
-
this._assertNotForceUnloaded();
|
|
431
|
-
fieldIdsWhichAreNotAlreadyLoadedOrLoading = [];
|
|
432
|
-
pendingLoadPromises = [];
|
|
433
|
-
_iterator4 = _createForOfIteratorHelper(fieldIds);
|
|
434
|
-
try {
|
|
435
|
-
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
436
|
-
_fieldId = _step4.value;
|
|
437
|
-
if (this._cellValuesRetainCountByFieldId[_fieldId] !== undefined) {
|
|
438
|
-
this._cellValuesRetainCountByFieldId[_fieldId]++;
|
|
439
|
-
} else {
|
|
440
|
-
this._cellValuesRetainCountByFieldId[_fieldId] = 1;
|
|
441
|
-
}
|
|
442
|
-
|
|
443
|
-
// NOTE: we don't use this.areCellValuesLoadedForFieldId() here because
|
|
444
|
-
// that will return true if the cell values are loaded as a result
|
|
445
|
-
// of the entire table being loaded. In that scenario, we still
|
|
446
|
-
// want to separately load the cell values for the field so there
|
|
447
|
-
// is a separate subscription. Otherwise, when the table data unloads,
|
|
448
|
-
// the field data would unload as well. This can be improved by just
|
|
449
|
-
// subscribing to the field data without fetching it, since the cell
|
|
450
|
-
// values are already in the block frame.
|
|
451
|
-
if (!this._areCellValuesLoadedByFieldId[_fieldId]) {
|
|
452
|
-
pendingLoadPromise = this._pendingCellValuesLoadPromiseByFieldId[_fieldId];
|
|
453
|
-
if (pendingLoadPromise) {
|
|
454
|
-
pendingLoadPromises.push(pendingLoadPromise);
|
|
455
|
-
} else {
|
|
456
|
-
fieldIdsWhichAreNotAlreadyLoadedOrLoading.push(_fieldId);
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
}
|
|
460
|
-
} catch (err) {
|
|
461
|
-
_iterator4.e(err);
|
|
462
|
-
} finally {
|
|
463
|
-
_iterator4.f();
|
|
464
|
-
}
|
|
465
|
-
if (fieldIdsWhichAreNotAlreadyLoadedOrLoading.length > 0) {
|
|
466
|
-
// Could inline _loadCellValuesInFieldIdsAsync, but following the
|
|
467
|
-
// pattern from AbstractModelWithAsyncData where the public method
|
|
468
|
-
// is responsible for updating retain counts and the private method
|
|
469
|
-
// actually fetches data.
|
|
470
|
-
loadFieldsWhichAreNotAlreadyLoadedOrLoadingPromise = this._loadCellValuesInFieldIdsAsync(fieldIdsWhichAreNotAlreadyLoadedOrLoading);
|
|
471
|
-
pendingLoadPromises.push(loadFieldsWhichAreNotAlreadyLoadedOrLoadingPromise);
|
|
472
|
-
_iterator5 = _createForOfIteratorHelper(fieldIdsWhichAreNotAlreadyLoadedOrLoading);
|
|
473
|
-
try {
|
|
474
|
-
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
475
|
-
fieldId = _step5.value;
|
|
476
|
-
this._pendingCellValuesLoadPromiseByFieldId[fieldId] = loadFieldsWhichAreNotAlreadyLoadedOrLoadingPromise;
|
|
477
|
-
}
|
|
478
|
-
// Doing `.then` instead of performing these actions directly in
|
|
479
|
-
// _loadCellValuesInFieldIdsAsync so this is similar to
|
|
480
|
-
// AbstractModelWithAsyncData. The idea is to refactor to avoid code
|
|
481
|
-
// duplication, so keeping them similar for now hopefully will make the
|
|
482
|
-
// refactor simpler.
|
|
483
|
-
} catch (err) {
|
|
484
|
-
_iterator5.e(err);
|
|
485
|
-
} finally {
|
|
486
|
-
_iterator5.f();
|
|
487
|
-
}
|
|
488
|
-
loadFieldsWhichAreNotAlreadyLoadedOrLoadingPromise.then(changedKeys => {
|
|
489
|
-
var _iterator6 = _createForOfIteratorHelper(fieldIdsWhichAreNotAlreadyLoadedOrLoading),
|
|
490
|
-
_step6;
|
|
491
|
-
try {
|
|
492
|
-
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
493
|
-
var fieldId = _step6.value;
|
|
494
|
-
this._areCellValuesLoadedByFieldId[fieldId] = true;
|
|
495
|
-
this._pendingCellValuesLoadPromiseByFieldId[fieldId] = undefined;
|
|
496
|
-
}
|
|
497
|
-
} catch (err) {
|
|
498
|
-
_iterator6.e(err);
|
|
499
|
-
} finally {
|
|
500
|
-
_iterator6.f();
|
|
501
|
-
}
|
|
502
|
-
var _iterator7 = _createForOfIteratorHelper(changedKeys),
|
|
503
|
-
_step7;
|
|
504
|
-
try {
|
|
505
|
-
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
506
|
-
var key = _step7.value;
|
|
507
|
-
onChange(key);
|
|
508
|
-
}
|
|
509
|
-
} catch (err) {
|
|
510
|
-
_iterator7.e(err);
|
|
511
|
-
} finally {
|
|
512
|
-
_iterator7.f();
|
|
513
|
-
}
|
|
514
|
-
});
|
|
515
|
-
}
|
|
516
|
-
// Since we are incrementing fieldIds, it's necessary to restart any pending timeouts
|
|
517
|
-
// to unload data. This is because it's possible for a timeout to fire while a queryResult
|
|
518
|
-
// is actively unloading, and erroneously unload data. Data must be unloaded _after_ the queryResult.
|
|
519
|
-
this._restartTimeoutToUnloadFieldIdsIfTimeoutIsActive();
|
|
520
|
-
_context6.next = 9;
|
|
521
|
-
return Promise.all(pendingLoadPromises);
|
|
522
|
-
case 9:
|
|
523
|
-
case "end":
|
|
524
|
-
return _context6.stop();
|
|
525
|
-
}
|
|
526
|
-
}, _callee6, this);
|
|
527
|
-
}));
|
|
528
|
-
function loadCellValuesInFieldIdsAsync(_x3, _x4) {
|
|
529
|
-
return _loadCellValuesInFieldIdsAsync2.apply(this, arguments);
|
|
530
|
-
}
|
|
531
|
-
return loadCellValuesInFieldIdsAsync;
|
|
532
|
-
}()
|
|
533
|
-
}, {
|
|
534
|
-
key: "_loadCellValuesInFieldIdsAsync",
|
|
535
|
-
value: function () {
|
|
536
|
-
var _loadCellValuesInFieldIdsAsync3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(fieldIds) {
|
|
537
|
-
var _yield$this$_airtable, newRecordsById, existingRecordsById, _iterator8, _step8, _step8$value, recordId, newRecordObj, existingRecordObj, isCommentCountTypesSame, isCreatedTimeTypesSame, existingCellValuesByFieldId, i, fieldId, changedKeys;
|
|
538
|
-
return _regenerator.default.wrap(function _callee7$(_context7) {
|
|
539
|
-
while (1) switch (_context7.prev = _context7.next) {
|
|
540
|
-
case 0:
|
|
541
|
-
_context7.next = 2;
|
|
542
|
-
return this._airtableInterface.fetchAndSubscribeToCellValuesInFieldsAsync(this.tableId, fieldIds);
|
|
543
|
-
case 2:
|
|
544
|
-
_yield$this$_airtable = _context7.sent;
|
|
545
|
-
newRecordsById = _yield$this$_airtable.recordsById;
|
|
546
|
-
// Merge with existing data.
|
|
547
|
-
if (!this._data.recordsById) {
|
|
548
|
-
this._data.recordsById = {};
|
|
549
|
-
}
|
|
550
|
-
existingRecordsById = this._data.recordsById;
|
|
551
|
-
_iterator8 = _createForOfIteratorHelper((0, _private_utils.entries)((0, _private_utils.cast)(newRecordsById)));
|
|
552
|
-
try {
|
|
553
|
-
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
|
|
554
|
-
_step8$value = (0, _slicedToArray2.default)(_step8.value, 2), recordId = _step8$value[0], newRecordObj = _step8$value[1];
|
|
555
|
-
if (!(0, _private_utils.has)(existingRecordsById, recordId)) {
|
|
556
|
-
existingRecordsById[recordId] = newRecordObj;
|
|
557
|
-
} else {
|
|
558
|
-
existingRecordObj = existingRecordsById[recordId]; // Metadata (createdTime, commentCount) should generally be up to date,
|
|
559
|
-
// but can be out of date in the rare scenario where realtime
|
|
560
|
-
// data has not yet been delivered to the SDK, but is populated in hyperbase
|
|
561
|
-
// at the time this new fetch is executed.
|
|
562
|
-
// istanbul ignore next
|
|
563
|
-
if (existingRecordObj.commentCount !== newRecordObj.commentCount) {
|
|
564
|
-
isCommentCountTypesSame = typeof existingRecordObj.commentCount !== typeof newRecordObj.commentCount;
|
|
565
|
-
(0, _error_utils.logErrorToSentry)('comment count out of sync - types are same: %s', {
|
|
566
|
-
isCommentCountTypesSame
|
|
567
|
-
});
|
|
568
|
-
}
|
|
569
|
-
|
|
570
|
-
// istanbul ignore next
|
|
571
|
-
if (existingRecordObj.createdTime !== newRecordObj.createdTime) {
|
|
572
|
-
isCreatedTimeTypesSame = typeof existingRecordObj.createdTime !== typeof newRecordObj.createdTime;
|
|
573
|
-
(0, _error_utils.logErrorToSentry)('created time out of sync - types are same: %s', {
|
|
574
|
-
isCreatedTimeTypesSame
|
|
575
|
-
});
|
|
576
|
-
}
|
|
577
|
-
if (!existingRecordObj.cellValuesByFieldId) {
|
|
578
|
-
existingRecordObj.cellValuesByFieldId = {};
|
|
579
|
-
}
|
|
580
|
-
existingCellValuesByFieldId = existingRecordObj.cellValuesByFieldId;
|
|
581
|
-
for (i = 0; i < fieldIds.length; i++) {
|
|
582
|
-
fieldId = fieldIds[i];
|
|
583
|
-
existingCellValuesByFieldId[fieldId] = newRecordObj.cellValuesByFieldId ? newRecordObj.cellValuesByFieldId[fieldId] : undefined;
|
|
584
|
-
}
|
|
585
|
-
}
|
|
586
|
-
}
|
|
587
|
-
} catch (err) {
|
|
588
|
-
_iterator8.e(err);
|
|
589
|
-
} finally {
|
|
590
|
-
_iterator8.f();
|
|
591
|
-
}
|
|
592
|
-
changedKeys = fieldIds.map(fieldId => _record_store_core.WatchableCellValuesInFieldKeyPrefix + fieldId); // Need to trigger onChange for records and recordIds since watching either
|
|
593
|
-
// of those causes record metadata to be loaded (via _getFieldIdForCausingRecordMetadataToLoad)
|
|
594
|
-
// and by convention we trigger a change event when data loads.
|
|
595
|
-
changedKeys.push(WatchableRecordStoreKeys.records);
|
|
596
|
-
changedKeys.push(WatchableRecordStoreKeys.recordIds);
|
|
597
|
-
// Also trigger cellValues changes since the cell values in the fields
|
|
598
|
-
// are now loaded.
|
|
599
|
-
changedKeys.push(WatchableRecordStoreKeys.cellValues);
|
|
600
|
-
return _context7.abrupt("return", changedKeys);
|
|
601
|
-
case 13:
|
|
602
|
-
case "end":
|
|
603
|
-
return _context7.stop();
|
|
604
|
-
}
|
|
605
|
-
}, _callee7, this);
|
|
606
|
-
}));
|
|
607
|
-
function _loadCellValuesInFieldIdsAsync(_x5) {
|
|
608
|
-
return _loadCellValuesInFieldIdsAsync3.apply(this, arguments);
|
|
609
|
-
}
|
|
610
|
-
return _loadCellValuesInFieldIdsAsync;
|
|
611
|
-
}()
|
|
612
|
-
}, {
|
|
613
|
-
key: "unloadCellValuesInFieldIds",
|
|
614
|
-
value: function unloadCellValuesInFieldIds(fieldIds) {
|
|
615
|
-
if (this._isForceUnloaded) {
|
|
616
|
-
return;
|
|
617
|
-
}
|
|
618
|
-
var _iterator9 = _createForOfIteratorHelper(fieldIds),
|
|
619
|
-
_step9;
|
|
620
|
-
try {
|
|
621
|
-
for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
|
|
622
|
-
var fieldId = _step9.value;
|
|
623
|
-
var fieldRetainCount = this._cellValuesRetainCountByFieldId[fieldId] || 0;
|
|
624
|
-
fieldRetainCount--;
|
|
625
|
-
if (fieldRetainCount < 0) {
|
|
626
|
-
console.log('Field data over-released'); // eslint-disable-line no-console
|
|
627
|
-
fieldRetainCount = 0;
|
|
628
|
-
}
|
|
629
|
-
this._cellValuesRetainCountByFieldId[fieldId] = fieldRetainCount;
|
|
630
|
-
}
|
|
631
|
-
// Don't unload immediately. Wait a while in case something else
|
|
632
|
-
// requests the data, so we can avoid going back to liveapp or
|
|
633
|
-
// the network.
|
|
634
|
-
} catch (err) {
|
|
635
|
-
_iterator9.e(err);
|
|
636
|
-
} finally {
|
|
637
|
-
_iterator9.f();
|
|
638
|
-
}
|
|
639
|
-
this._startTimeoutToUnloadForFieldIdsIfNeeded();
|
|
640
|
-
}
|
|
641
|
-
|
|
642
|
-
// This unloads all fields where the retain count is at zero, and if any other
|
|
643
|
-
// request to unload fields is pending - cancels it and restarts it.
|
|
644
|
-
// This is important because fields must always be unloaded at least __DATA_UNLOAD_DELAY_MS
|
|
645
|
-
// after the unload is requested so that any QueryResults relying on them properly
|
|
646
|
-
// unload either first, or at the same time
|
|
647
|
-
}, {
|
|
648
|
-
key: "_startTimeoutToUnloadForFieldIdsIfNeeded",
|
|
649
|
-
value: function _startTimeoutToUnloadForFieldIdsIfNeeded() {
|
|
650
|
-
var fieldIdsWithZeroRetainCount = [];
|
|
651
|
-
for (var _i2 = 0, _Object$entries = Object.entries(this._cellValuesRetainCountByFieldId); _i2 < _Object$entries.length; _i2++) {
|
|
652
|
-
var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i2], 2),
|
|
653
|
-
fieldId = _Object$entries$_i[0],
|
|
654
|
-
retainCount = _Object$entries$_i[1];
|
|
655
|
-
if (retainCount === 0) {
|
|
656
|
-
fieldIdsWithZeroRetainCount.push(fieldId);
|
|
657
|
-
}
|
|
658
|
-
}
|
|
659
|
-
|
|
660
|
-
// Cancel any pending timeouts before proceeding
|
|
661
|
-
// This should be canceled even if there aren't any fields to unload as that means
|
|
662
|
-
// that there has been loading that's occured that makes the pending request invalid
|
|
663
|
-
if (this._timeoutForRemovingFieldIds) {
|
|
664
|
-
clearTimeout(this._timeoutForRemovingFieldIds);
|
|
665
|
-
this._timeoutForRemovingFieldIds = null;
|
|
666
|
-
}
|
|
667
|
-
if (fieldIdsWithZeroRetainCount.length > 0) {
|
|
668
|
-
this._timeoutForRemovingFieldIds = setTimeout(() => {
|
|
669
|
-
// Make sure the retain count is still zero, since it may
|
|
670
|
-
// have been incremented before the timeout fired.
|
|
671
|
-
var fieldIdsToUnload = fieldIdsWithZeroRetainCount.filter(fieldId => {
|
|
672
|
-
// It's necessary to also check that the field is loaded, as it's possible
|
|
673
|
-
// for an unload to trigger with fields that have already been removed.
|
|
674
|
-
return this._cellValuesRetainCountByFieldId[fieldId] === 0 && this._areCellValuesLoadedByFieldId[fieldId];
|
|
675
|
-
});
|
|
676
|
-
// istanbul ignore else
|
|
677
|
-
if (fieldIdsToUnload.length > 0) {
|
|
678
|
-
// Set _areCellValuesLoadedByFieldId to false before calling _unloadCellValuesInFieldIds
|
|
679
|
-
// since _unloadCellValuesInFieldIds will check if *any* fields are still loaded.
|
|
680
|
-
var _iterator10 = _createForOfIteratorHelper(fieldIdsToUnload),
|
|
681
|
-
_step10;
|
|
682
|
-
try {
|
|
683
|
-
for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
|
|
684
|
-
var _fieldId2 = _step10.value;
|
|
685
|
-
this._areCellValuesLoadedByFieldId[_fieldId2] = false;
|
|
686
|
-
}
|
|
687
|
-
} catch (err) {
|
|
688
|
-
_iterator10.e(err);
|
|
689
|
-
} finally {
|
|
690
|
-
_iterator10.f();
|
|
691
|
-
}
|
|
692
|
-
this._unloadCellValuesInFieldIds(fieldIdsToUnload);
|
|
693
|
-
} else {
|
|
694
|
-
// This shouldn't be possible because we always cancel the timer if fieldIds loadedness
|
|
695
|
-
// status ever changes
|
|
696
|
-
(0, _error_utils.logErrorToSentry)('fieldIdsToUnload is empty, this likely means the unload timer is not properly reset.');
|
|
697
|
-
}
|
|
698
|
-
this._timeoutForRemovingFieldIds = null;
|
|
699
|
-
}, _abstract_model_with_async_data.default.__DATA_UNLOAD_DELAY_MS);
|
|
700
|
-
}
|
|
701
|
-
}
|
|
702
|
-
}, {
|
|
703
|
-
key: "_restartTimeoutToUnloadFieldIdsIfTimeoutIsActive",
|
|
704
|
-
value: function _restartTimeoutToUnloadFieldIdsIfTimeoutIsActive() {
|
|
705
|
-
if (this._timeoutForRemovingFieldIds) {
|
|
706
|
-
this._startTimeoutToUnloadForFieldIdsIfNeeded();
|
|
707
|
-
}
|
|
708
|
-
}
|
|
709
|
-
}, {
|
|
710
|
-
key: "_unloadCellValuesInFieldIds",
|
|
711
|
-
value: function _unloadCellValuesInFieldIds(fieldIds) {
|
|
712
|
-
this._airtableInterface.unsubscribeFromCellValuesInFields(this.tableId, fieldIds);
|
|
713
|
-
this._afterUnloadDataOrUnloadCellValuesInFieldIds(fieldIds);
|
|
714
|
-
}
|
|
715
|
-
}, {
|
|
716
|
-
key: "_loadDataAsync",
|
|
717
|
-
value: function () {
|
|
718
|
-
var _loadDataAsync2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {
|
|
719
|
-
var tableData, changedKeys, _iterator11, _step11, fieldId;
|
|
720
|
-
return _regenerator.default.wrap(function _callee8$(_context8) {
|
|
721
|
-
while (1) switch (_context8.prev = _context8.next) {
|
|
722
|
-
case 0:
|
|
723
|
-
_context8.next = 2;
|
|
724
|
-
return this._airtableInterface.fetchAndSubscribeToTableDataAsync(this.tableId);
|
|
725
|
-
case 2:
|
|
726
|
-
tableData = _context8.sent;
|
|
727
|
-
this._data.recordsById = tableData.recordsById;
|
|
728
|
-
changedKeys = [WatchableRecordStoreKeys.records, WatchableRecordStoreKeys.recordIds, WatchableRecordStoreKeys.cellValues];
|
|
729
|
-
_iterator11 = _createForOfIteratorHelper((0, _private_utils.keys)(this._data.fieldsById));
|
|
730
|
-
try {
|
|
731
|
-
for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
|
|
732
|
-
fieldId = _step11.value;
|
|
733
|
-
changedKeys.push(_record_store_core.WatchableCellValuesInFieldKeyPrefix + fieldId);
|
|
734
|
-
}
|
|
735
|
-
} catch (err) {
|
|
736
|
-
_iterator11.e(err);
|
|
737
|
-
} finally {
|
|
738
|
-
_iterator11.f();
|
|
739
|
-
}
|
|
740
|
-
return _context8.abrupt("return", changedKeys);
|
|
741
|
-
case 8:
|
|
742
|
-
case "end":
|
|
743
|
-
return _context8.stop();
|
|
744
|
-
}
|
|
745
|
-
}, _callee8, this);
|
|
746
|
-
}));
|
|
747
|
-
function _loadDataAsync() {
|
|
748
|
-
return _loadDataAsync2.apply(this, arguments);
|
|
749
|
-
}
|
|
750
|
-
return _loadDataAsync;
|
|
751
|
-
}()
|
|
752
|
-
}, {
|
|
753
|
-
key: "_unloadData",
|
|
754
|
-
value: function _unloadData() {
|
|
755
|
-
this._airtableInterface.unsubscribeFromTableData(this.tableId);
|
|
756
|
-
this._afterUnloadDataOrUnloadCellValuesInFieldIds();
|
|
757
|
-
}
|
|
758
|
-
}, {
|
|
759
|
-
key: "_afterUnloadDataOrUnloadCellValuesInFieldIds",
|
|
760
|
-
value: function _afterUnloadDataOrUnloadCellValuesInFieldIds(unloadedFieldIds) {
|
|
761
|
-
var areAnyFieldsLoaded = this.isDataLoaded || (0, _private_utils.values)(this._areCellValuesLoadedByFieldId).some(isLoaded => isLoaded);
|
|
762
|
-
if (!this.isDeleted) {
|
|
763
|
-
if (!areAnyFieldsLoaded) {
|
|
764
|
-
this._data.recordsById = undefined;
|
|
765
|
-
} else if (!this.isDataLoaded) {
|
|
766
|
-
var fieldIdsToClear;
|
|
767
|
-
// This should be impossible - for fields should always be loaded
|
|
768
|
-
// when attempting to unload specific fields. This codepath was previously possible
|
|
769
|
-
// due to a bug. It could be converted to an invariant, but that is higher risk.
|
|
770
|
-
// istanbul ignore if
|
|
771
|
-
if (unloadedFieldIds) {
|
|
772
|
-
// Specific fields were unloaded, so clear out the cell values for those fields.
|
|
773
|
-
fieldIdsToClear = unloadedFieldIds;
|
|
774
|
-
(0, _error_utils.logErrorToSentry)('Field Ids are being unloaded when record_store is unloaded');
|
|
775
|
-
} else {
|
|
776
|
-
// The entire table was unloaded, but some individual fields are still loaded.
|
|
777
|
-
// We need to clear out the cell values of every field that was unloaded.
|
|
778
|
-
// This is kind of slow, but hopefully uncommon.
|
|
779
|
-
var fieldIds = Object.keys(this._data.fieldsById);
|
|
780
|
-
fieldIdsToClear = fieldIds.filter(fieldId => !this._areCellValuesLoadedByFieldId[fieldId]);
|
|
781
|
-
}
|
|
782
|
-
var recordsById = this._data.recordsById;
|
|
783
|
-
var _iterator12 = _createForOfIteratorHelper((0, _private_utils.values)(recordsById || {})),
|
|
784
|
-
_step12;
|
|
785
|
-
try {
|
|
786
|
-
for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
|
|
787
|
-
var recordObj = _step12.value;
|
|
788
|
-
for (var i = 0; i < fieldIdsToClear.length; i++) {
|
|
789
|
-
var fieldId = fieldIdsToClear[i];
|
|
790
|
-
if (recordObj.cellValuesByFieldId) {
|
|
791
|
-
recordObj.cellValuesByFieldId[fieldId] = undefined;
|
|
792
|
-
}
|
|
793
|
-
}
|
|
794
|
-
}
|
|
795
|
-
} catch (err) {
|
|
796
|
-
_iterator12.e(err);
|
|
797
|
-
} finally {
|
|
798
|
-
_iterator12.f();
|
|
799
|
-
}
|
|
800
|
-
}
|
|
801
|
-
}
|
|
802
|
-
if (!areAnyFieldsLoaded) {
|
|
803
|
-
this._clearRecordModels();
|
|
804
|
-
}
|
|
805
|
-
}
|
|
806
|
-
}, {
|
|
807
|
-
key: "_dataOrNullIfDeleted",
|
|
808
|
-
get: function get() {
|
|
809
|
-
var _this$_baseData$table;
|
|
810
|
-
return (_this$_baseData$table = this._baseData.tablesById[this.tableId]) !== null && _this$_baseData$table !== void 0 ? _this$_baseData$table : null;
|
|
811
|
-
}
|
|
812
|
-
}], [{
|
|
813
|
-
key: "_shouldLoadDataForKey",
|
|
814
|
-
value: function _shouldLoadDataForKey(key) {
|
|
815
|
-
// "Data" means *all* cell values in the table. If only watching records/recordIds,
|
|
816
|
-
// we'll just load record metadata (id, createdTime, commentCount).
|
|
817
|
-
// If only watching specific fields, we'll just load cell values in those
|
|
818
|
-
// fields. Both of those scenarios are handled manually by this class,
|
|
819
|
-
// instead of relying on AbstractModelWithAsyncData.
|
|
820
|
-
return key === WatchableRecordStoreKeys.cellValues;
|
|
821
|
-
}
|
|
822
|
-
}]);
|
|
823
|
-
}(_abstract_model_with_async_data.default);
|
|
824
|
-
/** @internal */
|
|
825
|
-
var _default = exports.default = RecordStore;
|