@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,26 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.FieldCore = void 0;
|
|
8
|
-
require("core-js/modules/es.symbol.js");
|
|
9
|
-
require("core-js/modules/es.symbol.description.js");
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
13
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
14
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
16
7
|
var _field_core = require("../types/field_core");
|
|
17
8
|
var _private_utils = require("../private_utils");
|
|
18
9
|
var _abstract_model = _interopRequireDefault(require("./abstract_model"));
|
|
19
|
-
function
|
|
20
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
21
11
|
// This doesn't follow our enum naming conventions because we want the keys
|
|
22
12
|
// to mirror the method/getter names on the model class.
|
|
23
|
-
|
|
13
|
+
const WatchableFieldKeys = Object.freeze({
|
|
24
14
|
name: 'name',
|
|
25
15
|
type: 'type',
|
|
26
16
|
options: 'options',
|
|
@@ -37,295 +27,262 @@ var WatchableFieldKeys = Object.freeze({
|
|
|
37
27
|
* - `isComputed`
|
|
38
28
|
* - `description`
|
|
39
29
|
*/
|
|
30
|
+
|
|
40
31
|
/** @hidden */
|
|
41
|
-
|
|
32
|
+
class FieldCore extends _abstract_model.default {
|
|
33
|
+
/** @internal */
|
|
34
|
+
static _className = 'FieldCore';
|
|
35
|
+
/** @internal */
|
|
36
|
+
static _isWatchableKey(key) {
|
|
37
|
+
return (0, _private_utils.isEnumValue)(WatchableFieldKeys, key);
|
|
38
|
+
}
|
|
39
|
+
/** @internal */
|
|
40
|
+
|
|
41
|
+
/** @internal */
|
|
42
|
+
|
|
42
43
|
/**
|
|
43
44
|
* @internal
|
|
44
45
|
*/
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
/** @internal */
|
|
50
|
-
(0, _defineProperty2.default)(_this, "_parentTable", void 0);
|
|
51
|
-
/** @internal */
|
|
52
|
-
(0, _defineProperty2.default)(_this, "_cachedFieldTypeConfigOrNull", void 0);
|
|
53
|
-
_this._parentTable = parentTable;
|
|
54
|
-
_this._cachedFieldTypeConfigOrNull = null;
|
|
55
|
-
return _this;
|
|
46
|
+
constructor(sdk, parentTable, fieldId) {
|
|
47
|
+
super(sdk, fieldId);
|
|
48
|
+
this._parentTable = parentTable;
|
|
49
|
+
this._cachedFieldTypeConfigOrNull = null;
|
|
56
50
|
}
|
|
57
51
|
|
|
58
52
|
/**
|
|
59
53
|
* @internal
|
|
60
54
|
*/
|
|
61
|
-
(
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
-
var _this$_getCachedConfi = this._getCachedConfigFromFieldTypeProvider(),
|
|
112
|
-
type = _this$_getCachedConfi.type;
|
|
113
|
-
// We intend to switch from "lookup" to "multipleLookupValues", but need to support both
|
|
114
|
-
// until the transition is complete. See <https://airtable.quip.com/VxaMAmAfUscs> for more.
|
|
115
|
-
// @ts-ignore
|
|
116
|
-
if (type === 'lookup') {
|
|
117
|
-
return _field_core.FieldType.MULTIPLE_LOOKUP_VALUES;
|
|
118
|
-
} else {
|
|
119
|
-
return type;
|
|
120
|
-
}
|
|
55
|
+
get _dataOrNullIfDeleted() {
|
|
56
|
+
const tableData = this._baseData.tablesById[this.parentTable.id];
|
|
57
|
+
return tableData?.fieldsById[this._id] ?? null;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* The table that this field belongs to. Should never change because fields aren't moved between tables.
|
|
61
|
+
*
|
|
62
|
+
* @internal (since we may not be able to return parent model instances in the immutable models world)
|
|
63
|
+
* @example
|
|
64
|
+
* ```js
|
|
65
|
+
* const field = myTable.getFieldByName('Name');
|
|
66
|
+
* console.log(field.parentTable.id === myTable.id);
|
|
67
|
+
* // => true
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
get parentTable() {
|
|
71
|
+
return this._parentTable;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* The name of the field. Can be watched.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```js
|
|
78
|
+
* console.log(myField.name);
|
|
79
|
+
* // => 'Name'
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
get name() {
|
|
83
|
+
return this._data.name;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* The type of the field. Can be watched.
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```js
|
|
90
|
+
* console.log(myField.type);
|
|
91
|
+
* // => 'singleLineText'
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
get type() {
|
|
95
|
+
const {
|
|
96
|
+
type
|
|
97
|
+
} = this._getCachedConfigFromFieldTypeProvider();
|
|
98
|
+
// We intend to switch from "lookup" to "multipleLookupValues", but need to support both
|
|
99
|
+
// until the transition is complete. See <https://airtable.quip.com/VxaMAmAfUscs> for more.
|
|
100
|
+
// @ts-ignore
|
|
101
|
+
if (type === 'lookup') {
|
|
102
|
+
return _field_core.FieldType.MULTIPLE_LOOKUP_VALUES;
|
|
103
|
+
} else {
|
|
104
|
+
return type;
|
|
121
105
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* The configuration options of the field. The structure of the field's
|
|
109
|
+
* options depend on the field's type. `null` if the field has no options.
|
|
110
|
+
* See {@link FieldType} for more information on the options for each field
|
|
111
|
+
* type. Can be watched.
|
|
112
|
+
*
|
|
113
|
+
* @see {@link FieldType}
|
|
114
|
+
* @example
|
|
115
|
+
* ```js
|
|
116
|
+
* import {FieldType} from '@airtable/blocks/[placeholder-path]/models';
|
|
117
|
+
*
|
|
118
|
+
* if (myField.type === FieldType.CURRENCY) {
|
|
119
|
+
* console.log(myField.options.symbol);
|
|
120
|
+
* // => '$'
|
|
121
|
+
* }
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
124
|
+
get options() {
|
|
125
|
+
const {
|
|
126
|
+
options
|
|
127
|
+
} = this._getCachedConfigFromFieldTypeProvider();
|
|
144
128
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
129
|
+
// TODO: In the next breaking release freeze (inside of the cache) and replace
|
|
130
|
+
// FieldOptions with readonly<FieldOptions>.
|
|
131
|
+
// Today this is required because we re-use the fieldTypeProvider.getConfig response.
|
|
132
|
+
return options ? (0, _private_utils.cloneDeep)(options) : null;
|
|
133
|
+
}
|
|
150
134
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
value: function _getCachedConfigFromFieldTypeProvider() {
|
|
157
|
-
if (this._cachedFieldTypeConfigOrNull !== null) {
|
|
158
|
-
return this._cachedFieldTypeConfigOrNull;
|
|
159
|
-
}
|
|
160
|
-
var airtableInterface = this._sdk.__airtableInterface;
|
|
161
|
-
var appInterface = this._sdk.__appInterface;
|
|
162
|
-
this._cachedFieldTypeConfigOrNull = airtableInterface.fieldTypeProvider.getConfig(appInterface, this._data, this.parentTable.__getFieldNamesById());
|
|
135
|
+
// We use a cached response from FieldTypeProvider because getting the config can
|
|
136
|
+
// be an expensive operation. In particular when fieldConfigs are extremely large
|
|
137
|
+
// (eg: Select fields with lots of select options)
|
|
138
|
+
_getCachedConfigFromFieldTypeProvider() {
|
|
139
|
+
if (this._cachedFieldTypeConfigOrNull !== null) {
|
|
163
140
|
return this._cachedFieldTypeConfigOrNull;
|
|
164
141
|
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
142
|
+
const airtableInterface = this._sdk.__airtableInterface;
|
|
143
|
+
const appInterface = this._sdk.__appInterface;
|
|
144
|
+
this._cachedFieldTypeConfigOrNull = airtableInterface.fieldTypeProvider.getConfig(appInterface, this._data, this.parentTable.__getFieldNamesById());
|
|
145
|
+
return this._cachedFieldTypeConfigOrNull;
|
|
146
|
+
}
|
|
147
|
+
_clearCachedConfig() {
|
|
148
|
+
this._cachedFieldTypeConfigOrNull = null;
|
|
149
|
+
}
|
|
170
150
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
151
|
+
/**
|
|
152
|
+
* The type and options of the field to make type narrowing `FieldOptions` easier.
|
|
153
|
+
* See {@link FieldType} for more information on the options for each field type.
|
|
154
|
+
*
|
|
155
|
+
* @see {@link FieldConfig}
|
|
156
|
+
* @example
|
|
157
|
+
* const fieldConfig = field.config;
|
|
158
|
+
* if (fieldConfig.type === FieldType.SINGLE_SELECT) {
|
|
159
|
+
* return fieldConfig.options.choices;
|
|
160
|
+
* } else if (fieldConfig.type === FieldType.MULTIPLE_LOOKUP_VALUES && fieldConfig.options.isValid) {
|
|
161
|
+
* if (fieldConfig.options.result.type === FieldType.SINGLE_SELECT) {
|
|
162
|
+
* return fieldConfig.options.result.options.choices;
|
|
163
|
+
* }
|
|
164
|
+
* }
|
|
165
|
+
* return DEFAULT_CHOICES;
|
|
166
|
+
*/
|
|
167
|
+
get config() {
|
|
168
|
+
return {
|
|
169
|
+
type: this.type,
|
|
170
|
+
options: this.options
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* `true` if this field is synced, `false` otherwise. A field is
|
|
176
|
+
* "synced" if it's source is from another airtable base or external data source
|
|
177
|
+
* like Google Calendar, Jira, etc..
|
|
178
|
+
*
|
|
179
|
+
* @hidden
|
|
180
|
+
*/
|
|
181
|
+
get isFieldSynced() {
|
|
182
|
+
return this._data.isSynced ?? false;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* `true` if this field is computed, `false` otherwise. A field is
|
|
187
|
+
* "computed" if it's value is not set by user input (e.g. autoNumber, formula,
|
|
188
|
+
* etc.). Can be watched
|
|
189
|
+
*
|
|
190
|
+
* @example
|
|
191
|
+
* ```js
|
|
192
|
+
* console.log(mySingleLineTextField.isComputed);
|
|
193
|
+
* // => false
|
|
194
|
+
* console.log(myAutoNumberField.isComputed);
|
|
195
|
+
* // => true
|
|
196
|
+
* ```
|
|
197
|
+
*/
|
|
198
|
+
get isComputed() {
|
|
199
|
+
const airtableInterface = this._sdk.__airtableInterface;
|
|
200
|
+
return airtableInterface.fieldTypeProvider.isComputed(this._data);
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* `true` if this field is its parent table's primary field, `false` otherwise.
|
|
204
|
+
* Should never change because the primary field of a table cannot change.
|
|
205
|
+
*/
|
|
206
|
+
get isPrimaryField() {
|
|
207
|
+
return this.id === this.parentTable.primaryField.id;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* The description of the field, if it has one. Can be watched.
|
|
212
|
+
*
|
|
213
|
+
* @example
|
|
214
|
+
* ```js
|
|
215
|
+
* console.log(myField.description);
|
|
216
|
+
* // => 'This is my field'
|
|
217
|
+
* ```
|
|
218
|
+
*/
|
|
219
|
+
get description() {
|
|
220
|
+
return this._data.description;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Attempt to parse a given string and return a valid cell value for the field's current config.
|
|
224
|
+
* Returns `null` if unable to parse the given string.
|
|
225
|
+
*
|
|
226
|
+
* @param string The string to parse.
|
|
227
|
+
* @example
|
|
228
|
+
* ```js
|
|
229
|
+
* const inputString = '42';
|
|
230
|
+
* const cellValue = myNumberField.convertStringToCellValue(inputString);
|
|
231
|
+
* console.log(cellValue === 42);
|
|
232
|
+
* // => true
|
|
233
|
+
* ```
|
|
234
|
+
*/
|
|
235
|
+
convertStringToCellValue(string) {
|
|
236
|
+
const airtableInterface = this._sdk.__airtableInterface;
|
|
237
|
+
const appInterface = this._sdk.__appInterface;
|
|
238
|
+
const cellValue = airtableInterface.fieldTypeProvider.convertStringToCellValue(appInterface, string, this._data,
|
|
239
|
+
// The opt parseDateCellValueInColumnTimeZone is used here to ensure date string
|
|
240
|
+
// inputs are interpreted correctly according to the `timeZone` of the dateTime field.
|
|
241
|
+
{
|
|
242
|
+
parseDateCellValueInColumnTimeZone: this.type === _field_core.FieldType.DATE_TIME
|
|
243
|
+
});
|
|
195
244
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
*/
|
|
203
|
-
}, {
|
|
204
|
-
key: "isFieldSynced",
|
|
205
|
-
get: function get() {
|
|
206
|
-
var _this$_data$isSynced;
|
|
207
|
-
return (_this$_data$isSynced = this._data.isSynced) !== null && _this$_data$isSynced !== void 0 ? _this$_data$isSynced : false;
|
|
245
|
+
// Temporarily bail out of validating computed values (since validation will crash)
|
|
246
|
+
// while we work out if we actually have to validate or not. Ideally we just delete all
|
|
247
|
+
// the validation
|
|
248
|
+
// TODO(emma): delete me or tidy me up
|
|
249
|
+
if (this.isComputed) {
|
|
250
|
+
return cellValue;
|
|
208
251
|
}
|
|
209
252
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
* ```js
|
|
217
|
-
* console.log(mySingleLineTextField.isComputed);
|
|
218
|
-
* // => false
|
|
219
|
-
* console.log(myAutoNumberField.isComputed);
|
|
220
|
-
* // => true
|
|
221
|
-
* ```
|
|
222
|
-
*/
|
|
223
|
-
}, {
|
|
224
|
-
key: "isComputed",
|
|
225
|
-
get: function get() {
|
|
226
|
-
var airtableInterface = this._sdk.__airtableInterface;
|
|
227
|
-
return airtableInterface.fieldTypeProvider.isComputed(this._data);
|
|
253
|
+
// TODO(emma): do we need to validate here?
|
|
254
|
+
const validationResult = airtableInterface.fieldTypeProvider.validateCellValueForUpdate(appInterface, cellValue, null, this._data);
|
|
255
|
+
if (validationResult.isValid) {
|
|
256
|
+
return cellValue;
|
|
257
|
+
} else {
|
|
258
|
+
return null;
|
|
228
259
|
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* @internal
|
|
263
|
+
*/
|
|
264
|
+
__triggerOnChangeForDirtyPaths(dirtyPaths) {
|
|
265
|
+
// Always clear the cached config when anything on the field data model changes
|
|
266
|
+
this._clearCachedConfig();
|
|
267
|
+
if (dirtyPaths.name) {
|
|
268
|
+
this._onChange(WatchableFieldKeys.name);
|
|
237
269
|
}
|
|
270
|
+
if (dirtyPaths.type) {
|
|
271
|
+
this._onChange(WatchableFieldKeys.type);
|
|
238
272
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
* @example
|
|
243
|
-
* ```js
|
|
244
|
-
* console.log(myField.description);
|
|
245
|
-
* // => 'This is my field'
|
|
246
|
-
* ```
|
|
247
|
-
*/
|
|
248
|
-
}, {
|
|
249
|
-
key: "description",
|
|
250
|
-
get: function get() {
|
|
251
|
-
return this._data.description;
|
|
273
|
+
// TODO: it would be better if we only trigger this when
|
|
274
|
+
// we know isComputed changed.
|
|
275
|
+
this._onChange(WatchableFieldKeys.isComputed);
|
|
252
276
|
}
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
* Returns `null` if unable to parse the given string.
|
|
256
|
-
*
|
|
257
|
-
* @param string The string to parse.
|
|
258
|
-
* @example
|
|
259
|
-
* ```js
|
|
260
|
-
* const inputString = '42';
|
|
261
|
-
* const cellValue = myNumberField.convertStringToCellValue(inputString);
|
|
262
|
-
* console.log(cellValue === 42);
|
|
263
|
-
* // => true
|
|
264
|
-
* ```
|
|
265
|
-
*/
|
|
266
|
-
}, {
|
|
267
|
-
key: "convertStringToCellValue",
|
|
268
|
-
value: function convertStringToCellValue(string) {
|
|
269
|
-
var airtableInterface = this._sdk.__airtableInterface;
|
|
270
|
-
var appInterface = this._sdk.__appInterface;
|
|
271
|
-
var cellValue = airtableInterface.fieldTypeProvider.convertStringToCellValue(appInterface, string, this._data,
|
|
272
|
-
// The opt parseDateCellValueInColumnTimeZone is used here to ensure date string
|
|
273
|
-
// inputs are interpreted correctly according to the `timeZone` of the dateTime field.
|
|
274
|
-
{
|
|
275
|
-
parseDateCellValueInColumnTimeZone: this.type === _field_core.FieldType.DATE_TIME
|
|
276
|
-
});
|
|
277
|
-
|
|
278
|
-
// Temporarily bail out of validating computed values (since validation will crash)
|
|
279
|
-
// while we work out if we actually have to validate or not. Ideally we just delete all
|
|
280
|
-
// the validation
|
|
281
|
-
// TODO(emma): delete me or tidy me up
|
|
282
|
-
if (this.isComputed) {
|
|
283
|
-
return cellValue;
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
// TODO(emma): do we need to validate here?
|
|
287
|
-
var validationResult = airtableInterface.fieldTypeProvider.validateCellValueForUpdate(appInterface, cellValue, null, this._data);
|
|
288
|
-
if (validationResult.isValid) {
|
|
289
|
-
return cellValue;
|
|
290
|
-
} else {
|
|
291
|
-
return null;
|
|
292
|
-
}
|
|
277
|
+
if (dirtyPaths.typeOptions) {
|
|
278
|
+
this._onChange(WatchableFieldKeys.options);
|
|
293
279
|
}
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
*/
|
|
297
|
-
}, {
|
|
298
|
-
key: "__triggerOnChangeForDirtyPaths",
|
|
299
|
-
value: function __triggerOnChangeForDirtyPaths(dirtyPaths) {
|
|
300
|
-
// Always clear the cached config when anything on the field data model changes
|
|
301
|
-
this._clearCachedConfig();
|
|
302
|
-
if (dirtyPaths.name) {
|
|
303
|
-
this._onChange(WatchableFieldKeys.name);
|
|
304
|
-
}
|
|
305
|
-
if (dirtyPaths.type) {
|
|
306
|
-
this._onChange(WatchableFieldKeys.type);
|
|
307
|
-
|
|
308
|
-
// TODO: it would be better if we only trigger this when
|
|
309
|
-
// we know isComputed changed.
|
|
310
|
-
this._onChange(WatchableFieldKeys.isComputed);
|
|
311
|
-
}
|
|
312
|
-
if (dirtyPaths.typeOptions) {
|
|
313
|
-
this._onChange(WatchableFieldKeys.options);
|
|
314
|
-
}
|
|
315
|
-
if (dirtyPaths.description) {
|
|
316
|
-
this._onChange(WatchableFieldKeys.description);
|
|
317
|
-
}
|
|
318
|
-
if (dirtyPaths.isSynced) {
|
|
319
|
-
this._onChange(WatchableFieldKeys.isFieldSynced);
|
|
320
|
-
}
|
|
280
|
+
if (dirtyPaths.description) {
|
|
281
|
+
this._onChange(WatchableFieldKeys.description);
|
|
321
282
|
}
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
value: /** @internal */
|
|
325
|
-
function _isWatchableKey(key) {
|
|
326
|
-
return (0, _private_utils.isEnumValue)(WatchableFieldKeys, key);
|
|
283
|
+
if (dirtyPaths.isSynced) {
|
|
284
|
+
this._onChange(WatchableFieldKeys.isFieldSynced);
|
|
327
285
|
}
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
(0, _defineProperty2.default)(FieldCore, "_className", 'FieldCore');
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
exports.FieldCore = FieldCore;
|