@airtable/blocks 0.0.0-experimental-f52bc4e5e-20250709 → 0.0.0-experimental-75d011284-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/cjs/base/assert_run_context.js +12 -0
- package/dist/cjs/base/index.js +30 -30
- package/dist/cjs/base/models/abstract_model_with_async_data.js +154 -237
- package/dist/cjs/base/models/base.js +188 -267
- package/dist/cjs/base/models/create_aggregators.js +29 -46
- package/dist/cjs/base/models/cursor.js +206 -294
- package/dist/cjs/base/models/field.js +307 -395
- package/dist/cjs/base/models/grouped_record_query_result.js +219 -338
- package/dist/cjs/base/models/linked_records_query_result.js +450 -625
- package/dist/cjs/base/models/models.js +19 -22
- package/dist/cjs/base/models/mutations.js +267 -293
- package/dist/cjs/base/models/object_pool.js +117 -156
- package/dist/cjs/base/models/record.js +191 -256
- package/dist/cjs/base/models/record_coloring.js +6 -6
- package/dist/cjs/base/models/record_query_result.js +351 -435
- package/dist/cjs/base/models/record_store.js +403 -753
- package/dist/cjs/base/models/session.js +125 -153
- package/dist/cjs/base/models/table.js +457 -605
- package/dist/cjs/base/models/table_or_view_query_result.js +656 -920
- package/dist/cjs/base/models/view.js +284 -389
- package/dist/cjs/base/models/view_data_store.js +218 -356
- package/dist/cjs/base/models/view_metadata_query_result.js +109 -157
- package/dist/cjs/base/perform_record_action.js +89 -131
- package/dist/cjs/base/sdk.js +129 -184
- package/dist/cjs/base/settings_button.js +54 -74
- package/dist/cjs/base/types/airtable_interface.js +1 -1
- package/dist/cjs/base/types/mutations.js +5 -11
- package/dist/cjs/base/types/undo_redo.js +1 -1
- package/dist/cjs/base/types/view.js +1 -1
- package/dist/cjs/base/ui/base_provider.js +6 -8
- package/dist/cjs/base/ui/baymax_utils.js +436 -108
- package/dist/cjs/base/ui/block_wrapper.js +81 -106
- package/dist/cjs/base/ui/box.js +34 -60
- package/dist/cjs/base/ui/button.js +44 -74
- package/dist/cjs/base/ui/cell_renderer.js +132 -189
- package/dist/cjs/base/ui/choice_token.js +25 -42
- package/dist/cjs/base/ui/collaborator_token.js +31 -53
- package/dist/cjs/base/ui/color_palette.js +130 -173
- package/dist/cjs/base/ui/color_palette_synced.js +41 -70
- package/dist/cjs/base/ui/confirmation_dialog.js +70 -120
- package/dist/cjs/base/ui/control_sizes.js +24 -22
- package/dist/cjs/base/ui/create_detect_element_resize.js +6 -10
- package/dist/cjs/base/ui/css_helpers.js +1 -1
- package/dist/cjs/base/ui/dialog.js +57 -98
- package/dist/cjs/base/ui/dialog_close_button.js +52 -98
- package/dist/cjs/base/ui/expand_record.js +1 -2
- package/dist/cjs/base/ui/expand_record_list.js +3 -4
- package/dist/cjs/base/ui/expand_record_picker_async.js +28 -57
- package/dist/cjs/base/ui/field_icon.js +15 -33
- package/dist/cjs/base/ui/field_picker.js +25 -70
- package/dist/cjs/base/ui/field_picker_synced.js +18 -40
- package/dist/cjs/base/ui/form_field.js +27 -55
- package/dist/cjs/base/ui/geometry/geometry.js +5 -5
- package/dist/cjs/base/ui/geometry/point.js +10 -12
- package/dist/cjs/base/ui/geometry/rect.js +36 -52
- package/dist/cjs/base/ui/geometry/size.js +10 -12
- package/dist/cjs/base/ui/global_alert.js +31 -52
- package/dist/cjs/base/ui/heading.js +45 -94
- package/dist/cjs/base/ui/icon.js +39 -59
- package/dist/cjs/base/ui/icon_config.js +6 -12
- package/dist/cjs/base/ui/initialize_block.js +16 -35
- package/dist/cjs/base/ui/input.js +62 -101
- package/dist/cjs/base/ui/input_synced.js +17 -40
- package/dist/cjs/base/ui/key_codes.js +2 -3
- package/dist/cjs/base/ui/label.js +30 -55
- package/dist/cjs/base/ui/link.js +54 -87
- package/dist/cjs/base/ui/loader.js +15 -36
- package/dist/cjs/base/ui/modal.js +88 -127
- package/dist/cjs/base/ui/model_picker_select.js +18 -44
- package/dist/cjs/base/ui/popover.js +236 -328
- package/dist/cjs/base/ui/progress_bar.js +34 -47
- package/dist/cjs/base/ui/record_card.js +389 -478
- package/dist/cjs/base/ui/record_card_list.js +150 -224
- package/dist/cjs/base/ui/select.js +60 -116
- package/dist/cjs/base/ui/select_and_select_buttons_helpers.js +15 -39
- package/dist/cjs/base/ui/select_buttons.js +50 -83
- package/dist/cjs/base/ui/select_buttons_synced.js +17 -39
- package/dist/cjs/base/ui/select_synced.js +17 -39
- package/dist/cjs/base/ui/switch.js +42 -71
- package/dist/cjs/base/ui/switch_synced.js +16 -38
- package/dist/cjs/base/ui/synced.js +27 -48
- package/dist/cjs/base/ui/system/all_styles_set.js +4 -12
- package/dist/cjs/base/ui/system/appearance/appearance_set.js +10 -13
- package/dist/cjs/base/ui/system/appearance/background_color.js +3 -6
- package/dist/cjs/base/ui/system/appearance/border.js +3 -6
- package/dist/cjs/base/ui/system/appearance/border_radius.js +3 -6
- package/dist/cjs/base/ui/system/appearance/box_shadow.js +3 -6
- package/dist/cjs/base/ui/system/appearance/opacity.js +3 -6
- package/dist/cjs/base/ui/system/dimensions/dimensions_set.js +11 -13
- package/dist/cjs/base/ui/system/dimensions/height.js +3 -6
- package/dist/cjs/base/ui/system/dimensions/max_height.js +3 -6
- package/dist/cjs/base/ui/system/dimensions/max_width.js +3 -6
- package/dist/cjs/base/ui/system/dimensions/min_height.js +3 -6
- package/dist/cjs/base/ui/system/dimensions/min_width.js +3 -6
- package/dist/cjs/base/ui/system/dimensions/width.js +3 -6
- package/dist/cjs/base/ui/system/display.js +3 -6
- package/dist/cjs/base/ui/system/flex_container/align_content.js +3 -6
- package/dist/cjs/base/ui/system/flex_container/align_items.js +3 -6
- package/dist/cjs/base/ui/system/flex_container/flex_container_set.js +11 -13
- package/dist/cjs/base/ui/system/flex_container/flex_direction.js +3 -6
- package/dist/cjs/base/ui/system/flex_container/flex_wrap.js +3 -6
- package/dist/cjs/base/ui/system/flex_container/justify_content.js +3 -6
- package/dist/cjs/base/ui/system/flex_container/justify_items.js +3 -6
- package/dist/cjs/base/ui/system/flex_item/align_self.js +3 -6
- package/dist/cjs/base/ui/system/flex_item/flex.js +3 -6
- package/dist/cjs/base/ui/system/flex_item/flex_basis.js +3 -6
- package/dist/cjs/base/ui/system/flex_item/flex_grow.js +3 -6
- package/dist/cjs/base/ui/system/flex_item/flex_item_set.js +12 -13
- package/dist/cjs/base/ui/system/flex_item/flex_shrink.js +3 -6
- package/dist/cjs/base/ui/system/flex_item/justify_self.js +3 -6
- package/dist/cjs/base/ui/system/flex_item/order.js +3 -6
- package/dist/cjs/base/ui/system/index.js +104 -416
- package/dist/cjs/base/ui/system/overflow.js +3 -6
- package/dist/cjs/base/ui/system/position/bottom.js +4 -6
- package/dist/cjs/base/ui/system/position/left.js +4 -6
- package/dist/cjs/base/ui/system/position/position.js +3 -6
- package/dist/cjs/base/ui/system/position/position_set.js +11 -13
- package/dist/cjs/base/ui/system/position/right.js +4 -6
- package/dist/cjs/base/ui/system/position/top.js +4 -6
- package/dist/cjs/base/ui/system/position/z_index.js +3 -6
- package/dist/cjs/base/ui/system/spacing/margin.js +4 -6
- package/dist/cjs/base/ui/system/spacing/padding.js +4 -6
- package/dist/cjs/base/ui/system/spacing/spacing_set.js +7 -13
- package/dist/cjs/base/ui/system/typography/font_family.js +3 -6
- package/dist/cjs/base/ui/system/typography/font_size.js +3 -6
- package/dist/cjs/base/ui/system/typography/font_style.js +3 -6
- package/dist/cjs/base/ui/system/typography/font_weight.js +3 -6
- package/dist/cjs/base/ui/system/typography/letter_spacing.js +3 -6
- package/dist/cjs/base/ui/system/typography/line_height.js +3 -6
- package/dist/cjs/base/ui/system/typography/text_align.js +3 -6
- package/dist/cjs/base/ui/system/typography/text_color.js +3 -6
- package/dist/cjs/base/ui/system/typography/text_decoration.js +3 -6
- package/dist/cjs/base/ui/system/typography/text_transform.js +3 -6
- package/dist/cjs/base/ui/system/typography/typography_set.js +15 -13
- package/dist/cjs/base/ui/system/utils/ensure_numbers_are_within_scale.js +3 -4
- package/dist/cjs/base/ui/system/utils/get_style_props_for_responsive_prop.js +47 -87
- package/dist/cjs/base/ui/table_picker.js +18 -42
- package/dist/cjs/base/ui/table_picker_synced.js +17 -39
- package/dist/cjs/base/ui/text.js +40 -73
- package/dist/cjs/base/ui/text_button.js +51 -83
- package/dist/cjs/base/ui/theme/default_theme/button_variants.js +3 -3
- package/dist/cjs/base/ui/theme/default_theme/control_sizes.js +51 -45
- package/dist/cjs/base/ui/theme/default_theme/heading_styles.js +1 -1
- package/dist/cjs/base/ui/theme/default_theme/index.js +9 -15
- package/dist/cjs/base/ui/theme/default_theme/input_variants.js +3 -3
- package/dist/cjs/base/ui/theme/default_theme/link_variants.js +3 -3
- package/dist/cjs/base/ui/theme/default_theme/select_buttons_variants.js +4 -4
- package/dist/cjs/base/ui/theme/default_theme/select_variants.js +8 -17
- package/dist/cjs/base/ui/theme/default_theme/switch_variants.js +23 -29
- package/dist/cjs/base/ui/theme/default_theme/text_button_variants.js +5 -5
- package/dist/cjs/base/ui/theme/default_theme/text_styles.js +1 -1
- package/dist/cjs/base/ui/theme/default_theme/tokens.js +14 -14
- package/dist/cjs/base/ui/theme/theme_context.js +2 -2
- package/dist/cjs/base/ui/theme/use_theme.js +2 -2
- package/dist/cjs/base/ui/tooltip.js +134 -174
- package/dist/cjs/base/ui/types/aria_props.js +1 -23
- package/dist/cjs/base/ui/types/data_attributes_prop.js +1 -18
- package/dist/cjs/base/ui/types/tooltip_anchor_props.js +1 -17
- package/dist/cjs/base/ui/ui.js +48 -49
- package/dist/cjs/base/ui/unstable_standalone_ui.js +27 -27
- package/dist/cjs/base/ui/use_base.js +1 -1
- package/dist/cjs/base/ui/use_cursor.js +5 -4
- package/dist/cjs/base/ui/use_form_field.js +1 -1
- package/dist/cjs/base/ui/use_loadable.js +25 -91
- package/dist/cjs/base/ui/use_record_action_data.js +4 -3
- package/dist/cjs/base/ui/use_records.js +9 -13
- package/dist/cjs/base/ui/use_session.js +1 -1
- package/dist/cjs/base/ui/use_settings_button.js +4 -3
- package/dist/cjs/base/ui/use_styled_system.js +7 -14
- package/dist/cjs/base/ui/use_text_color_for_background_color.js +4 -3
- package/dist/cjs/base/ui/use_view_metadata.js +4 -4
- package/dist/cjs/base/ui/use_viewport.js +2 -2
- package/dist/cjs/base/ui/view_picker.js +26 -70
- package/dist/cjs/base/ui/view_picker_synced.js +18 -40
- package/dist/cjs/base/ui/viewport_constraint.js +67 -114
- package/dist/cjs/base/ui/with_styled_system.js +25 -61
- package/dist/cjs/base/undo_redo.js +21 -32
- package/dist/cjs/base/unstable_testing_utils.js +27 -27
- package/dist/cjs/base/viewport.js +268 -312
- package/dist/cjs/injected/airtable_interface.js +4 -4
- package/dist/cjs/interface/assert_run_context.js +12 -0
- package/dist/cjs/interface/index.js +4 -18
- package/dist/cjs/interface/models/base.js +15 -34
- package/dist/cjs/interface/models/field.js +5 -19
- package/dist/cjs/interface/models/models.js +8 -7
- package/dist/cjs/interface/models/mutations.js +50 -66
- package/dist/cjs/interface/models/record.js +29 -49
- package/dist/cjs/interface/models/record_store.js +25 -57
- package/dist/cjs/interface/models/session.js +2 -16
- package/dist/cjs/interface/models/table.js +66 -95
- package/dist/cjs/interface/sdk.js +61 -87
- package/dist/cjs/interface/types/airtable_interface.js +2 -2
- package/dist/cjs/interface/types/mutations.js +3 -10
- package/dist/cjs/interface/ui/block_wrapper.js +56 -48
- package/dist/cjs/interface/ui/initialize_block.js +13 -28
- package/dist/cjs/interface/ui/ui.js +20 -19
- package/dist/cjs/interface/ui/use_base.js +1 -1
- package/dist/cjs/interface/ui/use_custom_properties.js +19 -35
- package/dist/cjs/interface/ui/use_records.js +6 -5
- package/dist/cjs/interface/ui/use_run_info.js +2 -2
- package/dist/cjs/interface/ui/use_session.js +1 -1
- package/dist/cjs/shared/color_utils.js +9 -16
- package/dist/cjs/shared/colors.js +2 -2
- package/dist/cjs/shared/error_utils.js +9 -11
- package/dist/cjs/shared/event_tracker.js +3 -3
- package/dist/cjs/shared/global_config.js +337 -449
- package/dist/cjs/shared/models/abstract_model.js +72 -97
- package/dist/cjs/shared/models/base_core.js +394 -514
- package/dist/cjs/shared/models/field_core.js +236 -279
- package/dist/cjs/shared/models/mutations_core.js +283 -379
- package/dist/cjs/shared/models/record_core.js +174 -231
- package/dist/cjs/shared/models/record_store_core.js +119 -172
- package/dist/cjs/shared/models/session_core.js +116 -170
- package/dist/cjs/shared/models/table_core.js +1258 -1501
- package/dist/cjs/shared/private_utils.js +54 -124
- package/dist/cjs/shared/sdk_core.js +68 -70
- package/dist/cjs/shared/types/field_core.js +1 -1
- package/dist/cjs/shared/types/mutation_constants.js +4 -4
- package/dist/cjs/shared/types/mutations_core.js +1 -1
- package/dist/cjs/shared/types/permission_levels.js +1 -1
- package/dist/cjs/shared/ui/global_config_synced_component_helpers.js +9 -9
- package/dist/cjs/shared/ui/loader.js +14 -35
- package/dist/cjs/shared/ui/remote_utils.js +5 -7
- package/dist/cjs/shared/ui/sdk_context.js +4 -8
- package/dist/cjs/shared/ui/use_array_identity.js +2 -2
- package/dist/cjs/shared/ui/use_base.js +6 -5
- package/dist/cjs/shared/ui/use_color_scheme.js +3 -8
- package/dist/cjs/shared/ui/use_global_config.js +5 -4
- package/dist/cjs/shared/ui/use_session.js +6 -5
- package/dist/cjs/shared/ui/use_synced.js +7 -5
- package/dist/cjs/shared/ui/use_watchable.js +13 -42
- package/dist/cjs/shared/ui/with_hooks.js +6 -13
- package/dist/cjs/shared/unstable_private_utils.js +4 -6
- package/dist/cjs/shared/warning.js +5 -5
- package/dist/cjs/shared/watchable.js +110 -176
- package/dist/cjs/stats/block_stats.js +62 -85
- package/dist/cjs/testing/base/abstract_mock_airtable_interface.js +208 -0
- package/dist/cjs/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/models.d.ts +1 -0
- 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/package.json +13 -13
- 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/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
|
@@ -1,41 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
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.regexp.exec.js");
|
|
7
|
-
require("core-js/modules/es.regexp.to-string.js");
|
|
8
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
9
3
|
Object.defineProperty(exports, "__esModule", {
|
|
10
4
|
value: true
|
|
11
5
|
});
|
|
12
6
|
exports.default = exports.WatchableViewDataStoreKeys = void 0;
|
|
13
|
-
require("core-js/modules/es.array.filter.js");
|
|
14
|
-
require("core-js/modules/es.array.iterator.js");
|
|
15
|
-
require("core-js/modules/es.array.map.js");
|
|
16
|
-
require("core-js/modules/es.array.slice.js");
|
|
17
|
-
require("core-js/modules/es.object.to-string.js");
|
|
18
|
-
require("core-js/modules/es.promise.js");
|
|
19
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
20
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
21
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
22
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
23
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
24
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
25
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
26
|
-
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
27
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
28
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
29
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
30
7
|
var _private_utils = require("../../shared/private_utils");
|
|
31
8
|
var _error_utils = require("../../shared/error_utils");
|
|
32
9
|
var _abstract_model_with_async_data = _interopRequireDefault(require("./abstract_model_with_async_data"));
|
|
33
|
-
function
|
|
34
|
-
|
|
35
|
-
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; }
|
|
36
|
-
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)); }
|
|
37
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
38
|
-
var WatchableViewDataStoreKeys = exports.WatchableViewDataStoreKeys = Object.freeze({
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
const WatchableViewDataStoreKeys = exports.WatchableViewDataStoreKeys = Object.freeze({
|
|
39
12
|
visibleRecords: 'visibleRecords',
|
|
40
13
|
visibleRecordIds: 'visibleRecordIds',
|
|
41
14
|
groups: 'groups',
|
|
@@ -46,358 +19,247 @@ var WatchableViewDataStoreKeys = exports.WatchableViewDataStoreKeys = Object.fre
|
|
|
46
19
|
});
|
|
47
20
|
|
|
48
21
|
/** @internal */
|
|
22
|
+
|
|
49
23
|
// ViewDataStore contains loadable data for a specific view. That means the set of visible records,
|
|
50
24
|
// and field order/visibility information. View itself only contains core schema information. The
|
|
51
25
|
// data here doesn't belong in View as it's record data or conditionally loaded.
|
|
52
26
|
/** @internal */
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
(0,
|
|
57
|
-
_this = _callSuper(this, ViewDataStore, [sdk, "".concat(viewId, "-ViewDataStore")]);
|
|
58
|
-
(0, _defineProperty2.default)(_this, "viewId", void 0);
|
|
59
|
-
(0, _defineProperty2.default)(_this, "parentRecordStore", void 0);
|
|
60
|
-
(0, _defineProperty2.default)(_this, "_mostRecentTableLoadPromise", void 0);
|
|
61
|
-
(0, _defineProperty2.default)(_this, "_airtableInterface", void 0);
|
|
62
|
-
_this.parentRecordStore = parentRecordStore;
|
|
63
|
-
_this._airtableInterface = sdk.__airtableInterface;
|
|
64
|
-
_this._mostRecentTableLoadPromise = null;
|
|
65
|
-
_this.viewId = viewId;
|
|
66
|
-
return _this;
|
|
27
|
+
class ViewDataStore extends _abstract_model_with_async_data.default {
|
|
28
|
+
static _className = 'ViewDataStore';
|
|
29
|
+
static _isWatchableKey(key) {
|
|
30
|
+
return (0, _private_utils.isEnumValue)(WatchableViewDataStoreKeys, key);
|
|
67
31
|
}
|
|
68
|
-
(
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
return loadDataAsync;
|
|
118
|
-
}()
|
|
119
|
-
}, {
|
|
120
|
-
key: "_loadDataAsync",
|
|
121
|
-
value: function () {
|
|
122
|
-
var _loadDataAsync3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
123
|
-
var tableLoadPromise, _yield$Promise$all, _yield$Promise$all2, viewData, _iterator, _step, record;
|
|
124
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
125
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
126
|
-
case 0:
|
|
127
|
-
// We need to be sure that the table data is loaded *before* we return
|
|
128
|
-
// from this method.
|
|
129
|
-
(0, _error_utils.invariant)(this._mostRecentTableLoadPromise, 'No table load promise');
|
|
130
|
-
tableLoadPromise = this._mostRecentTableLoadPromise;
|
|
131
|
-
_context2.next = 4;
|
|
132
|
-
return Promise.all([this._airtableInterface.fetchAndSubscribeToViewDataAsync(this.parentRecordStore.tableId, this.viewId), tableLoadPromise]);
|
|
133
|
-
case 4:
|
|
134
|
-
_yield$Promise$all = _context2.sent;
|
|
135
|
-
_yield$Promise$all2 = (0, _slicedToArray2.default)(_yield$Promise$all, 1);
|
|
136
|
-
viewData = _yield$Promise$all2[0];
|
|
137
|
-
this._data.visibleRecordIds = viewData.visibleRecordIds;
|
|
138
|
-
this._data.fieldOrder = viewData.fieldOrder;
|
|
139
|
-
this._data.groups = viewData.groups;
|
|
140
|
-
this._data.groupLevels = viewData.groupLevels;
|
|
141
|
-
this._data.colorsByRecordId = viewData.colorsByRecordId;
|
|
142
|
-
if (this._data.colorsByRecordId) {
|
|
143
|
-
_iterator = _createForOfIteratorHelper(this.visibleRecords);
|
|
144
|
-
try {
|
|
145
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
146
|
-
record = _step.value;
|
|
147
|
-
if ((0, _private_utils.has)(this._data.colorsByRecordId, record.id)) {
|
|
148
|
-
record.__triggerOnChangeForRecordColorInViewId(this.viewId);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
} catch (err) {
|
|
152
|
-
_iterator.e(err);
|
|
153
|
-
} finally {
|
|
154
|
-
_iterator.f();
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return _context2.abrupt("return", [WatchableViewDataStoreKeys.visibleRecords, WatchableViewDataStoreKeys.visibleRecordIds, WatchableViewDataStoreKeys.allFieldIds, WatchableViewDataStoreKeys.groups, WatchableViewDataStoreKeys.groupLevels, WatchableViewDataStoreKeys.visibleFieldIds, WatchableViewDataStoreKeys.recordColors]);
|
|
158
|
-
case 14:
|
|
159
|
-
case "end":
|
|
160
|
-
return _context2.stop();
|
|
161
|
-
}
|
|
162
|
-
}, _callee2, this);
|
|
163
|
-
}));
|
|
164
|
-
function _loadDataAsync() {
|
|
165
|
-
return _loadDataAsync3.apply(this, arguments);
|
|
166
|
-
}
|
|
167
|
-
return _loadDataAsync;
|
|
168
|
-
}()
|
|
169
|
-
}, {
|
|
170
|
-
key: "unloadData",
|
|
171
|
-
value: function unloadData() {
|
|
172
|
-
// Override this method to also unload the table's data.
|
|
173
|
-
// NOTE: it's important that we do this here, since we want the view and table's
|
|
174
|
-
// retain counts to increment/decrement in lock-step. If we unload the table's
|
|
175
|
-
// data in _unloadData, it leads to unexpected behavior.
|
|
176
|
-
(0, _get2.default)((0, _getPrototypeOf2.default)(ViewDataStore.prototype), "unloadData", this).call(this);
|
|
177
|
-
this.parentRecordStore.unloadRecordMetadata();
|
|
178
|
-
}
|
|
179
|
-
}, {
|
|
180
|
-
key: "_unloadData",
|
|
181
|
-
value: function _unloadData() {
|
|
182
|
-
this._mostRecentTableLoadPromise = null;
|
|
183
|
-
this._airtableInterface.unsubscribeFromViewData(this.parentRecordStore.tableId, this.viewId);
|
|
184
|
-
if (!this.isDeleted) {
|
|
185
|
-
this._data.visibleRecordIds = undefined;
|
|
186
|
-
this._data.groups = undefined;
|
|
187
|
-
this._data.colorsByRecordId = undefined;
|
|
32
|
+
static _shouldLoadDataForKey(key) {
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
constructor(sdk, parentRecordStore, viewId) {
|
|
36
|
+
super(sdk, `${viewId}-ViewDataStore`);
|
|
37
|
+
this.parentRecordStore = parentRecordStore;
|
|
38
|
+
this._airtableInterface = sdk.__airtableInterface;
|
|
39
|
+
this._mostRecentTableLoadPromise = null;
|
|
40
|
+
this.viewId = viewId;
|
|
41
|
+
}
|
|
42
|
+
get _dataOrNullIfDeleted() {
|
|
43
|
+
const tableData = this._baseData.tablesById[this.parentRecordStore.tableId];
|
|
44
|
+
return tableData?.viewsById[this.viewId] ?? null;
|
|
45
|
+
}
|
|
46
|
+
_onChangeIsDataLoaded() {
|
|
47
|
+
// noop
|
|
48
|
+
}
|
|
49
|
+
get isDataLoaded() {
|
|
50
|
+
return this._isDataLoaded && this.parentRecordStore.isRecordMetadataLoaded;
|
|
51
|
+
}
|
|
52
|
+
__onDataDeletion() {
|
|
53
|
+
this._forceUnload();
|
|
54
|
+
}
|
|
55
|
+
async loadDataAsync() {
|
|
56
|
+
// Override this method to also load table data.
|
|
57
|
+
// NOTE: it's important that we call loadDataAsync on the table here and not in
|
|
58
|
+
// _loadDataAsync since we want the retain counts for the view and table to increase/decrease
|
|
59
|
+
// in lock-step. If we load table data in _loadDataAsync, the table's retain
|
|
60
|
+
// count only increments some of the time, which leads to unexpected behavior.
|
|
61
|
+
const tableLoadPromise = this.parentRecordStore.loadRecordMetadataAsync();
|
|
62
|
+
this._mostRecentTableLoadPromise = tableLoadPromise;
|
|
63
|
+
await super.loadDataAsync();
|
|
64
|
+
}
|
|
65
|
+
async _loadDataAsync() {
|
|
66
|
+
// We need to be sure that the table data is loaded *before* we return
|
|
67
|
+
// from this method.
|
|
68
|
+
(0, _error_utils.invariant)(this._mostRecentTableLoadPromise, 'No table load promise');
|
|
69
|
+
const tableLoadPromise = this._mostRecentTableLoadPromise;
|
|
70
|
+
const [viewData] = await Promise.all([this._airtableInterface.fetchAndSubscribeToViewDataAsync(this.parentRecordStore.tableId, this.viewId), tableLoadPromise]);
|
|
71
|
+
this._data.visibleRecordIds = viewData.visibleRecordIds;
|
|
72
|
+
this._data.fieldOrder = viewData.fieldOrder;
|
|
73
|
+
this._data.groups = viewData.groups;
|
|
74
|
+
this._data.groupLevels = viewData.groupLevels;
|
|
75
|
+
this._data.colorsByRecordId = viewData.colorsByRecordId;
|
|
76
|
+
if (this._data.colorsByRecordId) {
|
|
77
|
+
for (const record of this.visibleRecords) {
|
|
78
|
+
if ((0, _private_utils.has)(this._data.colorsByRecordId, record.id)) {
|
|
79
|
+
record.__triggerOnChangeForRecordColorInViewId(this.viewId);
|
|
80
|
+
}
|
|
188
81
|
}
|
|
189
82
|
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
83
|
+
return [WatchableViewDataStoreKeys.visibleRecords, WatchableViewDataStoreKeys.visibleRecordIds, WatchableViewDataStoreKeys.allFieldIds, WatchableViewDataStoreKeys.groups, WatchableViewDataStoreKeys.groupLevels, WatchableViewDataStoreKeys.visibleFieldIds, WatchableViewDataStoreKeys.recordColors];
|
|
84
|
+
}
|
|
85
|
+
unloadData() {
|
|
86
|
+
// Override this method to also unload the table's data.
|
|
87
|
+
// NOTE: it's important that we do this here, since we want the view and table's
|
|
88
|
+
// retain counts to increment/decrement in lock-step. If we unload the table's
|
|
89
|
+
// data in _unloadData, it leads to unexpected behavior.
|
|
90
|
+
super.unloadData();
|
|
91
|
+
this.parentRecordStore.unloadRecordMetadata();
|
|
92
|
+
}
|
|
93
|
+
_unloadData() {
|
|
94
|
+
this._mostRecentTableLoadPromise = null;
|
|
95
|
+
this._airtableInterface.unsubscribeFromViewData(this.parentRecordStore.tableId, this.viewId);
|
|
96
|
+
if (!this.isDeleted) {
|
|
97
|
+
this._data.visibleRecordIds = undefined;
|
|
98
|
+
this._data.groups = undefined;
|
|
99
|
+
this._data.colorsByRecordId = undefined;
|
|
198
100
|
}
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
_iterator2.e(err);
|
|
212
|
-
} finally {
|
|
213
|
-
_iterator2.f();
|
|
214
|
-
}
|
|
215
|
-
var newVisibleRecordIds = this.visibleRecordIds.filter(recordId => !recordIdsToDeleteSet[recordId]);
|
|
216
|
-
var changePayload = [{
|
|
217
|
-
path: ['tablesById', this.parentRecordStore.tableId, 'viewsById', this.viewId, 'visibleRecordIds'],
|
|
218
|
-
value: newVisibleRecordIds
|
|
219
|
-
}];
|
|
220
|
-
if (this._data.groups) {
|
|
221
|
-
var newGroups = this.__recursivelyRemoveRecordsFromGroupsInPlace((0, _private_utils.cloneDeep)(this._data.groups), recordIdsToDeleteSet);
|
|
222
|
-
changePayload.push({
|
|
223
|
-
path: ['tablesById', this.parentRecordStore.tableId, 'viewsById', this.viewId, 'groups'],
|
|
224
|
-
value: newGroups
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
return changePayload;
|
|
101
|
+
}
|
|
102
|
+
__generateChangesForParentTableAddMultipleRecords(recordIds) {
|
|
103
|
+
const newVisibleRecordIds = [...this.visibleRecordIds, ...recordIds];
|
|
104
|
+
return [{
|
|
105
|
+
path: ['tablesById', this.parentRecordStore.tableId, 'viewsById', this.viewId, 'visibleRecordIds'],
|
|
106
|
+
value: newVisibleRecordIds
|
|
107
|
+
}];
|
|
108
|
+
}
|
|
109
|
+
__generateChangesForParentTableDeleteMultipleRecords(recordIds) {
|
|
110
|
+
const recordIdsToDeleteSet = {};
|
|
111
|
+
for (const recordId of recordIds) {
|
|
112
|
+
recordIdsToDeleteSet[recordId] = true;
|
|
228
113
|
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
this.__recursivelyRemoveRecordsFromGroupsInPlace(group.groups, recordIdsToDeleteSet);
|
|
240
|
-
return group;
|
|
114
|
+
const newVisibleRecordIds = this.visibleRecordIds.filter(recordId => !recordIdsToDeleteSet[recordId]);
|
|
115
|
+
const changePayload = [{
|
|
116
|
+
path: ['tablesById', this.parentRecordStore.tableId, 'viewsById', this.viewId, 'visibleRecordIds'],
|
|
117
|
+
value: newVisibleRecordIds
|
|
118
|
+
}];
|
|
119
|
+
if (this._data.groups) {
|
|
120
|
+
const newGroups = this.__recursivelyRemoveRecordsFromGroupsInPlace((0, _private_utils.cloneDeep)(this._data.groups), recordIdsToDeleteSet);
|
|
121
|
+
changePayload.push({
|
|
122
|
+
path: ['tablesById', this.parentRecordStore.tableId, 'viewsById', this.viewId, 'groups'],
|
|
123
|
+
value: newGroups
|
|
241
124
|
});
|
|
242
125
|
}
|
|
126
|
+
return changePayload;
|
|
127
|
+
}
|
|
128
|
+
__recursivelyRemoveRecordsFromGroupsInPlace(groups, recordIdsToDeleteSet) {
|
|
129
|
+
if (!groups || groups.length === 0) {
|
|
130
|
+
return groups;
|
|
131
|
+
}
|
|
132
|
+
return groups.map(group => {
|
|
133
|
+
if (group.visibleRecordIds) {
|
|
134
|
+
group.visibleRecordIds = group.visibleRecordIds.filter(id => !recordIdsToDeleteSet[id]);
|
|
135
|
+
}
|
|
136
|
+
this.__recursivelyRemoveRecordsFromGroupsInPlace(group.groups, recordIdsToDeleteSet);
|
|
137
|
+
return group;
|
|
138
|
+
});
|
|
139
|
+
}
|
|
243
140
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
var visibleRecordIds = this._data.visibleRecordIds;
|
|
253
|
-
(0, _error_utils.invariant)(visibleRecordIds, 'View data is not loaded');
|
|
141
|
+
/**
|
|
142
|
+
* The record IDs that are not filtered out of this view.
|
|
143
|
+
* Can be watched to know when records are created, deleted, reordered, or
|
|
144
|
+
* filtered in and out of this view.
|
|
145
|
+
*/
|
|
146
|
+
get visibleRecordIds() {
|
|
147
|
+
const visibleRecordIds = this._data.visibleRecordIds;
|
|
148
|
+
(0, _error_utils.invariant)(visibleRecordIds, 'View data is not loaded');
|
|
254
149
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
}
|
|
261
|
-
return visibleRecordIds;
|
|
150
|
+
// Freeze visibleRecordIds so users can't mutate it.
|
|
151
|
+
// If it changes from liveapp, we get an entire new array which will
|
|
152
|
+
// replace this one, so it's okay to freeze it.
|
|
153
|
+
if (!Object.isFrozen(visibleRecordIds)) {
|
|
154
|
+
Object.freeze(visibleRecordIds);
|
|
262
155
|
}
|
|
156
|
+
return visibleRecordIds;
|
|
157
|
+
}
|
|
263
158
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
});
|
|
280
|
-
}
|
|
159
|
+
/**
|
|
160
|
+
* The records that are not filtered out of this view.
|
|
161
|
+
* Can be watched to know when records are created, deleted, reordered, or
|
|
162
|
+
* filtered in and out of this view.
|
|
163
|
+
*/
|
|
164
|
+
get visibleRecords() {
|
|
165
|
+
(0, _error_utils.invariant)(this.parentRecordStore.isRecordMetadataLoaded, 'Table data is not loaded');
|
|
166
|
+
const visibleRecordIds = this._data.visibleRecordIds;
|
|
167
|
+
(0, _error_utils.invariant)(visibleRecordIds, 'View data is not loaded');
|
|
168
|
+
return visibleRecordIds.map(recordId => {
|
|
169
|
+
const record = this.parentRecordStore.getRecordByIdIfExists(recordId);
|
|
170
|
+
(0, _error_utils.invariant)(record, 'Record in view does not exist');
|
|
171
|
+
return record;
|
|
172
|
+
});
|
|
173
|
+
}
|
|
281
174
|
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
return groups !== null && groups !== void 0 ? groups : null;
|
|
295
|
-
}
|
|
175
|
+
/**
|
|
176
|
+
* Gets the groups in a view, can be watched to be notified if a record changes groups,
|
|
177
|
+
* if a record is changed/deleted/created, if sort order of groups changes, grouping
|
|
178
|
+
* heirarchy changes, or grouping field changes.
|
|
179
|
+
*
|
|
180
|
+
* @hidden
|
|
181
|
+
*/
|
|
182
|
+
get groups() {
|
|
183
|
+
(0, _error_utils.invariant)(this.parentRecordStore.isRecordMetadataLoaded, 'Table data is not loaded');
|
|
184
|
+
const groups = this._data.groups;
|
|
185
|
+
return groups ?? null;
|
|
186
|
+
}
|
|
296
187
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
return groupLevels !== null && groupLevels !== void 0 ? groupLevels : null;
|
|
307
|
-
}
|
|
188
|
+
/**
|
|
189
|
+
* Gets the group config for this view, can be watched to know when groupLevels
|
|
190
|
+
* changes (reorder, groups deleted, groups changed, grouped field changes)
|
|
191
|
+
*/
|
|
192
|
+
get groupLevels() {
|
|
193
|
+
(0, _error_utils.invariant)(this.parentRecordStore.isRecordMetadataLoaded, 'Table data is not loaded');
|
|
194
|
+
const groupLevels = this._data.groupLevels;
|
|
195
|
+
return groupLevels ?? null;
|
|
196
|
+
}
|
|
308
197
|
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
198
|
+
/**
|
|
199
|
+
* Get the color name for the specified record in this view, or null if no
|
|
200
|
+
* color is available. Watch with 'recordColors'
|
|
201
|
+
*
|
|
202
|
+
* @param recordOrRecordId the record/record id to get the color for
|
|
203
|
+
*/
|
|
204
|
+
getRecordColor(record) {
|
|
205
|
+
(0, _error_utils.invariant)(this.isDataLoaded, 'View data is not loaded');
|
|
206
|
+
return this._data.colorsByRecordId?.[record.id] ?? null;
|
|
207
|
+
}
|
|
208
|
+
get allFieldIds() {
|
|
209
|
+
const fieldOrder = this._data.fieldOrder;
|
|
210
|
+
(0, _error_utils.invariant)(fieldOrder, 'View data is not loaded');
|
|
211
|
+
return fieldOrder.fieldIds;
|
|
212
|
+
}
|
|
213
|
+
get visibleFieldIds() {
|
|
214
|
+
const fieldOrder = this._data.fieldOrder;
|
|
215
|
+
(0, _error_utils.invariant)(fieldOrder, 'View data is not loaded');
|
|
216
|
+
const {
|
|
217
|
+
fieldIds
|
|
218
|
+
} = fieldOrder;
|
|
219
|
+
return fieldIds.slice(0, fieldOrder.visibleFieldCount);
|
|
220
|
+
}
|
|
221
|
+
triggerOnChangeForDirtyPaths(dirtyPaths) {
|
|
222
|
+
if (dirtyPaths.visibleRecordIds) {
|
|
223
|
+
this._onChange(WatchableViewDataStoreKeys.visibleRecords);
|
|
224
|
+
this._onChange(WatchableViewDataStoreKeys.visibleRecordIds);
|
|
321
225
|
}
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
(0, _error_utils.invariant)(fieldOrder, 'View data is not loaded');
|
|
327
|
-
return fieldOrder.fieldIds;
|
|
226
|
+
if (dirtyPaths.fieldOrder) {
|
|
227
|
+
this._onChange(WatchableViewDataStoreKeys.allFieldIds);
|
|
228
|
+
// TODO(kasra): only trigger visibleFields if the *visible* field ids changed.
|
|
229
|
+
this._onChange(WatchableViewDataStoreKeys.visibleFieldIds);
|
|
328
230
|
}
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
(0, _error_utils.invariant)(fieldOrder, 'View data is not loaded');
|
|
334
|
-
var fieldIds = fieldOrder.fieldIds;
|
|
335
|
-
return fieldIds.slice(0, fieldOrder.visibleFieldCount);
|
|
231
|
+
// Technically it's possible for groupLevels changing to cause a groups
|
|
232
|
+
// change since we derive group information from the groupLevels (fieldId)
|
|
233
|
+
if (dirtyPaths.groups || dirtyPaths.groupLevels) {
|
|
234
|
+
this._onChange(WatchableViewDataStoreKeys.groups);
|
|
336
235
|
}
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
//
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
}
|
|
357
|
-
if (dirtyPaths.colorsByRecordId) {
|
|
358
|
-
var changedRecordIds = dirtyPaths.colorsByRecordId._isDirty ? null : Object.keys(dirtyPaths.colorsByRecordId);
|
|
359
|
-
if (changedRecordIds) {
|
|
360
|
-
// Checking isRecordMetadataLoaded fixes a timing issue:
|
|
361
|
-
// When a new table loads in liveapp, we'll receive the record
|
|
362
|
-
// colors before getting the response to our loadData call.
|
|
363
|
-
// This is a temporary fix: we need a more general solution to
|
|
364
|
-
// avoid processing events associated with subscriptions whose
|
|
365
|
-
// data we haven't received yet.
|
|
366
|
-
if (this.parentRecordStore.isRecordMetadataLoaded) {
|
|
367
|
-
var _iterator3 = _createForOfIteratorHelper(changedRecordIds),
|
|
368
|
-
_step3;
|
|
369
|
-
try {
|
|
370
|
-
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
371
|
-
var recordId = _step3.value;
|
|
372
|
-
var record = this.parentRecordStore.getRecordByIdIfExists(recordId);
|
|
373
|
-
// Similar to above, we could be receiving the change notification
|
|
374
|
-
// for a record color before receiving the new record itself.
|
|
375
|
-
if (record) {
|
|
376
|
-
record.__triggerOnChangeForRecordColorInViewId(this.viewId);
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
} catch (err) {
|
|
380
|
-
_iterator3.e(err);
|
|
381
|
-
} finally {
|
|
382
|
-
_iterator3.f();
|
|
236
|
+
if (dirtyPaths.groupLevels) {
|
|
237
|
+
this._onChange(WatchableViewDataStoreKeys.groupLevels);
|
|
238
|
+
}
|
|
239
|
+
if (dirtyPaths.colorsByRecordId) {
|
|
240
|
+
const changedRecordIds = dirtyPaths.colorsByRecordId._isDirty ? null : Object.keys(dirtyPaths.colorsByRecordId);
|
|
241
|
+
if (changedRecordIds) {
|
|
242
|
+
// Checking isRecordMetadataLoaded fixes a timing issue:
|
|
243
|
+
// When a new table loads in liveapp, we'll receive the record
|
|
244
|
+
// colors before getting the response to our loadData call.
|
|
245
|
+
// This is a temporary fix: we need a more general solution to
|
|
246
|
+
// avoid processing events associated with subscriptions whose
|
|
247
|
+
// data we haven't received yet.
|
|
248
|
+
if (this.parentRecordStore.isRecordMetadataLoaded) {
|
|
249
|
+
for (const recordId of changedRecordIds) {
|
|
250
|
+
const record = this.parentRecordStore.getRecordByIdIfExists(recordId);
|
|
251
|
+
// Similar to above, we could be receiving the change notification
|
|
252
|
+
// for a record color before receiving the new record itself.
|
|
253
|
+
if (record) {
|
|
254
|
+
record.__triggerOnChangeForRecordColorInViewId(this.viewId);
|
|
383
255
|
}
|
|
384
256
|
}
|
|
385
257
|
}
|
|
386
|
-
this._onChange(WatchableViewDataStoreKeys.recordColors, changedRecordIds);
|
|
387
258
|
}
|
|
259
|
+
this._onChange(WatchableViewDataStoreKeys.recordColors, changedRecordIds);
|
|
388
260
|
}
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
return (0, _private_utils.isEnumValue)(WatchableViewDataStoreKeys, key);
|
|
393
|
-
}
|
|
394
|
-
}, {
|
|
395
|
-
key: "_shouldLoadDataForKey",
|
|
396
|
-
value: function _shouldLoadDataForKey(key) {
|
|
397
|
-
return true;
|
|
398
|
-
}
|
|
399
|
-
}]);
|
|
400
|
-
}(_abstract_model_with_async_data.default);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
|
|
401
264
|
/** @internal */
|
|
402
|
-
(0, _defineProperty2.default)(ViewDataStore, "_className", 'ViewDataStore');
|
|
403
265
|
var _default = exports.default = ViewDataStore;
|