@wix/patterns 1.493.0 → 1.495.0

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 (510) hide show
  1. package/dist/cjs/components/CardContainer/CardContainer.st.css.js +2 -2
  2. package/dist/cjs/components/CardContainer/CardContainer.st.css.js.map +1 -1
  3. package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js +3 -3
  4. package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js.map +1 -1
  5. package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js +3 -3
  6. package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
  7. package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +3 -3
  8. package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js.map +1 -1
  9. package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
  10. package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
  11. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  12. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  13. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +3 -3
  14. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
  15. package/dist/cjs/components/CollectionTable/CollectionTable.js +8 -8
  16. package/dist/cjs/components/CollectionTable/CollectionTable.js.map +1 -1
  17. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
  18. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  19. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.js +2 -1
  20. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.js.map +1 -1
  21. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css +13 -1
  22. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js +5 -3
  23. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -1
  24. package/dist/cjs/components/CollectionTable/buildMobileColumns.js +40 -9
  25. package/dist/cjs/components/CollectionTable/buildMobileColumns.js.map +1 -1
  26. package/dist/cjs/components/CollectionTable/mobileColumnsUtils.js +24 -0
  27. package/dist/cjs/components/CollectionTable/mobileColumnsUtils.js.map +1 -0
  28. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
  29. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  30. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
  31. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  32. package/dist/cjs/components/CollectionToolbarFilters/CollectionToolbarFiltersState.js.map +1 -1
  33. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  34. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  35. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  36. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  37. package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.js +3 -3
  38. package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.js.map +1 -1
  39. package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
  40. package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
  41. package/dist/cjs/components/EditableTable/EditableCell.st.css +85 -10
  42. package/dist/cjs/components/EditableTable/EditableCell.st.css.js +10 -4
  43. package/dist/cjs/components/EditableTable/EditableCell.st.css.js.map +1 -1
  44. package/dist/cjs/components/EditableTable/EditableTable.js +19 -14
  45. package/dist/cjs/components/EditableTable/EditableTable.js.map +1 -1
  46. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  47. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
  48. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  49. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  50. package/dist/cjs/components/EditableTable/cellTypes/JsonInputEdit.st.css.js +3 -3
  51. package/dist/cjs/components/EditableTable/cellTypes/JsonInputEdit.st.css.js.map +1 -1
  52. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js +3 -3
  53. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
  54. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js +3 -3
  55. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
  56. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js +3 -3
  57. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
  58. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  59. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js.map +1 -1
  60. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js +3 -3
  61. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
  62. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  63. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
  64. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js +8 -8
  65. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
  66. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js +7 -7
  67. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js.map +1 -1
  68. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js +3 -3
  69. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
  70. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  71. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
  72. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js +3 -3
  73. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
  74. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js +3 -3
  75. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
  76. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  77. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
  78. package/dist/cjs/components/EditableTable/cellTypes/reference/EmptyReferenceView.st.css.js +6 -6
  79. package/dist/cjs/components/EditableTable/cellTypes/reference/EmptyReferenceView.st.css.js.map +1 -1
  80. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js +3 -3
  81. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
  82. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js +4 -4
  83. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
  84. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  85. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  86. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js +4 -4
  87. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
  88. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js +3 -3
  89. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  90. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js +5 -5
  91. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
  92. package/dist/cjs/components/EmptyState/EmptyStateBase.st.css.js +2 -2
  93. package/dist/cjs/components/EmptyState/EmptyStateBase.st.css.js.map +1 -1
  94. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  95. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  96. package/dist/cjs/components/EntityPageFields/EntityPageField.st.css.js +3 -3
  97. package/dist/cjs/components/EntityPageFields/EntityPageField.st.css.js.map +1 -1
  98. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  99. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  100. package/dist/cjs/components/FieldActions/HeaderActionsPopover.js +1 -1
  101. package/dist/cjs/components/FieldActions/HeaderActionsPopover.js.map +1 -1
  102. package/dist/cjs/components/FormPage/FormPageActionsBar.js.map +1 -1
  103. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  104. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  105. package/dist/cjs/components/ImportButton/ImportButtonModalLayout.js +18 -16
  106. package/dist/cjs/components/ImportButton/ImportButtonModalLayout.js.map +1 -1
  107. package/dist/cjs/components/ImportButton/ImportModal.uni.driver.js +2 -0
  108. package/dist/cjs/components/ImportButton/ImportModal.uni.driver.js.map +1 -1
  109. package/dist/cjs/components/ImportButton/ImportStepConfiguration.js +37 -38
  110. package/dist/cjs/components/ImportButton/ImportStepConfiguration.js.map +1 -1
  111. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js +3 -3
  112. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
  113. package/dist/cjs/components/ImportButton/getImportModalStepProps.js +32 -26
  114. package/dist/cjs/components/ImportButton/getImportModalStepProps.js.map +1 -1
  115. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
  116. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  117. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
  118. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  119. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  120. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  121. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  122. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  123. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css +4 -2
  124. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
  125. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  126. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  127. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  128. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
  129. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  130. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  131. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  132. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  133. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  134. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  135. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  136. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  137. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  138. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  139. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  140. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  141. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  142. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js +10 -10
  143. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js.map +1 -1
  144. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
  145. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  146. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  147. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  148. package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js +6 -6
  149. package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js.map +1 -1
  150. package/dist/cjs/components/Table/NumberCell.st.css.js +2 -2
  151. package/dist/cjs/components/Table/NumberCell.st.css.js.map +1 -1
  152. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  153. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  154. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  155. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  156. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  157. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  158. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  159. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  160. package/dist/cjs/components/common.st.css.js +4 -4
  161. package/dist/cjs/components/common.st.css.js.map +1 -1
  162. package/dist/cjs/hooks/useCloseOnAncestorScroll.js +25 -4
  163. package/dist/cjs/hooks/useCloseOnAncestorScroll.js.map +1 -1
  164. package/dist/cjs/model/tableColumn.js +6 -0
  165. package/dist/cjs/model/tableColumn.js.map +1 -1
  166. package/dist/cjs/state/CollectionFieldsSourceState.js +6 -4
  167. package/dist/cjs/state/CollectionFieldsSourceState.js.map +1 -1
  168. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +3 -3
  169. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  170. package/dist/cjs/state/CollectionPage/MobilePrimaryActionBar.st.css.js +2 -2
  171. package/dist/cjs/state/CollectionPage/MobilePrimaryActionBar.st.css.js.map +1 -1
  172. package/dist/cjs/state/CollectionPage/TitleBadges.st.css.js +4 -4
  173. package/dist/cjs/state/CollectionPage/TitleBadges.st.css.js.map +1 -1
  174. package/dist/cjs/state/EditableTable/CellValueState.js +21 -1
  175. package/dist/cjs/state/EditableTable/CellValueState.js.map +1 -1
  176. package/dist/cjs/state/EditableTable/EditableTableState.js +2 -0
  177. package/dist/cjs/state/EditableTable/EditableTableState.js.map +1 -1
  178. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
  179. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  180. package/dist/cjs/state/ToolbarCollectionState.js +1 -0
  181. package/dist/cjs/state/ToolbarCollectionState.js.map +1 -1
  182. package/dist/cjs/styles.global.css +2 -2
  183. package/dist/cjs/version.js +1 -1
  184. package/dist/cjs/version.js.map +1 -1
  185. package/dist/cjs/wix-design-system-version.js +1 -1
  186. package/dist/cjs/wix-design-system-version.js.map +1 -1
  187. package/dist/docs/ImportButton.md +9 -1
  188. package/dist/docs/Table.md +6 -0
  189. package/dist/docs/TableGridSwitchFolders.md +1 -1
  190. package/dist/docs/index.json +1 -0
  191. package/dist/dts-bundle/components/EditableTable.d.ts +19 -12
  192. package/dist/dts-bundle/components/LayoutSwitch.d.ts +19 -12
  193. package/dist/dts-bundle/components/TableFolders.d.ts +15 -12
  194. package/dist/dts-bundle/components/schema/Table.d.ts +15 -12
  195. package/dist/dts-bundle/index.json +50 -50
  196. package/dist/dts-bundle/index.txt +13 -13
  197. package/dist/dts-bundle/types/CellType.d.ts +19 -12
  198. package/dist/dts-bundle/types/CollectionTableBaseProps.d.ts +15 -12
  199. package/dist/dts-bundle/types/Column.d.ts +24 -17
  200. package/dist/dts-bundle/types/EntityPageState.d.ts +4 -0
  201. package/dist/dts-bundle/types/SchemaSource.d.ts +4 -0
  202. package/dist/dts-bundle/types/SchemaSourceInput.d.ts +4 -0
  203. package/dist/dts-bundle/types/TableColumn.d.ts +16 -13
  204. package/dist/dts-bundle/types/TagsProps.d.ts +15 -12
  205. package/dist/dts-bundle/types/UseCmsSchemaSourceDeps.d.ts +4 -0
  206. package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
  207. package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js +2 -2
  208. package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js +2 -2
  209. package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +2 -2
  210. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  211. package/dist/esm/components/Collapse/Collapse.st.css.js.map +1 -1
  212. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  213. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
  214. package/dist/esm/components/CollectionTable/CollectionTable.js +1 -3
  215. package/dist/esm/components/CollectionTable/CollectionTable.js.map +1 -1
  216. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
  217. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.js +1 -1
  218. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.js.map +1 -1
  219. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css +13 -1
  220. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js +3 -3
  221. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -1
  222. package/dist/esm/components/CollectionTable/buildMobileColumns.js +18 -3
  223. package/dist/esm/components/CollectionTable/buildMobileColumns.js.map +1 -1
  224. package/dist/esm/components/CollectionTable/mobileColumnsUtils.js +15 -0
  225. package/dist/esm/components/CollectionTable/mobileColumnsUtils.js.map +1 -0
  226. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  227. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  228. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  229. package/dist/esm/components/CollectionToolbarFilters/CollectionToolbarFiltersState.js.map +1 -1
  230. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  231. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  232. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  233. package/dist/esm/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.js +2 -2
  234. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  235. package/dist/esm/components/EditableTable/EditableCell.st.css +85 -10
  236. package/dist/esm/components/EditableTable/EditableCell.st.css.js +4 -3
  237. package/dist/esm/components/EditableTable/EditableCell.st.css.js.map +1 -1
  238. package/dist/esm/components/EditableTable/EditableTable.js +6 -2
  239. package/dist/esm/components/EditableTable/EditableTable.js.map +1 -1
  240. package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  241. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  242. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  243. package/dist/esm/components/EditableTable/cellTypes/JsonInputEdit.st.css.js +2 -2
  244. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js +2 -2
  245. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
  246. package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js +2 -2
  247. package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
  248. package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
  249. package/dist/esm/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  250. package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js +2 -2
  251. package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
  252. package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  253. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js +2 -2
  254. package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css.js +2 -2
  255. package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +2 -2
  256. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  257. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
  258. package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js +2 -2
  259. package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
  260. package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js +2 -2
  261. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  262. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
  263. package/dist/esm/components/EditableTable/cellTypes/reference/EmptyReferenceView.st.css.js +2 -2
  264. package/dist/esm/components/EditableTable/cellTypes/reference/EmptyReferenceView.st.css.js.map +1 -1
  265. package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
  266. package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
  267. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  268. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  269. package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js +2 -2
  270. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js +2 -2
  271. package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js +2 -2
  272. package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
  273. package/dist/esm/components/EmptyState/EmptyStateBase.st.css.js +2 -2
  274. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  275. package/dist/esm/components/EntityPageFields/EntityPageField.st.css.js +2 -2
  276. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  277. package/dist/esm/components/FieldActions/HeaderActionsPopover.js +1 -1
  278. package/dist/esm/components/FieldActions/HeaderActionsPopover.js.map +1 -1
  279. package/dist/esm/components/FormPage/FormPageActionsBar.js +2 -2
  280. package/dist/esm/components/FormPage/FormPageActionsBar.js.map +1 -1
  281. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  282. package/dist/esm/components/ImportButton/ImportButtonModalLayout.js +3 -1
  283. package/dist/esm/components/ImportButton/ImportButtonModalLayout.js.map +1 -1
  284. package/dist/esm/components/ImportButton/ImportModal.uni.driver.js +3 -1
  285. package/dist/esm/components/ImportButton/ImportModal.uni.driver.js.map +1 -1
  286. package/dist/esm/components/ImportButton/ImportStepConfiguration.js +18 -15
  287. package/dist/esm/components/ImportButton/ImportStepConfiguration.js.map +1 -1
  288. package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
  289. package/dist/esm/components/ImportButton/getImportModalStepProps.js +24 -14
  290. package/dist/esm/components/ImportButton/getImportModalStepProps.js.map +1 -1
  291. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
  292. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
  293. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  294. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  295. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  296. package/dist/esm/components/MaxLines/MaxLines.st.css.js.map +1 -1
  297. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css +4 -2
  298. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  299. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  300. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  301. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  302. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
  303. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  304. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  305. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  306. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  307. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  308. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  309. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  310. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  311. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  312. package/dist/esm/components/SetupWidget/SetupWidget.st.css.js +2 -2
  313. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  314. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  315. package/dist/esm/components/Table/AddFieldColumnHeader.st.css.js +2 -2
  316. package/dist/esm/components/Table/NumberCell.st.css.js +2 -2
  317. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  318. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  319. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  320. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  321. package/dist/esm/components/common.st.css.js +2 -2
  322. package/dist/esm/hooks/useCloseOnAncestorScroll.js +28 -4
  323. package/dist/esm/hooks/useCloseOnAncestorScroll.js.map +1 -1
  324. package/dist/esm/model/tableColumn.js.map +1 -1
  325. package/dist/esm/state/CollectionFieldsSourceState.js +6 -4
  326. package/dist/esm/state/CollectionFieldsSourceState.js.map +1 -1
  327. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  328. package/dist/esm/state/CollectionPage/MobilePrimaryActionBar.st.css.js +2 -2
  329. package/dist/esm/state/CollectionPage/TitleBadges.st.css.js +2 -2
  330. package/dist/esm/state/EditableTable/CellValueState.js +25 -2
  331. package/dist/esm/state/EditableTable/CellValueState.js.map +1 -1
  332. package/dist/esm/state/EditableTable/EditableTableState.js +3 -1
  333. package/dist/esm/state/EditableTable/EditableTableState.js.map +1 -1
  334. package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
  335. package/dist/esm/state/ToolbarCollectionState.js +1 -0
  336. package/dist/esm/state/ToolbarCollectionState.js.map +1 -1
  337. package/dist/esm/styles.global.css +2 -2
  338. package/dist/esm/version.js +1 -1
  339. package/dist/esm/wix-design-system-version.js +1 -1
  340. package/dist/examples/ImportButton/platformized-import.tsx +2 -2
  341. package/dist/examples/Table/mobile-columns.tsx +131 -0
  342. package/dist/templates/cms-collection-entity/ItemsCollectionPage.tsx +1 -0
  343. package/dist/templates/collection-detail/ItemsCollectionPage.tsx +8 -1
  344. package/dist/templates/collection-entity/ItemsCollectionPage.tsx +16 -1
  345. package/dist/types/components/Collapse/Collapse.st.css.d.ts.map +1 -1
  346. package/dist/types/components/CollectionTable/CollectionTable.d.ts.map +1 -1
  347. package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts +2 -0
  348. package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts.map +1 -1
  349. package/dist/types/components/CollectionTable/CollectionTableWSRTable.st.css.d.ts +3 -1
  350. package/dist/types/components/CollectionTable/CollectionTableWSRTable.st.css.d.ts.map +1 -1
  351. package/dist/types/components/CollectionTable/buildMobileColumns.d.ts +1 -1
  352. package/dist/types/components/CollectionTable/buildMobileColumns.d.ts.map +1 -1
  353. package/dist/types/components/CollectionTable/mobileColumnsUtils.d.ts +17 -0
  354. package/dist/types/components/CollectionTable/mobileColumnsUtils.d.ts.map +1 -0
  355. package/dist/types/components/CollectionToolbar/CollectionToolbar.st.css.d.ts.map +1 -1
  356. package/dist/types/components/CollectionToolbarFilters/CollectionToolbarFiltersState.d.ts.map +1 -1
  357. package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.st.css.d.ts.map +1 -1
  358. package/dist/types/components/EditableTable/EditableCell.st.css.d.ts +6 -0
  359. package/dist/types/components/EditableTable/EditableCell.st.css.d.ts.map +1 -1
  360. package/dist/types/components/EditableTable/EditableTable.d.ts.map +1 -1
  361. package/dist/types/components/EditableTable/EditableTable.uni.driver.d.ts +2 -0
  362. package/dist/types/components/EditableTable/EditableTable.uni.driver.d.ts.map +1 -1
  363. package/dist/types/components/EditableTable/cellTypes/CellViewLayout.st.css.d.ts.map +1 -1
  364. package/dist/types/components/EditableTable/cellTypes/address/Edit.st.css.d.ts.map +1 -1
  365. package/dist/types/components/EditableTable/cellTypes/boolean/Edit.st.css.d.ts.map +1 -1
  366. package/dist/types/components/EditableTable/cellTypes/date/Edit.st.css.d.ts.map +1 -1
  367. package/dist/types/components/EditableTable/cellTypes/email/View.st.css.d.ts.map +1 -1
  368. package/dist/types/components/EditableTable/cellTypes/number/Edit.st.css.d.ts.map +1 -1
  369. package/dist/types/components/EditableTable/cellTypes/object/View.st.css.d.ts.map +1 -1
  370. package/dist/types/components/EditableTable/cellTypes/reference/EmptyReferenceView.st.css.d.ts.map +1 -1
  371. package/dist/types/components/EditableTable/cellTypes/text/View.st.css.d.ts.map +1 -1
  372. package/dist/types/components/EditableTable/cellTypes/url/View.st.css.d.ts.map +1 -1
  373. package/dist/types/components/ImportButton/ImportButton.uni.driver.d.ts +1 -0
  374. package/dist/types/components/ImportButton/ImportButton.uni.driver.d.ts.map +1 -1
  375. package/dist/types/components/ImportButton/ImportButtonModalLayout.d.ts.map +1 -1
  376. package/dist/types/components/ImportButton/ImportModal.uni.driver.d.ts +2 -0
  377. package/dist/types/components/ImportButton/ImportModal.uni.driver.d.ts.map +1 -1
  378. package/dist/types/components/ImportButton/ImportStepConfiguration.d.ts.map +1 -1
  379. package/dist/types/components/ImportButton/getImportModalStepProps.d.ts.map +1 -1
  380. package/dist/types/components/MaxHeightText/MaxHeightText.st.css.d.ts.map +1 -1
  381. package/dist/types/components/MaxLines/MaxLines.st.css.d.ts.map +1 -1
  382. package/dist/types/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.d.ts.map +1 -1
  383. package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts +2 -0
  384. package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts.map +1 -1
  385. package/dist/types/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.d.ts.map +1 -1
  386. package/dist/types/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.d.ts.map +1 -1
  387. package/dist/types/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.d.ts.map +1 -1
  388. package/dist/types/components/PickerContent/PickerContentAdditionalStep.st.css.d.ts.map +1 -1
  389. package/dist/types/components/Table/Table.uni.driver.d.ts +2 -0
  390. package/dist/types/components/Table/Table.uni.driver.d.ts.map +1 -1
  391. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts +2 -0
  392. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts.map +1 -1
  393. package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts +2 -0
  394. package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts.map +1 -1
  395. package/dist/types/hooks/useCloseOnAncestorScroll.d.ts +1 -1
  396. package/dist/types/hooks/useCloseOnAncestorScroll.d.ts.map +1 -1
  397. package/dist/types/model/tableColumn.d.ts +19 -16
  398. package/dist/types/model/tableColumn.d.ts.map +1 -1
  399. package/dist/types/state/CollectionFieldsSourceState.d.ts.map +1 -1
  400. package/dist/types/state/EditableTable/CellValueState.d.ts +2 -0
  401. package/dist/types/state/EditableTable/CellValueState.d.ts.map +1 -1
  402. package/dist/types/state/EditableTable/EditableTableState.d.ts.map +1 -1
  403. package/dist/types/state/ToolbarCollectionState.d.ts.map +1 -1
  404. package/dist/types/testkit/enzyme.d.ts +8 -0
  405. package/dist/types/testkit/enzyme.d.ts.map +1 -1
  406. package/dist/types/testkit/jsdom.d.ts +10 -0
  407. package/dist/types/testkit/jsdom.d.ts.map +1 -1
  408. package/dist/types/testkit/playwright.d.ts +10 -0
  409. package/dist/types/testkit/playwright.d.ts.map +1 -1
  410. package/dist/types/testkit/puppeteer.d.ts +10 -0
  411. package/dist/types/testkit/puppeteer.d.ts.map +1 -1
  412. package/dist/types/version.d.ts +1 -1
  413. package/dist/types/wix-design-system-version.d.ts +1 -1
  414. package/package.json +13 -10
  415. package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
  416. package/src/components/CmsFieldManagement/CmsFieldForm.st.css.ts +2 -2
  417. package/src/components/CmsFieldManagement/CmsFieldModal.st.css.ts +2 -2
  418. package/src/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.ts +2 -2
  419. package/src/components/Collapse/Collapse.st.css.ts +2 -2
  420. package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
  421. package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
  422. package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
  423. package/src/components/CollectionTable/CollectionTable.tsx +5 -4
  424. package/src/components/CollectionTable/CollectionTableWSRTable.st.css +13 -1
  425. package/src/components/CollectionTable/CollectionTableWSRTable.st.css.ts +3 -3
  426. package/src/components/CollectionTable/CollectionTableWSRTable.tsx +3 -3
  427. package/src/components/CollectionTable/buildMobileColumns.tsx +48 -16
  428. package/src/components/CollectionTable/mobileColumnsUtils.ts +31 -0
  429. package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
  430. package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
  431. package/src/components/CollectionToolbarFilters/CollectionToolbarFiltersState.ts +1 -2
  432. package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
  433. package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
  434. package/src/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.ts +2 -2
  435. package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
  436. package/src/components/EditableTable/EditableCell.st.css +85 -10
  437. package/src/components/EditableTable/EditableCell.st.css.ts +4 -4
  438. package/src/components/EditableTable/EditableTable.tsx +10 -2
  439. package/src/components/EditableTable/HeaderActionsPopover.st.css.ts +2 -2
  440. package/src/components/EditableTable/cellTypes/CellViewLayout.st.css.ts +2 -2
  441. package/src/components/EditableTable/cellTypes/JsonInputEdit.st.css.ts +2 -2
  442. package/src/components/EditableTable/cellTypes/address/Edit.st.css.ts +2 -2
  443. package/src/components/EditableTable/cellTypes/boolean/Edit.st.css.ts +2 -2
  444. package/src/components/EditableTable/cellTypes/boolean/View.st.css.ts +2 -2
  445. package/src/components/EditableTable/cellTypes/color/Edit.st.css.ts +2 -2
  446. package/src/components/EditableTable/cellTypes/date/Edit.st.css.ts +2 -2
  447. package/src/components/EditableTable/cellTypes/date/View.st.css.ts +2 -2
  448. package/src/components/EditableTable/cellTypes/datetime/Edit.st.css.ts +2 -2
  449. package/src/components/EditableTable/cellTypes/datetime/View.st.css.ts +2 -2
  450. package/src/components/EditableTable/cellTypes/email/Edit.st.css.ts +2 -2
  451. package/src/components/EditableTable/cellTypes/email/View.st.css.ts +2 -2
  452. package/src/components/EditableTable/cellTypes/number/Edit.st.css.ts +2 -2
  453. package/src/components/EditableTable/cellTypes/number/View.st.css.ts +2 -2
  454. package/src/components/EditableTable/cellTypes/object/View.st.css.ts +2 -2
  455. package/src/components/EditableTable/cellTypes/reference/EmptyReferenceView.st.css.ts +2 -2
  456. package/src/components/EditableTable/cellTypes/select/Edit.st.css.ts +2 -2
  457. package/src/components/EditableTable/cellTypes/text/Edit.st.css.ts +2 -2
  458. package/src/components/EditableTable/cellTypes/text/View.st.css.ts +2 -2
  459. package/src/components/EditableTable/cellTypes/time/Edit.st.css.ts +2 -2
  460. package/src/components/EditableTable/cellTypes/url/Edit.st.css.ts +2 -2
  461. package/src/components/EditableTable/cellTypes/url/View.st.css.ts +2 -2
  462. package/src/components/EmptyState/EmptyStateBase.st.css.ts +2 -2
  463. package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
  464. package/src/components/EntityPageFields/EntityPageField.st.css.ts +2 -2
  465. package/src/components/Fade/Fade.st.css.ts +2 -2
  466. package/src/components/FieldActions/HeaderActionsPopover.tsx +1 -1
  467. package/src/components/FormPage/FormPageActionsBar.tsx +2 -2
  468. package/src/components/Heading/Heading.st.css.ts +2 -2
  469. package/src/components/ImportButton/ImportButtonModalLayout.tsx +6 -1
  470. package/src/components/ImportButton/ImportModal.uni.driver.ts +8 -0
  471. package/src/components/ImportButton/ImportStepConfiguration.tsx +19 -29
  472. package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
  473. package/src/components/ImportButton/getImportModalStepProps.tsx +25 -13
  474. package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
  475. package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
  476. package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
  477. package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
  478. package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css +4 -2
  479. package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
  480. package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
  481. package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
  482. package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
  483. package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
  484. package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
  485. package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
  486. package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
  487. package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
  488. package/src/components/SetupWidget/SetupWidget.st.css.ts +2 -2
  489. package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
  490. package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
  491. package/src/components/Table/AddFieldColumnHeader.st.css.ts +2 -2
  492. package/src/components/Table/NumberCell.st.css.ts +2 -2
  493. package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
  494. package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
  495. package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
  496. package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
  497. package/src/components/common.st.css.ts +2 -2
  498. package/src/hooks/useCloseOnAncestorScroll.ts +32 -3
  499. package/src/model/tableColumn.ts +21 -16
  500. package/src/state/CollectionFieldsSourceState.ts +6 -4
  501. package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
  502. package/src/state/CollectionPage/MobilePrimaryActionBar.st.css.ts +2 -2
  503. package/src/state/CollectionPage/TitleBadges.st.css.ts +2 -2
  504. package/src/state/EditableTable/CellValueState.ts +30 -3
  505. package/src/state/EditableTable/EditableTableState.ts +6 -1
  506. package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
  507. package/src/state/ToolbarCollectionState.ts +1 -0
  508. package/src/styles.global.css +2 -2
  509. package/src/version.ts +1 -1
  510. package/src/wix-design-system-version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_tableColumnPublicApiTest","c"],"sources":["../../../src/model/tableColumn.ts"],"sourcesContent":["import type { TableColumn as TableColumnWSR } from '@wix/design-system';\nimport type { Field, KeyedItem, SortMode, SortOrder } from '@wix/bex-core';\nimport { ComponentType, CSSProperties, ReactNode } from 'react';\nimport type { FieldType } from '../utils/fieldTypePrefixIcons';\nimport type { ValidationRule } from '../state/EditableTable/types';\n\ntype TableColumnBase<T = any> = Omit<\n TableColumnWSR<T>,\n 'sortDescending' | 'sortable' | 'infoTooltipProps' | 'style' | 'titleSuffix'\n> & {\n style?:\n | CSSProperties\n | ((\n column: TableColumnWSR,\n rowData: KeyedItem<T>,\n rowNum: number,\n ) => CSSProperties);\n reorderDisabled?: boolean;\n defaultSortOrder?: SortOrder;\n sortMode?: SortMode;\n searchable?: boolean;\n infoTooltipProps?: TableColumnWSR['infoTooltipProps'] & {\n panelContent?: ReactNode;\n };\n mobile?: ColumnMobileConfig;\n /**\n * The field type string used to resolve a prefix icon for the column.\n * Cairo maps this to the appropriate icon internally.\n * @external\n */\n fieldType?: FieldType;\n /**\n * Explicit prefix icons for the column (e.g. a custom field type's\n * `display.icons`). When present, used instead of the `fieldType` mapping.\n * @external\n */\n fieldTypeIcons?: { Small: ComponentType; Medium: ComponentType };\n /**\n * Whether the field contains personally identifiable information.\n * @external\n */\n isPii?: boolean;\n /**\n * only for cms. Whether this is a system-managed field.\n * @external\n */\n isSystem?: boolean;\n /**\n * Whether this is the primary display field.\n * @external\n */\n isPrimary?: boolean;\n /**\n * Column-level validation rules. When a `required` rule is present, a required indicator is shown in the custom columns panel.\n * @external\n */\n validation?: ValidationRule[];\n};\n\n// disallow specifying `hideable` / `defaultHidden` or setting `hiddenFromCustomColumnsSelection` as false when `id` is missing\ninterface TableColumnOptional<T> extends TableColumnBase<T> {\n id?: string;\n name?: string;\n hiddenFromCustomColumnsSelection?: undefined | true;\n hideable?: undefined;\n defaultHidden?: undefined;\n}\n\n// common case for custom column definition\ninterface TableColumnCustom<T> extends TableColumnBase<T> {\n id: string;\n name: string;\n hiddenFromCustomColumnsSelection?: false;\n hideable?: true;\n defaultHidden?: boolean;\n}\n\n// allow `name` to be optional when `title` exists\ninterface TableColumnCustomOptionalName<T> extends TableColumnBase<T> {\n id: string;\n name?: string;\n title: TableColumnBase['title'];\n hiddenFromCustomColumnsSelection?: false;\n hideable?: true;\n defaultHidden?: boolean;\n}\n\n// force `defaultHidden=false|undefined` when `hideable=false`\ninterface TableColumnCustomDefaultHidden<T> extends TableColumnBase<T> {\n id: string;\n name?: string;\n title: TableColumnBase['title'];\n hiddenFromCustomColumnsSelection?: false;\n hideable: false;\n defaultHidden?: undefined | false;\n}\n\nexport type CustomColumnConfig<T> =\n | TableColumnOptional<T>\n | TableColumnCustom<T>\n | TableColumnCustomDefaultHidden<T>\n | TableColumnCustomOptionalName<T>;\n\nexport interface SortableColumnConfig<T> extends TableColumnBase<T> {\n id: string;\n sortable: true;\n}\n\nexport interface NotSortableColumnConfig<T> extends TableColumnBase<T> {\n id?: string;\n sortable?: false;\n}\n\nexport type SortableConfig<T> =\n | SortableColumnConfig<T>\n | NotSortableColumnConfig<T>;\n\nexport type TableColumn<T> = CustomColumnConfig<T> & SortableConfig<T>;\n\nexport type ColumnMobileConfig =\n | {\n /**\n * Which mobile column to display in.\n * - 'first': Stacks vertically with other 'first' columns\n * - 'second': Displays as standalone second column\n * - undefined: Hidden on mobile\n */\n column: 'first';\n /**\n * Sort order within 'first' column (lower appears higher).\n * Only relevant when column is 'first'.\n * @default Infinity\n */\n order?: number;\n }\n | {\n /**\n * Which mobile column to display in.\n * - 'first': Stacks vertically with other 'first' columns\n * - 'second': Displays as standalone second column\n * - undefined: Hidden on mobile\n */\n column?: 'second';\n };\n\nexport interface Column {\n /**\n * A unique identifier for the column. This value is required to enable [custom columns](./?path=/story/features-display-custom-columns--overview) or [sortable columns](./?path=/story/features-sort-sortable-columns-sortable-columns--sortable-columns).\n * @external\n */\n id: string;\n /**\n * A name for the column. This value is shown in the [custom columns](./?path=/story/features-display-custom-columns--overview) dropdown.\n * @external\n */\n name: string;\n /**\n * The text to be shown at the top of the column.\n * @external\n */\n title: TableColumnBase['title'];\n /**\n * Hides the column from the custom column selection panel, making it always visible. Relevant for [custom columns](./?path=/story/features-display-custom-columns--overview).\n * @external\n */\n hiddenFromCustomColumnsSelection?: boolean;\n /**\n * When `false`, the column is always selected and displayed. Relevant for [custom columns](./?path=/story/features-display-custom-columns--overview).\n */\n hideable?: boolean;\n /**\n * When `true`, search matches in the column's values will be highlighted. Mark a column as searchable only if iy's data is relevant for your search.\n */\n searchable?: boolean;\n /**\n * When `true`, disables drag and drop for the column.\n * @external\n */\n reorderDisabled?: boolean;\n /**\n * When `true`, makes the column a [sortable column](./?path=/story/features-sort-sortable-columns-sortable-columns--sortable-columns).\n * @external\n */\n sortable?: boolean;\n sortDescending?: boolean;\n sortMode?: SortMode;\n /**\n * Determines the default sort order for the column, either `asc` or `desc`. The column must be a [sortable column](./?path=/story/features-sort-sortable-columns-sortable-columns--sortable-columns).\n * @external\n */\n defaultSortOrder?: SortOrder;\n /**\n * For [custom columns](./?path=/story/features-display-custom-columns--overview), when `true`, this property causes the column to be unchecked and thus not shown by default. This isn't relevant when `hideable` `=` `false`.\n * @external\n */\n defaultHidden?: boolean;\n dataExtension?: { id: string; editable: boolean; isPii?: boolean };\n /** The source field this column was built from; used to resolve manage actions. */\n field?: Field;\n /**\n * Whether the field contains personally identifiable information.\n * @external\n */\n isPii?: boolean;\n /**\n * only for cms. Whether this is a system-managed field.\n * @external\n */\n isSystem?: boolean;\n /**\n * Whether this is the primary display field.\n * @external\n */\n isPrimary?: boolean;\n /**\n * Column-level validation rules. When a `required` rule is present, a required indicator is shown in the custom columns panel.\n * @external\n */\n validation?: ValidationRule[];\n infoTooltipProps?: {\n content?: ReactNode;\n panelContent?: ReactNode;\n };\n /**\n * A callback that is called for each row in the data to display the value of this row for the specified column.\n * @external\n */\n render: TableColumnWSR['render'];\n width?: TableColumnWSR['width'];\n style?: TableColumnWSR['style'];\n /**\n * Mobile column configuration. Determines how this column is displayed on mobile devices.\n * - column: 'first' - Stacks vertically with other 'first' columns\n * - column: 'second' - Displays as standalone second column\n * - undefined - Hidden on mobile\n * @external\n */\n mobile?: ColumnMobileConfig;\n /**\n * The field type string used to resolve a prefix icon for the column.\n * Cairo maps this to the appropriate icon internally.\n * @external\n */\n fieldType?: FieldType;\n /**\n * Explicit prefix icons for the column (e.g. a custom field type's\n * `display.icons`). When present, used instead of the `fieldType` mapping.\n * @external\n */\n fieldTypeIcons?: { Small: ComponentType; Medium: ComponentType };\n}\n\n// eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error\n// @ts-ignore\nfunction _tableColumnPublicApiTest<T>(\n c: TableColumn<T>,\n): Omit<Column, 'id' | 'name'> & Pick<Partial<Column>, 'id' | 'name'> {\n return c;\n}\n"],"mappings":";;;AA2DA;;AASA;;AASA;;AAUA;;AAqKA;AACA;AACA,SAASA,yBAAyBA,CAChCC,CAAiB,EACmD;EACpE,OAAOA,CAAC;AACV","ignoreList":[]}
