@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.
Files changed (481) hide show
  1. package/dist/cjs/base/assert_run_context.js +12 -0
  2. package/dist/cjs/base/index.js +30 -30
  3. package/dist/cjs/base/models/abstract_model_with_async_data.js +154 -237
  4. package/dist/cjs/base/models/base.js +188 -267
  5. package/dist/cjs/base/models/create_aggregators.js +29 -46
  6. package/dist/cjs/base/models/cursor.js +206 -294
  7. package/dist/cjs/base/models/field.js +307 -395
  8. package/dist/cjs/base/models/grouped_record_query_result.js +219 -338
  9. package/dist/cjs/base/models/linked_records_query_result.js +450 -625
  10. package/dist/cjs/base/models/models.js +19 -22
  11. package/dist/cjs/base/models/mutations.js +267 -293
  12. package/dist/cjs/base/models/object_pool.js +117 -156
  13. package/dist/cjs/base/models/record.js +191 -256
  14. package/dist/cjs/base/models/record_coloring.js +6 -6
  15. package/dist/cjs/base/models/record_query_result.js +351 -435
  16. package/dist/cjs/base/models/record_store.js +403 -753
  17. package/dist/cjs/base/models/session.js +125 -153
  18. package/dist/cjs/base/models/table.js +457 -605
  19. package/dist/cjs/base/models/table_or_view_query_result.js +656 -920
  20. package/dist/cjs/base/models/view.js +284 -389
  21. package/dist/cjs/base/models/view_data_store.js +218 -356
  22. package/dist/cjs/base/models/view_metadata_query_result.js +109 -157
  23. package/dist/cjs/base/perform_record_action.js +89 -131
  24. package/dist/cjs/base/sdk.js +129 -184
  25. package/dist/cjs/base/settings_button.js +54 -74
  26. package/dist/cjs/base/types/airtable_interface.js +1 -1
  27. package/dist/cjs/base/types/mutations.js +5 -11
  28. package/dist/cjs/base/types/undo_redo.js +1 -1
  29. package/dist/cjs/base/types/view.js +1 -1
  30. package/dist/cjs/base/ui/base_provider.js +6 -8
  31. package/dist/cjs/base/ui/baymax_utils.js +436 -108
  32. package/dist/cjs/base/ui/block_wrapper.js +81 -106
  33. package/dist/cjs/base/ui/box.js +34 -60
  34. package/dist/cjs/base/ui/button.js +44 -74
  35. package/dist/cjs/base/ui/cell_renderer.js +132 -189
  36. package/dist/cjs/base/ui/choice_token.js +25 -42
  37. package/dist/cjs/base/ui/collaborator_token.js +31 -53
  38. package/dist/cjs/base/ui/color_palette.js +130 -173
  39. package/dist/cjs/base/ui/color_palette_synced.js +41 -70
  40. package/dist/cjs/base/ui/confirmation_dialog.js +70 -120
  41. package/dist/cjs/base/ui/control_sizes.js +24 -22
  42. package/dist/cjs/base/ui/create_detect_element_resize.js +6 -10
  43. package/dist/cjs/base/ui/css_helpers.js +1 -1
  44. package/dist/cjs/base/ui/dialog.js +57 -98
  45. package/dist/cjs/base/ui/dialog_close_button.js +52 -98
  46. package/dist/cjs/base/ui/expand_record.js +1 -2
  47. package/dist/cjs/base/ui/expand_record_list.js +3 -4
  48. package/dist/cjs/base/ui/expand_record_picker_async.js +28 -57
  49. package/dist/cjs/base/ui/field_icon.js +15 -33
  50. package/dist/cjs/base/ui/field_picker.js +25 -70
  51. package/dist/cjs/base/ui/field_picker_synced.js +18 -40
  52. package/dist/cjs/base/ui/form_field.js +27 -55
  53. package/dist/cjs/base/ui/geometry/geometry.js +5 -5
  54. package/dist/cjs/base/ui/geometry/point.js +10 -12
  55. package/dist/cjs/base/ui/geometry/rect.js +36 -52
  56. package/dist/cjs/base/ui/geometry/size.js +10 -12
  57. package/dist/cjs/base/ui/global_alert.js +31 -52
  58. package/dist/cjs/base/ui/heading.js +45 -94
  59. package/dist/cjs/base/ui/icon.js +39 -59
  60. package/dist/cjs/base/ui/icon_config.js +6 -12
  61. package/dist/cjs/base/ui/initialize_block.js +16 -35
  62. package/dist/cjs/base/ui/input.js +62 -101
  63. package/dist/cjs/base/ui/input_synced.js +17 -40
  64. package/dist/cjs/base/ui/key_codes.js +2 -3
  65. package/dist/cjs/base/ui/label.js +30 -55
  66. package/dist/cjs/base/ui/link.js +54 -87
  67. package/dist/cjs/base/ui/loader.js +15 -36
  68. package/dist/cjs/base/ui/modal.js +88 -127
  69. package/dist/cjs/base/ui/model_picker_select.js +18 -44
  70. package/dist/cjs/base/ui/popover.js +236 -328
  71. package/dist/cjs/base/ui/progress_bar.js +34 -47
  72. package/dist/cjs/base/ui/record_card.js +389 -478
  73. package/dist/cjs/base/ui/record_card_list.js +150 -224
  74. package/dist/cjs/base/ui/select.js +60 -116
  75. package/dist/cjs/base/ui/select_and_select_buttons_helpers.js +15 -39
  76. package/dist/cjs/base/ui/select_buttons.js +50 -83
  77. package/dist/cjs/base/ui/select_buttons_synced.js +17 -39
  78. package/dist/cjs/base/ui/select_synced.js +17 -39
  79. package/dist/cjs/base/ui/switch.js +42 -71
  80. package/dist/cjs/base/ui/switch_synced.js +16 -38
  81. package/dist/cjs/base/ui/synced.js +27 -48
  82. package/dist/cjs/base/ui/system/all_styles_set.js +4 -12
  83. package/dist/cjs/base/ui/system/appearance/appearance_set.js +10 -13
  84. package/dist/cjs/base/ui/system/appearance/background_color.js +3 -6
  85. package/dist/cjs/base/ui/system/appearance/border.js +3 -6
  86. package/dist/cjs/base/ui/system/appearance/border_radius.js +3 -6
  87. package/dist/cjs/base/ui/system/appearance/box_shadow.js +3 -6
  88. package/dist/cjs/base/ui/system/appearance/opacity.js +3 -6
  89. package/dist/cjs/base/ui/system/dimensions/dimensions_set.js +11 -13
  90. package/dist/cjs/base/ui/system/dimensions/height.js +3 -6
  91. package/dist/cjs/base/ui/system/dimensions/max_height.js +3 -6
  92. package/dist/cjs/base/ui/system/dimensions/max_width.js +3 -6
  93. package/dist/cjs/base/ui/system/dimensions/min_height.js +3 -6
  94. package/dist/cjs/base/ui/system/dimensions/min_width.js +3 -6
  95. package/dist/cjs/base/ui/system/dimensions/width.js +3 -6
  96. package/dist/cjs/base/ui/system/display.js +3 -6
  97. package/dist/cjs/base/ui/system/flex_container/align_content.js +3 -6
  98. package/dist/cjs/base/ui/system/flex_container/align_items.js +3 -6
  99. package/dist/cjs/base/ui/system/flex_container/flex_container_set.js +11 -13
  100. package/dist/cjs/base/ui/system/flex_container/flex_direction.js +3 -6
  101. package/dist/cjs/base/ui/system/flex_container/flex_wrap.js +3 -6
  102. package/dist/cjs/base/ui/system/flex_container/justify_content.js +3 -6
  103. package/dist/cjs/base/ui/system/flex_container/justify_items.js +3 -6
  104. package/dist/cjs/base/ui/system/flex_item/align_self.js +3 -6
  105. package/dist/cjs/base/ui/system/flex_item/flex.js +3 -6
  106. package/dist/cjs/base/ui/system/flex_item/flex_basis.js +3 -6
  107. package/dist/cjs/base/ui/system/flex_item/flex_grow.js +3 -6
  108. package/dist/cjs/base/ui/system/flex_item/flex_item_set.js +12 -13
  109. package/dist/cjs/base/ui/system/flex_item/flex_shrink.js +3 -6
  110. package/dist/cjs/base/ui/system/flex_item/justify_self.js +3 -6
  111. package/dist/cjs/base/ui/system/flex_item/order.js +3 -6
  112. package/dist/cjs/base/ui/system/index.js +104 -416
  113. package/dist/cjs/base/ui/system/overflow.js +3 -6
  114. package/dist/cjs/base/ui/system/position/bottom.js +4 -6
  115. package/dist/cjs/base/ui/system/position/left.js +4 -6
  116. package/dist/cjs/base/ui/system/position/position.js +3 -6
  117. package/dist/cjs/base/ui/system/position/position_set.js +11 -13
  118. package/dist/cjs/base/ui/system/position/right.js +4 -6
  119. package/dist/cjs/base/ui/system/position/top.js +4 -6
  120. package/dist/cjs/base/ui/system/position/z_index.js +3 -6
  121. package/dist/cjs/base/ui/system/spacing/margin.js +4 -6
  122. package/dist/cjs/base/ui/system/spacing/padding.js +4 -6
  123. package/dist/cjs/base/ui/system/spacing/spacing_set.js +7 -13
  124. package/dist/cjs/base/ui/system/typography/font_family.js +3 -6
  125. package/dist/cjs/base/ui/system/typography/font_size.js +3 -6
  126. package/dist/cjs/base/ui/system/typography/font_style.js +3 -6
  127. package/dist/cjs/base/ui/system/typography/font_weight.js +3 -6
  128. package/dist/cjs/base/ui/system/typography/letter_spacing.js +3 -6
  129. package/dist/cjs/base/ui/system/typography/line_height.js +3 -6
  130. package/dist/cjs/base/ui/system/typography/text_align.js +3 -6
  131. package/dist/cjs/base/ui/system/typography/text_color.js +3 -6
  132. package/dist/cjs/base/ui/system/typography/text_decoration.js +3 -6
  133. package/dist/cjs/base/ui/system/typography/text_transform.js +3 -6
  134. package/dist/cjs/base/ui/system/typography/typography_set.js +15 -13
  135. package/dist/cjs/base/ui/system/utils/ensure_numbers_are_within_scale.js +3 -4
  136. package/dist/cjs/base/ui/system/utils/get_style_props_for_responsive_prop.js +47 -87
  137. package/dist/cjs/base/ui/table_picker.js +18 -42
  138. package/dist/cjs/base/ui/table_picker_synced.js +17 -39
  139. package/dist/cjs/base/ui/text.js +40 -73
  140. package/dist/cjs/base/ui/text_button.js +51 -83
  141. package/dist/cjs/base/ui/theme/default_theme/button_variants.js +3 -3
  142. package/dist/cjs/base/ui/theme/default_theme/control_sizes.js +51 -45
  143. package/dist/cjs/base/ui/theme/default_theme/heading_styles.js +1 -1
  144. package/dist/cjs/base/ui/theme/default_theme/index.js +9 -15
  145. package/dist/cjs/base/ui/theme/default_theme/input_variants.js +3 -3
  146. package/dist/cjs/base/ui/theme/default_theme/link_variants.js +3 -3
  147. package/dist/cjs/base/ui/theme/default_theme/select_buttons_variants.js +4 -4
  148. package/dist/cjs/base/ui/theme/default_theme/select_variants.js +8 -17
  149. package/dist/cjs/base/ui/theme/default_theme/switch_variants.js +23 -29
  150. package/dist/cjs/base/ui/theme/default_theme/text_button_variants.js +5 -5
  151. package/dist/cjs/base/ui/theme/default_theme/text_styles.js +1 -1
  152. package/dist/cjs/base/ui/theme/default_theme/tokens.js +14 -14
  153. package/dist/cjs/base/ui/theme/theme_context.js +2 -2
  154. package/dist/cjs/base/ui/theme/use_theme.js +2 -2
  155. package/dist/cjs/base/ui/tooltip.js +134 -174
  156. package/dist/cjs/base/ui/types/aria_props.js +1 -23
  157. package/dist/cjs/base/ui/types/data_attributes_prop.js +1 -18
  158. package/dist/cjs/base/ui/types/tooltip_anchor_props.js +1 -17
  159. package/dist/cjs/base/ui/ui.js +48 -49
  160. package/dist/cjs/base/ui/unstable_standalone_ui.js +27 -27
  161. package/dist/cjs/base/ui/use_base.js +1 -1
  162. package/dist/cjs/base/ui/use_cursor.js +5 -4
  163. package/dist/cjs/base/ui/use_form_field.js +1 -1
  164. package/dist/cjs/base/ui/use_loadable.js +25 -91
  165. package/dist/cjs/base/ui/use_record_action_data.js +4 -3
  166. package/dist/cjs/base/ui/use_records.js +9 -13
  167. package/dist/cjs/base/ui/use_session.js +1 -1
  168. package/dist/cjs/base/ui/use_settings_button.js +4 -3
  169. package/dist/cjs/base/ui/use_styled_system.js +7 -14
  170. package/dist/cjs/base/ui/use_text_color_for_background_color.js +4 -3
  171. package/dist/cjs/base/ui/use_view_metadata.js +4 -4
  172. package/dist/cjs/base/ui/use_viewport.js +2 -2
  173. package/dist/cjs/base/ui/view_picker.js +26 -70
  174. package/dist/cjs/base/ui/view_picker_synced.js +18 -40
  175. package/dist/cjs/base/ui/viewport_constraint.js +67 -114
  176. package/dist/cjs/base/ui/with_styled_system.js +25 -61
  177. package/dist/cjs/base/undo_redo.js +21 -32
  178. package/dist/cjs/base/unstable_testing_utils.js +27 -27
  179. package/dist/cjs/base/viewport.js +268 -312
  180. package/dist/cjs/injected/airtable_interface.js +4 -4
  181. package/dist/cjs/interface/assert_run_context.js +12 -0
  182. package/dist/cjs/interface/index.js +4 -18
  183. package/dist/cjs/interface/models/base.js +15 -34
  184. package/dist/cjs/interface/models/field.js +5 -19
  185. package/dist/cjs/interface/models/models.js +8 -7
  186. package/dist/cjs/interface/models/mutations.js +50 -66
  187. package/dist/cjs/interface/models/record.js +29 -49
  188. package/dist/cjs/interface/models/record_store.js +25 -57
  189. package/dist/cjs/interface/models/session.js +2 -16
  190. package/dist/cjs/interface/models/table.js +66 -95
  191. package/dist/cjs/interface/sdk.js +61 -87
  192. package/dist/cjs/interface/types/airtable_interface.js +2 -2
  193. package/dist/cjs/interface/types/mutations.js +3 -10
  194. package/dist/cjs/interface/ui/block_wrapper.js +56 -48
  195. package/dist/cjs/interface/ui/initialize_block.js +13 -28
  196. package/dist/cjs/interface/ui/ui.js +20 -19
  197. package/dist/cjs/interface/ui/use_base.js +1 -1
  198. package/dist/cjs/interface/ui/use_custom_properties.js +19 -35
  199. package/dist/cjs/interface/ui/use_records.js +6 -5
  200. package/dist/cjs/interface/ui/use_run_info.js +2 -2
  201. package/dist/cjs/interface/ui/use_session.js +1 -1
  202. package/dist/cjs/shared/color_utils.js +9 -16
  203. package/dist/cjs/shared/colors.js +2 -2
  204. package/dist/cjs/shared/error_utils.js +9 -11
  205. package/dist/cjs/shared/event_tracker.js +3 -3
  206. package/dist/cjs/shared/global_config.js +337 -449
  207. package/dist/cjs/shared/models/abstract_model.js +72 -97
  208. package/dist/cjs/shared/models/base_core.js +394 -514
  209. package/dist/cjs/shared/models/field_core.js +236 -279
  210. package/dist/cjs/shared/models/mutations_core.js +283 -379
  211. package/dist/cjs/shared/models/record_core.js +174 -231
  212. package/dist/cjs/shared/models/record_store_core.js +119 -172
  213. package/dist/cjs/shared/models/session_core.js +116 -170
  214. package/dist/cjs/shared/models/table_core.js +1258 -1501
  215. package/dist/cjs/shared/private_utils.js +54 -124
  216. package/dist/cjs/shared/sdk_core.js +68 -70
  217. package/dist/cjs/shared/types/field_core.js +1 -1
  218. package/dist/cjs/shared/types/mutation_constants.js +4 -4
  219. package/dist/cjs/shared/types/mutations_core.js +1 -1
  220. package/dist/cjs/shared/types/permission_levels.js +1 -1
  221. package/dist/cjs/shared/ui/global_config_synced_component_helpers.js +9 -9
  222. package/dist/cjs/shared/ui/loader.js +14 -35
  223. package/dist/cjs/shared/ui/remote_utils.js +5 -7
  224. package/dist/cjs/shared/ui/sdk_context.js +4 -8
  225. package/dist/cjs/shared/ui/use_array_identity.js +2 -2
  226. package/dist/cjs/shared/ui/use_base.js +6 -5
  227. package/dist/cjs/shared/ui/use_color_scheme.js +3 -8
  228. package/dist/cjs/shared/ui/use_global_config.js +5 -4
  229. package/dist/cjs/shared/ui/use_session.js +6 -5
  230. package/dist/cjs/shared/ui/use_synced.js +7 -5
  231. package/dist/cjs/shared/ui/use_watchable.js +13 -42
  232. package/dist/cjs/shared/ui/with_hooks.js +6 -13
  233. package/dist/cjs/shared/unstable_private_utils.js +4 -6
  234. package/dist/cjs/shared/warning.js +5 -5
  235. package/dist/cjs/shared/watchable.js +110 -176
  236. package/dist/cjs/stats/block_stats.js +62 -85
  237. package/dist/cjs/testing/base/abstract_mock_airtable_interface.js +208 -0
  238. package/dist/cjs/testing/interface/abstract_mock_airtable_interface.js +124 -0
  239. package/dist/types/src/base/assert_run_context.d.ts +2 -0
  240. package/dist/types/src/base/assert_run_context.d.ts.map +1 -0
  241. package/dist/types/src/base/index.d.ts +1 -0
  242. package/dist/types/src/base/index.d.ts.map +1 -1
  243. package/dist/types/src/base/models/models.d.ts +1 -0
  244. package/dist/types/src/base/models/models.d.ts.map +1 -1
  245. package/dist/types/src/base/models/mutations.d.ts.map +1 -1
  246. package/dist/types/src/base/sdk.d.ts.map +1 -1
  247. package/dist/types/src/base/ui/block_wrapper.d.ts +1 -1
  248. package/dist/types/src/base/ui/box.d.ts.map +1 -1
  249. package/dist/types/src/base/ui/button.d.ts +0 -5
  250. package/dist/types/src/base/ui/button.d.ts.map +1 -1
  251. package/dist/types/src/base/ui/cell_renderer.d.ts +1 -22
  252. package/dist/types/src/base/ui/cell_renderer.d.ts.map +1 -1
  253. package/dist/types/src/base/ui/choice_token.d.ts +1 -21
  254. package/dist/types/src/base/ui/choice_token.d.ts.map +1 -1
  255. package/dist/types/src/base/ui/collaborator_token.d.ts +0 -20
  256. package/dist/types/src/base/ui/collaborator_token.d.ts.map +1 -1
  257. package/dist/types/src/base/ui/color_palette.d.ts +1 -32
  258. package/dist/types/src/base/ui/color_palette.d.ts.map +1 -1
  259. package/dist/types/src/base/ui/color_palette_synced.d.ts +0 -14
  260. package/dist/types/src/base/ui/color_palette_synced.d.ts.map +1 -1
  261. package/dist/types/src/base/ui/confirmation_dialog.d.ts +0 -17
  262. package/dist/types/src/base/ui/confirmation_dialog.d.ts.map +1 -1
  263. package/dist/types/src/base/ui/control_sizes.d.ts +0 -1
  264. package/dist/types/src/base/ui/control_sizes.d.ts.map +1 -1
  265. package/dist/types/src/base/ui/dialog.d.ts +1 -23
  266. package/dist/types/src/base/ui/dialog.d.ts.map +1 -1
  267. package/dist/types/src/base/ui/dialog_close_button.d.ts +2 -24
  268. package/dist/types/src/base/ui/dialog_close_button.d.ts.map +1 -1
  269. package/dist/types/src/base/ui/field_icon.d.ts +1 -17
  270. package/dist/types/src/base/ui/field_icon.d.ts.map +1 -1
  271. package/dist/types/src/base/ui/field_picker.d.ts +0 -23
  272. package/dist/types/src/base/ui/field_picker.d.ts.map +1 -1
  273. package/dist/types/src/base/ui/field_picker_synced.d.ts.map +1 -1
  274. package/dist/types/src/base/ui/form_field.d.ts +0 -4
  275. package/dist/types/src/base/ui/form_field.d.ts.map +1 -1
  276. package/dist/types/src/base/ui/heading.d.ts +1 -1
  277. package/dist/types/src/base/ui/heading.d.ts.map +1 -1
  278. package/dist/types/src/base/ui/icon.d.ts +0 -16
  279. package/dist/types/src/base/ui/icon.d.ts.map +1 -1
  280. package/dist/types/src/base/ui/icon_config.d.ts +50 -51
  281. package/dist/types/src/base/ui/icon_config.d.ts.map +1 -1
  282. package/dist/types/src/base/ui/initialize_block.d.ts.map +1 -1
  283. package/dist/types/src/base/ui/input.d.ts +12 -46
  284. package/dist/types/src/base/ui/input.d.ts.map +1 -1
  285. package/dist/types/src/base/ui/input_synced.d.ts.map +1 -1
  286. package/dist/types/src/base/ui/label.d.ts.map +1 -1
  287. package/dist/types/src/base/ui/link.d.ts +1 -5
  288. package/dist/types/src/base/ui/link.d.ts.map +1 -1
  289. package/dist/types/src/base/ui/loader.d.ts +3 -20
  290. package/dist/types/src/base/ui/loader.d.ts.map +1 -1
  291. package/dist/types/src/base/ui/modal.d.ts +1 -14
  292. package/dist/types/src/base/ui/modal.d.ts.map +1 -1
  293. package/dist/types/src/base/ui/model_picker_select.d.ts.map +1 -1
  294. package/dist/types/src/base/ui/popover.d.ts +1 -17
  295. package/dist/types/src/base/ui/popover.d.ts.map +1 -1
  296. package/dist/types/src/base/ui/progress_bar.d.ts +1 -24
  297. package/dist/types/src/base/ui/progress_bar.d.ts.map +1 -1
  298. package/dist/types/src/base/ui/record_card.d.ts +1 -23
  299. package/dist/types/src/base/ui/record_card.d.ts.map +1 -1
  300. package/dist/types/src/base/ui/record_card_list.d.ts +1 -18
  301. package/dist/types/src/base/ui/record_card_list.d.ts.map +1 -1
  302. package/dist/types/src/base/ui/select.d.ts +0 -44
  303. package/dist/types/src/base/ui/select.d.ts.map +1 -1
  304. package/dist/types/src/base/ui/select_and_select_buttons_helpers.d.ts +0 -2
  305. package/dist/types/src/base/ui/select_and_select_buttons_helpers.d.ts.map +1 -1
  306. package/dist/types/src/base/ui/select_buttons.d.ts +0 -22
  307. package/dist/types/src/base/ui/select_buttons.d.ts.map +1 -1
  308. package/dist/types/src/base/ui/select_buttons_synced.d.ts.map +1 -1
  309. package/dist/types/src/base/ui/select_synced.d.ts.map +1 -1
  310. package/dist/types/src/base/ui/switch.d.ts +0 -22
  311. package/dist/types/src/base/ui/switch.d.ts.map +1 -1
  312. package/dist/types/src/base/ui/switch_synced.d.ts.map +1 -1
  313. package/dist/types/src/base/ui/synced.d.ts +2 -8
  314. package/dist/types/src/base/ui/synced.d.ts.map +1 -1
  315. package/dist/types/src/base/ui/system/all_styles_set.d.ts +0 -3
  316. package/dist/types/src/base/ui/system/all_styles_set.d.ts.map +1 -1
  317. package/dist/types/src/base/ui/system/appearance/appearance_set.d.ts +0 -1
  318. package/dist/types/src/base/ui/system/appearance/appearance_set.d.ts.map +1 -1
  319. package/dist/types/src/base/ui/system/appearance/background_color.d.ts +0 -1
  320. package/dist/types/src/base/ui/system/appearance/background_color.d.ts.map +1 -1
  321. package/dist/types/src/base/ui/system/appearance/border.d.ts +0 -1
  322. package/dist/types/src/base/ui/system/appearance/border.d.ts.map +1 -1
  323. package/dist/types/src/base/ui/system/appearance/border_radius.d.ts +0 -1
  324. package/dist/types/src/base/ui/system/appearance/border_radius.d.ts.map +1 -1
  325. package/dist/types/src/base/ui/system/appearance/box_shadow.d.ts +0 -1
  326. package/dist/types/src/base/ui/system/appearance/box_shadow.d.ts.map +1 -1
  327. package/dist/types/src/base/ui/system/appearance/opacity.d.ts +0 -1
  328. package/dist/types/src/base/ui/system/appearance/opacity.d.ts.map +1 -1
  329. package/dist/types/src/base/ui/system/dimensions/dimensions_set.d.ts +0 -1
  330. package/dist/types/src/base/ui/system/dimensions/dimensions_set.d.ts.map +1 -1
  331. package/dist/types/src/base/ui/system/dimensions/height.d.ts +0 -1
  332. package/dist/types/src/base/ui/system/dimensions/height.d.ts.map +1 -1
  333. package/dist/types/src/base/ui/system/dimensions/max_height.d.ts +0 -1
  334. package/dist/types/src/base/ui/system/dimensions/max_height.d.ts.map +1 -1
  335. package/dist/types/src/base/ui/system/dimensions/max_width.d.ts +0 -1
  336. package/dist/types/src/base/ui/system/dimensions/max_width.d.ts.map +1 -1
  337. package/dist/types/src/base/ui/system/dimensions/min_height.d.ts +0 -1
  338. package/dist/types/src/base/ui/system/dimensions/min_height.d.ts.map +1 -1
  339. package/dist/types/src/base/ui/system/dimensions/min_width.d.ts +0 -1
  340. package/dist/types/src/base/ui/system/dimensions/min_width.d.ts.map +1 -1
  341. package/dist/types/src/base/ui/system/dimensions/width.d.ts +0 -1
  342. package/dist/types/src/base/ui/system/dimensions/width.d.ts.map +1 -1
  343. package/dist/types/src/base/ui/system/display.d.ts +0 -1
  344. package/dist/types/src/base/ui/system/display.d.ts.map +1 -1
  345. package/dist/types/src/base/ui/system/flex_container/align_content.d.ts +0 -1
  346. package/dist/types/src/base/ui/system/flex_container/align_content.d.ts.map +1 -1
  347. package/dist/types/src/base/ui/system/flex_container/align_items.d.ts +0 -1
  348. package/dist/types/src/base/ui/system/flex_container/align_items.d.ts.map +1 -1
  349. package/dist/types/src/base/ui/system/flex_container/flex_container_set.d.ts +0 -1
  350. package/dist/types/src/base/ui/system/flex_container/flex_container_set.d.ts.map +1 -1
  351. package/dist/types/src/base/ui/system/flex_container/flex_direction.d.ts +0 -1
  352. package/dist/types/src/base/ui/system/flex_container/flex_direction.d.ts.map +1 -1
  353. package/dist/types/src/base/ui/system/flex_container/flex_wrap.d.ts +0 -1
  354. package/dist/types/src/base/ui/system/flex_container/flex_wrap.d.ts.map +1 -1
  355. package/dist/types/src/base/ui/system/flex_container/justify_content.d.ts +0 -1
  356. package/dist/types/src/base/ui/system/flex_container/justify_content.d.ts.map +1 -1
  357. package/dist/types/src/base/ui/system/flex_container/justify_items.d.ts +0 -1
  358. package/dist/types/src/base/ui/system/flex_container/justify_items.d.ts.map +1 -1
  359. package/dist/types/src/base/ui/system/flex_item/align_self.d.ts +0 -1
  360. package/dist/types/src/base/ui/system/flex_item/align_self.d.ts.map +1 -1
  361. package/dist/types/src/base/ui/system/flex_item/flex.d.ts +0 -1
  362. package/dist/types/src/base/ui/system/flex_item/flex.d.ts.map +1 -1
  363. package/dist/types/src/base/ui/system/flex_item/flex_basis.d.ts +0 -1
  364. package/dist/types/src/base/ui/system/flex_item/flex_basis.d.ts.map +1 -1
  365. package/dist/types/src/base/ui/system/flex_item/flex_grow.d.ts +0 -1
  366. package/dist/types/src/base/ui/system/flex_item/flex_grow.d.ts.map +1 -1
  367. package/dist/types/src/base/ui/system/flex_item/flex_item_set.d.ts +0 -1
  368. package/dist/types/src/base/ui/system/flex_item/flex_item_set.d.ts.map +1 -1
  369. package/dist/types/src/base/ui/system/flex_item/flex_shrink.d.ts +0 -1
  370. package/dist/types/src/base/ui/system/flex_item/flex_shrink.d.ts.map +1 -1
  371. package/dist/types/src/base/ui/system/flex_item/justify_self.d.ts +0 -1
  372. package/dist/types/src/base/ui/system/flex_item/justify_self.d.ts.map +1 -1
  373. package/dist/types/src/base/ui/system/flex_item/order.d.ts +0 -1
  374. package/dist/types/src/base/ui/system/flex_item/order.d.ts.map +1 -1
  375. package/dist/types/src/base/ui/system/index.d.ts +52 -52
  376. package/dist/types/src/base/ui/system/index.d.ts.map +1 -1
  377. package/dist/types/src/base/ui/system/overflow.d.ts +0 -1
  378. package/dist/types/src/base/ui/system/overflow.d.ts.map +1 -1
  379. package/dist/types/src/base/ui/system/position/bottom.d.ts +0 -1
  380. package/dist/types/src/base/ui/system/position/bottom.d.ts.map +1 -1
  381. package/dist/types/src/base/ui/system/position/left.d.ts +0 -1
  382. package/dist/types/src/base/ui/system/position/left.d.ts.map +1 -1
  383. package/dist/types/src/base/ui/system/position/position.d.ts +0 -1
  384. package/dist/types/src/base/ui/system/position/position.d.ts.map +1 -1
  385. package/dist/types/src/base/ui/system/position/position_set.d.ts +0 -1
  386. package/dist/types/src/base/ui/system/position/position_set.d.ts.map +1 -1
  387. package/dist/types/src/base/ui/system/position/right.d.ts +0 -1
  388. package/dist/types/src/base/ui/system/position/right.d.ts.map +1 -1
  389. package/dist/types/src/base/ui/system/position/top.d.ts +0 -1
  390. package/dist/types/src/base/ui/system/position/top.d.ts.map +1 -1
  391. package/dist/types/src/base/ui/system/position/z_index.d.ts +0 -1
  392. package/dist/types/src/base/ui/system/position/z_index.d.ts.map +1 -1
  393. package/dist/types/src/base/ui/system/spacing/margin.d.ts +0 -1
  394. package/dist/types/src/base/ui/system/spacing/margin.d.ts.map +1 -1
  395. package/dist/types/src/base/ui/system/spacing/padding.d.ts +0 -1
  396. package/dist/types/src/base/ui/system/spacing/padding.d.ts.map +1 -1
  397. package/dist/types/src/base/ui/system/spacing/spacing_set.d.ts +0 -1
  398. package/dist/types/src/base/ui/system/spacing/spacing_set.d.ts.map +1 -1
  399. package/dist/types/src/base/ui/system/typography/font_family.d.ts +0 -1
  400. package/dist/types/src/base/ui/system/typography/font_family.d.ts.map +1 -1
  401. package/dist/types/src/base/ui/system/typography/font_size.d.ts +0 -1
  402. package/dist/types/src/base/ui/system/typography/font_size.d.ts.map +1 -1
  403. package/dist/types/src/base/ui/system/typography/font_style.d.ts +0 -1
  404. package/dist/types/src/base/ui/system/typography/font_style.d.ts.map +1 -1
  405. package/dist/types/src/base/ui/system/typography/font_weight.d.ts +0 -1
  406. package/dist/types/src/base/ui/system/typography/font_weight.d.ts.map +1 -1
  407. package/dist/types/src/base/ui/system/typography/letter_spacing.d.ts +0 -1
  408. package/dist/types/src/base/ui/system/typography/letter_spacing.d.ts.map +1 -1
  409. package/dist/types/src/base/ui/system/typography/line_height.d.ts +0 -1
  410. package/dist/types/src/base/ui/system/typography/line_height.d.ts.map +1 -1
  411. package/dist/types/src/base/ui/system/typography/text_align.d.ts +0 -1
  412. package/dist/types/src/base/ui/system/typography/text_align.d.ts.map +1 -1
  413. package/dist/types/src/base/ui/system/typography/text_color.d.ts +0 -1
  414. package/dist/types/src/base/ui/system/typography/text_color.d.ts.map +1 -1
  415. package/dist/types/src/base/ui/system/typography/text_decoration.d.ts +0 -1
  416. package/dist/types/src/base/ui/system/typography/text_decoration.d.ts.map +1 -1
  417. package/dist/types/src/base/ui/system/typography/text_transform.d.ts +0 -1
  418. package/dist/types/src/base/ui/system/typography/text_transform.d.ts.map +1 -1
  419. package/dist/types/src/base/ui/system/typography/typography_set.d.ts +0 -1
  420. package/dist/types/src/base/ui/system/typography/typography_set.d.ts.map +1 -1
  421. package/dist/types/src/base/ui/table_picker.d.ts +0 -21
  422. package/dist/types/src/base/ui/table_picker.d.ts.map +1 -1
  423. package/dist/types/src/base/ui/table_picker_synced.d.ts.map +1 -1
  424. package/dist/types/src/base/ui/text.d.ts +0 -3
  425. package/dist/types/src/base/ui/text.d.ts.map +1 -1
  426. package/dist/types/src/base/ui/text_button.d.ts +1 -5
  427. package/dist/types/src/base/ui/text_button.d.ts.map +1 -1
  428. package/dist/types/src/base/ui/theme/default_theme/index.d.ts +1 -1
  429. package/dist/types/src/base/ui/theme/theme_context.d.ts +1 -1
  430. package/dist/types/src/base/ui/theme/use_theme.d.ts +1 -1
  431. package/dist/types/src/base/ui/tooltip.d.ts +0 -16
  432. package/dist/types/src/base/ui/tooltip.d.ts.map +1 -1
  433. package/dist/types/src/base/ui/types/aria_props.d.ts.map +1 -1
  434. package/dist/types/src/base/ui/types/data_attributes_prop.d.ts +0 -4
  435. package/dist/types/src/base/ui/types/data_attributes_prop.d.ts.map +1 -1
  436. package/dist/types/src/base/ui/types/tooltip_anchor_props.d.ts +0 -7
  437. package/dist/types/src/base/ui/types/tooltip_anchor_props.d.ts.map +1 -1
  438. package/dist/types/src/base/ui/ui.d.ts +1 -0
  439. package/dist/types/src/base/ui/ui.d.ts.map +1 -1
  440. package/dist/types/src/base/ui/view_picker.d.ts +0 -23
  441. package/dist/types/src/base/ui/view_picker.d.ts.map +1 -1
  442. package/dist/types/src/base/ui/view_picker_synced.d.ts.map +1 -1
  443. package/dist/types/src/base/ui/viewport_constraint.d.ts +1 -14
  444. package/dist/types/src/base/ui/viewport_constraint.d.ts.map +1 -1
  445. package/dist/types/src/base/unstable_testing_utils.d.ts +1 -1
  446. package/dist/types/src/base/unstable_testing_utils.d.ts.map +1 -1
  447. package/dist/types/src/interface/assert_run_context.d.ts +2 -0
  448. package/dist/types/src/interface/assert_run_context.d.ts.map +1 -0
  449. package/dist/types/src/interface/index.d.ts +1 -6
  450. package/dist/types/src/interface/index.d.ts.map +1 -1
  451. package/dist/types/src/interface/models/models.d.ts +1 -0
  452. package/dist/types/src/interface/models/models.d.ts.map +1 -1
  453. package/dist/types/src/interface/models/mutations.d.ts.map +1 -1
  454. package/dist/types/src/interface/ui/initialize_block.d.ts.map +1 -1
  455. package/dist/types/src/interface/ui/ui.d.ts +1 -0
  456. package/dist/types/src/interface/ui/ui.d.ts.map +1 -1
  457. package/dist/types/src/interface/ui/use_custom_properties.d.ts +1 -1
  458. package/dist/types/src/shared/models/mutations_core.d.ts.map +1 -1
  459. package/dist/types/src/shared/private_utils.d.ts +0 -9
  460. package/dist/types/src/shared/private_utils.d.ts.map +1 -1
  461. package/dist/types/src/shared/ui/global_config_synced_component_helpers.d.ts +0 -2
  462. package/dist/types/src/shared/ui/global_config_synced_component_helpers.d.ts.map +1 -1
  463. package/dist/types/src/shared/ui/loader.d.ts.map +1 -1
  464. package/dist/types/src/shared/ui/with_hooks.d.ts +2 -2
  465. package/dist/types/src/shared/ui/with_hooks.d.ts.map +1 -1
  466. package/dist/types/src/testing/{abstract_mock_airtable_interface.d.ts → base/abstract_mock_airtable_interface.d.ts} +13 -13
  467. package/dist/types/src/testing/base/abstract_mock_airtable_interface.d.ts.map +1 -0
  468. package/dist/types/src/testing/interface/abstract_mock_airtable_interface.d.ts +51 -0
  469. package/dist/types/src/testing/interface/abstract_mock_airtable_interface.d.ts.map +1 -0
  470. package/package.json +13 -13
  471. package/dist/cjs/base/ui/system/utils/create_responsive_prop_type.js +0 -19
  472. package/dist/cjs/base/ui/system/utils/create_style_prop_types.js +0 -24
  473. package/dist/cjs/base/ui/system/utils/enum_prop_type_utils.js +0 -35
  474. package/dist/cjs/testing/abstract_mock_airtable_interface.js +0 -277
  475. package/dist/types/src/base/ui/system/utils/create_responsive_prop_type.d.ts +0 -2
  476. package/dist/types/src/base/ui/system/utils/create_responsive_prop_type.d.ts.map +0 -1
  477. package/dist/types/src/base/ui/system/utils/create_style_prop_types.d.ts +0 -4
  478. package/dist/types/src/base/ui/system/utils/create_style_prop_types.d.ts.map +0 -1
  479. package/dist/types/src/base/ui/system/utils/enum_prop_type_utils.d.ts +0 -21
  480. package/dist/types/src/base/ui/system/utils/enum_prop_type_utils.d.ts.map +0 -1
  481. package/dist/types/src/testing/abstract_mock_airtable_interface.d.ts.map +0 -1
