@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,338 +1,312 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("core-js/modules/es.array.from.js");
|
|
4
|
-
require("core-js/modules/es.array.slice.js");
|
|
5
|
-
require("core-js/modules/es.regexp.exec.js");
|
|
6
|
-
require("core-js/modules/es.regexp.to-string.js");
|
|
7
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
8
3
|
Object.defineProperty(exports, "__esModule", {
|
|
9
4
|
value: true
|
|
10
5
|
});
|
|
11
6
|
exports.default = void 0;
|
|
12
|
-
require("core-js/modules/es.symbol.js");
|
|
13
|
-
require("core-js/modules/es.symbol.description.js");
|
|
14
|
-
require("core-js/modules/es.array.flat-map.js");
|
|
15
|
-
require("core-js/modules/es.array.includes.js");
|
|
16
|
-
require("core-js/modules/es.array.iterator.js");
|
|
17
|
-
require("core-js/modules/es.array.map.js");
|
|
18
|
-
require("core-js/modules/es.array.unscopables.flat-map.js");
|
|
19
|
-
require("core-js/modules/es.object.to-string.js");
|
|
20
|
-
require("core-js/modules/es.set.js");
|
|
21
|
-
require("core-js/modules/es.string.includes.js");
|
|
22
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
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
7
|
var _airtable_interface = require("../types/airtable_interface");
|
|
30
8
|
var _mutations = require("../types/mutations");
|
|
31
9
|
var _error_utils = require("../../shared/error_utils");
|
|
32
10
|
var _mutation_constants = require("../../shared/types/mutation_constants");
|
|
33
11
|
var _mutations_core = require("../../shared/models/mutations_core");
|
|
34
|
-
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; } } }; }
|
|
35
|
-
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; } }
|
|
36
|
-
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; }
|
|
37
|
-
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)); }
|
|
38
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
39
12
|
/** @hidden */
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
return
|
|
13
|
+
class Mutations extends _mutations_core.MutationsCore {
|
|
14
|
+
/** @internal */
|
|
15
|
+
_isRecordStoreReadyForMutations(recordStore) {
|
|
16
|
+
return recordStore.isRecordMetadataLoaded;
|
|
44
17
|
}
|
|
45
|
-
(0, _inherits2.default)(Mutations, _MutationsCore);
|
|
46
|
-
return (0, _createClass2.default)(Mutations, [{
|
|
47
|
-
key: "_isRecordStoreReadyForMutations",
|
|
48
|
-
value: /** @internal */
|
|
49
|
-
function _isRecordStoreReadyForMutations(recordStore) {
|
|
50
|
-
return recordStore.isRecordMetadataLoaded;
|
|
51
|
-
}
|
|
52
18
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
19
|
+
/** @internal */
|
|
20
|
+
_isFieldAvailableForMutation(recordStore, fieldId) {
|
|
21
|
+
return recordStore.areCellValuesLoadedForFieldId(fieldId);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** @internal */
|
|
25
|
+
_getDefaultRecordProperties() {
|
|
26
|
+
return {
|
|
27
|
+
commentCount: 0,
|
|
28
|
+
createdTime: new Date().toJSON()
|
|
29
|
+
};
|
|
30
|
+
}
|
|
59
31
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
// gives us slightly more confidence that we can do something other than completely crash
|
|
71
|
-
// the block in the event of an invalid mutation.
|
|
32
|
+
/** @internal */
|
|
33
|
+
_assertMutationIsValid(mutation) {
|
|
34
|
+
// We call validate the data (including any cell values) because if the data required for
|
|
35
|
+
// us to do that is already loaded in the block, we can error out before applying
|
|
36
|
+
// optimistic updates or sending the update to liveapp. That means that the error is
|
|
37
|
+
// recoverable. Once we apply optimistic updates, if liveapp rejects the update then we
|
|
38
|
+
// can't recover from that - we have to crash the block. We _could_ skip over these
|
|
39
|
+
// validations - it wouldn't cause issues outside of the block frame. But running them
|
|
40
|
+
// gives us slightly more confidence that we can do something other than completely crash
|
|
41
|
+
// the block in the event of an invalid mutation.
|
|
72
42
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
43
|
+
const appInterface = this._sdk.__appInterface;
|
|
44
|
+
const billingPlanGrouping = this._base.__billingPlanGrouping;
|
|
45
|
+
switch (mutation.type) {
|
|
46
|
+
case _mutations.MutationTypes.SET_MULTIPLE_GLOBAL_CONFIG_PATHS:
|
|
47
|
+
case _mutations.MutationTypes.SET_MULTIPLE_RECORDS_CELL_VALUES:
|
|
48
|
+
case _mutations.MutationTypes.CREATE_MULTIPLE_RECORDS:
|
|
49
|
+
case _mutations.MutationTypes.DELETE_MULTIPLE_RECORDS:
|
|
50
|
+
{
|
|
51
|
+
super._assertMutationIsValid(mutation);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
case _mutations.MutationTypes.CREATE_SINGLE_FIELD:
|
|
55
|
+
{
|
|
56
|
+
const {
|
|
57
|
+
tableId,
|
|
58
|
+
name,
|
|
59
|
+
config,
|
|
60
|
+
description
|
|
61
|
+
} = mutation;
|
|
62
|
+
const table = this._base.getTableByIdIfExists(tableId);
|
|
63
|
+
if (!table) {
|
|
64
|
+
throw (0, _error_utils.spawnError)("Can't create field: No table with id %s exists", tableId);
|
|
83
65
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
config = mutation.config,
|
|
89
|
-
description = mutation.description;
|
|
90
|
-
var table = this._base.getTableByIdIfExists(tableId);
|
|
91
|
-
if (!table) {
|
|
92
|
-
throw (0, _error_utils.spawnError)("Can't create field: No table with id %s exists", tableId);
|
|
93
|
-
}
|
|
94
|
-
if (table.fields.length >= _mutation_constants.MAX_NUM_FIELDS_PER_TABLE) {
|
|
95
|
-
throw (0, _error_utils.spawnError)("Can't create field: table already has the maximum of %s fields", _mutation_constants.MAX_NUM_FIELDS_PER_TABLE);
|
|
96
|
-
}
|
|
97
|
-
this._assertFieldNameIsValidForMutation(name, table);
|
|
66
|
+
if (table.fields.length >= _mutation_constants.MAX_NUM_FIELDS_PER_TABLE) {
|
|
67
|
+
throw (0, _error_utils.spawnError)("Can't create field: table already has the maximum of %s fields", _mutation_constants.MAX_NUM_FIELDS_PER_TABLE);
|
|
68
|
+
}
|
|
69
|
+
this._assertFieldNameIsValidForMutation(name, table);
|
|
98
70
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
71
|
+
// Current config / field data is null since the field doesn't exist.
|
|
72
|
+
const validationResult = this._airtableInterface.fieldTypeProvider.validateConfigForUpdate(appInterface, config, null, null, billingPlanGrouping);
|
|
73
|
+
if (!validationResult.isValid) {
|
|
74
|
+
throw (0, _error_utils.spawnError)("Can't create field: invalid field config.\n%s", validationResult.reason);
|
|
75
|
+
}
|
|
76
|
+
if (description && description.length > _mutation_constants.MAX_FIELD_DESCRIPTION_LENGTH) {
|
|
77
|
+
throw (0, _error_utils.spawnError)("Can't create field: description exceeds maximum length of %s characters", _mutation_constants.MAX_FIELD_DESCRIPTION_LENGTH);
|
|
78
|
+
}
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
case _mutations.MutationTypes.UPDATE_SINGLE_FIELD_CONFIG:
|
|
82
|
+
{
|
|
83
|
+
const {
|
|
84
|
+
tableId,
|
|
85
|
+
id,
|
|
86
|
+
config,
|
|
87
|
+
opts
|
|
88
|
+
} = mutation;
|
|
89
|
+
const table = this._base.getTableByIdIfExists(tableId);
|
|
90
|
+
if (!table) {
|
|
91
|
+
throw (0, _error_utils.spawnError)("Can't update field: No table with id %s exists", tableId);
|
|
92
|
+
}
|
|
93
|
+
const field = table.getFieldByIdIfExists(id);
|
|
94
|
+
if (!field) {
|
|
95
|
+
throw (0, _error_utils.spawnError)("Can't update field: No field with id %s exists", id);
|
|
108
96
|
}
|
|
109
|
-
case _mutations.MutationTypes.UPDATE_SINGLE_FIELD_CONFIG:
|
|
110
|
-
{
|
|
111
|
-
var _tableId = mutation.tableId,
|
|
112
|
-
id = mutation.id,
|
|
113
|
-
_config = mutation.config,
|
|
114
|
-
opts = mutation.opts;
|
|
115
|
-
var _table = this._base.getTableByIdIfExists(_tableId);
|
|
116
|
-
if (!_table) {
|
|
117
|
-
throw (0, _error_utils.spawnError)("Can't update field: No table with id %s exists", _tableId);
|
|
118
|
-
}
|
|
119
|
-
var field = _table.getFieldByIdIfExists(id);
|
|
120
|
-
if (!field) {
|
|
121
|
-
throw (0, _error_utils.spawnError)("Can't update field: No field with id %s exists", id);
|
|
122
|
-
}
|
|
123
97
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
}
|
|
132
|
-
return;
|
|
98
|
+
// we get the config directly instead of using field.type/field.options to get it
|
|
99
|
+
// in one call and because field.options returns null instead of undefined when
|
|
100
|
+
// a field does not have options, whilst we need to pass undefined
|
|
101
|
+
const currentConfig = this._airtableInterface.fieldTypeProvider.getConfig(appInterface, field._data, field.parentTable.__getFieldNamesById());
|
|
102
|
+
const validationResult = this._airtableInterface.fieldTypeProvider.validateConfigForUpdate(appInterface, config, currentConfig, field._data, billingPlanGrouping, opts);
|
|
103
|
+
if (!validationResult.isValid) {
|
|
104
|
+
throw (0, _error_utils.spawnError)("Can't update field: invalid field config.\n%s", validationResult.reason);
|
|
133
105
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
case _mutations.MutationTypes.UPDATE_SINGLE_FIELD_DESCRIPTION:
|
|
109
|
+
{
|
|
110
|
+
const {
|
|
111
|
+
tableId,
|
|
112
|
+
id,
|
|
113
|
+
description
|
|
114
|
+
} = mutation;
|
|
115
|
+
const table = this._base.getTableByIdIfExists(tableId);
|
|
116
|
+
if (!table) {
|
|
117
|
+
throw (0, _error_utils.spawnError)("Can't update field: No table with id %s exists", tableId);
|
|
118
|
+
}
|
|
119
|
+
const field = table.getFieldByIdIfExists(id);
|
|
120
|
+
if (!field) {
|
|
121
|
+
throw (0, _error_utils.spawnError)("Can't update field: No field with id %s exists", id);
|
|
122
|
+
}
|
|
123
|
+
if (description && description.length > _mutation_constants.MAX_FIELD_DESCRIPTION_LENGTH) {
|
|
124
|
+
throw (0, _error_utils.spawnError)("Can't update field: description exceeds maximum length of %s characters", _mutation_constants.MAX_FIELD_DESCRIPTION_LENGTH);
|
|
125
|
+
}
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
case _mutations.MutationTypes.UPDATE_SINGLE_FIELD_NAME:
|
|
129
|
+
{
|
|
130
|
+
const {
|
|
131
|
+
tableId,
|
|
132
|
+
id,
|
|
133
|
+
name
|
|
134
|
+
} = mutation;
|
|
135
|
+
const table = this._base.getTableByIdIfExists(tableId);
|
|
136
|
+
if (!table) {
|
|
137
|
+
throw (0, _error_utils.spawnError)("Can't update field: No table with id %s exists", tableId);
|
|
138
|
+
}
|
|
139
|
+
const field = table.getFieldByIdIfExists(id);
|
|
140
|
+
if (!field) {
|
|
141
|
+
throw (0, _error_utils.spawnError)("Can't update field: No field with id %s exists", id);
|
|
151
142
|
}
|
|
152
|
-
case _mutations.MutationTypes.UPDATE_SINGLE_FIELD_NAME:
|
|
153
|
-
{
|
|
154
|
-
var _tableId3 = mutation.tableId,
|
|
155
|
-
_id2 = mutation.id,
|
|
156
|
-
_name = mutation.name;
|
|
157
|
-
var _table3 = this._base.getTableByIdIfExists(_tableId3);
|
|
158
|
-
if (!_table3) {
|
|
159
|
-
throw (0, _error_utils.spawnError)("Can't update field: No table with id %s exists", _tableId3);
|
|
160
|
-
}
|
|
161
|
-
var _field2 = _table3.getFieldByIdIfExists(_id2);
|
|
162
|
-
if (!_field2) {
|
|
163
|
-
throw (0, _error_utils.spawnError)("Can't update field: No field with id %s exists", _id2);
|
|
164
|
-
}
|
|
165
143
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
}
|
|
172
|
-
return;
|
|
144
|
+
// We skip name validation if it's the same name:
|
|
145
|
+
// If it's exactly same name, this will result in no-op;
|
|
146
|
+
// If it's only case change, we allow update and we know this name is already validated before;
|
|
147
|
+
if (field.name.toLowerCase() !== name.toLowerCase()) {
|
|
148
|
+
this._assertFieldNameIsValidForMutation(name, table);
|
|
173
149
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
case _mutations.MutationTypes.CREATE_SINGLE_TABLE:
|
|
153
|
+
{
|
|
154
|
+
const {
|
|
155
|
+
name,
|
|
156
|
+
fields
|
|
157
|
+
} = mutation;
|
|
158
|
+
if (!name) {
|
|
159
|
+
throw (0, _error_utils.spawnError)("Can't create table: must provide non-empty name");
|
|
160
|
+
}
|
|
161
|
+
if (name.length > _mutation_constants.MAX_TABLE_NAME_LENGTH) {
|
|
162
|
+
throw (0, _error_utils.spawnError)("Can't create table: name '%s' exceeds maximum length of %s characters", name, _mutation_constants.MAX_TABLE_NAME_LENGTH);
|
|
163
|
+
}
|
|
164
|
+
const existingLowercaseTableNames = this._base.tables.map(table => table.name.toLowerCase());
|
|
165
|
+
if (existingLowercaseTableNames.includes(name.toLowerCase())) {
|
|
166
|
+
throw (0, _error_utils.spawnError)("Can't create table: table with name '%s' already exists", name);
|
|
167
|
+
}
|
|
168
|
+
if (fields.length === 0) {
|
|
169
|
+
throw (0, _error_utils.spawnError)("Can't create table: must specify at least one field");
|
|
170
|
+
}
|
|
171
|
+
if (fields.length > _mutation_constants.MAX_NUM_FIELDS_PER_TABLE) {
|
|
172
|
+
throw (0, _error_utils.spawnError)("Can't create table: number of fields exceeds maximum of %s", _mutation_constants.MAX_NUM_FIELDS_PER_TABLE);
|
|
173
|
+
}
|
|
174
|
+
const lowercaseFieldNames = new Set();
|
|
175
|
+
for (const field of fields) {
|
|
176
|
+
if (!field.name) {
|
|
177
|
+
throw (0, _error_utils.spawnError)("Can't create table: must provide non-empty name for every field");
|
|
187
178
|
}
|
|
188
|
-
if (
|
|
189
|
-
throw (0, _error_utils.spawnError)("Can't create table:
|
|
179
|
+
if (field.name.length > _mutation_constants.MAX_FIELD_NAME_LENGTH) {
|
|
180
|
+
throw (0, _error_utils.spawnError)("Can't create table: field name '%s' exceeds maximum length of %s characters", field.name, _mutation_constants.MAX_FIELD_NAME_LENGTH);
|
|
190
181
|
}
|
|
191
|
-
|
|
192
|
-
|
|
182
|
+
const lowercaseFieldName = field.name.toLowerCase();
|
|
183
|
+
if (lowercaseFieldNames.has(lowercaseFieldName)) {
|
|
184
|
+
throw (0, _error_utils.spawnError)("Can't create table: duplicate field name '%s'", field.name);
|
|
193
185
|
}
|
|
194
|
-
|
|
195
|
-
var _iterator = _createForOfIteratorHelper(fields),
|
|
196
|
-
_step;
|
|
197
|
-
try {
|
|
198
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
199
|
-
var _field3 = _step.value;
|
|
200
|
-
if (!_field3.name) {
|
|
201
|
-
throw (0, _error_utils.spawnError)("Can't create table: must provide non-empty name for every field");
|
|
202
|
-
}
|
|
203
|
-
if (_field3.name.length > _mutation_constants.MAX_FIELD_NAME_LENGTH) {
|
|
204
|
-
throw (0, _error_utils.spawnError)("Can't create table: field name '%s' exceeds maximum length of %s characters", _field3.name, _mutation_constants.MAX_FIELD_NAME_LENGTH);
|
|
205
|
-
}
|
|
206
|
-
var lowercaseFieldName = _field3.name.toLowerCase();
|
|
207
|
-
if (lowercaseFieldNames.has(lowercaseFieldName)) {
|
|
208
|
-
throw (0, _error_utils.spawnError)("Can't create table: duplicate field name '%s'", _field3.name);
|
|
209
|
-
}
|
|
210
|
-
lowercaseFieldNames.add(lowercaseFieldName);
|
|
186
|
+
lowercaseFieldNames.add(lowercaseFieldName);
|
|
211
187
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
}
|
|
217
|
-
if (_field3.description && _field3.description.length > _mutation_constants.MAX_FIELD_DESCRIPTION_LENGTH) {
|
|
218
|
-
throw (0, _error_utils.spawnError)("Can't create table: description for field '%s' exceeds maximum length of %s characters", _field3.name, _mutation_constants.MAX_FIELD_DESCRIPTION_LENGTH);
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
} catch (err) {
|
|
222
|
-
_iterator.e(err);
|
|
223
|
-
} finally {
|
|
224
|
-
_iterator.f();
|
|
188
|
+
// Current config / field data is null since the field doesn't exist.
|
|
189
|
+
const validationResult = this._airtableInterface.fieldTypeProvider.validateConfigForUpdate(appInterface, field.config, null, null, billingPlanGrouping);
|
|
190
|
+
if (!validationResult.isValid) {
|
|
191
|
+
throw (0, _error_utils.spawnError)("Can't create table: invalid field config for field '%s'.\n%s", field.name, validationResult.reason);
|
|
225
192
|
}
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
throw (0, _error_utils.spawnError)("Can't create table: first field '%s' has type '%s' which cannot be a primary field", primaryField.name, primaryField.config.type);
|
|
193
|
+
if (field.description && field.description.length > _mutation_constants.MAX_FIELD_DESCRIPTION_LENGTH) {
|
|
194
|
+
throw (0, _error_utils.spawnError)("Can't create table: description for field '%s' exceeds maximum length of %s characters", field.name, _mutation_constants.MAX_FIELD_DESCRIPTION_LENGTH);
|
|
229
195
|
}
|
|
230
|
-
return;
|
|
231
196
|
}
|
|
232
|
-
|
|
233
|
-
{
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
throw (0, _error_utils.spawnError)("Can't update metadata: No view with id %s exists", viewId);
|
|
250
|
-
}
|
|
251
|
-
return;
|
|
197
|
+
const primaryField = fields[0];
|
|
198
|
+
if (!this._airtableInterface.fieldTypeProvider.canBePrimary(appInterface, primaryField.config, billingPlanGrouping)) {
|
|
199
|
+
throw (0, _error_utils.spawnError)("Can't create table: first field '%s' has type '%s' which cannot be a primary field", primaryField.name, primaryField.config.type);
|
|
200
|
+
}
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
case _mutations.MutationTypes.UPDATE_VIEW_METADATA:
|
|
204
|
+
{
|
|
205
|
+
const {
|
|
206
|
+
tableId,
|
|
207
|
+
viewId
|
|
208
|
+
} = mutation;
|
|
209
|
+
const {
|
|
210
|
+
runContext
|
|
211
|
+
} = this._airtableInterface.sdkInitData;
|
|
212
|
+
if (runContext.type !== _airtable_interface.BlockRunContextType.VIEW) {
|
|
213
|
+
throw (0, _error_utils.spawnError)('Setting view metadata is only valid for views');
|
|
252
214
|
}
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
215
|
+
if (runContext.viewId !== viewId || runContext.tableId !== tableId) {
|
|
216
|
+
throw (0, _error_utils.spawnError)('Custom views can only set view metadata on themselves');
|
|
217
|
+
}
|
|
218
|
+
const table = this._base.getTableByIdIfExists(tableId);
|
|
219
|
+
if (!table) {
|
|
220
|
+
throw (0, _error_utils.spawnError)("Can't update metadata: No table with id %s exists", tableId);
|
|
221
|
+
}
|
|
222
|
+
const view = table.getViewByIdIfExists(viewId);
|
|
223
|
+
if (!view) {
|
|
224
|
+
throw (0, _error_utils.spawnError)("Can't update metadata: No view with id %s exists", viewId);
|
|
225
|
+
}
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
default:
|
|
229
|
+
throw (0, _error_utils.spawnUnknownSwitchCaseError)('mutation type', mutation, 'type');
|
|
256
230
|
}
|
|
231
|
+
}
|
|
257
232
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
throw (0, _error_utils.spawnError)("Can't create or update field: name '%s' exceeds maximum length of %s characters", name, _mutation_constants.MAX_FIELD_NAME_LENGTH);
|
|
267
|
-
}
|
|
233
|
+
/** @internal */
|
|
234
|
+
_assertFieldNameIsValidForMutation(name, table) {
|
|
235
|
+
if (!name) {
|
|
236
|
+
throw (0, _error_utils.spawnError)("Can't create or update field: must provide non-empty name");
|
|
237
|
+
}
|
|
238
|
+
if (name.length > _mutation_constants.MAX_FIELD_NAME_LENGTH) {
|
|
239
|
+
throw (0, _error_utils.spawnError)("Can't create or update field: name '%s' exceeds maximum length of %s characters", name, _mutation_constants.MAX_FIELD_NAME_LENGTH);
|
|
240
|
+
}
|
|
268
241
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
}
|
|
242
|
+
// Verify the new name doesn't collide with any existing field name.
|
|
243
|
+
const existingLowercaseFieldNames = table.fields.map(field => field.name.toLowerCase());
|
|
244
|
+
if (existingLowercaseFieldNames.includes(name.toLowerCase())) {
|
|
245
|
+
throw (0, _error_utils.spawnError)("Can't create or update field: field with name '%s' already exists", name);
|
|
274
246
|
}
|
|
247
|
+
}
|
|
275
248
|
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
}
|
|
292
|
-
var superChanges = (0, _get2.default)((0, _getPrototypeOf2.default)(Mutations.prototype), "_getOptimisticModelChangesForMutation", this).call(this, mutation);
|
|
293
|
-
return [...superChanges, ...this._base.getTableById(tableId).views.flatMap(view => {
|
|
294
|
-
var viewDataStore = recordStore.getViewDataStore(view.id);
|
|
295
|
-
if (!viewDataStore.isDataLoaded) {
|
|
296
|
-
return [];
|
|
297
|
-
}
|
|
298
|
-
return viewDataStore.__generateChangesForParentTableAddMultipleRecords(records.map(record => record.id));
|
|
299
|
-
})];
|
|
249
|
+
/** @internal */
|
|
250
|
+
_getOptimisticModelChangesForMutation(mutation) {
|
|
251
|
+
switch (mutation.type) {
|
|
252
|
+
case _mutations.MutationTypes.SET_MULTIPLE_GLOBAL_CONFIG_PATHS:
|
|
253
|
+
case _mutations.MutationTypes.SET_MULTIPLE_RECORDS_CELL_VALUES:
|
|
254
|
+
return super._getOptimisticModelChangesForMutation(mutation);
|
|
255
|
+
case _mutations.MutationTypes.CREATE_MULTIPLE_RECORDS:
|
|
256
|
+
{
|
|
257
|
+
const {
|
|
258
|
+
tableId,
|
|
259
|
+
records
|
|
260
|
+
} = mutation;
|
|
261
|
+
const recordStore = this._base.__getRecordStore(tableId);
|
|
262
|
+
if (!recordStore.isRecordMetadataLoaded) {
|
|
263
|
+
return [];
|
|
300
264
|
}
|
|
301
|
-
|
|
302
|
-
{
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
var _recordStore = this._base.__getRecordStore(_tableId5);
|
|
306
|
-
if (!_recordStore.isRecordMetadataLoaded) {
|
|
265
|
+
const superChanges = super._getOptimisticModelChangesForMutation(mutation);
|
|
266
|
+
return [...superChanges, ...this._base.getTableById(tableId).views.flatMap(view => {
|
|
267
|
+
const viewDataStore = recordStore.getViewDataStore(view.id);
|
|
268
|
+
if (!viewDataStore.isDataLoaded) {
|
|
307
269
|
return [];
|
|
308
270
|
}
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
case _mutations.MutationTypes.UPDATE_SINGLE_FIELD_DESCRIPTION:
|
|
321
|
-
case _mutations.MutationTypes.UPDATE_SINGLE_FIELD_NAME:
|
|
322
|
-
case _mutations.MutationTypes.UPDATE_VIEW_METADATA:
|
|
323
|
-
case _mutations.MutationTypes.CREATE_SINGLE_TABLE:
|
|
324
|
-
{
|
|
325
|
-
// No optimistic updates for field, view metadata, or table mutations.
|
|
271
|
+
return viewDataStore.__generateChangesForParentTableAddMultipleRecords(records.map(record => record.id));
|
|
272
|
+
})];
|
|
273
|
+
}
|
|
274
|
+
case _mutations.MutationTypes.DELETE_MULTIPLE_RECORDS:
|
|
275
|
+
{
|
|
276
|
+
const {
|
|
277
|
+
tableId,
|
|
278
|
+
recordIds
|
|
279
|
+
} = mutation;
|
|
280
|
+
const recordStore = this._base.__getRecordStore(tableId);
|
|
281
|
+
if (!recordStore.isRecordMetadataLoaded) {
|
|
326
282
|
return [];
|
|
327
283
|
}
|
|
284
|
+
const superChanges = super._getOptimisticModelChangesForMutation(mutation);
|
|
285
|
+
return [...superChanges, ...this._base.getTableById(tableId).views.flatMap(view => {
|
|
286
|
+
const viewDataStore = recordStore.getViewDataStore(view.id);
|
|
287
|
+
if (!viewDataStore.isDataLoaded) {
|
|
288
|
+
return [];
|
|
289
|
+
}
|
|
290
|
+
return viewDataStore.__generateChangesForParentTableDeleteMultipleRecords(recordIds);
|
|
291
|
+
})];
|
|
292
|
+
}
|
|
293
|
+
case _mutations.MutationTypes.CREATE_SINGLE_FIELD:
|
|
294
|
+
case _mutations.MutationTypes.UPDATE_SINGLE_FIELD_CONFIG:
|
|
295
|
+
case _mutations.MutationTypes.UPDATE_SINGLE_FIELD_DESCRIPTION:
|
|
296
|
+
case _mutations.MutationTypes.UPDATE_SINGLE_FIELD_NAME:
|
|
297
|
+
case _mutations.MutationTypes.UPDATE_VIEW_METADATA:
|
|
298
|
+
case _mutations.MutationTypes.CREATE_SINGLE_TABLE:
|
|
299
|
+
{
|
|
300
|
+
// No optimistic updates for field, view metadata, or table mutations.
|
|
301
|
+
return [];
|
|
302
|
+
}
|
|
328
303
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
}
|
|
304
|
+
// The following branch is unreachable because this method's only
|
|
305
|
+
// call site is preceded by an explicit guard for this condition.
|
|
306
|
+
// istanbul ignore next
|
|
307
|
+
default:
|
|
308
|
+
throw (0, _error_utils.spawnUnknownSwitchCaseError)('mutation type', mutation, 'type');
|
|
335
309
|
}
|
|
336
|
-
}
|
|
337
|
-
}
|
|
310
|
+
}
|
|
311
|
+
}
|
|
338
312
|
var _default = exports.default = Mutations;
|