1
+ {"version":3,"names":["_tableColumnPublicApiTest","c"],"sources":["../../../src/model/tableColumn.ts"],"sourcesContent":["import type { TableColumn as TableColumnWSR } from '@wix/design-system';\nimport type { Field, KeyedItem, SortMode, SortOrder } from '@wix/bex-core';\nimport { ComponentType, CSSProperties, ReactNode } from 'react';\nimport type { FieldType } from '../utils/fieldTypePrefixIcons';\nimport type { ValidationRule } from '../state/EditableTable/types';\n\ntype TableColumnBase<T = any> = Omit<\n TableColumnWSR<T>,\n 'sortDescending' | 'sortable' | 'infoTooltipProps' | 'style' | 'titleSuffix'\n> & {\n style?:\n | CSSProperties\n | ((\n column: TableColumnWSR,\n rowData: KeyedItem<T>,\n rowNum: number,\n ) => CSSProperties);\n reorderDisabled?: boolean;\n defaultSortOrder?: SortOrder;\n sortMode?: SortMode;\n searchable?: boolean;\n infoTooltipProps?: TableColumnWSR['infoTooltipProps'] & {\n panelContent?: ReactNode;\n };\n mobile?: ColumnMobileConfig;\n /**\n * The field type string used to resolve a prefix icon for the column.\n * Cairo maps this to the appropriate icon internally.\n * @external\n */\n fieldType?: FieldType;\n /**\n * Explicit prefix icons for the column (e.g. a custom field type's\n * `display.icons`). When present, used instead of the `fieldType` mapping.\n * @external\n */\n fieldTypeIcons?: { Small: ComponentType; Medium: ComponentType };\n /**\n * Whether the field contains personally identifiable information.\n * @external\n */\n isPii?: boolean;\n /**\n * only for cms. Whether this is a system-managed field.\n * @external\n */\n isSystem?: boolean;\n /**\n * Whether this is the primary display field.\n * @external\n */\n isPrimary?: boolean;\n /**\n * Column-level validation rules. When a `required` rule is present, a required indicator is shown in the custom columns panel.\n * @external\n */\n validation?: ValidationRule[];\n};\n\n// disallow specifying `hideable` / `defaultHidden` or setting `hiddenFromCustomColumnsSelection` as false when `id` is missing\ninterface TableColumnOptional<T> extends TableColumnBase<T> {\n id?: string;\n name?: string;\n hiddenFromCustomColumnsSelection?: undefined | true;\n hideable?: undefined;\n defaultHidden?: undefined;\n}\n\n// common case for custom column definition\ninterface TableColumnCustom<T> extends TableColumnBase<T> {\n id: string;\n name: string;\n hiddenFromCustomColumnsSelection?: false;\n hideable?: true;\n defaultHidden?: boolean;\n}\n\n// allow `name` to be optional when `title` exists\ninterface TableColumnCustomOptionalName<T> extends TableColumnBase<T> {\n id: string;\n name?: string;\n title: TableColumnBase['title'];\n hiddenFromCustomColumnsSelection?: false;\n hideable?: true;\n defaultHidden?: boolean;\n}\n\n// force `defaultHidden=false|undefined` when `hideable=false`\ninterface TableColumnCustomDefaultHidden<T> extends TableColumnBase<T> {\n id: string;\n name?: string;\n title: TableColumnBase['title'];\n hiddenFromCustomColumnsSelection?: false;\n hideable: false;\n defaultHidden?: undefined | false;\n}\n\nexport type CustomColumnConfig<T> =\n | TableColumnOptional<T>\n | TableColumnCustom<T>\n | TableColumnCustomDefaultHidden<T>\n | TableColumnCustomOptionalName<T>;\n\nexport interface SortableColumnConfig<T> extends TableColumnBase<T> {\n id: string;\n sortable: true;\n}\n\nexport interface NotSortableColumnConfig<T> extends TableColumnBase<T> {\n id?: string;\n sortable?: false;\n}\n\nexport type SortableConfig<T> =\n | SortableColumnConfig<T>\n | NotSortableColumnConfig<T>;\n\nexport type TableColumn<T> = CustomColumnConfig<T> & SortableConfig<T>;\n\n/**\n * Width of the mobile image column: 24px, 36px or 48px, matching the WDS\n * `Avatar` `size24` / `size36` / `size48`.\n * @external\n */\nexport type MobileImageSize = 'small' | 'medium' | 'large';\n\nexport type ColumnMobileConfig =\n | {\n /** Fixed-width column pinned to the left of the row. Only the first one is used. */\n column: 'image';\n /**\n * Image width.\n * @default 'medium'\n */\n size?: MobileImageSize;\n }\n | {\n /** The main block. Columns here stack vertically, one per line. */\n column: 'first';\n /**\n * Stacking position, lowest first. Columns with no `order` come last.\n * @default Infinity\n */\n order?: number;\n }\n | {\n /** A single column at the end of the row. */\n column?: 'second';\n };\n\nexport interface Column {\n /**\n * A unique identifier for the column. This value is required to enable [custom columns](./?path=/story/features-display-custom-columns--overview) or [sortable columns](./?path=/story/features-sort-sortable-columns-sortable-columns--sortable-columns).\n * @external\n */\n id: string;\n /**\n * A name for the column. This value is shown in the [custom columns](./?path=/story/features-display-custom-columns--overview) dropdown.\n * @external\n */\n name: string;\n /**\n * The text to be shown at the top of the column.\n * @external\n */\n title: TableColumnBase['title'];\n /**\n * Hides the column from the custom column selection panel, making it always visible. Relevant for [custom columns](./?path=/story/features-display-custom-columns--overview).\n * @external\n */\n hiddenFromCustomColumnsSelection?: boolean;\n /**\n * When `false`, the column is always selected and displayed. Relevant for [custom columns](./?path=/story/features-display-custom-columns--overview).\n */\n hideable?: boolean;\n /**\n * When `true`, search matches in the column's values will be highlighted. Mark a column as searchable only if iy's data is relevant for your search.\n */\n searchable?: boolean;\n /**\n * When `true`, disables drag and drop for the column.\n * @external\n */\n reorderDisabled?: boolean;\n /**\n * When `true`, makes the column a [sortable column](./?path=/story/features-sort-sortable-columns-sortable-columns--sortable-columns).\n * @external\n */\n sortable?: boolean;\n sortDescending?: boolean;\n sortMode?: SortMode;\n /**\n * Determines the default sort order for the column, either `asc` or `desc`. The column must be a [sortable column](./?path=/story/features-sort-sortable-columns-sortable-columns--sortable-columns).\n * @external\n */\n defaultSortOrder?: SortOrder;\n /**\n * For [custom columns](./?path=/story/features-display-custom-columns--overview), when `true`, this property causes the column to be unchecked and thus not shown by default. This isn't relevant when `hideable` `=` `false`.\n * @external\n */\n defaultHidden?: boolean;\n dataExtension?: { id: string; editable: boolean; isPii?: boolean };\n /** The source field this column was built from; used to resolve manage actions. */\n field?: Field;\n /**\n * Whether the field contains personally identifiable information.\n * @external\n */\n isPii?: boolean;\n /**\n * only for cms. Whether this is a system-managed field.\n * @external\n */\n isSystem?: boolean;\n /**\n * Whether this is the primary display field.\n * @external\n */\n isPrimary?: boolean;\n /**\n * Column-level validation rules. When a `required` rule is present, a required indicator is shown in the custom columns panel.\n * @external\n */\n validation?: ValidationRule[];\n infoTooltipProps?: {\n content?: ReactNode;\n panelContent?: ReactNode;\n };\n /**\n * A callback that is called for each row in the data to display the value of this row for the specified column.\n * @external\n */\n render: TableColumnWSR['render'];\n width?: TableColumnWSR['width'];\n style?: TableColumnWSR['style'];\n /**\n * Where this column goes on mobile. No `mobile` key means hidden on mobile.\n * - `{ column: 'image', size? }` - pinned to the left of the row.\n * - `{ column: 'first', order? }` - the main block, stacked one per line.\n * - `{ column: 'second' }` - the end of the row.\n * @external\n */\n mobile?: ColumnMobileConfig;\n /**\n * The field type string used to resolve a prefix icon for the column.\n * Cairo maps this to the appropriate icon internally.\n * @external\n */\n fieldType?: FieldType;\n /**\n * Explicit prefix icons for the column (e.g. a custom field type's\n * `display.icons`). When present, used instead of the `fieldType` mapping.\n * @external\n */\n fieldTypeIcons?: { Small: ComponentType; Medium: ComponentType };\n}\n\n// eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error\n// @ts-ignore\nfunction _tableColumnPublicApiTest<T>(\n c: TableColumn<T>,\n): Omit<Column, 'id' | 'name'> & Pick<Partial<Column>, 'id' | 'name'> {\n return c;\n}\n"],"mappings":";;;AA2DA;;AASA;;AASA;;AAUA;;AAgCA;AACA;AACA;AACA;AACA;;AAsIA;AACA;AACA,SAASA,yBAAyBA,CAChCC,CAAiB,EACmD;EACpE,OAAOA,CAAC;AACV","ignoreList":[]}
@@ -103,10 +103,12 @@ class CollectionFieldsSourceState {
103
103
  * again (e.g. on re-render) is a no-op.
104
104
  */
105
105
  static setOnTable(toolbar, source) {
106
- toolbar.collectionFieldsSource ?? (toolbar.collectionFieldsSource = new CollectionFieldsSourceState({
107
- ...source,
108
- toolbar
109
- }));
106
+ (0, _mobx.runInAction)(() => {
107
+ toolbar.collectionFieldsSource ?? (toolbar.collectionFieldsSource = new CollectionFieldsSourceState({
108
+ ...source,
109
+ toolbar
110
+ }));
111
+ });
110
112
  }
111
113
  buildFilters() {
112
114
  return (0, _buildFieldFilters.buildFieldFilters)(this.toolbar, this.fieldsSource, this.filterConfig, this.components.ReferenceFieldFilter);
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_bexCore","_schemaFieldsContainer","_buildFieldColumns","_handleFieldsSourceLoadError","_buildFieldFilters","_CustomFieldsPanelState","CollectionFieldsSourceState","constructor","params","_defineProperty2","default","TaskState","fieldsSource","toolbar","featuredPageActions","props","filterConfig","columnOverrides","schemaSource","editableCellFor","components","errorCode","customFieldsPanel","CustomFieldsPanelState","container","reportBi","closeSidePanel","createFieldActionsMenu","openFieldModal","opts","openCustomFieldModal","fieldId","origin","customOrigin","onSave","initialField","lockedProperties","fieldActionsMenu","fieldActionHandlers","createFieldActionHandlers","setOnTable","source","collectionFieldsSource","buildFilters","buildFieldFilters","ReferenceFieldFilter","registerFilters","registerFieldFilters","buildColumns","firstBuild","initTask","status","isSuccess","buildFieldColumns","syncColumns","columns","hasBuiltColumns","setExtendedColumns","mergeFields","fields","_this$fieldsSource$me","_this$fieldsSource","call","init","_fieldsContainerOf","_this$initTask$status","_this$toolbar$customC2","fieldsContainerOf","runOnce","load","promise","catch","handleLoadError","modal","customFieldModal","modalState","disposers","reaction","filterableFields","fireImmediately","isOpen","confirming","isLoading","isClosedAndSettled","_this$toolbar$customC","customColumnsState","clearPendingInsertPosition","events","addEventListener","_this$initTask$status2","forEach","d","handleFieldsSourceLoadError","error","reload","retryLoad","reset","exports"],"sources":["../../../src/state/CollectionFieldsSourceState.ts"],"sourcesContent":["import { reaction } from 'mobx';\nimport type { ComponentType } from 'react';\nimport { addEventListener, TaskState } from '@wix/bex-core';\nimport type {\n FieldsSource,\n CustomFieldOrigin,\n Field,\n OpenFieldModalOptions,\n Schema,\n SchemaSource,\n WixPatternsErrorCode,\n} from '@wix/bex-core';\nimport type { Column } from '../model';\nimport { fieldsContainerOf } from '../model/schemaFieldsContainer';\nimport type { ToolbarCollectionState } from './ToolbarCollectionState';\nimport { buildFieldColumns, ColumnOverridesContext } from './buildFieldColumns';\nimport { handleFieldsSourceLoadError } from './handleFieldsSourceLoadError';\nimport {\n buildFieldFilters,\n registerFieldFilters,\n type FieldFilterConfig,\n} from './buildFieldFilters';\nimport type {\n FilterElement,\n CollectionToolbarFiltersProps,\n} from '../components/CollectionToolbarFilters';\nimport type { MoreActionItemFactory } from '../components/MoreActions/MoreActionsBase';\nimport {\n CustomFieldsPanelState,\n type FieldActionsMenuBuilder,\n} from './CustomFields/CustomFieldsPanelState';\nimport type { FieldActionHandlersConfig } from '../components/FieldActions';\nimport type { CustomColumnsBaseProps } from '../components/CustomColumns/CustomColumns';\nimport type { ReferenceFieldFilterProps } from '../components/ReferenceFieldFilter/ReferenceFieldFilter';\n\n/** A cell type plus the config its editor needs, for a field the default\n * type→cell mapping can't fully resolve on its own. */\nexport interface EditableCellUpgrade {\n cellType: string;\n typeConfig: unknown;\n}\n\n/** Builds the raw field-management for one field (handlers + registry metadata). */\ntype FieldActionHandlersBuilder = (args: {\n fieldId: string;\n origin: CustomFieldOrigin;\n location: string;\n}) => FieldActionHandlersConfig | null;\n\n/**\n * Components the source attaches at construction time so the table chunk can\n * render them via `source.components.X` instead of statically importing them.\n * Each source's rendering file (dataExtensionRendering / schemaRendering) is\n * the only place these are imported — those files are reachable only from the\n * source's feature module, so the components ship in that chunk, not the\n * table chunk.\n */\nexport interface FieldsSourceComponents {\n FieldManagementModals: ComponentType<{ source: CollectionFieldsSourceState }>;\n CustomColumns: ComponentType<CustomColumnsBaseProps>;\n CollectionToolbarFilters: ComponentType<CollectionToolbarFiltersProps>;\n /** Filters a reference field by the referenced items. Omit it and reference\n * fields get no filter — which is what a source with no reference fields\n * wants, since the component pulls the referenced-item avatar in with it. */\n ReferenceFieldFilter?: ComponentType<ReferenceFieldFilterProps>;\n}\n\n/**\n * The source-specific behavior a collection supplies on top of its FieldsSource\n * (data) — column tweaks, filter behavior, the manage-fields panel, page actions,\n * field actions, and the field-management modal states. A source builds one of\n * these (dataExtensionRendering / schemaRendering); it is spread onto\n * CollectionFieldsSourceState, which owns the pieces directly. The collection\n * renders these with shared, source-neutral components.\n */\nexport interface FieldsSourceRendering {\n /** The schema behind this source, when it has one. The collection initializes\n * the fields container the schema carries; the components read it off the\n * same object for React context. */\n schemaSource?: SchemaSource<any>;\n /**\n * Lets a source replace any column property the shared builder produces,\n * including the render function for media types. Called per field.\n */\n columnOverrides?(field: Field, ctx: ColumnOverridesContext): Partial<Column>;\n /**\n * The editable cell for a field whose editor needs `typeConfig` only the\n * source can supply (a reference cell's referenced collection). Called per\n * field when building editable columns; `undefined` keeps the default mapping\n * for that field type, which for those types is a read-only display.\n */\n editableCellFor?(field: Field): EditableCellUpgrade | undefined;\n /** Per-source filter behavior (text operators, decimal, type icon). */\n filterConfig: FieldFilterConfig;\n /**\n * Builds the source's per-field actions menu for the panel it belongs to. The\n * spine builds the panel and passes it in; the resulting menu drives both the\n * manage-fields panel and the customize-columns header.\n */\n createFieldActionsMenu: (\n panel: CustomFieldsPanelState,\n ) => FieldActionsMenuBuilder;\n /**\n * Builds the raw field-management for one field (handlers + registry metadata)\n * for the panel it belongs to, before grouping. The header merges these with\n * its table-intrinsic actions (sort / hide / filter). Omitted by sources with\n * no field actions.\n */\n createFieldActionHandlers?: (\n panel: CustomFieldsPanelState,\n ) => FieldActionHandlersBuilder;\n featuredPageActions: MoreActionItemFactory[];\n props?: { disableDefaultPageAction?: boolean };\n /** BI error code reported when the source's load fails. Default: 'InitCustomFieldsDataExtensionFailed'. */\n errorCode?: WixPatternsErrorCode;\n /** The source provides these so the table chunk renders them via DI rather\n * than static import. See FieldsSourceComponents. */\n components: FieldsSourceComponents;\n}\n\n/**\n * A collection's field source: the FieldsSource (data) plus the source's UI,\n * held as flat members. The toolbar holds one of these rather than a specific\n * source. It owns the load status (initTask); field and filter reads pass\n * through to the FieldsSource's own observables.\n */\nexport class CollectionFieldsSourceState {\n readonly fieldsSource: FieldsSource;\n /** The field-management state (modals + per-field menu). Built here from the\n * source's config so every source gets the same panel. */\n readonly customFieldsPanel: CustomFieldsPanelState;\n readonly featuredPageActions: MoreActionItemFactory[];\n readonly props?: { disableDefaultPageAction?: boolean };\n readonly filterConfig: FieldFilterConfig;\n readonly openFieldModal: (opts?: OpenFieldModalOptions) => void;\n readonly fieldActionsMenu: FieldActionsMenuBuilder;\n readonly fieldActionHandlers?: FieldActionHandlersBuilder;\n readonly components: FieldsSourceComponents;\n /** Read by the source-driven components, which put its fields container in\n * React context. */\n readonly schemaSource?: SchemaSource<any>;\n /** Read by EditableTableState when it builds the source's editable columns. */\n readonly editableCellFor?: FieldsSourceRendering['editableCellFor'];\n private readonly columnOverrides?: FieldsSourceRendering['columnOverrides'];\n private readonly toolbar: ToolbarCollectionState<any, any>;\n private readonly errorCode: WixPatternsErrorCode;\n private hasBuiltColumns = false;\n\n constructor(\n params: {\n fieldsSource: FieldsSource;\n toolbar: ToolbarCollectionState<any, any>;\n } & FieldsSourceRendering,\n ) {\n this.fieldsSource = params.fieldsSource;\n this.toolbar = params.toolbar;\n this.featuredPageActions = params.featuredPageActions;\n this.props = params.props;\n this.filterConfig = params.filterConfig;\n this.columnOverrides = params.columnOverrides;\n this.schemaSource = params.schemaSource;\n this.editableCellFor = params.editableCellFor;\n this.components = params.components;\n this.errorCode = params.errorCode ?? 'InitCustomFieldsDataExtensionFailed';\n\n // The panel is generic — the source supplies only its config (the menu\n // factory); the table's container/reportBi wire it up. The panel builds all\n // three field-management modals (add/edit, archive, delete) itself.\n this.customFieldsPanel = new CustomFieldsPanelState({\n fieldsSource: params.fieldsSource,\n container: this.toolbar.container,\n reportBi: this.toolbar.reportBi,\n closeSidePanel: this.toolbar.closeSidePanel,\n createFieldActionsMenu: params.createFieldActionsMenu,\n });\n // Opening the add/edit modal and reading the per-field menu are the same for\n // every source, so derive them from the panel rather than per-source.\n this.openFieldModal = (opts) =>\n this.customFieldsPanel.openCustomFieldModal({\n fieldId: opts?.fieldId,\n origin: opts?.origin ?? 'external',\n customOrigin: opts?.customOrigin,\n onSave: opts?.onSave,\n initialField: opts?.initialField,\n lockedProperties: opts?.lockedProperties,\n });\n this.fieldActionsMenu = this.customFieldsPanel.fieldActionsMenu;\n this.fieldActionHandlers = params.createFieldActionHandlers?.(\n this.customFieldsPanel,\n );\n }\n\n /**\n * Attaches a source to a table's toolbar. Builds the wrapper once; calling it\n * again (e.g. on re-render) is a no-op.\n */\n static setOnTable(\n toolbar: ToolbarCollectionState<any, any>,\n source: { fieldsSource: FieldsSource } & FieldsSourceRendering,\n ) {\n toolbar.collectionFieldsSource ??= new CollectionFieldsSourceState({\n ...source,\n toolbar,\n });\n }\n\n readonly initTask = new TaskState();\n\n buildFilters(): FilterElement[] {\n return buildFieldFilters(\n this.toolbar,\n this.fieldsSource,\n this.filterConfig,\n this.components.ReferenceFieldFilter,\n );\n }\n\n /** Registers a filter state per filterable field on the collection query. */\n registerFilters() {\n registerFieldFilters(\n this.toolbar,\n this.fieldsSource,\n this.filterConfig,\n this.components.ReferenceFieldFilter,\n );\n }\n\n /**\n * Builds the columns from the fields, or null while the source is still\n * loading so existing columns are kept.\n */\n buildColumns(firstBuild: boolean): Column[] | null {\n if (!this.initTask.status.isSuccess) {\n return null;\n }\n return buildFieldColumns(this.fieldsSource, this.columnOverrides, {\n firstBuild,\n });\n }\n\n syncColumns() {\n const columns = this.buildColumns(!this.hasBuiltColumns);\n if (columns) {\n this.toolbar.setExtendedColumns(columns);\n this.hasBuiltColumns = true;\n }\n }\n\n /** Merges a returned fields map into the source (no refetch). No-ops for sources\n * that don't support in-place merging. The fields reaction rebuilds columns. */\n mergeFields(fields: Schema['fields']) {\n this.fieldsSource.mergeFields?.(fields);\n }\n\n init() {\n // Idempotent, and the field renderers can't translate until it resolves.\n fieldsContainerOf(this.schemaSource)?.init();\n this.initTask.runOnce(() => this.fieldsSource.load());\n this.initTask.status.promise?.catch(() => this.handleLoadError());\n\n const { modal } = this.customFieldsPanel.customFieldModal.modalState;\n\n const disposers = [\n // Push the columns once the source loads, and again whenever the field\n // list changes (add/edit/delete field). The first push starts every\n // column hidden; later pushes keep the user's selection.\n reaction(\n () =>\n [this.fieldsSource.fields, this.initTask.status.isSuccess] as const,\n () => this.syncColumns(),\n ),\n // Register a filter state per filterable field. filterableFields populates\n // inside the source's load (before initTask resolves), so the collection's\n // initial fetch still waits for these — matching the prior per-source timing.\n reaction(\n () => this.fieldsSource.filterableFields,\n () => this.registerFilters(),\n { fireImmediately: true },\n ),\n // Dismissing the modal doesn't cancel an in-flight field creation.\n // Keep its position until the request finishes, including on failure.\n reaction(\n () => !modal.isOpen && !modal.confirming.isLoading,\n (isClosedAndSettled) => {\n if (isClosedAndSettled) {\n this.toolbar.customColumnsState?.clearPendingInsertPosition();\n }\n },\n ),\n // Make custom-columns storage reconciliation wait until this source's\n // columns are built, so a stored hide/show selection for source fields\n // survives a reload. Covers any source.\n ...(this.toolbar.customColumnsState?.events\n ? [\n addEventListener(\n this.toolbar.customColumnsState.events,\n 'beforeInitialFetch',\n () => this.initTask.status.promise?.catch(() => {}),\n ),\n ]\n : []),\n ];\n\n return () => {\n disposers.forEach((d) => d?.());\n };\n }\n\n private handleLoadError() {\n handleFieldsSourceLoadError({\n container: this.toolbar.container,\n reportBi: this.toolbar.reportBi,\n error: this.initTask.status.error,\n errorCode: this.errorCode,\n reload: () => this.retryLoad(),\n });\n }\n\n /** Re-runs the source load after a failure (the retry toast). */\n private retryLoad() {\n this.initTask.reset();\n this.initTask.runOnce(() => this.fieldsSource.load());\n return this.initTask.status.promise;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_mobx","require","_bexCore","_schemaFieldsContainer","_buildFieldColumns","_handleFieldsSourceLoadError","_buildFieldFilters","_CustomFieldsPanelState","CollectionFieldsSourceState","constructor","params","_defineProperty2","default","TaskState","fieldsSource","toolbar","featuredPageActions","props","filterConfig","columnOverrides","schemaSource","editableCellFor","components","errorCode","customFieldsPanel","CustomFieldsPanelState","container","reportBi","closeSidePanel","createFieldActionsMenu","openFieldModal","opts","openCustomFieldModal","fieldId","origin","customOrigin","onSave","initialField","lockedProperties","fieldActionsMenu","fieldActionHandlers","createFieldActionHandlers","setOnTable","source","runInAction","collectionFieldsSource","buildFilters","buildFieldFilters","ReferenceFieldFilter","registerFilters","registerFieldFilters","buildColumns","firstBuild","initTask","status","isSuccess","buildFieldColumns","syncColumns","columns","hasBuiltColumns","setExtendedColumns","mergeFields","fields","_this$fieldsSource$me","_this$fieldsSource","call","init","_fieldsContainerOf","_this$initTask$status","_this$toolbar$customC2","fieldsContainerOf","runOnce","load","promise","catch","handleLoadError","modal","customFieldModal","modalState","disposers","reaction","filterableFields","fireImmediately","isOpen","confirming","isLoading","isClosedAndSettled","_this$toolbar$customC","customColumnsState","clearPendingInsertPosition","events","addEventListener","_this$initTask$status2","forEach","d","handleFieldsSourceLoadError","error","reload","retryLoad","reset","exports"],"sources":["../../../src/state/CollectionFieldsSourceState.ts"],"sourcesContent":["import { reaction, runInAction } from 'mobx';\nimport type { ComponentType } from 'react';\nimport { addEventListener, TaskState } from '@wix/bex-core';\nimport type {\n FieldsSource,\n CustomFieldOrigin,\n Field,\n OpenFieldModalOptions,\n Schema,\n SchemaSource,\n WixPatternsErrorCode,\n} from '@wix/bex-core';\nimport type { Column } from '../model';\nimport { fieldsContainerOf } from '../model/schemaFieldsContainer';\nimport type { ToolbarCollectionState } from './ToolbarCollectionState';\nimport { buildFieldColumns, ColumnOverridesContext } from './buildFieldColumns';\nimport { handleFieldsSourceLoadError } from './handleFieldsSourceLoadError';\nimport {\n buildFieldFilters,\n registerFieldFilters,\n type FieldFilterConfig,\n} from './buildFieldFilters';\nimport type {\n FilterElement,\n CollectionToolbarFiltersProps,\n} from '../components/CollectionToolbarFilters';\nimport type { MoreActionItemFactory } from '../components/MoreActions/MoreActionsBase';\nimport {\n CustomFieldsPanelState,\n type FieldActionsMenuBuilder,\n} from './CustomFields/CustomFieldsPanelState';\nimport type { FieldActionHandlersConfig } from '../components/FieldActions';\nimport type { CustomColumnsBaseProps } from '../components/CustomColumns/CustomColumns';\nimport type { ReferenceFieldFilterProps } from '../components/ReferenceFieldFilter/ReferenceFieldFilter';\n\n/** A cell type plus the config its editor needs, for a field the default\n * type→cell mapping can't fully resolve on its own. */\nexport interface EditableCellUpgrade {\n cellType: string;\n typeConfig: unknown;\n}\n\n/** Builds the raw field-management for one field (handlers + registry metadata). */\ntype FieldActionHandlersBuilder = (args: {\n fieldId: string;\n origin: CustomFieldOrigin;\n location: string;\n}) => FieldActionHandlersConfig | null;\n\n/**\n * Components the source attaches at construction time so the table chunk can\n * render them via `source.components.X` instead of statically importing them.\n * Each source's rendering file (dataExtensionRendering / schemaRendering) is\n * the only place these are imported — those files are reachable only from the\n * source's feature module, so the components ship in that chunk, not the\n * table chunk.\n */\nexport interface FieldsSourceComponents {\n FieldManagementModals: ComponentType<{ source: CollectionFieldsSourceState }>;\n CustomColumns: ComponentType<CustomColumnsBaseProps>;\n CollectionToolbarFilters: ComponentType<CollectionToolbarFiltersProps>;\n /** Filters a reference field by the referenced items. Omit it and reference\n * fields get no filter — which is what a source with no reference fields\n * wants, since the component pulls the referenced-item avatar in with it. */\n ReferenceFieldFilter?: ComponentType<ReferenceFieldFilterProps>;\n}\n\n/**\n * The source-specific behavior a collection supplies on top of its FieldsSource\n * (data) — column tweaks, filter behavior, the manage-fields panel, page actions,\n * field actions, and the field-management modal states. A source builds one of\n * these (dataExtensionRendering / schemaRendering); it is spread onto\n * CollectionFieldsSourceState, which owns the pieces directly. The collection\n * renders these with shared, source-neutral components.\n */\nexport interface FieldsSourceRendering {\n /** The schema behind this source, when it has one. The collection initializes\n * the fields container the schema carries; the components read it off the\n * same object for React context. */\n schemaSource?: SchemaSource<any>;\n /**\n * Lets a source replace any column property the shared builder produces,\n * including the render function for media types. Called per field.\n */\n columnOverrides?(field: Field, ctx: ColumnOverridesContext): Partial<Column>;\n /**\n * The editable cell for a field whose editor needs `typeConfig` only the\n * source can supply (a reference cell's referenced collection). Called per\n * field when building editable columns; `undefined` keeps the default mapping\n * for that field type, which for those types is a read-only display.\n */\n editableCellFor?(field: Field): EditableCellUpgrade | undefined;\n /** Per-source filter behavior (text operators, decimal, type icon). */\n filterConfig: FieldFilterConfig;\n /**\n * Builds the source's per-field actions menu for the panel it belongs to. The\n * spine builds the panel and passes it in; the resulting menu drives both the\n * manage-fields panel and the customize-columns header.\n */\n createFieldActionsMenu: (\n panel: CustomFieldsPanelState,\n ) => FieldActionsMenuBuilder;\n /**\n * Builds the raw field-management for one field (handlers + registry metadata)\n * for the panel it belongs to, before grouping. The header merges these with\n * its table-intrinsic actions (sort / hide / filter). Omitted by sources with\n * no field actions.\n */\n createFieldActionHandlers?: (\n panel: CustomFieldsPanelState,\n ) => FieldActionHandlersBuilder;\n featuredPageActions: MoreActionItemFactory[];\n props?: { disableDefaultPageAction?: boolean };\n /** BI error code reported when the source's load fails. Default: 'InitCustomFieldsDataExtensionFailed'. */\n errorCode?: WixPatternsErrorCode;\n /** The source provides these so the table chunk renders them via DI rather\n * than static import. See FieldsSourceComponents. */\n components: FieldsSourceComponents;\n}\n\n/**\n * A collection's field source: the FieldsSource (data) plus the source's UI,\n * held as flat members. The toolbar holds one of these rather than a specific\n * source. It owns the load status (initTask); field and filter reads pass\n * through to the FieldsSource's own observables.\n */\nexport class CollectionFieldsSourceState {\n readonly fieldsSource: FieldsSource;\n /** The field-management state (modals + per-field menu). Built here from the\n * source's config so every source gets the same panel. */\n readonly customFieldsPanel: CustomFieldsPanelState;\n readonly featuredPageActions: MoreActionItemFactory[];\n readonly props?: { disableDefaultPageAction?: boolean };\n readonly filterConfig: FieldFilterConfig;\n readonly openFieldModal: (opts?: OpenFieldModalOptions) => void;\n readonly fieldActionsMenu: FieldActionsMenuBuilder;\n readonly fieldActionHandlers?: FieldActionHandlersBuilder;\n readonly components: FieldsSourceComponents;\n /** Read by the source-driven components, which put its fields container in\n * React context. */\n readonly schemaSource?: SchemaSource<any>;\n /** Read by EditableTableState when it builds the source's editable columns. */\n readonly editableCellFor?: FieldsSourceRendering['editableCellFor'];\n private readonly columnOverrides?: FieldsSourceRendering['columnOverrides'];\n private readonly toolbar: ToolbarCollectionState<any, any>;\n private readonly errorCode: WixPatternsErrorCode;\n private hasBuiltColumns = false;\n\n constructor(\n params: {\n fieldsSource: FieldsSource;\n toolbar: ToolbarCollectionState<any, any>;\n } & FieldsSourceRendering,\n ) {\n this.fieldsSource = params.fieldsSource;\n this.toolbar = params.toolbar;\n this.featuredPageActions = params.featuredPageActions;\n this.props = params.props;\n this.filterConfig = params.filterConfig;\n this.columnOverrides = params.columnOverrides;\n this.schemaSource = params.schemaSource;\n this.editableCellFor = params.editableCellFor;\n this.components = params.components;\n this.errorCode = params.errorCode ?? 'InitCustomFieldsDataExtensionFailed';\n\n // The panel is generic — the source supplies only its config (the menu\n // factory); the table's container/reportBi wire it up. The panel builds all\n // three field-management modals (add/edit, archive, delete) itself.\n this.customFieldsPanel = new CustomFieldsPanelState({\n fieldsSource: params.fieldsSource,\n container: this.toolbar.container,\n reportBi: this.toolbar.reportBi,\n closeSidePanel: this.toolbar.closeSidePanel,\n createFieldActionsMenu: params.createFieldActionsMenu,\n });\n // Opening the add/edit modal and reading the per-field menu are the same for\n // every source, so derive them from the panel rather than per-source.\n this.openFieldModal = (opts) =>\n this.customFieldsPanel.openCustomFieldModal({\n fieldId: opts?.fieldId,\n origin: opts?.origin ?? 'external',\n customOrigin: opts?.customOrigin,\n onSave: opts?.onSave,\n initialField: opts?.initialField,\n lockedProperties: opts?.lockedProperties,\n });\n this.fieldActionsMenu = this.customFieldsPanel.fieldActionsMenu;\n this.fieldActionHandlers = params.createFieldActionHandlers?.(\n this.customFieldsPanel,\n );\n }\n\n /**\n * Attaches a source to a table's toolbar. Builds the wrapper once; calling it\n * again (e.g. on re-render) is a no-op.\n */\n static setOnTable(\n toolbar: ToolbarCollectionState<any, any>,\n source: { fieldsSource: FieldsSource } & FieldsSourceRendering,\n ) {\n runInAction(() => {\n toolbar.collectionFieldsSource ??= new CollectionFieldsSourceState({\n ...source,\n toolbar,\n });\n });\n }\n\n readonly initTask = new TaskState();\n\n buildFilters(): FilterElement[] {\n return buildFieldFilters(\n this.toolbar,\n this.fieldsSource,\n this.filterConfig,\n this.components.ReferenceFieldFilter,\n );\n }\n\n /** Registers a filter state per filterable field on the collection query. */\n registerFilters() {\n registerFieldFilters(\n this.toolbar,\n this.fieldsSource,\n this.filterConfig,\n this.components.ReferenceFieldFilter,\n );\n }\n\n /**\n * Builds the columns from the fields, or null while the source is still\n * loading so existing columns are kept.\n */\n buildColumns(firstBuild: boolean): Column[] | null {\n if (!this.initTask.status.isSuccess) {\n return null;\n }\n return buildFieldColumns(this.fieldsSource, this.columnOverrides, {\n firstBuild,\n });\n }\n\n syncColumns() {\n const columns = this.buildColumns(!this.hasBuiltColumns);\n if (columns) {\n this.toolbar.setExtendedColumns(columns);\n this.hasBuiltColumns = true;\n }\n }\n\n /** Merges a returned fields map into the source (no refetch). No-ops for sources\n * that don't support in-place merging. The fields reaction rebuilds columns. */\n mergeFields(fields: Schema['fields']) {\n this.fieldsSource.mergeFields?.(fields);\n }\n\n init() {\n // Idempotent, and the field renderers can't translate until it resolves.\n fieldsContainerOf(this.schemaSource)?.init();\n this.initTask.runOnce(() => this.fieldsSource.load());\n this.initTask.status.promise?.catch(() => this.handleLoadError());\n\n const { modal } = this.customFieldsPanel.customFieldModal.modalState;\n\n const disposers = [\n // Push the columns once the source loads, and again whenever the field\n // list changes (add/edit/delete field). The first push starts every\n // column hidden; later pushes keep the user's selection.\n reaction(\n () =>\n [this.fieldsSource.fields, this.initTask.status.isSuccess] as const,\n () => this.syncColumns(),\n ),\n // Register a filter state per filterable field. filterableFields populates\n // inside the source's load (before initTask resolves), so the collection's\n // initial fetch still waits for these — matching the prior per-source timing.\n reaction(\n () => this.fieldsSource.filterableFields,\n () => this.registerFilters(),\n { fireImmediately: true },\n ),\n // Dismissing the modal doesn't cancel an in-flight field creation.\n // Keep its position until the request finishes, including on failure.\n reaction(\n () => !modal.isOpen && !modal.confirming.isLoading,\n (isClosedAndSettled) => {\n if (isClosedAndSettled) {\n this.toolbar.customColumnsState?.clearPendingInsertPosition();\n }\n },\n ),\n // Make custom-columns storage reconciliation wait until this source's\n // columns are built, so a stored hide/show selection for source fields\n // survives a reload. Covers any source.\n ...(this.toolbar.customColumnsState?.events\n ? [\n addEventListener(\n this.toolbar.customColumnsState.events,\n 'beforeInitialFetch',\n () => this.initTask.status.promise?.catch(() => {}),\n ),\n ]\n : []),\n ];\n\n return () => {\n disposers.forEach((d) => d?.());\n };\n }\n\n private handleLoadError() {\n handleFieldsSourceLoadError({\n container: this.toolbar.container,\n reportBi: this.toolbar.reportBi,\n error: this.initTask.status.error,\n errorCode: this.errorCode,\n reload: () => this.retryLoad(),\n });\n }\n\n /** Re-runs the source load after a failure (the retry toast). */\n private retryLoad() {\n this.initTask.reset();\n this.initTask.runOnce(() => this.fieldsSource.load());\n return this.initTask.status.promise;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -5,15 +5,15 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
5
5
  var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
6
6
  // @ts-nocheck
7
7
 
8
- var _namespace_ = "CollectionPageHeader2841821885";
8
+ var _namespace_ = "CollectionPageHeader1790822900";
9
9
  var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
10
10
  var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
11
11
  var style = exports.style = _style_;
12
12
  var st = exports.st = _style_;
13
13
  var namespace = exports.namespace = _namespace_;
14
14
  var classes = exports.classes = {
15
- "root": "CollectionPageHeader2841821885__root",
16
- "mobileMoreActions": "CollectionPageHeader2841821885__mobileMoreActions"
15
+ "root": "CollectionPageHeader1790822900__root",
16
+ "mobileMoreActions": "CollectionPageHeader1790822900__mobileMoreActions"
17
17
  };
18
18
  var keyframes = exports.keyframes = {};
19
19
  var layers = exports.layers = {};
@@ -1 +1 @@
1
- {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/CollectionPage/CollectionPageHeader.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"CollectionPageHeader2841821885\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"CollectionPageHeader2841821885__root\",\"mobileMoreActions\":\"CollectionPageHeader2841821885__mobileMoreActions\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {\"wds-page-header-title-actions-gap\":\"--wds-page-header-title-actions-gap\"}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,gCAAgC;AAClD,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC,sCAAsC;EAAC,mBAAmB,EAAC;AAAmD,CAAC;AACrI,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG;EAAC,mCAAmC,EAAC;AAAqC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/CollectionPage/CollectionPageHeader.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"CollectionPageHeader1790822900\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"CollectionPageHeader1790822900__root\",\"mobileMoreActions\":\"CollectionPageHeader1790822900__mobileMoreActions\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {\"wds-page-header-title-actions-gap\":\"--wds-page-header-title-actions-gap\"}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,gCAAgC;AAClD,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC,sCAAsC;EAAC,mBAAmB,EAAC;AAAmD,CAAC;AACrI,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG;EAAC,mCAAmC,EAAC;AAAqC,CAAC","ignoreList":[]}
@@ -5,14 +5,14 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
5
5
  var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
6
6
  // @ts-nocheck
7
7
 
8
- var _namespace_ = "MobilePrimaryActionBar1135495497";
8
+ var _namespace_ = "MobilePrimaryActionBar3753253024";
9
9
  var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
10
10
  var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
11
11
  var style = exports.style = _style_;
12
12
  var st = exports.st = _style_;
13
13
  var namespace = exports.namespace = _namespace_;
14
14
  var classes = exports.classes = {
15
- "root": "MobilePrimaryActionBar1135495497__root"
15
+ "root": "MobilePrimaryActionBar3753253024__root"
16
16
  };
17
17
  var keyframes = exports.keyframes = {};
18
18
  var layers = exports.layers = {};
@@ -1 +1 @@
1
- {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/CollectionPage/MobilePrimaryActionBar.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"MobilePrimaryActionBar1135495497\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"MobilePrimaryActionBar1135495497__root\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {\"wds-space-300\":\"--wds-space-300\",\"wds-space-400\":\"--wds-space-400\"}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,kCAAkC;AACpD,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC;AAAwC,CAAC;AAC/D,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG;EAAC,eAAe,EAAC,iBAAiB;EAAC,eAAe,EAAC;AAAiB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/CollectionPage/MobilePrimaryActionBar.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"MobilePrimaryActionBar3753253024\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"MobilePrimaryActionBar3753253024__root\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {\"wds-space-300\":\"--wds-space-300\",\"wds-space-400\":\"--wds-space-400\"}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,kCAAkC;AACpD,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC;AAAwC,CAAC;AAC/D,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG;EAAC,eAAe,EAAC,iBAAiB;EAAC,eAAe,EAAC;AAAiB,CAAC","ignoreList":[]}
@@ -5,16 +5,16 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
5
5
  var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
6
6
  // @ts-nocheck
7
7
 
8
- var _namespace_ = "TitleBadges789200656";
8
+ var _namespace_ = "TitleBadges176837811";
9
9
  var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
10
10
  var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
11
11
  var style = exports.style = _style_;
12
12
  var st = exports.st = _style_;
13
13
  var namespace = exports.namespace = _namespace_;
14
14
  var classes = exports.classes = {
15
- "root": "TitleBadges789200656__root",
16
- "tooltip": "TitleBadges789200656__tooltip",
17
- "tooltipTrigger": "TitleBadges789200656__tooltipTrigger"
15
+ "root": "TitleBadges176837811__root",
16
+ "tooltip": "TitleBadges176837811__tooltip",
17
+ "tooltipTrigger": "TitleBadges176837811__tooltipTrigger"
18
18
  };
19
19
  var keyframes = exports.keyframes = {};
20
20
  var layers = exports.layers = {};
@@ -1 +1 @@
1
- {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/CollectionPage/TitleBadges.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"TitleBadges789200656\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"TitleBadges789200656__root\",\"tooltip\":\"TitleBadges789200656__tooltip\",\"tooltipTrigger\":\"TitleBadges789200656__tooltipTrigger\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,sBAAsB;AACxC,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC,4BAA4B;EAAC,SAAS,EAAC,+BAA+B;EAAC,gBAAgB,EAAC;AAAsC,CAAC;AACrJ,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/CollectionPage/TitleBadges.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"TitleBadges176837811\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"TitleBadges176837811__root\",\"tooltip\":\"TitleBadges176837811__tooltip\",\"tooltipTrigger\":\"TitleBadges176837811__tooltipTrigger\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,sBAAsB;AACxC,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC,4BAA4B;EAAC,SAAS,EAAC,+BAA+B;EAAC,gBAAgB,EAAC;AAAsC,CAAC;AACrJ,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
@@ -28,6 +28,7 @@ class CellValueState {
28
28
  commitHandler: _mobx.action,
29
29
  applyBulkRawValues: _mobx.action,
30
30
  applyBulkValues: _mobx.action,
31
+ revalidatePendingCells: _mobx.action,
31
32
  flushDrafts: _mobx.action,
32
33
  flushRow: _mobx.action,
33
34
  dropRowCellState: _mobx.action
@@ -314,7 +315,8 @@ class CellValueState {
314
315
  if (pendingKey) {
315
316
  this._pendingCells.set(pendingKey, {
316
317
  value,
317
- errors: [error]
318
+ errors: [error],
319
+ isDeserializationError: true
318
320
  });
319
321
  }
320
322
  } else {
@@ -417,6 +419,24 @@ class CellValueState {
417
419
  });
418
420
  }
419
421
  }
422
+ revalidatePendingCells() {
423
+ const rowsToSave = new Set();
424
+ for (const [key, pending] of this._pendingCells) {
425
+ const cell = (0, _utils.parseCellKey)(key);
426
+ if (!cell || pending.isDeserializationError) {
427
+ continue;
428
+ }
429
+ this._applyValue(cell.rowKey, cell.columnId, pending.value);
430
+ if (!this._pendingCells.has(key)) {
431
+ rowsToSave.add(cell.rowKey);
432
+ }
433
+ }
434
+ for (const rowKey of rowsToSave) {
435
+ if (!this._parent.cellInteraction.isRowActive(rowKey)) {
436
+ this.flushRow(rowKey);
437
+ }
438
+ }
439
+ }
420
440
  flushDrafts(exceptRowKey) {
421
441
  this._flushRows(rowKey => rowKey !== exceptRowKey);
422
442
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_cellTypes","_utils","builtInCellTypeMap","Map","builtInCellTypes","map","ct","type","CellValueState","constructor","parent","extraCellTypes","_defineProperty2","default","_parent","_extraCellTypes","makeObservable","_pendingCells","observable","_draftCells","_cellTypeMap","computed","clearCells","action","toggleCell","commitHandler","applyBulkRawValues","applyBulkValues","flushDrafts","flushRow","dropRowCellState","col","allColumns","cellType","typeConfig","set","id","get","textCellType","resolveCellTypeByColumnId","columnId","getCellDisplayValue","rowKey","pending","_getPendingCell","value","draft","_getDraftCell","column","_columnMap","keyedItem","_getKeyedItem","getValue","item","undefined","getCellValidation","valid","errors","validResult","validateEditingValue","_this$_parent$collect","resolved","normalized","normalizeOnCommit","runCellValidation","validation","validate","collection","translate","isCellEditable","editable","EditComponent","isColumnEditable","setValue","getCellActionDisabledTooltip","actionId","cell","contextMenu","context","field","configs","cut","copy","clear","config","tooltip","disabledTooltip","getActionableCells","cells","filter","getCellActionMenuAvailability","isAvailableWithoutCustomPolicy","disabled","serializeCellValue","serialize","String","changes","pendingKey","_pendingCellKey","delete","push","length","toggleValue","newValue","hasValueChanged","Object","is","_applyValue","bi","cellEditCommitted","origin","editingValue","key","tryDeserialize","rawValue","deserialize","_this$_parent$collect2","error","invalidInputMessage","rawChanges","rowUpdates","_this$_parent$collect3","result","mutation","isLocalNewRow","rowUpdate","consumed","_consumeRowDrafts","changedFieldIds","Set","add","updates","Array","from","values","updateItems","_this$_parent$collect4","exceptRowKey","_flushRows","includeRow","invalidNewRows","_drafts","keys","_validateNewRow","rowKeys","entry","has","commitNewRow","prefix","startsWith","exports"],"sources":["../../../../src/state/EditableTable/CellValueState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\nimport type { CellType, Cell, ValidationResult } from './types';\nimport type { EditableCellContextMenuAction, FiltersMap } from '@wix/bex-core';\nimport type { EditableTableState } from './EditableTableState';\nimport {\n builtInCellTypes,\n textCellType,\n} from '../../components/EditableTable/cellTypes';\nimport { runCellValidation, validResult } from './utils';\n\nconst builtInCellTypeMap = new Map<string, CellType>(\n builtInCellTypes.map((ct) => [ct.type, ct]),\n);\n\nexport class CellValueState<T, F extends FiltersMap> {\n /** Pending invalid cell values, keyed by `${itemId}:${colId}`. */\n readonly _pendingCells = new Map<string, { value: any; errors: string[] }>();\n\n /** Valid committed values not yet saved, keyed by `${itemId}:${colId}`.\n * Each row's drafts are flushed as one update when focus leaves the row. */\n readonly _draftCells = new Map<\n string,\n { rowKey: string; columnId: string; value: any }\n >();\n\n private readonly _parent: EditableTableState<T, F>;\n private readonly _extraCellTypes: Map<string, CellType>;\n\n constructor(\n parent: EditableTableState<T, F>,\n extraCellTypes: Map<string, CellType> = new Map(),\n ) {\n this._parent = parent;\n this._extraCellTypes = extraCellTypes;\n\n makeObservable(this, {\n _pendingCells: observable,\n _draftCells: observable,\n _cellTypeMap: computed,\n clearCells: action,\n toggleCell: action,\n commitHandler: action,\n applyBulkRawValues: action,\n applyBulkValues: action,\n flushDrafts: action,\n flushRow: action,\n dropRowCellState: action,\n });\n }\n\n // Cell-type config per column id, from the merged columns (consumer columns\n // plus the columns the wired source adds). A computed so source columns that\n // load after init still get their cell types registered, without a rebuild.\n get _cellTypeMap(): Map<string, CellType> {\n const map = new Map<string, CellType>();\n for (const col of this._parent.allColumns) {\n if (col.cellType === 'custom' && col.typeConfig) {\n map.set(col.id, { type: 'custom', ...col.typeConfig });\n } else {\n map.set(\n col.id,\n builtInCellTypeMap.get(col.cellType) ??\n this._extraCellTypes.get(col.cellType) ??\n textCellType,\n );\n }\n }\n return map;\n }\n\n resolveCellTypeByColumnId(columnId: string): CellType {\n return this._cellTypeMap.get(columnId) ?? textCellType;\n }\n\n getCellDisplayValue(rowKey: string, columnId: string): any {\n const pending = this._getPendingCell(rowKey, columnId);\n if (pending) {\n return pending.value;\n }\n const draft = this._getDraftCell(rowKey, columnId);\n if (draft) {\n return draft.value;\n }\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n return column && keyedItem ? column.getValue(keyedItem.item) : undefined;\n }\n\n getCellValidation(rowKey: string, columnId: string): ValidationResult {\n const pending = this._getPendingCell(rowKey, columnId);\n if (pending) {\n return { valid: false, errors: pending.errors };\n }\n return validResult;\n }\n\n /** Normalize like commitHandler does, then validate, so a value commit\n * would accept (`www.wix.com`) is never reported invalid before it has\n * been committed. */\n validateEditingValue(columnId: string, value: any): ValidationResult {\n const column = this._parent._columnMap.get(columnId);\n if (!column) {\n return validResult;\n }\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const normalized = resolved.normalizeOnCommit\n ? resolved.normalizeOnCommit(value)\n : value;\n return runCellValidation(\n normalized,\n column.validation,\n resolved.validate,\n this._parent.collection?.translate,\n );\n }\n\n isCellEditable(rowKey: string, columnId: string): boolean {\n const column = this._parent._columnMap.get(columnId);\n if (!column) {\n return false;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n if (resolved.editable === false || !resolved.EditComponent) {\n return false;\n }\n return this.isColumnEditable(rowKey, columnId);\n }\n\n /**\n * Whether `column.editable` permits writing this cell for this row,\n * independent of whether the cell type has an inline EditComponent. Gates\n * bulk/programmatic writes (clear, cut, paste) — narrower than\n * isCellEditable, which also requires an edit UI to exist.\n */\n isColumnEditable(rowKey: string, columnId: string): boolean {\n const column = this._parent._columnMap.get(columnId);\n if (!column?.setValue) {\n return false;\n }\n\n if (typeof column.editable === 'function') {\n const keyedItem = this._parent._getKeyedItem(rowKey);\n return keyedItem ? column.editable(keyedItem.item) : false;\n }\n return column.editable !== false;\n }\n\n getCellActionDisabledTooltip(\n actionId: EditableCellContextMenuAction,\n cell: Cell,\n ): string | undefined {\n const column = this._parent._columnMap.get(cell.columnId);\n if (!column) {\n return undefined;\n }\n\n const contextMenu = this.resolveCellTypeByColumnId(\n cell.columnId,\n ).contextMenu;\n if (!contextMenu) {\n return undefined;\n }\n\n const context = {\n value: this.getCellDisplayValue(cell.rowKey, cell.columnId),\n field: column.field,\n rowKey: cell.rowKey,\n columnId: cell.columnId,\n };\n const configs =\n actionId === 'cut'\n ? [contextMenu.cut, contextMenu.copy, contextMenu.clear]\n : [contextMenu[actionId]];\n\n for (const config of configs) {\n const tooltip = config?.disabledTooltip(context);\n if (tooltip) {\n return tooltip;\n }\n }\n return undefined;\n }\n\n getActionableCells(\n actionId: EditableCellContextMenuAction,\n cells: Cell[],\n ): Cell[] {\n return cells.filter(\n (cell) => !this.getCellActionDisabledTooltip(actionId, cell),\n );\n }\n\n getCellActionMenuAvailability(\n actionId: EditableCellContextMenuAction,\n cells: Cell[],\n ): { disabled: boolean; disabledTooltip?: string } {\n let disabledTooltip: string | undefined;\n\n for (const cell of cells) {\n const tooltip = this.getCellActionDisabledTooltip(actionId, cell);\n disabledTooltip ??= tooltip;\n const isAvailableWithoutCustomPolicy =\n actionId === 'copy' ||\n this.isColumnEditable(cell.rowKey, cell.columnId);\n if (isAvailableWithoutCustomPolicy && !tooltip) {\n return { disabled: false };\n }\n }\n\n return { disabled: true, disabledTooltip };\n }\n\n /** Serialize a cell value to a string (for clipboard copy/cut). */\n serializeCellValue(rowKey: string, columnId: string): string {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column || !keyedItem) {\n return '';\n }\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const value = this.getCellDisplayValue(rowKey, columnId);\n return resolved.serialize ? resolved.serialize(value) : String(value ?? '');\n }\n\n /** Clear selected cells (Delete/Backspace). Respects column.editable and contextMenu.clear.\n * Returns the cells that were actually cleared. */\n clearCells(cells: Cell[]): Cell[] {\n const changes: { rowKey: string; columnId: string; value: any }[] = [];\n\n for (const cell of cells) {\n const column = this._parent._columnMap.get(cell.columnId);\n if (!column?.setValue) {\n continue;\n }\n if (!this.isColumnEditable(cell.rowKey, cell.columnId)) {\n continue;\n }\n if (this.getCellActionDisabledTooltip('clear', cell)) {\n continue;\n }\n\n const pendingKey = this._pendingCellKey(cell.rowKey, cell.columnId);\n if (pendingKey) {\n this._pendingCells.delete(pendingKey);\n }\n changes.push({\n rowKey: cell.rowKey,\n columnId: cell.columnId,\n value: undefined,\n });\n }\n\n if (changes.length > 0) {\n this.applyBulkValues(changes);\n }\n\n return changes.map(({ rowKey, columnId }) => ({ rowKey, columnId }));\n }\n\n toggleCell(rowKey: string, columnId: string) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column?.setValue || !keyedItem) {\n return;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n if (!resolved.toggleValue) {\n return;\n }\n\n const value = this.getCellDisplayValue(rowKey, columnId);\n const newValue = resolved.toggleValue(value);\n const hasValueChanged = !Object.is(value, newValue);\n this._applyValue(rowKey, columnId, newValue);\n // isValid is read from the cell after the write, so it matches the value\n // that was just stored.\n this._parent.bi.cellEditCommitted(\n { rowKey, columnId },\n { origin: 'Toggle', hasValueChanged },\n );\n }\n\n /** Commit handler — used as callback for CellInteractionState. */\n commitHandler(editingValue: any, cell: Cell) {\n if (editingValue !== undefined) {\n const resolved = this.resolveCellTypeByColumnId(cell.columnId);\n const normalized = resolved.normalizeOnCommit\n ? resolved.normalizeOnCommit(editingValue)\n : editingValue;\n this._applyValue(cell.rowKey, cell.columnId, normalized);\n }\n }\n\n private _getPendingCell(\n rowKey: string,\n columnId: string,\n ): { value: any; errors: string[] } | undefined {\n const key = this._pendingCellKey(rowKey, columnId);\n return key ? this._pendingCells.get(key) : undefined;\n }\n\n private _getDraftCell(\n rowKey: string,\n columnId: string,\n ): { value: any } | undefined {\n const key = this._pendingCellKey(rowKey, columnId);\n return key ? this._draftCells.get(key) : undefined;\n }\n\n private _pendingCellKey(\n rowKey: string,\n columnId: string,\n ): string | undefined {\n const keyedItem = this._parent._getKeyedItem(rowKey);\n const column = this._parent._columnMap.get(columnId);\n if (!keyedItem || !column) {\n return undefined;\n }\n return `${keyedItem.key}:${column.id}`;\n }\n\n /**\n * Deserialize a raw string to a typed value. Returns an error message\n * if the conversion fails\n */\n tryDeserialize(\n columnId: string,\n rawValue: string,\n ): { value: any; error?: string } {\n const column = this._parent._columnMap.get(columnId);\n if (!column) {\n return { value: rawValue };\n }\n const resolved = this.resolveCellTypeByColumnId(column.id);\n if (!resolved.deserialize) {\n return { value: rawValue };\n }\n try {\n return { value: resolved.deserialize(rawValue) };\n } catch {\n const translate = this._parent.collection?.translate;\n return {\n value: rawValue,\n error:\n resolved.invalidInputMessage?.(rawValue, translate) ||\n translate?.('cairo.editableTable.cell.validation.notCompatible'),\n };\n }\n }\n\n /**\n * Deserialize and apply multiple raw string values in bulk.\n * Handles conversion failures by storing them as pending cells.\n */\n applyBulkRawValues(\n rawChanges: { rowKey: string; columnId: string; rawValue: string }[],\n ) {\n const changes: { rowKey: string; columnId: string; value: any }[] = [];\n for (const { rowKey, columnId, rawValue } of rawChanges) {\n const { value, error } = this.tryDeserialize(columnId, rawValue);\n if (error) {\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n if (pendingKey) {\n this._pendingCells.set(pendingKey, { value, errors: [error] });\n }\n } else {\n changes.push({ rowKey, columnId, value });\n }\n }\n this.applyBulkValues(changes);\n }\n\n /**\n * Apply multiple cell values in bulk. Validates per cell, accumulates\n * changes per row, and submits all modified items in a single update.\n * Every mutation path (clear, paste, cut) funnels through here, so\n * checking isColumnEditable here — not just at the call sites — keeps\n * read-only cells protected regardless of entry point.\n */\n applyBulkValues(changes: { rowKey: string; columnId: string; value: any }[]) {\n const rowUpdates = new Map<\n string,\n { item: T; changedFieldIds: Set<string> }\n >();\n\n for (const { rowKey, columnId, value } of changes) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (\n !column?.setValue ||\n !keyedItem ||\n !this.isColumnEditable(rowKey, columnId)\n ) {\n continue;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const result = runCellValidation(\n value,\n column.validation,\n resolved.validate,\n this._parent.collection?.translate,\n );\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n\n if (result.valid) {\n if (pendingKey) {\n this._pendingCells.delete(pendingKey);\n }\n if (this._parent.mutation.isLocalNewRow(rowKey)) {\n // A row not created on the server yet can't take an update —\n // buffer the value as a draft; it goes out with the row's\n // create when focus leaves the row.\n if (pendingKey) {\n this._draftCells.set(pendingKey, {\n rowKey: keyedItem.key,\n columnId: column.id,\n value,\n });\n }\n continue;\n }\n let rowUpdate = rowUpdates.get(rowKey);\n if (!rowUpdate) {\n const consumed = this._consumeRowDrafts(rowKey, keyedItem.item);\n rowUpdate = {\n item: consumed.item,\n changedFieldIds: new Set(consumed.changedFieldIds),\n };\n rowUpdates.set(rowKey, rowUpdate);\n }\n rowUpdate.item = column.setValue(rowUpdate.item, value);\n rowUpdate.changedFieldIds.add(column.id);\n } else if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: result.errors ?? [],\n });\n }\n }\n\n const updates = Array.from(rowUpdates.values());\n this._parent.mutation.updateItems(\n updates.map(({ item }) => item),\n updates.map(({ changedFieldIds }) => Array.from(changedFieldIds)),\n );\n }\n\n private _applyValue(rowKey: string, columnId: string, value: any) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column?.setValue || !keyedItem) {\n return;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const result = runCellValidation(\n value,\n column.validation,\n resolved.validate,\n this._parent.collection?.translate,\n );\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n\n if (result.valid && pendingKey) {\n this._pendingCells.delete(pendingKey);\n this._draftCells.set(pendingKey, {\n rowKey: keyedItem.key,\n columnId: column.id,\n value,\n });\n } else if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: result.errors ?? [],\n });\n }\n }\n\n flushDrafts(exceptRowKey?: string) {\n this._flushRows((rowKey) => rowKey !== exceptRowKey);\n }\n\n /** Save one row's drafts now, leaving other rows' drafts buffered. */\n flushRow(rowKey: string) {\n this._flushRows((key) => key === rowKey);\n }\n\n private _flushRows(includeRow: (rowKey: string) => boolean) {\n const invalidNewRows = new Set<string>();\n for (const rowKey of this._parent.mutation._drafts.keys()) {\n if (includeRow(rowKey) && !this._validateNewRow(rowKey)) {\n invalidNewRows.add(rowKey);\n }\n }\n\n const rowKeys = new Set<string>();\n for (const entry of this._draftCells.values()) {\n if (includeRow(entry.rowKey)) {\n rowKeys.add(entry.rowKey);\n }\n }\n\n const updates: { item: T; changedFieldIds: string[] }[] = [];\n for (const rowKey of rowKeys) {\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!keyedItem) {\n this.dropRowCellState(rowKey);\n } else if (this._parent.mutation.isLocalNewRow(rowKey)) {\n if (!invalidNewRows.has(rowKey)) {\n const consumed = this._consumeRowDrafts(rowKey, keyedItem.item);\n this._parent.mutation.commitNewRow(rowKey, consumed.item);\n }\n } else {\n const consumed = this._consumeRowDrafts(rowKey, keyedItem.item);\n updates.push(consumed);\n }\n }\n if (updates.length > 0) {\n this._parent.mutation.updateItems(\n updates.map(({ item }) => item),\n updates.map(({ changedFieldIds }) => changedFieldIds),\n );\n }\n }\n\n /** Validate all editable cells of a local new row, storing failures as\n * pending cells. Untouched cells validate their current display value. */\n private _validateNewRow(rowKey: string): boolean {\n let valid = true;\n for (const column of this._parent.allColumns) {\n if (!this.isColumnEditable(rowKey, column.id)) {\n continue;\n }\n // A cell already showing an error blocks the row even if re-validating\n // its value would pass. A failed paste keeps the raw string here, and a\n // cell type that only rejects on deserialize has no `validate` to fail.\n if (this._getPendingCell(rowKey, column.id)) {\n valid = false;\n continue;\n }\n const value = this.getCellDisplayValue(rowKey, column.id);\n const result = this.validateEditingValue(column.id, value);\n if (!result.valid) {\n valid = false;\n const pendingKey = this._pendingCellKey(rowKey, column.id);\n if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: result.errors ?? [],\n });\n }\n }\n }\n return valid;\n }\n\n private _consumeRowDrafts(\n rowKey: string,\n item: T,\n ): { item: T; changedFieldIds: string[] } {\n const changedFieldIds = new Set<string>();\n for (const [key, entry] of this._draftCells) {\n if (entry.rowKey !== rowKey) {\n continue;\n }\n const column = this._parent._columnMap.get(entry.columnId);\n if (column?.setValue) {\n item = column.setValue(item, entry.value);\n changedFieldIds.add(column.id);\n }\n this._draftCells.delete(key);\n }\n return { item, changedFieldIds: Array.from(changedFieldIds) };\n }\n\n /** Drop a row's buffered cell state without saving it (the row is gone).\n * Pending cells are keyed by row key, not tracked per entry, so they are\n * swept by prefix. */\n dropRowCellState(rowKey: string) {\n for (const [key, entry] of this._draftCells) {\n if (entry.rowKey === rowKey) {\n this._draftCells.delete(key);\n }\n }\n const prefix = `${rowKey}:`;\n for (const key of this._pendingCells.keys()) {\n if (key.startsWith(prefix)) {\n this._pendingCells.delete(key);\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_mobx","require","_cellTypes","_utils","builtInCellTypeMap","Map","builtInCellTypes","map","ct","type","CellValueState","constructor","parent","extraCellTypes","_defineProperty2","default","_parent","_extraCellTypes","makeObservable","_pendingCells","observable","_draftCells","_cellTypeMap","computed","clearCells","action","toggleCell","commitHandler","applyBulkRawValues","applyBulkValues","revalidatePendingCells","flushDrafts","flushRow","dropRowCellState","col","allColumns","cellType","typeConfig","set","id","get","textCellType","resolveCellTypeByColumnId","columnId","getCellDisplayValue","rowKey","pending","_getPendingCell","value","draft","_getDraftCell","column","_columnMap","keyedItem","_getKeyedItem","getValue","item","undefined","getCellValidation","valid","errors","validResult","validateEditingValue","_this$_parent$collect","resolved","normalized","normalizeOnCommit","runCellValidation","validation","validate","collection","translate","isCellEditable","editable","EditComponent","isColumnEditable","setValue","getCellActionDisabledTooltip","actionId","cell","contextMenu","context","field","configs","cut","copy","clear","config","tooltip","disabledTooltip","getActionableCells","cells","filter","getCellActionMenuAvailability","isAvailableWithoutCustomPolicy","disabled","serializeCellValue","serialize","String","changes","pendingKey","_pendingCellKey","delete","push","length","toggleValue","newValue","hasValueChanged","Object","is","_applyValue","bi","cellEditCommitted","origin","editingValue","key","tryDeserialize","rawValue","deserialize","_this$_parent$collect2","error","invalidInputMessage","rawChanges","isDeserializationError","rowUpdates","_this$_parent$collect3","result","mutation","isLocalNewRow","rowUpdate","consumed","_consumeRowDrafts","changedFieldIds","Set","add","updates","Array","from","values","updateItems","_this$_parent$collect4","rowsToSave","parseCellKey","has","cellInteraction","isRowActive","exceptRowKey","_flushRows","includeRow","invalidNewRows","_drafts","keys","_validateNewRow","rowKeys","entry","commitNewRow","prefix","startsWith","exports"],"sources":["../../../../src/state/EditableTable/CellValueState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\nimport type { CellType, Cell, ValidationResult } from './types';\nimport type { EditableCellContextMenuAction, FiltersMap } from '@wix/bex-core';\nimport type { EditableTableState } from './EditableTableState';\nimport {\n builtInCellTypes,\n textCellType,\n} from '../../components/EditableTable/cellTypes';\nimport { parseCellKey, runCellValidation, validResult } from './utils';\n\nconst builtInCellTypeMap = new Map<string, CellType>(\n builtInCellTypes.map((ct) => [ct.type, ct]),\n);\n\nexport class CellValueState<T, F extends FiltersMap> {\n /** Pending invalid cell values, keyed by `${itemId}:${colId}`. */\n readonly _pendingCells = new Map<\n string,\n { value: any; errors: string[]; isDeserializationError?: boolean }\n >();\n\n /** Valid committed values not yet saved, keyed by `${itemId}:${colId}`.\n * Each row's drafts are flushed as one update when focus leaves the row. */\n readonly _draftCells = new Map<\n string,\n { rowKey: string; columnId: string; value: any }\n >();\n\n private readonly _parent: EditableTableState<T, F>;\n private readonly _extraCellTypes: Map<string, CellType>;\n\n constructor(\n parent: EditableTableState<T, F>,\n extraCellTypes: Map<string, CellType> = new Map(),\n ) {\n this._parent = parent;\n this._extraCellTypes = extraCellTypes;\n\n makeObservable(this, {\n _pendingCells: observable,\n _draftCells: observable,\n _cellTypeMap: computed,\n clearCells: action,\n toggleCell: action,\n commitHandler: action,\n applyBulkRawValues: action,\n applyBulkValues: action,\n revalidatePendingCells: action,\n flushDrafts: action,\n flushRow: action,\n dropRowCellState: action,\n });\n }\n\n // Cell-type config per column id, from the merged columns (consumer columns\n // plus the columns the wired source adds). A computed so source columns that\n // load after init still get their cell types registered, without a rebuild.\n get _cellTypeMap(): Map<string, CellType> {\n const map = new Map<string, CellType>();\n for (const col of this._parent.allColumns) {\n if (col.cellType === 'custom' && col.typeConfig) {\n map.set(col.id, { type: 'custom', ...col.typeConfig });\n } else {\n map.set(\n col.id,\n builtInCellTypeMap.get(col.cellType) ??\n this._extraCellTypes.get(col.cellType) ??\n textCellType,\n );\n }\n }\n return map;\n }\n\n resolveCellTypeByColumnId(columnId: string): CellType {\n return this._cellTypeMap.get(columnId) ?? textCellType;\n }\n\n getCellDisplayValue(rowKey: string, columnId: string): any {\n const pending = this._getPendingCell(rowKey, columnId);\n if (pending) {\n return pending.value;\n }\n const draft = this._getDraftCell(rowKey, columnId);\n if (draft) {\n return draft.value;\n }\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n return column && keyedItem ? column.getValue(keyedItem.item) : undefined;\n }\n\n getCellValidation(rowKey: string, columnId: string): ValidationResult {\n const pending = this._getPendingCell(rowKey, columnId);\n if (pending) {\n return { valid: false, errors: pending.errors };\n }\n return validResult;\n }\n\n /** Normalize like commitHandler does, then validate, so a value commit\n * would accept (`www.wix.com`) is never reported invalid before it has\n * been committed. */\n validateEditingValue(columnId: string, value: any): ValidationResult {\n const column = this._parent._columnMap.get(columnId);\n if (!column) {\n return validResult;\n }\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const normalized = resolved.normalizeOnCommit\n ? resolved.normalizeOnCommit(value)\n : value;\n return runCellValidation(\n normalized,\n column.validation,\n resolved.validate,\n this._parent.collection?.translate,\n );\n }\n\n isCellEditable(rowKey: string, columnId: string): boolean {\n const column = this._parent._columnMap.get(columnId);\n if (!column) {\n return false;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n if (resolved.editable === false || !resolved.EditComponent) {\n return false;\n }\n return this.isColumnEditable(rowKey, columnId);\n }\n\n /**\n * Whether `column.editable` permits writing this cell for this row,\n * independent of whether the cell type has an inline EditComponent. Gates\n * bulk/programmatic writes (clear, cut, paste) — narrower than\n * isCellEditable, which also requires an edit UI to exist.\n */\n isColumnEditable(rowKey: string, columnId: string): boolean {\n const column = this._parent._columnMap.get(columnId);\n if (!column?.setValue) {\n return false;\n }\n\n if (typeof column.editable === 'function') {\n const keyedItem = this._parent._getKeyedItem(rowKey);\n return keyedItem ? column.editable(keyedItem.item) : false;\n }\n return column.editable !== false;\n }\n\n getCellActionDisabledTooltip(\n actionId: EditableCellContextMenuAction,\n cell: Cell,\n ): string | undefined {\n const column = this._parent._columnMap.get(cell.columnId);\n if (!column) {\n return undefined;\n }\n\n const contextMenu = this.resolveCellTypeByColumnId(\n cell.columnId,\n ).contextMenu;\n if (!contextMenu) {\n return undefined;\n }\n\n const context = {\n value: this.getCellDisplayValue(cell.rowKey, cell.columnId),\n field: column.field,\n rowKey: cell.rowKey,\n columnId: cell.columnId,\n };\n const configs =\n actionId === 'cut'\n ? [contextMenu.cut, contextMenu.copy, contextMenu.clear]\n : [contextMenu[actionId]];\n\n for (const config of configs) {\n const tooltip = config?.disabledTooltip(context);\n if (tooltip) {\n return tooltip;\n }\n }\n return undefined;\n }\n\n getActionableCells(\n actionId: EditableCellContextMenuAction,\n cells: Cell[],\n ): Cell[] {\n return cells.filter(\n (cell) => !this.getCellActionDisabledTooltip(actionId, cell),\n );\n }\n\n getCellActionMenuAvailability(\n actionId: EditableCellContextMenuAction,\n cells: Cell[],\n ): { disabled: boolean; disabledTooltip?: string } {\n let disabledTooltip: string | undefined;\n\n for (const cell of cells) {\n const tooltip = this.getCellActionDisabledTooltip(actionId, cell);\n disabledTooltip ??= tooltip;\n const isAvailableWithoutCustomPolicy =\n actionId === 'copy' ||\n this.isColumnEditable(cell.rowKey, cell.columnId);\n if (isAvailableWithoutCustomPolicy && !tooltip) {\n return { disabled: false };\n }\n }\n\n return { disabled: true, disabledTooltip };\n }\n\n /** Serialize a cell value to a string (for clipboard copy/cut). */\n serializeCellValue(rowKey: string, columnId: string): string {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column || !keyedItem) {\n return '';\n }\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const value = this.getCellDisplayValue(rowKey, columnId);\n return resolved.serialize ? resolved.serialize(value) : String(value ?? '');\n }\n\n /** Clear selected cells (Delete/Backspace). Respects column.editable and contextMenu.clear.\n * Returns the cells that were actually cleared. */\n clearCells(cells: Cell[]): Cell[] {\n const changes: { rowKey: string; columnId: string; value: any }[] = [];\n\n for (const cell of cells) {\n const column = this._parent._columnMap.get(cell.columnId);\n if (!column?.setValue) {\n continue;\n }\n if (!this.isColumnEditable(cell.rowKey, cell.columnId)) {\n continue;\n }\n if (this.getCellActionDisabledTooltip('clear', cell)) {\n continue;\n }\n\n const pendingKey = this._pendingCellKey(cell.rowKey, cell.columnId);\n if (pendingKey) {\n this._pendingCells.delete(pendingKey);\n }\n changes.push({\n rowKey: cell.rowKey,\n columnId: cell.columnId,\n value: undefined,\n });\n }\n\n if (changes.length > 0) {\n this.applyBulkValues(changes);\n }\n\n return changes.map(({ rowKey, columnId }) => ({ rowKey, columnId }));\n }\n\n toggleCell(rowKey: string, columnId: string) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column?.setValue || !keyedItem) {\n return;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n if (!resolved.toggleValue) {\n return;\n }\n\n const value = this.getCellDisplayValue(rowKey, columnId);\n const newValue = resolved.toggleValue(value);\n const hasValueChanged = !Object.is(value, newValue);\n this._applyValue(rowKey, columnId, newValue);\n // isValid is read from the cell after the write, so it matches the value\n // that was just stored.\n this._parent.bi.cellEditCommitted(\n { rowKey, columnId },\n { origin: 'Toggle', hasValueChanged },\n );\n }\n\n /** Commit handler — used as callback for CellInteractionState. */\n commitHandler(editingValue: any, cell: Cell) {\n if (editingValue !== undefined) {\n const resolved = this.resolveCellTypeByColumnId(cell.columnId);\n const normalized = resolved.normalizeOnCommit\n ? resolved.normalizeOnCommit(editingValue)\n : editingValue;\n this._applyValue(cell.rowKey, cell.columnId, normalized);\n }\n }\n\n private _getPendingCell(\n rowKey: string,\n columnId: string,\n ): { value: any; errors: string[] } | undefined {\n const key = this._pendingCellKey(rowKey, columnId);\n return key ? this._pendingCells.get(key) : undefined;\n }\n\n private _getDraftCell(\n rowKey: string,\n columnId: string,\n ): { value: any } | undefined {\n const key = this._pendingCellKey(rowKey, columnId);\n return key ? this._draftCells.get(key) : undefined;\n }\n\n private _pendingCellKey(\n rowKey: string,\n columnId: string,\n ): string | undefined {\n const keyedItem = this._parent._getKeyedItem(rowKey);\n const column = this._parent._columnMap.get(columnId);\n if (!keyedItem || !column) {\n return undefined;\n }\n return `${keyedItem.key}:${column.id}`;\n }\n\n /**\n * Deserialize a raw string to a typed value. Returns an error message\n * if the conversion fails\n */\n tryDeserialize(\n columnId: string,\n rawValue: string,\n ): { value: any; error?: string } {\n const column = this._parent._columnMap.get(columnId);\n if (!column) {\n return { value: rawValue };\n }\n const resolved = this.resolveCellTypeByColumnId(column.id);\n if (!resolved.deserialize) {\n return { value: rawValue };\n }\n try {\n return { value: resolved.deserialize(rawValue) };\n } catch {\n const translate = this._parent.collection?.translate;\n return {\n value: rawValue,\n error:\n resolved.invalidInputMessage?.(rawValue, translate) ||\n translate?.('cairo.editableTable.cell.validation.notCompatible'),\n };\n }\n }\n\n /**\n * Deserialize and apply multiple raw string values in bulk.\n * Handles conversion failures by storing them as pending cells.\n */\n applyBulkRawValues(\n rawChanges: { rowKey: string; columnId: string; rawValue: string }[],\n ) {\n const changes: { rowKey: string; columnId: string; value: any }[] = [];\n for (const { rowKey, columnId, rawValue } of rawChanges) {\n const { value, error } = this.tryDeserialize(columnId, rawValue);\n if (error) {\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: [error],\n isDeserializationError: true,\n });\n }\n } else {\n changes.push({ rowKey, columnId, value });\n }\n }\n this.applyBulkValues(changes);\n }\n\n /**\n * Apply multiple cell values in bulk. Validates per cell, accumulates\n * changes per row, and submits all modified items in a single update.\n * Every mutation path (clear, paste, cut) funnels through here, so\n * checking isColumnEditable here — not just at the call sites — keeps\n * read-only cells protected regardless of entry point.\n */\n applyBulkValues(changes: { rowKey: string; columnId: string; value: any }[]) {\n const rowUpdates = new Map<\n string,\n { item: T; changedFieldIds: Set<string> }\n >();\n\n for (const { rowKey, columnId, value } of changes) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (\n !column?.setValue ||\n !keyedItem ||\n !this.isColumnEditable(rowKey, columnId)\n ) {\n continue;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const result = runCellValidation(\n value,\n column.validation,\n resolved.validate,\n this._parent.collection?.translate,\n );\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n\n if (result.valid) {\n if (pendingKey) {\n this._pendingCells.delete(pendingKey);\n }\n if (this._parent.mutation.isLocalNewRow(rowKey)) {\n // A row not created on the server yet can't take an update —\n // buffer the value as a draft; it goes out with the row's\n // create when focus leaves the row.\n if (pendingKey) {\n this._draftCells.set(pendingKey, {\n rowKey: keyedItem.key,\n columnId: column.id,\n value,\n });\n }\n continue;\n }\n let rowUpdate = rowUpdates.get(rowKey);\n if (!rowUpdate) {\n const consumed = this._consumeRowDrafts(rowKey, keyedItem.item);\n rowUpdate = {\n item: consumed.item,\n changedFieldIds: new Set(consumed.changedFieldIds),\n };\n rowUpdates.set(rowKey, rowUpdate);\n }\n rowUpdate.item = column.setValue(rowUpdate.item, value);\n rowUpdate.changedFieldIds.add(column.id);\n } else if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: result.errors ?? [],\n });\n }\n }\n\n const updates = Array.from(rowUpdates.values());\n this._parent.mutation.updateItems(\n updates.map(({ item }) => item),\n updates.map(({ changedFieldIds }) => Array.from(changedFieldIds)),\n );\n }\n\n private _applyValue(rowKey: string, columnId: string, value: any) {\n const column = this._parent._columnMap.get(columnId);\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!column?.setValue || !keyedItem) {\n return;\n }\n\n const resolved = this.resolveCellTypeByColumnId(column.id);\n const result = runCellValidation(\n value,\n column.validation,\n resolved.validate,\n this._parent.collection?.translate,\n );\n const pendingKey = this._pendingCellKey(rowKey, columnId);\n\n if (result.valid && pendingKey) {\n this._pendingCells.delete(pendingKey);\n this._draftCells.set(pendingKey, {\n rowKey: keyedItem.key,\n columnId: column.id,\n value,\n });\n } else if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: result.errors ?? [],\n });\n }\n }\n\n revalidatePendingCells() {\n const rowsToSave = new Set<string>();\n for (const [key, pending] of this._pendingCells) {\n const cell = parseCellKey(key);\n if (!cell || pending.isDeserializationError) {\n continue;\n }\n this._applyValue(cell.rowKey, cell.columnId, pending.value);\n if (!this._pendingCells.has(key)) {\n rowsToSave.add(cell.rowKey);\n }\n }\n for (const rowKey of rowsToSave) {\n if (!this._parent.cellInteraction.isRowActive(rowKey)) {\n this.flushRow(rowKey);\n }\n }\n }\n\n flushDrafts(exceptRowKey?: string) {\n this._flushRows((rowKey) => rowKey !== exceptRowKey);\n }\n\n /** Save one row's drafts now, leaving other rows' drafts buffered. */\n flushRow(rowKey: string) {\n this._flushRows((key) => key === rowKey);\n }\n\n private _flushRows(includeRow: (rowKey: string) => boolean) {\n const invalidNewRows = new Set<string>();\n for (const rowKey of this._parent.mutation._drafts.keys()) {\n if (includeRow(rowKey) && !this._validateNewRow(rowKey)) {\n invalidNewRows.add(rowKey);\n }\n }\n\n const rowKeys = new Set<string>();\n for (const entry of this._draftCells.values()) {\n if (includeRow(entry.rowKey)) {\n rowKeys.add(entry.rowKey);\n }\n }\n\n const updates: { item: T; changedFieldIds: string[] }[] = [];\n for (const rowKey of rowKeys) {\n const keyedItem = this._parent._getKeyedItem(rowKey);\n if (!keyedItem) {\n this.dropRowCellState(rowKey);\n } else if (this._parent.mutation.isLocalNewRow(rowKey)) {\n if (!invalidNewRows.has(rowKey)) {\n const consumed = this._consumeRowDrafts(rowKey, keyedItem.item);\n this._parent.mutation.commitNewRow(rowKey, consumed.item);\n }\n } else {\n const consumed = this._consumeRowDrafts(rowKey, keyedItem.item);\n updates.push(consumed);\n }\n }\n if (updates.length > 0) {\n this._parent.mutation.updateItems(\n updates.map(({ item }) => item),\n updates.map(({ changedFieldIds }) => changedFieldIds),\n );\n }\n }\n\n /** Validate all editable cells of a local new row, storing failures as\n * pending cells. Untouched cells validate their current display value. */\n private _validateNewRow(rowKey: string): boolean {\n let valid = true;\n for (const column of this._parent.allColumns) {\n if (!this.isColumnEditable(rowKey, column.id)) {\n continue;\n }\n // A cell already showing an error blocks the row even if re-validating\n // its value would pass. A failed paste keeps the raw string here, and a\n // cell type that only rejects on deserialize has no `validate` to fail.\n if (this._getPendingCell(rowKey, column.id)) {\n valid = false;\n continue;\n }\n const value = this.getCellDisplayValue(rowKey, column.id);\n const result = this.validateEditingValue(column.id, value);\n if (!result.valid) {\n valid = false;\n const pendingKey = this._pendingCellKey(rowKey, column.id);\n if (pendingKey) {\n this._pendingCells.set(pendingKey, {\n value,\n errors: result.errors ?? [],\n });\n }\n }\n }\n return valid;\n }\n\n private _consumeRowDrafts(\n rowKey: string,\n item: T,\n ): { item: T; changedFieldIds: string[] } {\n const changedFieldIds = new Set<string>();\n for (const [key, entry] of this._draftCells) {\n if (entry.rowKey !== rowKey) {\n continue;\n }\n const column = this._parent._columnMap.get(entry.columnId);\n if (column?.setValue) {\n item = column.setValue(item, entry.value);\n changedFieldIds.add(column.id);\n }\n this._draftCells.delete(key);\n }\n return { item, changedFieldIds: Array.from(changedFieldIds) };\n }\n\n /** Drop a row's buffered cell state without saving it (the row is gone).\n * Pending cells are keyed by row key, not tracked per entry, so they are\n * swept by prefix. */\n dropRowCellState(rowKey: string) {\n for (const [key, entry] of this._draftCells) {\n if (entry.rowKey === rowKey) {\n this._draftCells.delete(key);\n }\n }\n const prefix = `${rowKey}:`;\n for (const key of this._pendingCells.keys()) {\n if (key.startsWith(prefix)) {\n this._pendingCells.delete(key);\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -213,6 +213,7 @@ class EditableTableState {
213
213
  init(columns) {
214
214
  this._providedColumns = columns;
215
215
  const disposeMutation = this.mutation.init();
216
+ const disposeValidation = (0, _mobx.reaction)(() => this.allColumns, () => this.cellValue.revalidatePendingCells());
216
217
  const {
217
218
  onBeforeUnload
218
219
  } = this.toolbar.container;
@@ -223,6 +224,7 @@ class EditableTableState {
223
224
  event.preventDefault();
224
225
  });
225
226
  return () => {
227
+ disposeValidation();
226
228
  this.cellValue.flushDrafts();
227
229
  disposeMutation();
228
230
  onBeforeUnloadSubscription == null || onBeforeUnloadSubscription.remove();