@@ -1,40 +1,19 @@
1
1
  "use strict";
2
2
 
3
- require("core-js/modules/es.symbol.js");
4
- require("core-js/modules/es.symbol.description.js");
5
- require("core-js/modules/es.array.from.js");
6
- require("core-js/modules/es.array.iterator.js");
7
- require("core-js/modules/es.array.slice.js");
8
- require("core-js/modules/es.object.to-string.js");
9
- require("core-js/modules/es.regexp.exec.js");
10
- require("core-js/modules/es.regexp.to-string.js");
11
- require("core-js/modules/web.dom-collections.iterator.js");
12
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
13
3
  Object.defineProperty(exports, "__esModule", {
14
4
  value: true
15
5
  });
16
6
  exports.default = void 0;
17
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
18
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
20
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
21
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
22
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
24
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
25
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
26
7
  var _private_utils = require("../../shared/private_utils");
27
8
  var _error_utils = require("../../shared/error_utils");
28
9
  var _abstract_model_with_async_data = _interopRequireDefault(require("./abstract_model_with_async_data"));
29
10
  var _table = _interopRequireDefault(require("./table"));
30
11
  var _view = _interopRequireDefault(require("./view"));
31
12
  var _record = _interopRequireDefault(require("./record"));
32
- 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; } } }; }
33
- 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; } }
34
- 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; }
35
- 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)); }
36
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /** @module @airtable/blocks/models: Cursor */ /** */
37
- var WatchableCursorKeys = Object.freeze({
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ /** @module @airtable/blocks/models: Cursor */ /** */
15
+
16
+ const WatchableCursorKeys = Object.freeze({
38
17
  selectedRecordIds: 'selectedRecordIds',
39
18
  selectedFieldIds: 'selectedFieldIds',
40
19
  activeTableId: 'activeTableId',
@@ -52,6 +31,7 @@ var WatchableCursorKeys = Object.freeze({
52
31
  */
53
32
 
54
33
  /** @hidden */
34
+
55
35
  // NOTE: cursor is an AbstractModel because it includes loadable data.
56
36
  /**
57
37
  * Model class containing information about the state of the user's current interactions in
@@ -100,294 +80,226 @@ var WatchableCursorKeys = Object.freeze({
100
80
  *
101
81
  * @docsPath models/Cursor
102
82
  */
103
- var Cursor = /*#__PURE__*/function (_AbstractModelWithAsy) {
83
+ class Cursor extends _abstract_model_with_async_data.default {
84
+ /** @internal */
85
+ static _className = 'Cursor';
86
+ /** @internal */
87
+ static _isWatchableKey(key) {
88
+ return (0, _private_utils.isEnumValue)(WatchableCursorKeys, key);
89
+ }
90
+ /** @internal */
91
+ static _shouldLoadDataForKey(key) {
92
+ return true;
93
+ }
94
+ /** @internal */
95
+
104
96
  /** @internal */
105
- function Cursor(sdk) {
106
- var _baseData$cursorData$, _baseData$cursorData, _baseData$cursorData$2, _baseData$cursorData2, _activeTable$activeVi;
107
- var _this;
108
- (0, _classCallCheck2.default)(this, Cursor);
109
- _this = _callSuper(this, Cursor, [sdk, 'cursor']);
110
- /** @internal */
111
- (0, _defineProperty2.default)(_this, "_cursorData", void 0);
112
- var baseData = sdk.__airtableInterface.sdkInitData.baseData;
113
- var selectedRecordIdSet = (_baseData$cursorData$ = (_baseData$cursorData = baseData.cursorData) === null || _baseData$cursorData === void 0 ? void 0 : _baseData$cursorData.selectedRecordIdSet) !== null && _baseData$cursorData$ !== void 0 ? _baseData$cursorData$ : null;
114
- var selectedFieldIdSet = (_baseData$cursorData$2 = (_baseData$cursorData2 = baseData.cursorData) === null || _baseData$cursorData2 === void 0 ? void 0 : _baseData$cursorData2.selectedFieldIdSet) !== null && _baseData$cursorData$2 !== void 0 ? _baseData$cursorData$2 : null;
115
- var activeTableId = baseData.activeTableId;
116
- var activeTable = activeTableId ? baseData.tablesById[activeTableId] : null;
117
- var activeViewId = (_activeTable$activeVi = activeTable === null || activeTable === void 0 ? void 0 : activeTable.activeViewId) !== null && _activeTable$activeVi !== void 0 ? _activeTable$activeVi : null;
118
- _this._cursorData = {
97
+ constructor(sdk) {
98
+ super(sdk, 'cursor');
99
+ const baseData = sdk.__airtableInterface.sdkInitData.baseData;
100
+ const selectedRecordIdSet = baseData.cursorData?.selectedRecordIdSet ?? null;
101
+ const selectedFieldIdSet = baseData.cursorData?.selectedFieldIdSet ?? null;
102
+ const activeTableId = baseData.activeTableId;
103
+ const activeTable = activeTableId ? baseData.tablesById[activeTableId] : null;
104
+ const activeViewId = activeTable?.activeViewId ?? null;
105
+ this._cursorData = {
119
106
  selectedRecordIdSet,
120
107
  selectedFieldIdSet,
121
108
  activeTableId,
122
109
  activeViewId
123
110
  };
124
- Object.seal(_this);
125
- return _this;
111
+ Object.seal(this);
126
112
  }
127
113
 
128
114
  /**
129
115
  * @internal
130
116
  */
131
- (0, _inherits2.default)(Cursor, _AbstractModelWithAsy);
132
- return (0, _createClass2.default)(Cursor, [{
133
- key: "_dataOrNullIfDeleted",
134
- get: function get() {
135
- return this._cursorData;
136
- }
137
- /**
138
- * @internal
139
- */
140
- }, {
141
- key: "_onChangeIsDataLoaded",
142
- value: function _onChangeIsDataLoaded() {
143
- this._onChange(WatchableCursorKeys.isDataLoaded);
144
- }
145
- /**
146
- * @internal
147
- */
148
- }, {
149
- key: "_loadDataAsync",
150
- value: (function () {
151
- var _loadDataAsync2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
152
- var cursorData;
153
- return _regenerator.default.wrap(function _callee$(_context) {
154
- while (1) switch (_context.prev = _context.next) {
155
- case 0:
156
- _context.next = 2;
157
- return this._sdk.__airtableInterface.fetchAndSubscribeToCursorDataAsync();
158
- case 2:
159
- cursorData = _context.sent;
160
- this._cursorData.selectedRecordIdSet = cursorData.selectedRecordIdSet;
161
- this._cursorData.selectedFieldIdSet = cursorData.selectedFieldIdSet;
162
- return _context.abrupt("return", [WatchableCursorKeys.selectedRecordIds, WatchableCursorKeys.selectedFieldIds]);
163
- case 6:
164
- case "end":
165
- return _context.stop();
166
- }
167
- }, _callee, this);
168
- }));
169
- function _loadDataAsync() {
170
- return _loadDataAsync2.apply(this, arguments);
171
- }
172
- return _loadDataAsync;
173
- }()
174
- /**
175
- * @internal
176
- */
177
- )
178
- }, {
179
- key: "_unloadData",
180
- value: function _unloadData() {
181
- this._sdk.__airtableInterface.unsubscribeFromCursorData();
182
- this._cursorData.selectedRecordIdSet = null;
183
- this._cursorData.selectedFieldIdSet = null;
184
- }
185
- /**
186
- * The record IDs of all currently selected records, or an empty array if no records are selected.
187
- *
188
- * Not loaded by default. You must load cursor data with `useLoadable(cursor)` (recommended) or
189
- * `cursor.loadDataAsync()` before use.
190
- *
191
- * Can be watched.
192
- */
193
- }, {
194
- key: "selectedRecordIds",
195
- get: function get() {
196
- var selectedRecordIdSet = this._data.selectedRecordIdSet;
197
- (0, _error_utils.invariant)(selectedRecordIdSet, 'Cursor data is not loaded');
198
- var selectedRecordIds = Object.keys(selectedRecordIdSet);
199
- return selectedRecordIds;
200
- }
201
- /**
202
- * The field IDs of all currently selected fields, or an empty array if no fields are selected.
203
- *
204
- * Not loaded by default: you must load cursor data with `useLoadable(cursor)` (recommended) or
205
- * `cursor.loadDataAsync()` before use.
206
- *
207
- * Can be watched.
208
- */
209
- }, {
210
- key: "selectedFieldIds",
211
- get: function get() {
212
- var selectedFieldIdSet = this._data.selectedFieldIdSet;
213
- (0, _error_utils.invariant)(selectedFieldIdSet, 'Cursor data is not loaded');
214
- var selectedRecordIds = Object.keys(selectedFieldIdSet);
215
- return selectedRecordIds;
216
- }
217
- /**
218
- * Checks whether a given record is selected.
219
- *
220
- * Selected records are not loaded by default. You must load cursor data with
221
- * `useLoadable(cursor)` (recommended) or `cursor.loadDataAsync()` before use.
222
- *
223
- * @param recordOrRecordId The record or record ID to check for.
224
- */
225
- }, {
226
- key: "isRecordSelected",
227
- value: function isRecordSelected(recordOrRecordId) {
228
- var selectedRecordIdSet = this._data.selectedRecordIdSet;
229
- (0, _error_utils.invariant)(selectedRecordIdSet, 'Cursor data is not loaded');
230
- var recordId;
231
- if (recordOrRecordId instanceof _record.default) {
232
- recordId = recordOrRecordId.id;
233
- } else {
234
- recordId = recordOrRecordId;
235
- }
236
- return !!selectedRecordIdSet[recordId];
237
- }
238
- /**
239
- * The currently active table ID. Can be null when the active table has changed and is not yet
240
- * loaded, and can also refer to a table that is not yet loaded.
241
- *
242
- * When fetching the {@link Table}, use `base.getTableByIdIfExists(cursor.activeTableId)` and
243
- * check the return value is not `null` to be resilient to those cases.
244
- *
245
- * Can be watched.
246
- */
247
- }, {
248
- key: "activeTableId",
249
- get: function get() {
250
- return this._data.activeTableId;
251
- }
252
- /**
253
- * The currently active view ID. This will always be a view belonging to `activeTableId`. Can be
254
- * null when the active view has changed and is not yet loaded, and can also refer to a view
255
- * that is not yet loaded.
256
- *
257
- * When fetching the {@link View}, use `table.getViewByIdIfExists(cursor.activeViewId)` and
258
- * check the return value is not `null` to be resilient to those cases.
259
- *
260
- * Can be watched.
261
- */
262
- }, {
263
- key: "activeViewId",
264
- get: function get() {
265
- return this._data.activeViewId;
266
- }
267
- /**
268
- * Sets the specified table to active in the Airtable UI. If the extension installation or extensions pane
269
- * is fullscreen, fullscreen mode will be exited.
270
- *
271
- * @param tableOrTableId The target table or table ID to set as active in the Airtable main page.
272
- */
273
- }, {
274
- key: "setActiveTable",
275
- value: function setActiveTable(tableOrTableId) {
276
- var tableId = tableOrTableId instanceof _table.default ? tableOrTableId.id : tableOrTableId;
277
- this._sdk.__airtableInterface.setActiveViewOrTable(tableId);
278
- }
279
- /**
280
- * Sets the specified view (and corresponding table) to active in the Airtable UI. If the extension
281
- * installation or extensions pane is fullscreen, fullscreen mode will be exited.
282
- *
283
- * @param tableOrTableId The table or table ID that the target view belongs to.
284
- * @param viewOrViewId The target view or view ID to set as active in the Airtable main page.
285
- */
286
- }, {
287
- key: "setActiveView",
288
- value: function setActiveView(tableOrTableId, viewOrViewId) {
289
- var tableId = tableOrTableId instanceof _table.default ? tableOrTableId.id : tableOrTableId;
290
- var viewId = viewOrViewId instanceof _view.default ? viewOrViewId.id : viewOrViewId;
291
- this._sdk.__airtableInterface.setActiveViewOrTable(tableId, viewId);
117
+ get _dataOrNullIfDeleted() {
118
+ return this._cursorData;
119
+ }
120
+ /**
121
+ * @internal
122
+ */
123
+ _onChangeIsDataLoaded() {
124
+ this._onChange(WatchableCursorKeys.isDataLoaded);
125
+ }
126
+ /**
127
+ * @internal
128
+ */
129
+ async _loadDataAsync() {
130
+ const cursorData = await this._sdk.__airtableInterface.fetchAndSubscribeToCursorDataAsync();
131
+ this._cursorData.selectedRecordIdSet = cursorData.selectedRecordIdSet;
132
+ this._cursorData.selectedFieldIdSet = cursorData.selectedFieldIdSet;
133
+ return [WatchableCursorKeys.selectedRecordIds, WatchableCursorKeys.selectedFieldIds];
134
+ }
135
+ /**
136
+ * @internal
137
+ */
138
+ _unloadData() {
139
+ this._sdk.__airtableInterface.unsubscribeFromCursorData();
140
+ this._cursorData.selectedRecordIdSet = null;
141
+ this._cursorData.selectedFieldIdSet = null;
142
+ }
143
+ /**
144
+ * The record IDs of all currently selected records, or an empty array if no records are selected.
145
+ *
146
+ * Not loaded by default. You must load cursor data with `useLoadable(cursor)` (recommended) or
147
+ * `cursor.loadDataAsync()` before use.
148
+ *
149
+ * Can be watched.
150
+ */
151
+ get selectedRecordIds() {
152
+ const {
153
+ selectedRecordIdSet
154
+ } = this._data;
155
+ (0, _error_utils.invariant)(selectedRecordIdSet, 'Cursor data is not loaded');
156
+ const selectedRecordIds = Object.keys(selectedRecordIdSet);
157
+ return selectedRecordIds;
158
+ }
159
+ /**
160
+ * The field IDs of all currently selected fields, or an empty array if no fields are selected.
161
+ *
162
+ * Not loaded by default: you must load cursor data with `useLoadable(cursor)` (recommended) or
163
+ * `cursor.loadDataAsync()` before use.
164
+ *
165
+ * Can be watched.
166
+ */
167
+ get selectedFieldIds() {
168
+ const {
169
+ selectedFieldIdSet
170
+ } = this._data;
171
+ (0, _error_utils.invariant)(selectedFieldIdSet, 'Cursor data is not loaded');
172
+ const selectedRecordIds = Object.keys(selectedFieldIdSet);
173
+ return selectedRecordIds;
174
+ }
175
+ /**
176
+ * Checks whether a given record is selected.
177
+ *
178
+ * Selected records are not loaded by default. You must load cursor data with
179
+ * `useLoadable(cursor)` (recommended) or `cursor.loadDataAsync()` before use.
180
+ *
181
+ * @param recordOrRecordId The record or record ID to check for.
182
+ */
183
+ isRecordSelected(recordOrRecordId) {
184
+ const {
185
+ selectedRecordIdSet
186
+ } = this._data;
187
+ (0, _error_utils.invariant)(selectedRecordIdSet, 'Cursor data is not loaded');
188
+ let recordId;
189
+ if (recordOrRecordId instanceof _record.default) {
190
+ recordId = recordOrRecordId.id;
191
+ } else {
192
+ recordId = recordOrRecordId;
292
193
  }
194
+ return !!selectedRecordIdSet[recordId];
195
+ }
196
+ /**
197
+ * The currently active table ID. Can be null when the active table has changed and is not yet
198
+ * loaded, and can also refer to a table that is not yet loaded.
199
+ *
200
+ * When fetching the {@link Table}, use `base.getTableByIdIfExists(cursor.activeTableId)` and
201
+ * check the return value is not `null` to be resilient to those cases.
202
+ *
203
+ * Can be watched.
204
+ */
205
+ get activeTableId() {
206
+ return this._data.activeTableId;
207
+ }
208
+ /**
209
+ * The currently active view ID. This will always be a view belonging to `activeTableId`. Can be
210
+ * null when the active view has changed and is not yet loaded, and can also refer to a view
211
+ * that is not yet loaded.
212
+ *
213
+ * When fetching the {@link View}, use `table.getViewByIdIfExists(cursor.activeViewId)` and
214
+ * check the return value is not `null` to be resilient to those cases.
215
+ *
216
+ * Can be watched.
217
+ */
218
+ get activeViewId() {
219
+ return this._data.activeViewId;
220
+ }
221
+ /**
222
+ * Sets the specified table to active in the Airtable UI. If the extension installation or extensions pane
223
+ * is fullscreen, fullscreen mode will be exited.
224
+ *
225
+ * @param tableOrTableId The target table or table ID to set as active in the Airtable main page.
226
+ */
227
+ setActiveTable(tableOrTableId) {
228
+ const tableId = tableOrTableId instanceof _table.default ? tableOrTableId.id : tableOrTableId;
229
+ this._sdk.__airtableInterface.setActiveViewOrTable(tableId);
230
+ }
231
+ /**
232
+ * Sets the specified view (and corresponding table) to active in the Airtable UI. If the extension
233
+ * installation or extensions pane is fullscreen, fullscreen mode will be exited.
234
+ *
235
+ * @param tableOrTableId The table or table ID that the target view belongs to.
236
+ * @param viewOrViewId The target view or view ID to set as active in the Airtable main page.
237
+ */
238
+ setActiveView(tableOrTableId, viewOrViewId) {
239
+ const tableId = tableOrTableId instanceof _table.default ? tableOrTableId.id : tableOrTableId;
240
+ const viewId = viewOrViewId instanceof _view.default ? viewOrViewId.id : viewOrViewId;
241
+ this._sdk.__airtableInterface.setActiveViewOrTable(tableId, viewId);
242
+ }
293
243
 
294
- /**
295
- * @internal
296
- */
297
- }, {
298
- key: "__applyChangesWithoutTriggeringEvents",
299
- value: function __applyChangesWithoutTriggeringEvents(changes) {
300
- var changedKeys = {
301
- [WatchableCursorKeys.selectedRecordIds]: false,
302
- [WatchableCursorKeys.activeTableId]: false,
303
- [WatchableCursorKeys.activeViewId]: false
304
- };
305
- var _iterator = _createForOfIteratorHelper(changes),
306
- _step;
307
- try {
308
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
309
- var _step$value = _step.value,
310
- path = _step$value.path,
311
- value = _step$value.value;
312
- if (path[0] === 'cursorData') {
313
- switch (path[1]) {
314
- case 'selectedRecordIdSet':
315
- {
316
- (0, _error_utils.invariant)(path.length === 2, 'cannot set within selectedRecordIdSet');
317
- this._cursorData.selectedRecordIdSet = value;
318
- changedKeys[WatchableCursorKeys.selectedRecordIds] = true;
319
- break;
320
- }
321
- case 'selectedFieldIdSet':
322
- {
323
- (0, _error_utils.invariant)(path.length === 2, 'cannot set within selectedFieldIdSet');
324
- this._cursorData.selectedFieldIdSet = value;
325
- changedKeys[WatchableCursorKeys.selectedFieldIds] = true;
326
- break;
327
- }
328
- default:
329
- // No-op for future unknown paths.
244
+ /**
245
+ * @internal
246
+ */
247
+ __applyChangesWithoutTriggeringEvents(changes) {
248
+ const changedKeys = {
249
+ [WatchableCursorKeys.selectedRecordIds]: false,
250
+ [WatchableCursorKeys.activeTableId]: false,
251
+ [WatchableCursorKeys.activeViewId]: false
252
+ };
253
+ for (const {
254
+ path,
255
+ value
256
+ } of changes) {
257
+ if (path[0] === 'cursorData') {
258
+ switch (path[1]) {
259
+ case 'selectedRecordIdSet':
260
+ {
261
+ (0, _error_utils.invariant)(path.length === 2, 'cannot set within selectedRecordIdSet');
262
+ this._cursorData.selectedRecordIdSet = value;
263
+ changedKeys[WatchableCursorKeys.selectedRecordIds] = true;
264
+ break;
330
265
  }
331
- }
332
- if (path[0] === 'activeTableId') {
333
- (0, _error_utils.invariant)(value === null || typeof value === 'string', 'activeTableId must be string or null');
334
- this._cursorData.activeTableId = value;
335
- changedKeys[WatchableCursorKeys.activeTableId] = true;
336
- if (value === null) {
337
- this._cursorData.activeViewId = null;
338
- changedKeys[WatchableCursorKeys.activeViewId] = true;
266
+ case 'selectedFieldIdSet':
267
+ {
268
+ (0, _error_utils.invariant)(path.length === 2, 'cannot set within selectedFieldIdSet');
269
+ this._cursorData.selectedFieldIdSet = value;
270
+ changedKeys[WatchableCursorKeys.selectedFieldIds] = true;
271
+ break;
339
272
  }
340
- }
341
- if (path[0] === 'tablesById' && path[1] === this.activeTableId && path[2] === 'activeViewId') {
342
- (0, _error_utils.invariant)(value === null || typeof value === 'string', 'activeTableId must be string or null');
343
- this._cursorData.activeViewId = value;
344
- changedKeys[WatchableCursorKeys.activeViewId] = true;
345
- }
273
+ default:
274
+ // No-op for future unknown paths.
346
275
  }
347
- } catch (err) {
348
- _iterator.e(err);
349
- } finally {
350
- _iterator.f();
351
276
  }
352
- return changedKeys;
353
- }
354
- /**
355
- * @internal
356
- */
357
- }, {
358
- key: "__triggerOnChangeForChangedKeys",
359
- value: function __triggerOnChangeForChangedKeys(changedKeys) {
360
- var _iterator2 = _createForOfIteratorHelper((0, _private_utils.entries)(changedKeys)),
361
- _step2;
362
- try {
363
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
364
- var _step2$value = (0, _slicedToArray2.default)(_step2.value, 2),
365
- key = _step2$value[0],
366
- didChange = _step2$value[1];
367
- if (didChange) {
368
- this._onChange(key);
369
- }
277
+ if (path[0] === 'activeTableId') {
278
+ (0, _error_utils.invariant)(value === null || typeof value === 'string', 'activeTableId must be string or null');
279
+ this._cursorData.activeTableId = value;
280
+ changedKeys[WatchableCursorKeys.activeTableId] = true;
281
+ if (value === null) {
282
+ this._cursorData.activeViewId = null;
283
+ changedKeys[WatchableCursorKeys.activeViewId] = true;
370
284
  }
371
- } catch (err) {
372
- _iterator2.e(err);
373
- } finally {
374
- _iterator2.f();
285
+ }
286
+ if (path[0] === 'tablesById' && path[1] === this.activeTableId && path[2] === 'activeViewId') {
287
+ (0, _error_utils.invariant)(value === null || typeof value === 'string', 'activeTableId must be string or null');
288
+ this._cursorData.activeViewId = value;
289
+ changedKeys[WatchableCursorKeys.activeViewId] = true;
375
290
  }
376
291
  }
377
- }], [{
378
- key: "_isWatchableKey",
379
- value: /** @internal */
380
- function _isWatchableKey(key) {
381
- return (0, _private_utils.isEnumValue)(WatchableCursorKeys, key);
382
- }
383
- /** @internal */
384
- }, {
385
- key: "_shouldLoadDataForKey",
386
- value: function _shouldLoadDataForKey(key) {
387
- return true;
292
+ return changedKeys;
293
+ }
294
+ /**
295
+ * @internal
296
+ */
297
+ __triggerOnChangeForChangedKeys(changedKeys) {
298
+ for (const [key, didChange] of (0, _private_utils.entries)(changedKeys)) {
299
+ if (didChange) {
300
+ this._onChange(key);
301
+ }
388
302
  }
389
- }]);
390
- }(_abstract_model_with_async_data.default);
391
- /** @internal */
392
- (0, _defineProperty2.default)(Cursor, "_className", 'Cursor');
303
+ }
304
+ }
393
305
  var _default = exports.default = Cursor;